[Oberon] [EXT] File transfer; was, "all in one git tree"
skulski at pas.rochester.edu
Fri Jan 1 01:24:42 CET 2021
>TFTP client and server were also implemented in A2 by "be".
>Modules TFTP.Mod (373 lines) and Oberon.TFTPTool.Mod (51 lines) are visible.
You may also want to look at the V4 modules, which are different from what you wrote. The following modules are mentioned in the FTP.Tool:
* Edit.Open FTPB.Mod
* Edit.Open FTP.Mod
* Edit.Open WebFTP.Mod
* Edit.Open SFTP.Mod
I am not seeing TFTP.Mod at all. So this package is different from the A2 package.
We may dispute which is better. I do not think it would help. I rather think that the V4 package is sufficiently lean to give it a look for possible port to the FPGA Oberon, provided that the compiler becomes highly convergent with the V4 OP2 compiler. A convergent compiler would help with the porting effort.
The FTP modules import TCP.Mod, which maps the Oberon procedures to Windows API. There are 23 calls to Kernel.GetAdr in TCP.Init, which map the Oberon TCP to the underlying Windows system calls like ""gethostbyname", "socket", and so on. All this seems very well organized and logical to me.
If the Windows call were mapped to the Wiznet TCP/IP, then the path to implement the Internet interface under FPGA Oberon would be wide open both in hardware (use one of Wiznet chips) and software (use the V4 package). I do not want to imply it is any better than the System-3, A2, or anything else. But I want to say it exists and it can be used today under V4 for both Windows and Linux. Using it under V4 will allow stress testing and perhaps fixing issues which may have appeared since 1996. Fixing will be easier under regular V4 on top of Windows, then under the FPGA board where there are many more unknowns. A fully tested package can be then planted into FPGA Oberon.
BTW, in the TCP.Init you will see the call Kernel.InstallTermHandler(Terminate). It means that finalization was implemented in V4. It seems to be different from the recent Andreas' implementation. So there will be some (minor?) incompatibilities which needs fixing. Hopefully there will be very few of these.
Ideally the Extended Oberon and Linz V4 would become source compatible, opening the door to using all the V4 packages under FPGA Oberon. This would be fantastic.
In any case, Wiznet is providing the TCP/IP implementation and it can be mapped to the higher level Internet suite, just like V4 did under Windows. From the V4 perspective is just a Wiznet chip providing the TCP services. The same approach could work on the real FPGA board.
More information about the Oberon