On 9/5/2023 7:53 PM, Kent Dickey wrote:
>
> I didn't test it too much, but KEGS 1.29, available at
kegs.sourceforge.net,
> implements the above. Press F4, "Serial Port Configuration", then under
> Slot 1, "Main Setting", press right arrow to select "Use Remote IP below".
> Enter the IP or machine name on "Remote IP", and change "Remote Port"
> to the port you want (I defaulted it to 9100).
>
> I do not expect this to "just work", but if it doesn't work, try to report
> back how to reproduce the problem.
>
> Kent
Kent,
I've been able to test your new Kegs 1.29 serial port to Remote IP
feature in both Windows 10 and in MacOS and it works extremely well to
send print jobs from the emulated IIgs directly to a network printer.
I had success with the following type of print jobs:
1. Listing of a BASIC program from the BASIC prompt {KEGS set to mask
off high bit};
2. Printing from 8-bit AppleWorks 5.1 using the built-in PCL 5
(DeskJet/LaserJet) printer driver {KEGS set to pass all 8 bits};
3. Printing from GS/OS application 'BrkDown' using the Direct Connect
PostScript Driver and the Printer port driver {KEGS set to pass all 8 bits}.
All three jobs printed exactly as they should, and did so speedily. Both
test machines (Windows and Mac) were used with a networked HP LaserJet
printer that is connected to a network router. This printer understands
both PCL 5 (which includes the plain text subset) and PostScript.
Again, thank you so much for taking the time to add this feature. There
probably aren't many people who still do 'real work' with an Apple IIgs
(although I do on a daily basis), but having the ability easily to print
directly to a modern printer really increases the usefulness of your
emulator, at least to me.
Anyway, of course there is ONE issue, which I hope you can resolve.
Most network printers contain a Port 9100 printer server. Once a client
makes a connection (as KEGS now does when an emulated SCC port is
accessed), the server receives any job that is sent, and once there has
been no traffic/idle for (typically) 90 seconds, the server forces a
disconnect from that client. This enables the print server to accept
jobs from other clients on the network.
Well, KEGS makes the initial connection and sends the job, as the KEGS
console shows:
Connecting to 192.168.1.170, port:9100
SCC port 0 is now outgoing to
Provided the idle time limit (in this case 90 seconds) is not reached, I
can continue to send print jobs and they will be printed.
If, however, I wait over 90 seconds between jobs, the print server will
disconnect the KEGS client.
As a result, when I attempt to print again, the job is not sent, and the
KEGS console shows:
socket write failed, resuming modem mode
socket_close: rdwrfd=3cc, closing
socket_close: sockfd=3cc, closing
port 0 is closed, cur_state:-2
port 0 is closed, cur_state:-2
So, I suppose I would ask that if a socket write failed, that KEGS would
re-establish the connection to the server and then send the job.
Please let me know if I can provide anything else for you to
troubleshoot this, and again, thanks for implementing this great feature.
Hugh Hood