• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

Tool to sync a folder between retro and modern computer, using serial/WIFI modem connection?

Frobozz

Well-known member
I'd like to have a watched directory on my modern Mac, and on my Mac Plus, which syncs itself with very little effort from me. (Given non-multitasking nature of the Plus/OS 6, I think user will have to take the action of starting the sync tool and letting it run; not sure how well it will perform when running in the background on System 6). I have my Plus connected to my Big Sur Mac with a Keyspan adapter, using Serial (the app) in place of working serial drivers. I do some Modem transfers that way. I also have a SCSI2SD, which is pretty awesome, but not actually all that easy to transfer files with. Certainly the level of effort is too much for me to want to nightly swap stuff around. I just got a RS232 WIFI modem (from Jim Drew's place), and since I had a 25 pin to Mac 8 pin serial cable, I tried it out on the Plus, and it worked like a charm. So now I'm thinking... WIFI synced files!

Does anyone know if such a tool exists? Running purely off a serial connection, no TCP/IP etc.?

I googled, but didn't find much in the retro sphere. 

If nothing exists, it might be a fun project. Would anyone be interested? I'm not sure where to start with it exactly, as that last time I wrote something that handled modem commands was a BBS I wrote in BASIC back in 19-who-knows-when. I'm thinking it needs a modern Mac (or unix or PC, but I wouldn't want to handle those parts) app, a retro Mac app, and an Amiga app. Ok, "needs" is a strong word, but it would be cool. 

I'm hoping something already exists, but here's a first pass at a rough design concept. Thoughts? Suggestions? 

----

Overview

Goal

  • Allow a retro computer connected to a modern computer, or another retro computer, to keep 1 folder synced between them, automatically, over a serial null modem connection or RS232/WIFI modem connection.



Why would this be helpful?

  • Even with SCSI2SD, Gotek, Emu Floppy, and all the great media-based ways of exchanging files between a retro and modern computer, it’s easier to not schlep files/disks/cards back and forth
  • Not everyone has a Gotek/etc in all of the their retro computers
  • Wireless (if you use WIFI modem) means one less cable/external device to worry about



General Concept

  1. Start up sync program on ‘host’ computer
  2. Host program scans its watch directory, and notes names and byte sizes of each file
  3. Start up sync program on ‘client’ computer
  4. Client program scans its local copy of the watch directory, and notes names and byte sizes of each file
  5. Client attempts to connect to host. If no connection, pause or go into retry loop, per settings.
  6. Confirm connection
  7. Client program informs host it is going to send its list of files
  8. Host confirms it is ready
  9. Client sends list of files and sizes
  10. Host receives list of files, compares to its own, and determines if it is missing any from the client, or if the client is missing any on its list
  11. If host is missing 1 or more files, it puts those into a request queue.
  12. If client is missing 1 or more files, host puts those into a send queue.


    BIAS: assumption is that a file on host but not on client hasn’t been deleted from the client, but was instead missing all along, so action is to push that file to the client from host. If you want to delete a file from the watch directory on the client, you’ll want to either 1) delete it from the host instead, or 2) delete it IN the client program, not in your normal file manager (Finder, Workbench, etc.)

[*]Each side runs the following loop, on some pre-determined timer:


  1. Anything in the in queue? —> handle it
  2. Anything in the out queue? —> handle it
  3. Scan directory
  4. Any new or changed files compared to previous version of directory scan? —> create send request, put into out queue
  5. Any missing files compared to previous version of directory scan? —> create delete request, put into out queue
  6. (If client has an interface that allows for file management and deletion:) Did user choose to delete a file from the watched folder? —> create delete request, put into out queue




 

Realitystorm

Well-known member
Apple remote access works with a null modem cable between your mac and a modern system running basilisk II.   It lets you setup shared folders to exchange files between the systems.

 

Frobozz

Well-known member
Ah... AppleTalk Remote Access. I vaguely remember that. 

manual for 3.0:

https://vintageapple.org/macbooks/pdf/AppleTalk_Remote_Access_3.0_Users_Manual_199x.pdf

Links to what I think are older versions:

https://macgui.com/downloads/?cat_id=234

-------



[SIZE=11pt]Apple Remote Access 3.0 requires the following hardware and software: [/SIZE][SIZE=11pt]m [/SIZE][SIZE=11pt]a computer with a 68030, 68040, or PowerPC[/SIZE][SIZE=6pt]TM [/SIZE][SIZE=11pt]microprocessor[/SIZE]
[SIZE=11pt]m [/SIZE][SIZE=11pt]Mac OS version 7.1 through 7.1.2[/SIZE]

[SIZE=11pt]or[/SIZE]

[SIZE=11pt]Mac OS version 7.5.3 or later (not earlier versions of system 7.5)[/SIZE]

[SIZE=11pt]m [/SIZE][SIZE=11pt]at least 8 megabytes (MB) of RAM (16 MB are recommended) if your computer is using Mac OS 7.6 or later[/SIZE]

[SIZE=11pt]m [/SIZE][SIZE=11pt]Open Transport version 1.1.1 or later[/SIZE]

[SIZE=11pt]------[/SIZE]

I'll try and find out what the older versions require. This looks like a possible solution if I can get it working on 6.0.x. (Which I'm not super optimistic about, but we'll see). 


 

techknight

Well-known member
Well I wasnt clear on what your expectations are. 

Its just what I use to synchronize folders on my host machines. For example, if I have an Appleshare volume between a Mac and a Pi or something, I can run FreeFileSync/RealTime sync to sync that share to some other volume, like a mirror. 

Otherwise I dont understand what you are trying to achieve. 

 

Frobozz

Well-known member
Let me try to describe it a bit better:

  • User wants to have a common folder synced between TWO computers (this wouldn't work well for more than 2). Any combination of 2 below:


    Modern Mac (or PC, or Linux)
  • 68K Mac (or probably more accurately: System 6.x ~ 9.0 Mac). I don't know enough about systems < 6, and 512K Macs to say if it would be. possible to get a version running on a 512K Mac)
  • Amiga
  • Atari ST
  • (or any classic computer where someone wants to work on a port, and serial is available)

[*]User does not have SLIP, PPP, TCP/IP, OpenTransport, Ethernet, etc., available. 


  • Or more accurately: the goal is to have this work for computers that don't have internet technologies. Having such technologies wouldn't prevent you from using this on one of those computers, as long as you had free serial port.



Image is a kind of insane setup where someone has 3 retro machines, and has a shared folder for each, and is syncing them to their modern computer. Two connections are via Serial connections, 1 is via WIFI modem (which is essentially just serial). In theory, nothing would stop you syncing Amiga to Mac, Atari to C-64, etc, I just don't know that it's really something anyone would necessarily need to do. 

One model that might work, and maybe provide a better conceptual framework, is that of the portable devices that were available in the 80s and 90s. People would use them in the field, classroom, etc, for data entry, note taking, etc, and then bring them home and sync them up to their (full-size) computer. I found a reference to one such protocol which can apparently be used not just to sync computer to device, but also any computer with the client software to another computer with the same software. I am looking for more info and specs on this, as it might make it a lot easier to do (maybe just need to reverse engineer a modern computer client if very, very lucky). 


 


Serial options


NCP is the networking scheme designed for Psion 3 notebook computers, but Aminet's AmigaNCP works well over a serial link between two Amigas. NCP implementations for other computers include the shell MCLINK.EXE for MSDOS PCs and versions for Apple Mac and Acorn Archimedes, so it's a contender to link any pair of those machines, whether or not you have a Psion.

Amiga NCP is concise and complete, with a print and file server and informative debug monitor. It supports long file names but requires odd punctuation, so you access SYS:S/Startup-Sequence on the remote machine by chanting: REM::\\SYS:\\startup-sequence - ugh!

TwinExpress offers fast serial transfers between Amigas or an Amiga and a PC connected with a null modem cable. It bangs the serial port hardware at both ends, allowing speeds up to 11K per second even on fairly basic machines. TwinExpress supports PC and Amiga wildcards, and translates between ANSI and MSDOS character sets. Its main limitation is that it runs as a shell, rather than a file server, so you have to use its own commands rather than your usual application file requesters.


http://simon.mooli.org.uk/AF/article/GOODWIN/GW03.HTML

Serial_Sync_Concept.png

 

Realitystorm

Well-known member
Ah... AppleTalk Remote Access. I vaguely remember that. 

manual for 3.0:

https://vintageapple.org/macbooks/pdf/AppleTalk_Remote_Access_3.0_Users_Manual_199x.pdf

Links to what I think are older versions:

https://macgui.com/downloads/?cat_id=234

-------



[SIZE=11pt]Apple Remote Access 3.0 requires the following hardware and software: [/SIZE][SIZE=11pt]m [/SIZE][SIZE=11pt]a computer with a 68030, 68040, or PowerPC[/SIZE][SIZE=6pt]TM [/SIZE][SIZE=11pt]microprocessor[/SIZE]
[SIZE=11pt]m [/SIZE][SIZE=11pt]Mac OS version 7.1 through 7.1.2[/SIZE]

[SIZE=11pt]or[/SIZE]

[SIZE=11pt]Mac OS version 7.5.3 or later (not earlier versions of system 7.5)[/SIZE]

[SIZE=11pt]m [/SIZE][SIZE=11pt]at least 8 megabytes (MB) of RAM (16 MB are recommended) if your computer is using Mac OS 7.6 or later[/SIZE]

[SIZE=11pt]m [/SIZE][SIZE=11pt]Open Transport version 1.1.1 or later[/SIZE]

[SIZE=11pt]------[/SIZE]

I'll try and find out what the older versions require. This looks like a possible solution if I can get it working on 6.0.x. (Which I'm not super optimistic about, but we'll see). 
I have version 1, 2 and will soon have 3.  Version 1 needs 2MB and system 7.

 

techknight

Well-known member
Yea I dont know of any solution for that type of topolgy unfortunately. you can do it all day long if you have Appletalk and some type of ethernet networking whether its over SCSI or Serial, or something. 

Appletalk over a wifi modem I dont know if its a thing yet, since in the Mac domain, appletalk over serial is localtalk and its a proprietary framing format and not at a standard baud rate either. I think it was SDLC or HDLC style serial. If someone wrote an SDLC/HDLC localtalk stack that ran on the ESP8266, then yea, you could do it, as it would act as an Ethertalk to Localtalk bridge at that point. 

But these days there are active projects being developed that support SCSI ethernet based networking, which ethertalk back to a Netatalk/Appletalk server would work just fine. the Raspberry Pi project "RaSCSI" Author just added ethernet support that emulates Dayna protocol I think? Correct me if I am wrong @landoGriffin

Anyways. The other problem is resource forks. the Mac OS will need to know the filesystem of the Server somehow, or the server itself do some form of translation or resource forks would be lost. I think Netatalk on linux systems handle all that internally though, But I have not studied on the internals of that software. 

 
Last edited by a moderator:

landoGriffin

Well-known member
But these days there are active projects being developed that support SCSI ethernet based networking, which ethertalk back to a Netatalk/Appletalk server would work just fine. the Raspberry Pi project "RaSCSI" Author just added ethernet support that emulates Dayna protocol I think? Correct me if I am wrong @landoGriffin


Ya, I've been able to emulate the DaynaPort SCSI/Link device using RaSCSI. (Its not quite ready for EVERYBODY to use it. Its not the easiest to set up yet, but it should be ready for prime-time in a couple weeks)

There is a driver for the DaynaPort for the AtariST using MiNT, so you should be able to do IP from your Atari. (Disclaimer: I don't have an AtariST, so I can't test that RaSCSI works with it. But, I'm willing to help debug if necessary) You wouldn't have to use a complicated network protocol. Assuming you're on a private network, you could just use TFTP to share the files back and forth.

You could potentially use one of the serial file transfer protocols as well to do this (XMODEM, Kermit, ZMODEM, etc). I'd imaging most of these systems already support that in some limited form.

 

Frobozz

Well-known member
ha, I don't actually have an ST either, but I like the idea of it being a more general retrotool (set). 

I have an Asante SCSI adapter I've used in the past (looks to be same idea as the DayPort SCSI/Link?), and an old ethernet hub that it could access, but I don't have a good way to connect that to my current Mac setup (router now on other side of the house). What are peopled doing who want/need a wireless solution? Hook the SCSI adapter into a wireless bridge? Does that tend to work? 

Writing a SCSI to ethernet adapter for the Amiga sounds pretty hairy to me. I can imagine network stuff could be pretty complex, but I don't know anything about SCSI or networks really. 

 

Frobozz

Well-known member
Anyways. The other problem is resource forks. the Mac OS will need to know the filesystem of the Server somehow, or the server itself do some form of translation or resource forks would be lost. I think Netatalk on linux systems handle all that internally though, But I have not studied on the internals of that software. 


Yeah, the resource fork is going to be fun. I would also like to build in an option to translate the charset when it made sense. I haven't thought this out in any detail, but maybe something like this: 

  • On 68K Mac side:


    raw folder: contains raw Mac apps, text files, etc. 
  • sync folder: contains processed files.


    If app: hqx applied
  • if .txt: charset, line endings translated (e.g.)



[*]On Modern Mac/pc side:


  • raw folder: contains text files with modern Mac/pc line endings/etc. (obviously, I don't mean Unicode is supported). Any apps would need to stay in .hqx here.
  • sync folder: contains exactly the same app .hqx files; text files have been left as is (if origin was 68K Mac) or have been translated (if modern Mac origin).

[*]Sync decisions (same or new/different) is done against the 'sync' folder, but user uses the files in the raw folder, and never directly modifies the 'raw' folder. 

[*]When files are dropped into the 'raw' folder, they are processed and put into the 'sync' folder. 

[*]When receiving files, files are untranslated from the 'sync' folder and deposited in the local 'raw' folder



Oof. Getting more complicated by the minute. 

 
Top