AppleII & III FujiNet Quickstart Guide - FujiNetWIFI/fujinet-firmware GitHub Wiki

Table of Contents

Current Status of the Apple II FujiNet

The FujiApple is in its fourth revision of hardware, Rev1 being the most recent and the first production ready device. Rev0 and Rev00 do not support CP/M without a hardware modification to the board but all other functions are supported. A SmartPort enabled Apple II is required. FujiNet emulates the following: SmartPort drives (HDV, PO, 2MG), Disk II (WOZ & DSK), CP/M (with current FujiNet hardware or modified prototypes), Clock, Modem, Printer (with custom Apple II ROM).

Getting to Know Your FujiNet

  • The FujiNet will obtain power from the SmartPort cable and power itself when the Apple is turned on. There is no power switch for your FujiNet.
  • FujiNet has a push/push MicroSD socket. An SD card is not required for use.
  • There are 2 status LEDs; white is WiFi connection, amber/yellow is bus activity status (SmartPort/DiskII).
  • There are 2 buttons; Button A (Function To Be Determined) and Reset
  • There is one IDC20 port for SmartPort/Disk II connections

Supported Apple II/III Systems

Natively

  • Apple IIGS
  • Apple IIc+
  • Apple IIc

With SmartPort Card

  • Apple II Plus
  • Apple IIe
  • Apple IIe Enhanced
  • Most clones of the above machines
  • Apple /// & ///+

SmartPort Cards

Extensively Tested and working

  • KBOOHK softSP Card v6 (or newer) and 5.25" Disk Controller Card
  • Grappler+ w/ DIY softSP (E)EPROM v6 (or newer) and 5.25" Disk Controller Card
  • SuperSerial w/ DIY softSP (E)EPROM v5 and 5.25" Disk Controller Card

Minimally tested and Issues

  • Apple Liron: SmartPort mode only, no Disk II mode
  • Yellowstone (currently not working for Apple ///)
    • Must be used with IDC20 cable only, no DB19 Adapter

5.25" Disk Controller Cards

  • Original Disk II Interface Card with two IDC20 headers
  • Apple 5.25 Drive Controller with DB19 connector

Hooking Up FujiNet

For systems with native SmartPort or a DB19 Disk Drive card you will need a DB19 to IDC20 adapter that connects to the FujiNet.

For systems with an ICD20 header (two rows of ten pins), connect the FujiNet with an IDC20 cable. If using the Disk II card, be sure the cable is plugged in correctly to the Disk II or you could damage the FujiNet. FujiNet Rev1 can work as Drive 2 with the custom FujiNet DB19 adapter only. Older Rev0(00) prototypes and Rev1 without custom DB19 only support Disk II Drive 1.

The custom FujiNet DB19 adapter should NOT be used with other devices without confirming the pinout conforms to the other device pinout.

You can get adapters from the locations below:

FujiNet is powered directly from the Apple II bus and no external power is required. You can, however, optionally power the FujiNet from the USB port onboard. The USB port is also used to upgrade firmware and provides debug output messages to a serial monitor on a computer.

Apple II System Specifics

Apple II+ / IIe

The first time you power on the Apple II FujiNet will have it's CONFIG disk mounted. Press CTRL-RESET to get a prompt, then type PR#X (X=whichever slot your DIY SoftSP ROM card is in, ex: PR#5), then press RETURN to load CONFIG. See Navigating Config below.

Apple IIc

Please help fill in this information

Apple IIc+

Please help fill in this information

Apple IIGS

  • On Apple IIGS you can set boot device as Port 5 (smartport) by entering into the Control Panel at boot (Ctrl-OA-ESC). Choose Disk and set startup disk to slot 5. Now your Apple IIGS won't miss the FujiNet and ask you to attach a drive.

Apple IIGS Keyboard tricks:

Keys                               function
-----------------------------------------------------------------
Ctrl-OA-Reset                      Reboot
Ctrl-Shift-OA-Reset                Reboot and re-load BRAM (ROM 03)
Ctrl-OA-OPT-Reset                  System test (OA-OPT to repeat)
Option while power-on              Menu to Reset standards
Ctrl-OPT-Reset                     Reboot and give menu
Ctrl-OA-ESC                        Go to control panel
Ctrl-OA-Shift-ESC                  More direct to control panel
Shift 5 times                      Enable sticky keys (ROM 03 or Sys 6)
Shift-OA-Clear                     Enable keyboard mouse (ROM 03 or Sys 6)
Ctrl-OA-Del                        Clear keybard type-ahead buffer
Hold OA, then Ctrl-Del             Auto fire Button 0
Shift-Period on keypad             Comma
Ctrl-OA-2 in GS/OS desktip app     Select "About.."
Control-6, then <key> in BASIC     Set cursor to <key>
Ctrl-OA-OPT-N  at sliding Apple    Credits
          (i.e "Check Startup" screen)

Apple /// & ///+

Two options available to connect the FujiNet:

  • Liron card - allows Smartport drives only. This needs DB19 pin to 20 pin adapter to connect the FujiNet to the Liron card.
  • SoftSP card or DIY SoftSP on Grappler+. FujiNet is connected to either the external or internal drive port with a 26pin to 20 adapter cable.

The Driver and some prebuilt 16mb SOS images are available here: Apple /// Driver

Navigating CONFIG

FujiApple-CONFIG-Main-Menu-scaled The config screen for Apple II

The first time you boot FujiNet CONFIG it will prompt you to connect to WiFi. You can select your access point and enter it's passphrase. This information is saved internally and if an SD card is present will be saved there also to fnconfig.ini

PLEASE NOTE: FujiNet is powered by the Espressif ESP32 chipset, which works on 2.4GHz WiFi networks ONLY. If you are using a "mixed" 2.4GHz/5GHz WiFi network (using both radio bands with the same SSID), you MAY have problems connecting your FujiNet device with other devices on the network.

CONFIG was designed to be intuitive and reminiscent of Apple2 programs like ProDos. On the main CONFIG screen you will see host slots on top and disk slots on bottom. You can jump between the host slots and disk slots with [TAB]. Selecting a host slot ([RETURN]) will begin the process of selecting and mounting a disk image from the host to an emulated disk drive.

Hosts can be an IP address or hostname of a TNFS server (eg, apps.irata.online, fujinet.diller.org, tnfs.fujinet.online). Any host can also be named SD which points to the onboard SD card socket. With a host entry selected, press [E] to edit it.

To boot from a SmartPort disk, select the desired host and subsequently a disk image file. It will prompt you to select a disk drive. The first four drives are SmartPort devices and the last two are Disk II Drive 1 and Drive 2. After selecting a drive you can choose to mount it Read Only (press R or RETURN) or Read/Write (W). NOTE1: most if not all public facing TNFS servers do not allow Write access so you should mount them Read Only. NOTE2: Disk II emulation in Fujinet is Read Only so mount those disks as such. When returned to the main CONFIG screen, press ESC to reset the Apple II. For those systems that need it, press CTRL-RESET and PR#X (X=whichever slot your DIY SoftSP ROM card is in).

Web User Interface

Your #FujiNet makes available a simple web-based configuration interface when you visit your device's IP address while it's powered on.

To find its IP address, use the [C] "Show Config" option, available in the main screen of the CONFIG program. You can also find the #FujiNet in your router's list of connected devices, by its hostname (default: "FujiNet").

For example, if your #FujiNet's IP address on your local network is "192.168.0.123", you would visit http://192.168.0.123/ in a browser connected to that same network.

Note: not all components of the web ui work with Apple II at this point.

Updating Firmware

You can download the FujiNet-Flasher (for Windows, macOS, or Linux), from https://fujinet.online/download/. For more information, see FujiNet-Flasher

Finding and Loading Software

There are some Apple2 disk images available on various tnfs servers:

  • tnfs.fujinet.online
  • fujinet.diller.org
  • apps.irata.online

The Host names can be entered in lower-case on the Apple II, however they will appear in UPPER CASE when the CONFIG app is re-loaded. This is normal.

Apple Disk Types, Filesystems and Slots

(#Apple-Disk-Types-Filesystems-and-Slots)

  • The below content from Discord has been editorialized to better fit the wiki.
  • A discussion between Oliver and Wiese about properly mounting and using various Apple2 disk images on FujiNet

Oliver Schmidt: Currently, The FN code base only thinks in terms of sector order. And then we try to decide what can be mounted where on the sector order. But that is totally wrong. You can mount both sector orders in both Disk II and SmartPort. The relevant point is the file system.

You [wiese] do a file system check in order to perform a sector order check. So far so good. But when I look at other targets then there are in example tapes that need to go into the virtual tape deck and disks that need to go into the virtual disk drive. So the purpose of the media type is to determine where it can be mounted.

And this goes currently conceptually wrong on the Apple II. For the question where a disk image can be mounted (Disk II or SmartPort) it's not the sector order that is relevant. The sector order can always be fixed on the fly. For the question where a disk image can be mounted its the file system that is relevant. So the whole DSK DO PO thingy is wrong.

wiese: I was trying to make the minimal change for your bug report, but there were existing issues that I did not address. What would you suggest be done here?

Oliver Schmidt: The issue is that the current FN code is based on a misconception of Apple II disk images.

Right now there is:

  • MEDIATYPE_DO
  • MEDIATYPE_DSK
  • MEDIATYPE_PO
  • MEDIATYPE_WOZ

I think it should rather be:

  • MEDIATYPE_WOZ
  • MEDIATYPE_DO
  • MEDIATYPE_DO_PF
  • MEDIATYPE_PO
  • MEDIATYPE_PO_PF
  • MEDIATYPE_HDV

Description:

  • MEDIATYPE_WOZ: Obvious
  • MEDIATYPE_DO: .DSK or .DO 140kB file with (presumed) DOS 3.3 sector order and no ProDOS file system
  • MEDIATYPE_DO_PF: .DSK or .DO 140kB file with (presumed) DOS 3.3 sector order and ProDOS file system
  • MEDIATYPE_PO: .DSK or .PO 140kB file with (presumed) ProDOS sector order and no ProDOS file system
  • MEDIATYPE_PO_PF: .DSK or .PO 140kB file with (presumed) ProDOS sector order and ProDOS file system
  • MEDIATYPE_HDV: .PO or .HDV >140kB file with ProDOS sector order and ProDOS file system

Then you'd have these rules:

  • MEDIATYPE_WOZ: Disk II
  • MEDIATYPE_DO: Disk II
  • MEDIATYPE_DO_PF: Disk II or SmartPort
  • MEDIATYPE_PO: Disk II
  • MEDIATYPE_PO_PF: Disk II or SmartPort
  • MEDIATYPE_HDV: SmartPort

Apple 2 Slots and FujiNet disk drive slots (#slots)

Author: Oliver Schmidt, from Discord conversation

Some more Apple II background: The original Apple II has 8 slots. Slot 0 is "somehow" limited and slot 7 is "somehow" extended. You already see the "come from two sides" approach here. Slot 0 becomes quickly used for a certain thing, so there are slots 1-7 left. The first cards are parallel char I/O for printers and then serial char I/O for modems. The cards go naturally into slot 1 and 2.

When the Disk II is developed there's again the idea to come from two sides. So when char I/O comes from the low slots, block I/O might come from the high slows. But slot 7 is still special so Disk II goes naturally in slot 6. Then comes the autostart ROM that can automatically find the Disk II and boot from it. naturally that "find the Disk II" starts from slot 7 and goes downwards.

What would be if there were every something one would want to rather boot from than the Disk II? Easy: Put that in slot 6 and move the Disk II to slot 5. But there wasn't something like this coming quickly enough so there was software created that relied on Disk II being in slot 6. So it became a de-facto standard.

Then came SmartPort. The SmartPort card is always in a different slot than the Disk II card. You can't combine both. It's one of the most questionable decisions to put the SmartPort "card" in the //c into slot 5 instead of slot 7. Why? The SmartPort can quickly determine if there's a drive connected at all that can be booted from. And if there isn't it can have the autostart ROM try the next lower slot. On the other hand, the Disk II needs a very long time to determine that there's no disk in the drive - and usually isn't able to have the autostart ROM try the next lower slot. Almost all of the time, the "extensions" of slot 7 aren't relevant to the user. So today, it's usual to put the SmartPort card into slot 7. This allows to quickly autoboot for the daily business while still allowing to specifically boot i.e. via PR#6 any software that relies on Disk II in slot 6.

So what does that mean to FN?

It doesn't make sense to have the term "slot" presented to the user at any time: The FN internal usage of "slot" confuses the user. The Apple II usage of "slot" isn't possible as FN can't know nor presume any slot location of Disk II card and SmartPort card in the Apple II.

The only terminology that makes sense to the Apple II user is:

  • Disk II
  • Drive 1
  • Drive 2
  • SmartPort
  • Drive 1
  • Drive 2
  • Drive 3
  • Drive 4

Some background on the number of SmartPort drives

Originally there was the Disk II interface. It has a ROM but that is only for booting. All software accesses the Disk II on hardware level. Moving from DOS3.3 to ProDOS there was the ProDOS block driver interface introduced. That's in contrast to the Disk II interface a (very simple) firmware interface so there are many totally different implementations possible and were actually done. I.e. the Slinky RAM card has such a ProDOS block driver interface, so ProDOS can use it as RAM disk without any driver software at all. Later, the SmartPort was introduced. The SmartPort firmware interface was designed as an extension to the PrODOS block driver firmware interface. Every SmartPort firmware is expected to also support the ProDOS block driver interface. Where are the benefits of the SmartPort interface over the ProDOS block driver interface?

  1. 3 byte block numbers vs. 2 byte block numbers (8GB vs 32MB)
  2. "many" drives vs. 2 drives

However, that doesn't mean that ProDOS 8 is capable of leveraging all this. With ProDOS 8, the size limit is still 32MB and ProDOS 8 has a strict limit of 2 drives per slot. So in oder to leverage the additional drives connected to a SmartPort interface, it needs to remap additional drives to phantom slots. Without going into details, this process is limited to one phantom slot, so as a result, ProDOS 8 support 4 SmartPort drives. I personally know only little about GS/OS, but as far as I know GS/OS doesn't have that limit. So for GS/OS it might make sense to support more SmartPort drives.

⚠️ **GitHub.com Fallback** ⚠️