MacPPP via serial port on PCE Macintosh Plus

About Mini vMac and all other 68k emulators, including SoftMac, Executor, and MESS.

Moderators: Cat_7, Ronald P. Regensburg

Post Reply
mdanh2002
Space Cadet
Posts: 8
Joined: Sat Feb 18, 2017 2:57 pm

MacPPP via serial port on PCE Macintosh Plus

Post by mdanh2002 »

Hi,

I am trying out the pce-macplus emulator (http://www.hampa.ch/pce/pce-macplus.html) by compiling the source and run it on Ubuntu 15.04! It is great, emulates many more features than Mini vMac, and is able to run System 6, which Basilisk (another 68k emulator) cannot support.

However, I currently have some issues with the serial port emulation. I use pce-macplus the Macintosh Plus ROM to run System 6.0.8. When using ZTerm together with minicom on Ubuntu to send/receive files via ZModem, the serial port works fine at 19200bps or even 38400bps and files are sent/received correctly. But when I use MacPPP to connect to the Internet (via a PPP server running with pppd on another machine connected through a null-modem cable), things do not work properly. The symptom is that, once MacPPP starts to send out PPP handshaking packet and the server acknowledges with a reply, the incoming channel of the serial port would lock up and MacPPP will no longer be able to communicate with the server, resulting in a “Link Dead” error message. MacPPP statistics dialog also shows 0 “in octets” and 0 “in packets”, but a lot of outgoing octets/packets, which means that data are not received properly. Even after I quit MacPPP, the serial port will no longer be able to receive any data, but can still send out data in ZTerm. The problem will persist even after the Macintosh Plus is rebooted. To recover the serial port functionality, I would need to close the pce-macplus application and run it again!

The issue is not with MacPPP alone because when MacPPP is running with no PPP server on the serial port, but with some process running on the other computer sending random data to the serial port, the port does not get locked up and MacPPP statistics page will show some incoming octets are received. So I guess it is a combination of data being sent/received on the port at the right time causing the issue. The issue happens both on the modem port and the printer port, with various baudrate settings (I tried as low as 9600bps), and with or without handshaking.

Does anyone have any idea how to fix the issue? Maybe some serial buffer overflow or something?

My ultimate goal is to get the Internet (MacWWW, Eurdora email, NNTP news reader, Gopher, FTP, telnet, etc.) up and running on System 6 through the pce-macplus emulator. I got a physical Macintosh SE here with Internet access working (via the serial port connected to a Raspberry Pi running pppd on ubuntu 15), but it will be good to have the same setup running on the emulator just for fun :)

If anyone has any ideas, let me know. Thanks.
User avatar
adespoton
Forum All-Star
Posts: 4208
Joined: Fri Nov 27, 2009 5:11 am
Location: Emaculation.com
Contact:

Re: MacPPP via serial port on PCE Macintosh Plus

Post by adespoton »

I used to have what sounds like the exact same issue with real hardware back in the day; the problem for my case was that the pppd host was set to a higher baud rate and wasn't negotiating properly (not something you'd expect for null modem communications). I found that some baud rates lined up well, others dropped out randomly, and some failed to negotiate at all. I think it comes from the response coming back too quickly, so it never makes it to the buffer, as the buffer isn't ready yet.

Worth playing around with anyways.
mdanh2002
Space Cadet
Posts: 8
Joined: Sat Feb 18, 2017 2:57 pm

Re: MacPPP via serial port on PCE Macintosh Plus

Post by mdanh2002 »

Well, I got it working. All I have to do is to press "Open" on the "Config PPP" panel on the emulated Macintosh first, then quickly start the PPPD server on my other machine. If this is done then the PPPD handshaking will be successful and I will be able to surf the net via MacTCP/MacPPP on the Macintosh Plus emulated by PCE. For these past 2 days the PPPD server has always been started first, and somehow this caused MacPPP to fail the handshake and lock up the serial port! With this, the setup will also work with a virtual COM port pair emulated by tty0tty (https://github.com/freemed/tty0tty) so that I no longer need a null modem cable - the entire setup can run on the same machine!

For whatever reason the same setup works fine on my Macintosh SE - PPPD is set to run as startup, in an infinite loop, on a Raspberry Pi running Ubuntu 15 Server, so that it will keep on waiting for a client to connect. This allows the Macintosh SE to connect via PPP as and when it needs, without me having to start PPPD manually. Weird, but lesson learned, what works on the physical machines may not work on the emulators.

Still I guess the serial port emulation by pce-macplus might have issue. Will write to the author to feedback.
User avatar
adespoton
Forum All-Star
Posts: 4208
Joined: Fri Nov 27, 2009 5:11 am
Location: Emaculation.com
Contact:

Re: MacPPP via serial port on PCE Macintosh Plus

Post by adespoton »

I think it's the timing issue; the client will keep re-trying until it gets a response, but if the server responds *too* quickly, the client will miss the initial response and so never get it later. Since this is also the case on actual hardware, it's probably not an emulation issue.
Post Reply