Serial constantly freezes

A forum about the Hatari ST/STE/Falcon emulator - the current version is v2.2.0

Moderators: simonsunnyboy, thothy, Moderator Team

User avatar
Kirkman
Obsessive compulsive Atari behavior
Obsessive compulsive Atari behavior
Posts: 139
Joined: Fri Sep 03, 2010 2:29 am

Serial constantly freezes

Postby Kirkman » Wed May 01, 2019 5:21 pm

A number of years ago, I wrote a blog post about using Hatari on my Mac to connect to BBSes over telnet via tcpser. At the end of that blog post I noted that Hatari has a tendency to freeze up if you enable serial emulation too early.

In the years since then I have tried many different terminal programs and I always got similar results. Hatari *often* freezes. I have updated Hatari numerous times, and still get the exact same results. I imagine the serial code hasn't changed much since 2012.

I never posted about it here on the Hatari forum because I wasn't certain if the issue was Hatari's serial code, or a bug in tcpser or socat.

However recently I decided to ditch tcpser in favor of a Lantronix. I have used the Lantronix with my Atari Mega STe to run many of these same serial programs with almost no problems. I figured it was worth connecting the Lantronix to my Mac to see if I got better results connecting to BBSes using old Atari and PC terminals in both Hatari and Dosbox. I bought a QVS serial-to-usb cable in order to connect the Lantronix to my Mac. It shows up as

I am definitely getting better results in Dosbox. But I still have freezing issues with Hatari.

When I was trying it this morning in order to write up this bug report, I was running into a freeze *every* time I tried to change baud rate, either in ANSIterm or Freeze Dried Terminal or TGEMUL (Thieves Guild emulator).

Settings:

szOutFileName = /dev/cu.usbserial
szInFileName = /dev/cu.usbserial

User avatar
Eero Tamminen
Atari God
Atari God
Posts: 1901
Joined: Sun Jul 31, 2011 1:11 pm

Re: Serial constantly freezes

Postby Eero Tamminen » Thu May 02, 2019 10:55 pm

I don't think RS232 code has had any real functionality change in over a decade. In 2012 I just added possibility to configure input and output separately and in 2014 Thomas made its threading compatible with SDL v2. There have been fixes to MFP implementation though.

Questions:
* Which Hatari version you're using, is it built with SDL v1 or SDL v2?
* What freezes, Hatari itself, or just the program running in Hatari?
* If latter, don't you see the freezing also on real Mega STe?
* If not, are you using exactly the same config with Hatari as your Mega STe has (TOS version, memory, AUTO programs etc)?
* If yes, can you reproduce the same issue if you use two Hatari instances on the same machine, connected through tcpser or socat?
* If yes, could you provide a set of steps to reproduce the issue?
* If you use --log-level debug Hatari option, do you see any warnings in console?

User avatar
Kirkman
Obsessive compulsive Atari behavior
Obsessive compulsive Atari behavior
Posts: 139
Joined: Fri Sep 03, 2010 2:29 am

Re: Serial constantly freezes

Postby Kirkman » Fri May 03, 2019 5:17 pm

* Hatari versions 1.8 through 2.2.1. I think SDL v2, but I'm not 100% sure. It's the official Mac distribution of Hatari.

* Hatari itself freezes up. In the Mac's "Force Quit Applications" dialog, you will see the "Hatari" listing change to "Hatari (not responding)"

* No, I do not experience this freezing on the Mega STe.

* Almost everything is the same: TOS 2.06, 4 megs of ram, 16MHz, etc. The main difference might be the AUTO folder, since I have a CosmosEx on the Mega. I want to stress that this problem has existed for at least 6 years, through multiple versions of Hatari, and multiple configuration changes on my end.

* You don't need 2 instances of Hatari. All I'm trying to do is dial out using a terminal program. But the freezing often occurs before I even get that far.

* Steps to easily reproduce one type of freeze:

1. Ensure Lantronix is connected to the Mac by serial cable.
2. Ensure hatari.cfg has following lines:

Code: Select all

szOutFileName = /dev/cu.usbserial
szInFileName = /dev/cu.usbserial

3. Launch Hatari 2.2.1.
4. Go to Preferences > Peripheral > Enable RS232 Emulation and check the checkbox
5. On the emulated Atari desktop, navigate to the TAZ_100B folder and launch TAZ.PRG.
6. Screen will turn white. Hatari's green HD indicator will light up. After several seconds, Mac cursor will turn to "beach ball". If "Force Quit Applications" dialog is open, Hatari entry will change to "Hatari (not responding)"

Note: If you skip step 4, TAZ.PRG will successfully launch. If you enable RS232 emulation after TAZ has launched, and then try to immediately quit TAZ, Hatari will immediately freeze (screen doesn't even turn white).
Last edited by Kirkman on Fri May 03, 2019 5:24 pm, edited 2 times in total.

User avatar
Kirkman
Obsessive compulsive Atari behavior
Obsessive compulsive Atari behavior
Posts: 139
Joined: Fri Sep 03, 2010 2:29 am

Re: Serial constantly freezes

Postby Kirkman » Fri May 03, 2019 5:19 pm

* Here's the debug output I could find in console while using --log-level debug.

In system log:

Code: Select all

May  3 11:59:50 josh-mac-pro-ethernet com.apple.xpc.launchd[1] (org.tuxfamily.Hatari.48348[72744]): Service exited due to signal: Killed: 9 sent by loginwindow[113]
May  3 12:08:31 josh-mac-pro-ethernet com.apple.xpc.launchd[1] (org.tuxfamily.Hatari.48348[73116]): Service exited due to signal: Killed: 9 sent by loginwindow[113]
May  3 12:10:27 josh-mac-pro-ethernet com.apple.xpc.launchd[1] (org.tuxfamily.Hatari.48348[73168]): Service exited due to signal: Killed: 9 sent by loginwindow[113]
Last edited by Kirkman on Fri May 03, 2019 5:26 pm, edited 1 time in total.

User avatar
Kirkman
Obsessive compulsive Atari behavior
Obsessive compulsive Atari behavior
Posts: 139
Joined: Fri Sep 03, 2010 2:29 am

Re: Serial constantly freezes

Postby Kirkman » Fri May 03, 2019 5:23 pm

I tried using "--log-level debug --log-file ~/Desktop/hatari-log.txt" also, but the hatari-log.txt file that it generated was empty.

User avatar
Kirkman
Obsessive compulsive Atari behavior
Obsessive compulsive Atari behavior
Posts: 139
Joined: Fri Sep 03, 2010 2:29 am

Re: Serial constantly freezes

Postby Kirkman » Fri May 03, 2019 6:08 pm

FWIW, I know the Lantronix works on my Mac. I'm able to use it just fine with Dosbox using this option:

Code: Select all

serial1=directserial realport:tty.usbserial


I tried using tty.usbserial instead of cu.usbserial with Hatari, but that resulted in immediate freezing when I try to check the "Enable RS232 Emulation" checkbox.

User avatar
Eero Tamminen
Atari God
Atari God
Posts: 1901
Joined: Sun Jul 31, 2011 1:11 pm

Re: Serial constantly freezes

Postby Eero Tamminen » Sun May 05, 2019 9:53 pm

Kirkman wrote:* You don't need 2 instances of Hatari. All I'm trying to do is dial out using a terminal program. But the freezing often occurs before I even get that far.


I don't have Mac, Lantronix, USB-serial, or other serial port in my (Linux) PC. Best would be if you can provide a backtrace of where exactly Hatari is frozen.

Otherwise I can try debugging the issue only if you can reproduce it also with just two Hatari instances communicating with each other on the same machine. There's a script in Hatari for that, which you could try: https://git.tuxfamily.org/hatari/hatari ... l-rs232.sh

Note: I just fixed a freeze at Hatari exit with that script i.e. when RS-232 device files are FIFOs. It seems that nowadays kernel & libc require strict ordering in closing FIFOs too, not just opening them:
https://git.tuxfamily.org/hatari/hatari ... b964e152da

(For opening FIFO files, the above script has a workaround to the issue of FIFO files blocking until both ends are attached, and two FIFO files being required for different communication directions i.e. in principle requiring different order of opening in different Hatari processes.)

Kirkman wrote:I tried using tty.usbserial instead of cu.usbserial with Hatari, but that resulted in immediate freezing when I try to check the "Enable RS232 Emulation" checkbox.


Is USB serial device file used for writing or reading or both? Is it by any change a FIFO file i.e. its opening blocking until there's something at both ends?

(DosBox might be opening the device files in non-blocking mode, and avoid that issue because of that. Hatari doesn't, as using non-blocking mode would require polling at some interval. If Hatari ever changes away from using a separate thread for reading the RS-232 device, then something like that would need to be added.)

User avatar
Kirkman
Obsessive compulsive Atari behavior
Obsessive compulsive Atari behavior
Posts: 139
Joined: Fri Sep 03, 2010 2:29 am

Re: Serial constantly freezes

Postby Kirkman » Mon May 06, 2019 3:17 am

Eero Tamminen wrote:I don't have Mac, Lantronix, USB-serial, or other serial port in my (Linux) PC. Best would be if you can provide a backtrace of where exactly Hatari is frozen.


How do I provide a backtrace? Tell me what steps I should follow, and I'll happily try it.

Otherwise I can try debugging the issue only if you can reproduce it also with just two Hatari instances communicating with each other on the same machine. There's a script in Hatari for that, which you could try: https://git.tuxfamily.org/hatari/hatari ... l-rs232.sh


Does this require building Hatari from source? Or can I make it work with the release versions I already have on my Mac?

Note: I just fixed a freeze at Hatari exit with that script i.e. when RS-232 device files are FIFOs. It seems that nowadays kernel & libc require strict ordering in closing FIFOs too, not just opening them:
https://git.tuxfamily.org/hatari/hatari ... b964e152da


I don't know very much about all this stuff, but that sounds promising. I think it might address some of the problems I've been seeing.

Kirkman wrote:I tried using tty.usbserial instead of cu.usbserial with Hatari, but that resulted in immediate freezing when I try to check the "Enable RS232 Emulation" checkbox.


Is USB serial device file used for writing or reading or both? Is it by any change a FIFO file i.e. its opening blocking until there's something at both ends?


I'm not sure because I don't really understand how this stuff works.

darwinmac
Captain Atari
Captain Atari
Posts: 211
Joined: Sat Aug 06, 2011 2:49 pm
Location: San Jose, USA

Re: Serial constantly freezes

Postby darwinmac » Mon May 06, 2019 4:06 am

Kirkman,

In order to use the script Eero is describing, you will need to run the Hatari MacOS executable which is inside of the package that you run when you double click on the Hatari icon from the Finder. If you haven’t used “Show Package Contents” before, the script might be a bit much.

At this website (https://troed.ddns.net/d/b90229b625/), nightly Hatari macOS binaries are created. It might be simpler to obtain a new binary from that website to see if it resolves your problem.

Bob C

User avatar
Kirkman
Obsessive compulsive Atari behavior
Obsessive compulsive Atari behavior
Posts: 139
Joined: Fri Sep 03, 2010 2:29 am

Re: Serial constantly freezes

Postby Kirkman » Tue May 07, 2019 3:15 am

I tried hatari-local-rs232.sh. Line 20 didn't work (hatari=$(which hatari) ), but I overcame the problem by hard-coding the direct path to hatari inside the application bundle. (e.g. '/Volumes/Emulation/Emulation/Hatari/Hatari.app/Contents/MacOS/hatari' )

Unfortunately, while the script *does* spawn two Hatari instances, they both are immediately frozen, stuck on a white screen with an indicator light on the A drive.

I tried this with multiple versions of Hatari (1.4, 2.2.1, and the latest one from troed.ddns.net) with essentially the same result. Both Hatari instances are immediately frozen/unresponsive when they are spawned.

If I force-quit ONE of the two instances, then the remaining instance will begin working correctly and the GEM desktop will appear.

I don't know if this is helpful for debugging the issue, but that's the result I got tonight.

Can you explain the steps for doing a backtrace? Seems like that would be useful for me to provide.

User avatar
Eero Tamminen
Atari God
Atari God
Posts: 1901
Joined: Sun Jul 31, 2011 1:11 pm

Re: Serial constantly freezes

Postby Eero Tamminen » Thu May 09, 2019 5:40 pm

Kirkman wrote:I tried hatari-local-rs232.sh. Line 20 didn't work (hatari=$(which hatari) ), but I overcame the problem by hard-coding the direct path to hatari inside the application bundle. (e.g. '/Volumes/Emulation/Emulation/Hatari/Hatari.app/Contents/MacOS/hatari' )

Unfortunately, while the script *does* spawn two Hatari instances, they both are immediately frozen, stuck on a white screen with an indicator light on the A drive.

I tried this with multiple versions of Hatari (1.4, 2.2.1, and the latest one from troed.ddns.net) with essentially the same result. Both Hatari instances are immediately frozen/unresponsive when they are spawned.


If your Hatari starts really slowly, it's possible that script kills the temporary "cat" processes reading of the 2 FIFO files, before Hatari instances have opened them cross-wise for reading & writing (process opening FIFO freezes until both read & write ends of a FIFO are opened). Could you try replacing "sleep 2" in the script e.g. with "sleep 15" and rerunning it?

As to backtrace, I've understood that Apple provides free tools for code development and debugging, which should include (GUI) debugger that you can attach to a frozen process to get a function back trace telling where it's frozen:
https://developer.apple.com/library/arc ... tools.html

User avatar
Kirkman
Obsessive compulsive Atari behavior
Obsessive compulsive Atari behavior
Posts: 139
Joined: Fri Sep 03, 2010 2:29 am

Re: Serial constantly freezes

Postby Kirkman » Fri May 10, 2019 3:11 pm

If your Hatari starts really slowly, it's possible that script kills the temporary "cat" processes reading of the 2 FIFO files, before Hatari instances have opened them cross-wise for reading & writing (process opening FIFO freezes until both read & write ends of a FIFO are opened). Could you try replacing "sleep 2" in the script e.g. with "sleep 15" and rerunning it?


Changing to "sleep 15" made no difference. Still hanging with white screens until I force-quit one of the instances.

User avatar
Kirkman
Obsessive compulsive Atari behavior
Obsessive compulsive Atari behavior
Posts: 139
Joined: Fri Sep 03, 2010 2:29 am

Re: Serial constantly freezes

Postby Kirkman » Fri May 10, 2019 6:59 pm

I tried running --trace all on hatari today. It generates an enormous text file, but here's the bottom of it, which I copied after it froze and I force-quit:

Code: Select all

cpu video_cyc= 12448 256@ 24 :   D0 00000003   D1 00000001   D2 00000001   D3 FFFFFAF8
  D4 00000000   D5 00000000   D6 00000000   D7 88018100
  A0 FFFFFA01   A1 FFFFFA01   A2 00FC374F   A3 FFFFFA1D
  A4 00024D4A   A5 00000000   A6 000445FE   A7 000445C6
USP  000445F0 ISP  000445C6
T=00 S=1 M=0 X=0 N=0 Z=0 V=0 C=0 IMASK=7 STP=0
Prefetch 47f9 (LEA) c749 (EXG) Chip latch 00000000
00FC36FC c749                     EXG.L A3,A1
Next PC: 00fc36fe
cpu video_cyc= 12464 272@ 24 :   D0 00000003   D1 00000001   D2 00000001   D3 FFFFFAF8
  D4 00000000   D5 00000000   D6 00000000   D7 88018100
  A0 FFFFFA01   A1 FFFFFA1D   A2 00FC374F   A3 FFFFFA01
  A4 00024D4A   A5 00000000   A6 000445FE   A7 000445C6
USP  000445F0 ISP  000445C6
T=00 S=1 M=0 X=0 N=0 Z=0 V=0 C=0 IMASK=7 STP=0
Prefetch 00fc (ILLEGAL) 47f9 (LEA) Chip latch 00000000
00FC36FE 47f9 00fc 3750           LEA.L $00fc3750,A3
Next PC: 00fc3704
cpu video_cyc= 12470 278@ 24 :   D0 00000003   D1 00000001   D2 00000001   D3 FFFFFAF8
  D4 00000000   D5 00000000   D6 00000000   D7 88018100
  A0 FFFFFA01   A1 FFFFFA1D   A2 00FC374F   A3 00FC3750
  A4 00024D4A   A5 00000000   A6 000445FE   A7 000445C6
USP  000445F0 ISP  000445C6
T=00 S=1 M=0 X=0 N=0 Z=0 V=0 C=0 IMASK=7 STP=0
Prefetch 1633 (MOVE) 7600 (MOVE) Chip latch 00000000
00FC3704 7600                     MOVE.L #$00,D3
Next PC: 00fc3706
cpu video_cyc= 12482 290@ 24 :   D0 00000003   D1 00000001   D2 00000001   D3 00000000
  D4 00000000   D5 00000000   D6 00000000   D7 88018100
  A0 FFFFFA01   A1 FFFFFA1D   A2 00FC374F   A3 00FC3750
  A4 00024D4A   A5 00000000   A6 000445FE   A7 000445C6
USP  000445F0 ISP  000445C6
T=00 S=1 M=0 X=0 N=0 Z=1 V=0 C=0 IMASK=7 STP=0
Prefetch 0000 (OR) 1633 (MOVE) Chip latch 00000000
00FC3706 1633 0000                MOVE.B (A3,D0.W,$00) == $00fc3753 [24],D3
Next PC: 00fc370a
cpu video_cyc= 12486 294@ 24 :   D0 00000003   D1 00000001   D2 00000001   D3 00000024
  D4 00000000   D5 00000000   D6 00000000   D7 88018100
  A0 FFFFFA01   A1 FFFFFA1D   A2 00FC374F   A3 00FC3750
  A4 00024D4A   A5 00000000   A6 000445FE   A7 000445C6
USP  000445F0 ISP  000445C6
T=00 S=1 M=0 X=0 N=0 Z=0 V=0 C=0 IMASK=7 STP=0
Prefetch 3000 (MOVE) 1182 (MOVE) Chip latch 00000000
00FC370A 1182 3000                MOVE.B D2,(A0,D3.W,$00) == $fffffa25
Next PC: 00fc370e
cpu video_cyc= 12500 308@ 24 : IO write.b $fffffa25 = $01 pc=fc370a
mfp write tddr fffa25=0x1 video_cyc=12500 308@24 pc=fc370a instr_cycle 14
  D0 00000003   D1 00000001   D2 00000001   D3 00000024
  D4 00000000   D5 00000000   D6 00000000   D7 88018100
  A0 FFFFFA01   A1 FFFFFA1D   A2 00FC374F   A3 00FC3750
  A4 00024D4A   A5 00000000   A6 000445FE   A7 000445C6
USP  000445F0 ISP  000445C6
T=00 S=1 M=0 X=0 N=0 Z=0 V=0 C=0 IMASK=7 STP=0
Prefetch 3000 (MOVE) b430 (CMP) Chip latch 00000000
00FC370E b430 3000                CMP.B (A0,D3.W,$00) == $fffffa25,D2
Next PC: 00fc3712
cpu video_cyc= 12518 326@ 24 : mfp read tddr fffa25=0x1 video_cyc=12518 326@24 pc=fc370e instr_cycle 14
IO read.b $fffffa25 = $01 pc=fc370e
  D0 00000003   D1 00000001   D2 00000001   D3 00000024
  D4 00000000   D5 00000000   D6 00000000   D7 88018100
  A0 FFFFFA01   A1 FFFFFA1D   A2 00FC374F   A3 00FC3750
  A4 00024D4A   A5 00000000   A6 000445FE   A7 000445C6
USP  000445F0 ISP  000445C6
T=00 S=1 M=0 X=0 N=0 Z=1 V=0 C=0 IMASK=7 STP=0
Prefetch c749 (EXG) 66f6 (Bcc) Chip latch 00000000
00FC3712 66f6                     BNE.B #$f6 == $00fc370a (F)
Next PC: 00fc3714
cpu video_cyc= 12536 344@ 24 :   D0 00000003   D1 00000001   D2 00000001   D3 00000024
  D4 00000000   D5 00000000   D6 00000000   D7 88018100
  A0 FFFFFA01   A1 FFFFFA1D   A2 00FC374F   A3 00FC3750
  A4 00024D4A   A5 00000000   A6 000445FE   A7 000445C6
USP  000445F0 ISP  000445C6
T=00 S=1 M=0 X=0 N=0 Z=1 V=0 C=0 IMASK=7 STP=0
Prefetch 8313 (OR) c749 (EXG) Chip latch 00000000
00FC3714 c749                     EXG.L A3,A1
Next PC: 00fc3716
cpu video_cyc= 12544 352@ 24 :   D0 00000003   D1 00000001   D2 00000001   D3 00000024
  D4 00000000   D5 00000000   D6 00000000   D7 88018100
  A0 FFFFFA01   A1 00FC3750   A2 00FC374F   A3 FFFFFA1D
  A4 00024D4A   A5 00000000   A6 000445FE   A7 000445C6
USP  000445F0 ISP  000445C6
T=00 S=1 M=0 X=0 N=0 Z=1 V=0 C=0 IMASK=7 STP=0
Prefetch 4cdf (MVMEL) 8313 (OR) Chip latch 00000000
00FC3716 8313                     OR.B D1,(A3)
Next PC: 00fc3718
cpu video_cyc= 12550 358@ 24 : mfp read tcdcr fffa1d=0x50 video_cyc=12550 358@24 pc=fc3716 instr_cycle 12
IO read.b $fffffa1d = $50 pc=fc3716
IO write.b $fffffa1d = $51 pc=fc3716
mfp write tcdcr fffa1d=0x51 video_cyc=12550 358@24 pc=fc3716 instr_cycle 12
mfp start CD handler=7 data=100 ctrl=1 timer_cyc=400 pending_cyc=2304 video_cyc=12550 358@24 pc=fc3716 instr_cyc=12 first=true resume=false
int upd video_cyc=12550 cycle_over=364800 cycle_sub=1171200
int set new in video_cyc=12550 active_int=3 pending_count=364800
int set new out video_cyc=12550 active_int=3 pending_count=364800
int remove pending video_cyc=12550 handler=7 handler_cyc=64185600 pending_count=364800
int upd video_cyc=12550 cycle_over=364800 cycle_sub=0
int set new in video_cyc=12550 active_int=3 pending_count=364800
int set new out video_cyc=12550 active_int=3 pending_count=364800
int add rel offset video_cyc=12550 handler=7 handler_cyc=12725200 offset_cyc=192000 pending_count=364800
  D0 00000003   D1 00000001   D2 00000001   D3 00000024
  D4 00000000   D5 00000000   D6 00000000   D7 88018100
  A0 FFFFFA01   A1 00FC3750   A2 00FC374F   A3 FFFFFA1D
  A4 00024D4A   A5 00000000   A6 000445FE   A7 000445C6
USP  000445F0 ISP  000445C6
T=00 S=1 M=0 X=0 N=0 Z=0 V=0 C=0 IMASK=7 STP=0
Prefetch 0f1f (BTST) 4cdf (MVMEL) Chip latch 00000000
00FC3718 4cdf 0f1f                MOVEM.L (A7)+,D0-D4/A0-A3
Next PC: 00fc371c
cpu video_cyc= 12570 378@ 24 : EndLine TB 24 video_cyc=12656 line_cyc=464 pending_int_cnt=68
int upd video_cyc=12656 cycle_over=-652800 cycle_sub=1017600
int set new in video_cyc=12656 active_int=3 pending_count=-652800
int set new out video_cyc=12656 active_int=2 pending_count=422400
int ack video_cyc=12656 active_int=2 active_cyc=422400 pending_count=422400
int upd video_cyc=12656 cycle_over=422400 cycle_sub=0
int set new in video_cyc=12656 active_int=2 pending_count=422400
int set new out video_cyc=12656 active_int=2 pending_count=422400
int add rel offset video_cyc=12656 handler=3 handler_cyc=4224000 offset_cyc=0 pending_count=422400
  D0 00000003   D1 00000001   D2 00000001   D3 0000FFFF
  D4 00000000   D5 00000000   D6 00000000   D7 88018100
  A0 00000C70   A1 FFFFFA01   A2 00FC3ADC   A3 00000000
  A4 00024D4A   A5 00000000   A6 000445FE   A7 000445EA
USP  000445F0 ISP  000445EA
T=00 S=1 M=0 X=0 N=0 Z=0 V=0 C=0 IMASK=7 STP=0
Prefetch 6106 (BSR) 4e75 (RTS) Chip latch 00000000
00FC371C 4e75                     RTS
Next PC: 00fc371e
cpu video_cyc= 12656 464@ 24 :   D0 00000003   D1 00000001   D2 00000001   D3 0000FFFF
  D4 00000000   D5 00000000   D6 00000000   D7 88018100
  A0 00000C70   A1 FFFFFA01   A2 00FC3ADC   A3 00000000
  A4 00024D4A   A5 00000000   A6 000445FE   A7 000445EE
USP  000445F0 ISP  000445EE
T=00 S=1 M=0 X=0 N=0 Z=0 V=0 C=0 IMASK=7 STP=0
Prefetch 1340 (MOVE) 7001 (MOVE) Chip latch 00000000
00FC3A8E 7001                     MOVE.L #$01,D0
Next PC: 00fc3a90
cpu video_cyc= 12672 480@ 24 :   D0 00000001   D1 00000001   D2 00000001   D3 0000FFFF
  D4 00000000   D5 00000000   D6 00000000   D7 88018100
  A0 00000C70   A1 FFFFFA01   A2 00FC3ADC   A3 00000000
  A4 00024D4A   A5 00000000   A6 000445FE   A7 000445EE
USP  000445F0 ISP  000445EE
T=00 S=1 M=0 X=0 N=0 Z=0 V=0 C=0 IMASK=7 STP=0
Prefetch 002a (OR) 1340 (MOVE) Chip latch 00000000
00FC3A90 1340 002a                MOVE.B D0,(A1,$002a) == $fffffa2b
Next PC: 00fc3a94
cpu video_cyc= 12676 484@ 24 : IO write.b $fffffa2b = $01 pc=fc3a90
  D0 00000001   D1 00000001   D2 00000001   D3 0000FFFF
  D4 00000000   D5 00000000   D6 00000000   D7 88018100
  A0 00000C70   A1 FFFFFA01   A2 00FC3ADC   A3 00000000
  A4 00024D4A   A5 00000000   A6 000445FE   A7 000445EE
USP  000445F0 ISP  000445EE
T=00 S=1 M=0 X=0 N=0 Z=0 V=0 C=0 IMASK=7 STP=0
Prefetch 002c (OR) 1340 (MOVE) Chip latch 00000000
00FC3A94 1340 002c                MOVE.B D0,(A1,$002c) == $fffffa2d
Next PC: 00fc3a98
cpu video_cyc= 12692 500@ 24 : IO write.b $fffffa2d = $01 pc=fc3a94
int upd video_cyc=12708 cycle_over=-76800 cycle_sub=499200
int set new in video_cyc=12708 active_int=2 pending_count=-76800
int set new out video_cyc=12708 active_int=20 pending_count=806400
int ack video_cyc=12708 active_int=20 active_cyc=806400 pending_count=806400
HBL 24 video_cyc=12708 pending_cyc=8 jitter=4
HBL 25 start=12700 319c
int upd video_cyc=12708 cycle_over=806400 cycle_sub=0
int set new in video_cyc=12708 active_int=20 pending_count=806400
int set new out video_cyc=12708 active_int=20 pending_count=806400
int add rel offset video_cyc=12708 handler=2 handler_cyc=4800000 offset_cyc=0 pending_count=806400
  D0 00000001   D1 00000001   D2 00000001   D3 0000FFFF
  D4 00000000   D5 00000000   D6 00000000   D7 88018100
  A0 00000C70   A1 FFFFFA01   A2 00FC3ADC   A3 00000000
  A4 00024D4A   A5 00000000   A6 000445FE   A7 000445EE
USP  000445F0 ISP  000445EE
T=00 S=1 M=0 X=0 N=0 Z=0 V=0 C=0 IMASK=7 STP=0
Prefetch 0008 (ILLEGAL) 4a6f (TST) Chip latch 00000000
00FC3A98 4a6f 0008                TST.W (A7,$0008) == $000445f6 [0088]
Next PC: 00fc3a9c
cpu video_cyc= 12708   8@ 25 :   D0 00000001   D1 00000001   D2 00000001   D3 0000FFFF
  D4 00000000   D5 00000000   D6 00000000   D7 88018100
  A0 00000C70   A1 FFFFFA01   A2 00FC3ADC   A3 00000000
  A4 00024D4A   A5 00000000   A6 000445FE   A7 000445EE
USP  000445F0 ISP  000445EE
T=00 S=1 M=0 X=0 N=0 Z=0 V=0 C=0 IMASK=7 STP=0
Prefetch 136f (MOVE) 6b06 (Bcc) Chip latch 00000000
00FC3A9C 6b06                     BMI.B #$06 == $00fc3aa4 (F)
Next PC: 00fc3a9e
cpu video_cyc= 12720  20@ 25 :   D0 00000001   D1 00000001   D2 00000001   D3 0000FFFF
  D4 00000000   D5 00000000   D6 00000000   D7 88018100
  A0 00000C70   A1 FFFFFA01   A2 00FC3ADC   A3 00000000
  A4 00024D4A   A5 00000000   A6 000445FE   A7 000445EE
USP  000445F0 ISP  000445EE
T=00 S=1 M=0 X=0 N=0 Z=0 V=0 C=0 IMASK=7 STP=0
Prefetch 0009 (ILLEGAL) 136f (MOVE) Chip latch 00000000
00FC3A9E 136f 0009 0028           MOVE.B (A7,$0009) == $000445f7 [88],(A1,$0028) == $fffffa29
Next PC: 00fc3aa4
cpu video_cyc= 12728  28@ 25 : IO write.b $fffffa29 = $88 pc=fc3a9e


I ran ANSIterm, waited for it to load, then tried changing the baud rate to 19200. That's the point at which it froze.

User avatar
Kirkman
Obsessive compulsive Atari behavior
Obsessive compulsive Atari behavior
Posts: 139
Joined: Fri Sep 03, 2010 2:29 am

Re: Serial constantly freezes

Postby Kirkman » Sat May 18, 2019 10:49 pm

Hi Eero, any ideas on the hatari-local-rs232.sh? Was my trace helpful?


Social Media

     

Return to “Hatari”

Who is online

Users browsing this forum: No registered users and 2 guests