GlobalTalk - Global AppleTalk network for MARCHintosh 2024 (and beyond!)

  • It's #MARCHintosh 2025! Join in on the fun and post your project or play with some new stuff in our #MARCHintosh 2025 thread.

eric

Administrator
Staff member
Sep 2, 2021
1,025
1,709
113
MN
bluescsi.com
So looking at these guides - even as someone who does networking as part of his job - seemed like this is crazy to have to setup this much just to pass a one port to a VM. So I read the QEMU networking docs and I believe for the normal use case of just having a VM access GlobalTalk (and nothing else) you don't need to setup any advanced networking. Just use the default user network adapter.

Code:
qemu-system-m68k -M q800 -m 128 -g 1152x870x8 -display sdl -bios Q800.ROM \
-drive file=pram.img,format=raw,if=mtd -device scsi-hd,scsi-id=0,drive=hd0 -drive format=raw,media=disk,if=none,id=hd0,file=GlobalTalk_HD.img \
-nic user,hostfwd=udp::387-:387

note the -nic switch with the added port forwarding. (user is default if -nic is not specified, but we need the ports exposed on the host)

Since the image uses mactcp which doesnt support dhcp the details are:
router: 10.0.2.2
ip: 10.0.2.15 (or higher)
subnet: 255.255.255.0
DNS: you choose or 1.1.1.1

Note you'll need root/admin privileges (of course) to listen on any port under 1024

I was able to get networking working fine but didn't have time to go through the entire AIR setup.

-

Also I am not using AIR this year as jrouter is so easy to setup and I don't need a QEMU host or retro computer running 24/7. My "BlueSCSI HQ" network is jrouter + Netatalk - all modern software. I can fire up my Q700 to jump on and poke around other people's shares/printers/etc.
 

RetroTechChris

New Tinkerer
Oct 31, 2021
20
13
3
So looking at these guides - even as someone who does networking as part of his job - seemed like this is crazy to have to setup this much just to pass a one port to a VM. So I read the QEMU networking docs and I believe for the normal use case of just having a VM access GlobalTalk (and nothing else) you don't need to setup any advanced networking. Just use the default user network adapter.

Code:
qemu-system-m68k -M q800 -m 128 -g 1152x870x8 -display sdl -bios Q800.ROM \
-drive file=pram.img,format=raw,if=mtd -device scsi-hd,scsi-id=0,drive=hd0 -drive format=raw,media=disk,if=none,id=hd0,file=GlobalTalk_HD.img \
-nic user,hostfwd=udp::387-:387

note the -nic switch with the added port forwarding. (user is default if -nic is not specified, but we need the ports exposed on the host)

Since the image uses mactcp which doesnt support dhcp the details are:
router: 10.0.2.2
ip: 10.0.2.15 (or higher)
subnet: 255.255.255.0
DNS: you choose or 1.1.1.1

Note you'll need root/admin privileges (of course) to listen on any port under 1024

I was able to get networking working fine but didn't have time to go through the entire AIR setup.

-

Also I am not using AIR this year as jrouter is so easy to setup and I don't need a QEMU host or retro computer running 24/7. My "BlueSCSI HQ" network is jrouter + Netatalk - all modern software. I can fire up my Q700 to jump on and poke around other people's shares/printers/etc.
Worth a shot. In this configuration, you'd port forward to the computer hosting the qemu guest. If someone wants to test it and report back, that's great! The disadvantage of this configuration is that your guest might not see other computers on its own network. For example, I am using FTP to a Raspberry Pi on my local network. I don't think that would work in this configuration. And you probably wouldn't see LocalTalk Macs on your network either is my guess.
 
Last edited:

scj312

Tinkerer
Oct 29, 2021
55
79
18
FWIW, QEMU seems to be more straightforward to set up on macOS, at least as far as networking is concerned-- I pass this param to QEMU (removed my configured MAC address): -nic vmnet-bridged,model=dp83932,mac=xx:xx:xx:xx:xx:xx,ifname=en0
 
  • Like
Reactions: eric

eric

Administrator
Staff member
Sep 2, 2021
1,025
1,709
113
MN
bluescsi.com
The disadvantage of this configuration is that your guest might not see other computers on its own network.
100% sure they wont, which is why I mentioned that in my post. I see a ton of people wanting to get on GlobalTalk that may not even have a Vintage Mac to run AIR that have 0 network experience - this is for them. Others should choose the more complex bridge setup.

FWIW, QEMU seems to be more straightforward to set up on macOS, at least as far as networking is concerned-- I pass this param to QEMU (removed my configured MAC address): -nic vmnet-bridged,model=dp83932,mac=xx:xx:xx:xx:xx:xx,ifname=en0
Nice! vmnet-bridged doesn't seem to exist on the linux build - unsure about windows.


Also to clarify (as I've been asked a few times) - the network details I provided are for the internal Qemu user network - so you must use those exact ones in MacTCP. The network looks like:
|Internet| -> |Home Router (eg: 192.168.1.x)| -> |PC Host(192.168.1.123)| -> |Qemu user network(10.0.2.x)| -> |Qemu Guest(10.0.2.15)|
 
  • Like
Reactions: RetroTechChris

europlus

New Tinkerer
Feb 26, 2025
13
12
3
Sydney, Australia
blog.europlus.zone
Last night I released several GlobalTalk-related resources - see Apple Internet Router Administrator’s Guide—Addendum and GlobalTalk Setup Files v1.0.4 released for MARCHintosh 2025!

I haven’t yet reviewed this whole thread, but the OCI command file in my QEMU GlobalTalk Setup Files package uses just such a -nic definition to just forward UDP port 387 using slirp.

The reason I go to the trouble of setting up the bridge interface on Ubuntu when I can (as detailed in #MARCHintosh Wrap Up, GlobalTalk News) is easier use of any port to/from the guest OS (the guest OS is a full “citizen” of the Ethernet network), and the ability to avoid evoking QEMU as root.

Also, vmnet-bridged is macOS-only and is great! (It’s a feature of the OS, not QEMU.)

Going to trawl back now, but AMA about GlobalTalk and I’ll likely have an opinion on it...

Oh, and speaking of opinions about GlobalTalk...

If you’re setting up a GlobalTalk node (or already have with a network range spanning 2+ numbers) - you’ll almost certainly need only one network number for your EtherTalk port (so enter the range as, for example, 12345-12345).

See my docs for rationale - but basically that will support 253 AppleTalk devices on that EtherTalk port.

You may need more numbers if you have multiple networks/segments, and LocalTalk networks need their own number/s (outside of that range and unique across GlobalTalk).

Be kind…only one network number assigned!*

europlus

*kind because it increases the odds other admins can choose their own “special” number.
 

europlus

New Tinkerer
Feb 26, 2025
13
12
3
Sydney, Australia
blog.europlus.zone

MINI QEMU guide for Windows 10/11 (etc, 64bit) - host a System 7.1 Quadra 800 equivalent inside the QEMU emulator, so you can join the fun going on in #globaltalk via appletalk​

(this is the new and improved guide from February 2025)​

[...]

Next up, we are going to download an image that has GlobalTalk preinstalled in a Quadra 800 setup. Go ahead and download the file you see at this link: https://www.icloud.com/iclouddrive/0e1bjIckqvSFbhMYCFBKuQFww#GlobalTalk-Setup-v1.0.3


Now, several steps back we made a note of your Default Gateway and Subnet Mask, we are going to need that now. Assuming that your network starts with 192, it is a “class C” network. Change the dropdown to “C”. Otherwise, you will need to manually edit the Net, Subnet, and Node fields to match your Subnet Mask.

View attachment 20390

Next, put in your Gateway Address, and for Domain Name server, put in a domain of “domain” (text doesn’t matter) and 8.8.8.8 for a Google DNS server. Then click the “Default” radio button for the Domain Name Server you entered. Click OK.

View attachment 20389
[Mu0n my own gateway address is 192.168.0.1]

Please use the **NEW** link to my resources, which will always have the latest GlobalTalk Setup Files packages: WOzFest HQ GlobalTalk Files

Also, just put a fullstops/period/dot in the Domain field for your default DNS server – this ensures MacTCP uses that DNS server for all searches. The “Domain” field is not the hostname of the DNS server, it is the Search Domain that DNS server handles DNS for.

Short summary, a search domain allows you to enter a one-word hostname and the search domain gets appended to it for a search on that DNS server.

So, for example, if tinkerdifferent.com had subdomains mail.tinkerdifferent.com, forums.tinkerdifferent.com, appleshare.tinkerdifferent.com, and a DNS server at 192.168.0.1 which handles requests for tinkerdifferent.com domains and subdomains, you could set the first Domain as “tinkerdifferent.com." (note the trailing dot! it’s important!) and the IP address as 192.168.0.1, then enter a second DNS server for all other requests with the “dot only” domain (i.e. a search domain of the whole internet) and IP address of “8.8.8.8”, and then when connecting to one of those tinkerdifferent.com subdomains in a client app, you could just specify a hostname of “mail”, “forums”, or “appleshare” and the DNS server at 192.168.0.1 will return the appropriate IP addresses for those “tinkerdifferent.com” hosts.

It was meant as a time saver when many client devices would be on the same network as the servers they were connecting, and entering server addresses was a new thing (or done often enough to want to save the time, for example, at the command line).

It’s still possible to set search domains up in modern OSes, but it’s rarely relevant in day-to-day Internet use.

I return you to your regular programming...

europlus
 

Mac84

Administrator
Staff member
Founder
Sep 4, 2021
237
286
63
New Jersey, USA
www.mac84.net
Hello everyone,

I'd like to share my new A-Z GlobalTalk guide, this has been in the works since last year and is finally ready. You can check it out here:
The Ultimate GlobalTalk Network Guide

It is designed for vintage Macintosh users of all backgrounds, those just getting started and those Mac heads who may want a refresher. It covers topics ranging from understanding LocalTalk and AppleTalk, preparing your network, handling network printers and of course a full step-by-step section (with images) of how to configure the Apple Internet Router for GlobalTalk.

I've also created a QEMU install guide for Mac OS folks (tested with my Apple Silicon Mac, but it may work for Intel Macs too).

I hope these resources become a handy tool in getting newcomers online to our AppleTalk fun zone! 🍎
 
Last edited:

Mu0n

Active Tinkerer
Oct 29, 2021
626
582
93
Quebec
www.youtube.com
Please use the **NEW** link to my resources, which will always have the latest GlobalTalk Setup Files packages: WOzFest HQ GlobalTalk Files

Also, just put a fullstops/period/dot in the Domain field for your default DNS server – this ensures MacTCP uses that DNS server for all searches. The “Domain” field is not the hostname of the DNS server, it is the Search Domain that DNS server handles DNS for.

Thanks for the feedback! I added the new link (kept the old one, made it clear with version numbers), I modified the screenshots for the DNS server inside the MacTCP stepts.
 

RetroTechChris

New Tinkerer
Oct 31, 2021
20
13
3
I decided to have a little fun, and wondered if I could get a Windows '95 system on GlobalTalk. Since I already had one system on the network with Apple Internet Router running, it was actually pretty easy!

From my networked Windows '95 computer, with TCP/IP installed as a protocol, I did the following:
  1. Downloaded PC MacLAN for Windows v 7.22: https://web.archive.org/web/2004021...mar.com/Support/PC_MACLAN/downloads/v722.html
  2. Performed a default install (ahem.. you might need this "number": 884928-F2AF7F1)
  3. Fired up PC MacLAN File Server, and from there shared a folder!
Pretty easy to do. You can also share printers. If anyone has a copy of PowerPrint for Networks, I really want to hear from you!
 
  • Like
  • Love
Reactions: scj312 and Mac84

NJRoadfan

New Tinkerer
Feb 6, 2022
36
12
8
You can "create" a Postscript printer under Windows using Ghostscript and a tool called RedMon. This works similar to how Linux and CUPS along with CUPS Filters converts Postscript jobs into native printer formats. The latest version of PCMacLAN (9.1) supports Windows XP and still works with AppleTalk.
 
  • Like
Reactions: RetroTechChris

RetroTechChris

New Tinkerer
Oct 31, 2021
20
13
3
You can "create" a Postscript printer under Windows using Ghostscript and a tool called RedMon. This works similar to how Linux and CUPS along with CUPS Filters converts Postscript jobs into native printer formats. The latest version of PCMacLAN (9.1) supports Windows XP and still works with AppleTalk.
Ooh, that looks to be just what I need. Thank you!!
 

NJRoadfan

New Tinkerer
Feb 6, 2022
36
12
8
PCMacLan's print spooler has rudimentary support for passing Postscript jobs to Ghostscipt automatically. Of course the manual doesn't document it at all.
 

RetroTechChris

New Tinkerer
Oct 31, 2021
20
13
3
You can "create" a Postscript printer under Windows using Ghostscript and a tool called RedMon. This works similar to how Linux and CUPS along with CUPS Filters converts Postscript jobs into native printer formats. The latest version of PCMacLAN (9.1) supports Windows XP and still works with AppleTalk.
This worked brillantly!

Here was more or less my procedure:
  • Downloaded GhostScript 7.04 (tried a newer version but it had issues): https://courses.cs.washington.edu/courses/cse413/02au/dist/gs704w32.exe
  • Downloaded and installed RedMon 1.07: http://www.ghostgum.com.au/software/redmon.htm
  • Installed GhostScript 7.04 and RedMon 1.07 on my Windows '95 system running PC MacLAN 7.22
  • Created a new printer (Apple LaserWriter II NT and just set it to LPT1)
  • Right click on the new printer, then properties, then Details
  • Add Port | Other | Redirected Port
  • Port name of RPT1: is fine
  • Change the printer to Print to the RPT1: port
  • Spool Settings | Disable bi-directional support for this printer
  • Port settings
    • Redirect this port to the program:
      Code:
      C:\gs\gs7.04\bin\gswin32c.exe
    • Arguments for this program are:
      Code:
      @C:\printer.rsp -sOutputFile="%1" -
    • Printer: Selected my "Epson" compatible dot matrix printer
    • Run: Normal
    • Shut down delay: 300 seconds
    • Log File:
      • Use Log File
      • Write standard output to the file: C:\debug.txt
      • Check "Debug"
  • Saved the settings
  • Then needed to create that C:\printer.rsp file referenced above, here were the contents for my "Epson" compatible printer:
    Code:
    [/LIST]
    -Ic:\gs\gs7.04\lib;C:\gs\fonts
    -sDEVICE=epson
    -dNOPAUSE
    -dSAFER
    -sPAPERSIZE=letter
  • After that, I just needed to add an entry to the PC MacLAN Print Server
    • Create New Spooler
    • Name: <Your Printer Name to appear on GlobalTalk>
    • Type: LaserWriter
    • File extension: ps
    • Destination: Windows Printer
    • Printer: <chose my Epson compatible printer>
    • PPD file: aplwcob1.ppd
    • From there, just start the spooler
    • Send a print job, check output of C:\debug.txt for any issues/errors
  • Now, GhostScript supports other printer types (and output devices), which you can see if you launch GhostScript and type "devicenames =="
    Code:
    C:\gs\gs7.04\bin>gswin32c
    AFPL Ghostscript 7.04 (2002-01-31)
    Copyright (C) 2001 artofcode LLC, Benicia, CA.  All rights reserved.
    This software comes with NO WARRANTY: see the file PUBLIC for details.
    GS>devicenames ==
    [/eps9mid /tiffg4 /necp6 /pcx24b /ljet3d /stcolor /png256 /ljetplus /bmp256 /ppmraw /mswindll /pgnm /jetp3852 /tek4696 /pswrite /djet500c /bitrgb /epsonc /tifflzw /bjc600 /pcxcmyk /ljet4 /bj10e /png16m /ljet2p /bmp16m /nullpage /mswinprn /pgnmraw /r4081 /pcxmono /epswrite /declj250 /bitcmyk /ibmpro /tiffpack /bjc800 /pbm /ljet4d /bj200 /jpeg /cdeskjet /tiff12nc /mswinpr2 /tiffcrle /lbp8 /pcxgray /pxlmono /lj250 /pngmono /deskjet /bmpmono /pnm /pbmraw /pj /t4693d2 /jpeggray /cdjcolor /tiff24nc /epson /tiffg3 /uniprint /pcx16 /pxlcolor /ijs /pnggray /djet500 /bmpgray /pnmraw /pgm /pjxl /t4693d4 /pdfwrite /cdjmono /psmono /eps9high /tiffg32d /m8510 /pcx256 /ljet3 /st800 /png16 /laserjet /bmp16 /ppm /display /pgmraw /pjxl300 /t4693d8 /bbox /cdj550 /bit]
    GS>

    So yea if you have a printer that matches one of the above, you might be in luck!
 

NJRoadfan

New Tinkerer
Feb 6, 2022
36
12
8
Ghostscript has a GDI output option on Windows, so it can print to literally any Windows printer.