A work in progress User’s Guide and Programming Reference for ATARI based FujiNets is being written. The effort is led by Thomas Cherryhomes. The goal is to provide both a comprehensive user’s and a programmer’s guide.
The source material is being written in XML using the DocBook 5.1 grammar, which is well suited for writing technical documentation. You can get it here on GitHub: https://github.com/FujiNetWIFI/fujinet-manuals
While the User’s Guide revolves around showing new and experienced ATARI users what they can do with their FujiNet, the Programmers guide gives both a reference of how to control the FujiNet from languages such as Atari BASIC, FastBasic, ACTION!, C, and Assembler, but give a consistent set of examples that can be used as a “Rosetta Stone” for each, namely NETCAT, a terminal emulator, and MASTODON, a program which fetches the latest post from a Mastodon server and displays it.
As with everything in FujiNet land, anyone can help! If you want to participate in making this user’s guide, feel free to contact us, leave us a comment below, or join us on Discord!
This is a video showing the current status (as of 2024-12-26) of the RS-232-C version of FujiNet, and the corresponding PC host software (COM, FUJICOM, and the client programs, ISS, NGET, NPUT, and NC).
The last part of the video talks about the X1 experiment to implement a BIOS interface for FujiNet using software INT 0xF5.
COM implements the low level RS232 routines.
FUJICOM implements the FujiNet command to device layer.
ISS is the International Space Station Tracker
NGET retrieves to a file from any network endpoint.
NPUT puts a file to any network endpoint.
NC is a dumb terminal to any network endpoint.
NC, NGET, and NPUT use the network device, and you can pass any available protocol adapter to it, e.g. TCP, UDP, FTP, HTTP/S, SSH, TELNET, SMB, NFS, and more, with the ability to add more protocol adapters. The FujiNet does all the hard work, and presents a nice clean interface to the target PC.
The above programs use FUJICOM directly, but this is not the intent for any final user program, at all. What is intended is for a BIOS interface to be used, abstracting for any physical interface. This will be important as the ISA version of FujiNet comes into existence. The X1 code is not working, and I need eyes to help fix it.
Eventually, it is intended that the work for X1 will be used to implement a DOS device driver, to directly deal with, not only disk images, provide the virtual printer, but also to provide file level access to MS-DOS directly for any network endpoint.
The RS-232-C version of FujiNet is starting to work. For now, the bring-up platform is MS-DOS, and specifically, my GRiDCASE 1530.
To get things running quickly, I borrowed the same protocol used by the Atari FujiNet (SIO), and adapted its control signals to RS-232-C equivalents. It is running at 9600 baud, and the firmware is working.
Using Turbo C 2.0, I quickly wrote an ISS tracker to test the network device, and I had to write a quick graphics library in the process, I refuse to use BGI. It draws in CGA, and uses the color palette and background to good effect, and looks good on both my color display and my gas plasma LCD.
While this does prove that the firmware is working as expected, the ISS program was written to directly use the serial comms routines that I put together for the RS232 FujiNet. This is not ideal, because there will be an ISA version of FujiNet for PCs, and I want them to use the same programming interface.
The MS-DOS FujiNet BIOS
To this effect, I have drawn up a specification for a BIOS that will insert itself at INT 0xF5 and 0xF6 to communicate with the FujiNet. This will allow for a standard interface to whatever versions of FujiNet end up on MS-DOS machines (including some not-so-IBM compatibles like Sanyo MBC-550, Apricot PC/Xi/Xen/Fx, Mindset, etc.)
You can read the specification here: https://github.com/FujiNetWIFI/fujinet-rs232/blob/main/fujinet-bios.md
COM.C – is the lower level interrupt driven serial port code.
FUJICOM.C – Implements the FujiNet command protocol using COM.C.
FUJITIME.C – Uses FUJICOM to send NTP commands to set MS-DOS date/time.
X1/ – The first experiment for a FujiNet BIOS, it has issues; need help.
ISS/ – Uses FUJICOM to implement the ISS tracker.
X1 is where the first FujiNet BIOS experiment is happening. It takes COM and FUJICOM and attempts to implement a BIOS dispatching interface for a couple of example commands.
TEST.COM is a DEBUG written program that sends a GET ADAPTER CONFIG command to FujiBios and tells it to place its buffer at offset 0120 in the program segment.
READY.COM is another DEBUG program written to test command 0. It’s in flux.
BIOSTEST.C and TEST3.C were C programs intended to test the BIOS call interface and debug what is happening.
When I call the BIOS functions that use FUJICOM/COM, I can transmit just fine, receiving suddenly becomes an issue, bytes don’t show up, and sometimes the FIFO just hangs with no bytes available (when there should be)
Anyone who can help, I could appreciate some eyes on this.
FujiNet had an amazing 2024. I can’t wait to see what happens for 2025.
FujiNet is not a private company. We are a public project. You can help.
We want more platforms: Commodore, BBC Micro, ZX Spectrum, Bally Astrocade, IBM PC, NEC PC-6001, and more.
Can you help with any platform you want to see FujiNet on? Join us in Discord: https://discord.gg/2Ce9guX
We want existing platforms to get ports of 5 Card Stud and Fujitzee. Want to help? Come to Discord and tap @EricCarrGH on the shoulder.
We want more games on FujiNet. Have a game idea you want to help with? Let’s meet in the #fuji-game-system on Discord.
e.g. Artillery, turn based war games, etc.
We want to bring FujiNet to Game systems, starting with the Atari 2600 and Intellivsion. Are you a game developer? Join us on Discord!
(we also want Atari Lynx developers to help get the Lynx version to a usable state!)
We want help designing a bus interface that can be used to bring FujiNet to anything with a card edge. Have RP2040/2350 experience? Come join us on the Discord!
Again: FujiNet is not a private company, we are a public project, whose goal is to bring modern and useful networking to all the Retrocomputing and Retrogaming platforms. But we need your help.
I have a saying, I have limited engineering cycles, but I make time to teach. I freely give any bit of my knowledge to anyone who stumbles into the FujiNet discord, on a variety of software and firmware subjects. Others do it for hardware. Come and learn in the discord.