FujiNet Talking Points for YouTubers, Podcasters, etc. - FujiNetWIFI/fujinet-firmware GitHub Wiki

Atari FujiNet

  • "D:" Virtual disk drive, can read/write disk images on both local SD card and network storage.
  • "P:" Virtual printer, can print to a bunch of emulated printers, rasterizes to PDF so you can print on a modern printer.
  • "R:" Virtual MODEM, works with existing Atari comms programs.
  • "N:" A new device, adding a Network Adapter, which makes it very easy to access the modern Internet.
  • "C:" Cassette emulation.
  • SAM speech synthesizer by writing to device P4:
  • High Score Enabled games on "D:"
  • Web Configuration Interface
  • APETIME compatible real-time-clock that synchronizes to NTP.
  • Built-in CP/M
  • MidiMaze mode
  • FujiNet Game Lobby

D:

  • Disk images can be selected from any number of hosts in host slots
  • Once selected a disk can be assigned a drive slot (1-8)
  • Once assigned a drive slot, you can select R/O or R/W. R/W requires appopriate permissions, and while an image is mounted read/write, nobody else can mount it.
  • Supports ATR images up to 65535 sectors in length (128, 256, and 512 byte sectors)
  • Supports ATX, which preserves the copy protection of a disk.
  • Supports XEX, individual programs can be loaded directly.
  • Supports High Speed SIO (up to 127kbps)
  • Can Create new disk images using the 'N'ew command.
  • Can copy a disk image from one host slot to another using the 'C'opy command
  • High Score Enabled mode, where disk sectors containing high score tables can be marked for read-write, and FujiNet will automatically re-open the disk read-write to update scores. Explained Below.

P:

  • Printers supported on Atari:
  • file printer (get raw printed output)
  • Atari 820 (40 column roll printer)
  • Atari 822 (40 column thermal printer with graphics)
  • Atari 825 (80 column Centronics 737 printer with all sorts of commands)
  • Atari 1020 (a plotter licensed from Alps, four pens)
  • Atari 1025 (80 column dot matrix printer licensed from Oki, the Microline 80)
  • Atari 1027 (80 column letter quality printer)
  • Atari 1029 (80 column dot matrix printer)
  • Atari XMM801 (80 column dot matrix printer from Citizen)
  • Atari XDM121 (80 column daisy wheel printer)
  • Epson MX/FX-80 (works great in Print Shop!)
  • GRANTIC (a special printer that can be used with PRANTIC to dump screens)
  • HTML printer (great for capturing BASIC listings to web pages!)
  • Once something is printed, use the web admin to grab a PDF to print it on your modern printer!

R:

  • Combines an Atari 850 Interface, with a Hayes Compatible WiFi MODEM as "R:"
  • Can be loaded using the standard Atari 850 bootstrap handler (AUTORUN.SYS)
  • Supports baud rates from 300 to 19200.
  • Can open a listening port to accept connections (e.g. running a BBS)
  • The Sniffer can capture modem traffic to a file for later analysis.

N:

  • A totally new device for doing network operations.
  • Uses protocol adapters to simplify the use of complex protocols and make them into something the Atari can understand and use at its leisure.
  • Available protocol adapters: TCP, UDP, TELNET, HTTP/S, FTP, SSH, SMB, TNFS, and more can and will be added.
  • Can be used from any Atari application and language, from BASIC, to AtariWriter.

N: BASIC Example

10 OPEN #1,12,2,"N:TCP://1.2.3.4:6502/"
20 PRINT #1;"HELLO WORLD."
30 CLOSE #1
40 END
  • Protocol adapters can add their own commands to deal with specific needs, such as the HTTP adapter adding commands to specify HTTP headers, the TCP adapter can accept waiting listening connections, and the UDP adapter can quickly change the destination address for a packet.
  • open I/O channels can have special channel modes, such as JSON, to parse incoming JSON, and query it for specific bits of data. (Weather, ISS tracker, etc use this.)
  • For protocols that expose filesystems (HTTP, FTP, SMB, TNFS, etc.), you can deal with resources on a file by file basis, if needed (bypassing disk images).

C:

  • Cassette images in .cas format can be mounted via config and the web admin.
  • They just work.
  • no audio tracks, yet.

Built-in SAM!

Yes, there's a speech synthesizer in there, if you're on an 800XL or better,) just write to P4:

10 OPEN #1,8,0,"P4:"
20 PRINT #1;"HELLO, I AM SAM."
30 CLOSE #1
40 END

(800XL or better system is needed due to the OS on the 400/800 only supporting P1:)

High Score Enabled Games

  • Allows for disk images to be labeled using unused bytes in the ATR header to specify a range of sectors that are allowed to be read/write (intended for the sectors containing the high score table)
  • If a disk that is detected to be high score enabled is written to, the FujiNet checks to see if it is within the allowed range, and then quickly re-mounts the image read/write to write the sector, then re-mounts read-only again. This prevents the file-locking problems that could happen if a user mounted the image read/write.
  • I made a series of games High Score Enabled and placed them on atari-apps.irata.online/Atari_8-bit/Games/High Score Enabled/
  • I then made a series of high score scrapers to present those scores on the web: http://scores.irata.online/. These are updated in real time, as the disk image changes.

Web Configuration Interface

  • Runs on the standard web port. e.g. http://fujinet/
  • Provides a way to mount disk images, even when config isn't running
  • Provides a way to set configuration items, e.g. hostname, high speed index, selecting the printer, and more.
  • Provides the way to pick up a printed PDF.
  • Sets up MidiMaze mode
  • and more

APETIME compatible real-time-clock

  • Allows for DOSes that have date-time stamps to get their date/time from NTP.
  • Uses existing APETIME.COM to set the Atari's current date/time to NTP.

CP/M

  • Provides an implementation of RunCPM running on the ESP32, with the Atari as a terminal.
  • Works with cartridges like DT-80, and existing Atari comms programs (type ATCPM when in terminal mode)
  • CP/M files are stored individually in folders on the SD card, making file transfer very easy.

MidiMaze mode

  • A special mode that puts the SIO bus into streaming mode, intended for use by MidiMaze (as it simulates a MidiMate), however instead of putting the bytes over a MIDI cable, they are sent over UDP to the other players.
  • Could be used for other games requiring lower latencies than standard SIO.

FujiNet Game Lobby

  • A new development that allows users to find other users to play games.
  • Any FujiNet game can use it. Open API, open source code, open everything.
  • The first demonstrable game is 5 Card Stud

Other platforms

Other platforms have subsets of the features in the Atari version, along with all of the protocol adapters present in the network device.

e.g.

  • Apple2 (Disk, Network, CP/M, Modem, Printer, clock), modem and printer currently require ROM patches.
  • C64 (Disk, Network, Printer, CP/M)
  • Coleco Adam (Disk, Network, Printer, Clock, Modem)
  • Lynx (Network)

All of these build from the same codebase, and thus when new things are added, they benefit everyone.

e.g. Multi-player game-play is already possible between platforms, we demonstrated it with Reversi, and the Game Lobby will take this premise even further.

And perhaps the most fundamental change that will be happening: A generic bus interface, being developed by Owen Reynolds for the ZX Spectrum target. This will allow anything with a bus connector (or cartridge slot) to be able to take advantage of FujiNet, e.g. Atari 2600/5200/7800, NES, Sega Genesis, IBM ISA (the 5150 could really use this), and many others.

Also being developed (by Jeff Piepmeier), a DCD version for the earliest Macintosh systems that connects to the floppy port (Macintosh 128K/512K/Plus/SE), again, which could really benefit from the protocol offloading.

When we mean that FujiNet will be everywhere. We mean it. Everywhere. We have the experience and the want to do it.