Apple II & III FujiNet Quickstart Guide - FujiNetWIFI/fujinet-firmware GitHub Wiki
- FujiApple: the Apple II & III FujiNet
- Getting to Know Your FujiNet
- Supported Apple II & III Systems
- Hooking Up FujiNet
- Apple System Specifics
- Navigating CONFIG
- Web User Interface
- Updating Firmware
- Finding and Loading Software
- Apple Disk Types, Filesystems and Slots – Oliver & wiese in Discord
- Apple II Slots and FujiNet disk drive slots – Oliver in Discord
- Apple IIc ROM Versions – Find out what ROM you have in your IIc
- ProDOS – So many versions, this is a list of all of them
The “production ready” version of the FujiApple, Rev1, was released in June 2023. A SmartPort enabled Apple II/III is required for most functions (see below for expansion card combinations providing SmartPort functionality for non-SmartPort-native Apples).
FujiNet emulates the following: SmartPort drives (HDV, PO, 2MG), Disk II (WOZ, PO [140k], DSK), CP/M, clock, modem, and printer. The clock, modem, and printer are presented as SmartPort devices, and therefore require software or ROM support (e.g. printer support is available via a custom Apple IIc ROM on that model).
CP/M support is via a fully emulated RunCPM environment with storage provided by the built-in microSD slot.
Important
Rev0 and Rev00 do not support CP/M without a hardware modification to the board, but all other functions are supported.
- 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 slot. An SD card is not required for use. The SD card must be formatted FAT32. The exFAT format is not supported.
- There are 2 status LEDs: white is WiFi connection, amber/yellow is bus activity status (SmartPort/Disk II).
- There are 2 buttons: Button A (Function To Be Determined) and Reset
- There is one IDC20 port for SmartPort/Disk II connections with the suitable cable/adaptor based on interface/controller
- Apple IIgs
- Apple IIc (SmartPort functionality not available on ROM 255)
- Apple IIc+
- Apple II+
- Apple IIe
- Apple IIe Enhanced/Platinum
- Most clones of the above machines
- Apple III & III+
- KBOOHK softSP Card v6 (or newer) and I/O Controller/5.25 Drive Controller Card
- A2Pico with softSP v6 (or newer)
- Grappler+ w/ DIY softSP (E)EPROM v6 (or newer) and I/O Controller/5.25 Drive Controller Card
- SuperSerial w/ DIY softSP (E)EPROM v5 and I/O Controller/5.25 Drive Controller Card
Warning
While the original Disk II interface card will work with SoftSP cards to provide SmartPort + Disk II Drive 1 functionality (or Drive 2 if Fujinet plugged into second header) the ease with which the IDC20 cable can be offset by one row or column of pins (which will cause damage to hardware) makes this a less than ideal configuration.
If you only have a Disk II card available to use with your FujiNet, it is advisable to check the alignment of the plug on the header at least twice before powering the equipment up. Make sure no pins are visible outside the IDC20 plug.
- Apple Liron: SmartPort mode only, no Disk II mode
-
Yellowstone (currently not working for Apple III)
- Must be used with IDC20 cable only, no DB19 Adapter
- Original Disk II Interface Card with two IDC20 headers (16 sector PROMs only)
- Apple I/O Controller/5.25 Drive Controller with DB19 connector
Card/Computer | SmartPort | Disk II D11 | Disk II D21 |
---|---|---|---|
Disk II Interface Card (IDC20) | Y2 | Y3 | Y3 |
I/O Controller/5.25 Drive Controller (DB19) | Y2 | Y | Y |
LIRON Card (DB19) | Y | N | N |
Yellowstone (IDC20)4,5 | Y | Y | Y |
Apple IIc ROM 255 (DB19) | N | N | Y6 |
Apple IIc ROM 0, 3, 4 (DB19) | Y | N | Y |
Apple IIc+ (DB19) | Y | Y | Y |
Apple IIgs (DB19) | Y | Y | Y |
Apple III/III+ (IDC26/DB25)7 | Y8 | Y3 | Y3 |
- Disk II emulation is currently Read Only (Aug 2024).
- With SoftSP card or equivalents.
- Only one Disk II can be emulated, depending on how FujiNet is connected – Drive 1 when connected to the Apple II Interface Card’s Drive 1 header or Apple III/III+’s internal drive header, or Drive 2 when connected to the Apple II Interface Card’s Drive 2 header or Apple III/III+’s external port. Load disk image into FujiNet’s Disk II Drive 1 slot, which is presented to the interface as the sole emulated Disk II. Apple III/III+ require 26 pin to 20 pin adaptor.
- Must be used with IDC20 cable, not DB19 adaptor. Yellowstone acts in either SmartPort or Disk II mode, not both at the same time.
- Not currently working for Apple III/III+.
- When plugged into Apple IIc ROM 255’s external DB19 floppy port.
- Requires driver. Internal port is IDC26, external port for Apple III is IDC26, and for Apple III+ is DB25.
- With SoftSP card (or equivalent) via 26 pin to 20 pin adaptor cable or LIRON card, supports only the first two SmartPort block devices.
Drive Type | DSK/DO | WOZ | PO | HDV | 2MG |
---|---|---|---|---|---|
SmartPort | Y1 | N | Y | Y | Y |
Disk II | Y | Y2 | Y2 | N | N |
- ProDOS images only.
- 5¼" images only.
For systems with native SmartPort or a DB19 Drive Controller card you will need a DB19 to IDC20 adapter that connects to the FujiNet.
For systems with an IDC20 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 emulate a second drive with the custom FujiNet DB19 adapter only when connected to the I/O Controller/5.25 Drive Controller cards. Older Rev0(00) prototypes and Rev1 without custom DB19 only support Disk II Drive 1.
Caution
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 DB19 to IDC20 adapter or build your own
- BMOW DB-19 Male Adapter and Extension Cable
- A2Heaven Adapter
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. The web-based management and WebDAV access to the SD can continue to be accessed if powered from USB while the host Apple II is powered down.
The first time you power on the Apple II FujiNet will have its CONFIG disk mounted. Press [CTRL-RESET]
to get a prompt, then type PR#X
(X=whichever slot your DIY SoftSP ROM card is in, e.g. PR#5
), then press [RETURN]
to load CONFIG. See Navigating CONFIG below.
Just plug in the FujiNet. Remove any floppies from the internal 5.25 drive. Power on the Apple. FujiNet will boot CONFIG.
Note
It has been observed in testing on an Apple //c with the $FF (255) ROM, the Apple will not boot the FujiNet, resulting in only a failed floppy boot (both trying PR#6 or PR#7). This is a limitation of the Rom 255 Apple IIc as it did not have built-in support for SmartPort.
Just plug in the FujiNet. Remove any floppies from the internal 3.5 drive. Power on the Apple. FujiNet will boot CONFIG.
On Apple IIgs you can set boot device as Port 5 (SmartPort) by entering the Control Panel at boot (press [Ctrl-Open Apple-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.
Keys | Function |
---|---|
Ctrl-Open Apple-Reset |
Reboot |
Ctrl-Shift-Open Apple-Reset |
Reboot and re-load BRAM (ROM 03) |
Ctrl-Open Apple-Option-Reset |
System test (Open Apple-Option to repeat) |
Option while power-on |
Menu to Reset standards |
Ctrl-Option-Reset |
Reboot and give menu |
Ctrl-Open Apple-Esc |
Go to Control Panel |
Ctrl-Open Apple-Shift-Esc |
More direct to Control Panel |
Shift 5 times |
Enable sticky keys (ROM 03 or Sys 6) |
Shift-Open Apple-Clear |
Enable keyboard mouse (ROM 03 or Sys 6) |
Ctrl-Open Apple-Del |
Clear keyboard type-ahead buffer |
Hold Open Apple , then Ctrl-Del
|
Auto fire Button 0 |
Shift-Period on keypad |
Comma |
Ctrl-Open Apple-2 in GS/OS desktop app |
Select “About...” |
Ctrl-6 , then in BASIC
|
Set cursor to |
Ctrl-Open Apple-Option-N at sliding Apple (i.e “Check Startup” screen) |
Credits |
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 III FujiNet Driver
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 its passphrase. This information is saved internally and if an SD card is present will be saved there also to fnconfig.ini
Important
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/network name), you MAY have problems connecting your FujiNet device to the network.
CONFIG was designed to be intuitive and reminiscent of Apple II 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 by pressing [TAB]
. Pressing [RETURN]
while a host slot is highlighted 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 (e.g.
apps.irata.online
,fujinet.diller.org
,tnfs.fujinet.online
,10.0.27.222
) - an SMB or FTP server URL in the form
SMB://server.address
orFTP://server.address
– both require anonymous access, availability of which varies by server software,server.address
can be an IP address or a domain name
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 – host entries can be up to 30 characters long.
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 (press [W]
).
Caution
Most if not all public facing TNFS servers do not allow Write access so you should mount them Read Only.
Note
Disk II emulation in FujiNet is Read Only (as of August 2024) 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, or the slot the physical drive interface card in in to boot from the Disk II emulated drive).
Your FujiNet makes available a simple web-based configuration interface when you visit your device’s IP address while it’s powered on.
For example, if your FujiNet’s IP address on your local network is “192.168.0.222”, you would visit http://192.168.0.222/
in a browser connected to that same network.
To find the FujiNet's IP address, use the “Show Config” option (press [C]
)when in the main screen of the CONFIG program.
You can also find the FujiNet in your router’s list of connected devices, or by its hostname (default: FujiNet
, so you can usually navigate to FujiNet.local).
You can amend the FujiNet hostname if desired.
Note
Not all components of the web UI work with Apple II at this point.
You can download the FujiNet-Flasher (for Windows, macOS, or Linux), from https://fujinet.online/download/. For more information, see FujiNet-Flasher
There are some Apple II 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 reloaded. This is normal.
- 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 Apple II 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 it’s 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
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 “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 ever 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 notes about Yellowstone Disk II and SmartPort modes
In order to have ProDOS detect both SmartPort and Disk II, there need to be two firmwares in two Apple II expansion slots.
The Disk II plus SoftSP are two firmwares in two expansion slots (and the CFFA3000 is two firmwares in two expansion slots.) The Yellowstone is only one firmware in one expansion slot.
If you put the Yellowstone in SmartPort mode, it does all the Disk II handling on its own and makes the Disk II drives look like 140kB SmartPort devices to ProDOS. This may look like the same thing but it isn’t, i.e. ProDOS 2.5 comes with an improved Disk II handling but the Yellowstone doesn't know about it (at least not without a firmware update).
And if you want to switch between ProDOS and DOS3.3 you need to switch Yellowstone between SmartPort mode and Disk II mode.
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 DOS 3.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?
- 3 byte block numbers vs. 2 byte block numbers (8GB vs 32MB)
- “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 order 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 supports 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.
https://www.apple2faq.com/apple2faq/apple-c-rom-versions/
Find out your ROM version by clicking Control-Reset typing right after boot and type print peek(64447)
- Can use the IIc external drive only
- No AppleTalk firmware
- PR#7 boots the second drive
- Mouse firmware maps to slot 4
- Serial firmware does not mask incoming linefeed characters
- Serial firmware does not support XON/XOFF protocol
- Can use the IIc external drive and the UniDisk 3.5 drive
- AppleTalk firmware maps to slot 7
- PR#7 returns the message “AppleTalk Off Line”
- Mouse firmware maps to slot 4
- Serial firmware defaults to mask all incoming linefeed characters
- Serial firmware supports XON/XOFF protocol
- Can use the IIc external drive, the UniDisk 3.5 drive, and the IIc Memory Expansion Card
- Mouse firmware maps to slot 7
- No AppleTalk firmware
- PR#7 kills the system
- Serial firmware defaults to mask all incoming linefeed characters
- Serial firmware supports XON/XOFF protocol
- Same as Original “Memory-Expandable” IIc, plus:
- Keyboard buffering firmware bug fixed
- Firmware returns correct information when the Memory Expansion Card is not present
- Can use the external IIc drive, the UniDisk 3.5 drive, the Apple 3.5 drives, but not the original IIc Memory Expansion Card.
- Contains a Memory Expansion Card connector
- 3.5" internal drive replaces 5.25" internal drive
- Mouse maps to slot 7
- PR#7 kills the system
- 4 MHz 65C02 microprocessor
- Accelerator chip and static RAM cache permit operation up to 4 MHz
- Keyboard replaced with Apple Standard Keyboard (minus numeric keypad)
- Internal power supply
- Internal modem connector
- Serial ports refitted with mini-DIN 8 connectors
- Headphone jack has been removed
- Volume control relocated above the keyboard
- 40/80 column switch replaced by keyboard (Sholes/Dvorak) switch
The best ProDOS version to use is the latest (currently [August 2024] 2.4.3), available at: https://prodos8.com/releases/
You can find these at: https://mirrors.apple2.org.za/Apple%20II%20Documentation%20Project/Software/Operating%20Systems/Apple%20ProDOS/Disk%20Images/
ProDOS:
Version | Date | Size (Blocks) | Download |
---|---|---|---|
ProDOS 1.0 | 01-Aug-83 | 28 | prodos-1.0-aug83.shk |
ProDOS 1.0 | 01-Sep-83 | 30 | prodos-1.0-sep83.shk |
ProDOS 1.0 | 01-Oct-83 | 30 | prodos-1.0-oct83.shk |
ProDOS 1.0 | 01-Nov-83 | 28 | prodos-1.0-nov83.shk |
ProDOS 1.0.1 | 01-Jan-84 | 30 | prodos-1.0.1.shk |
ProDOS 1.0.2 | 15-Feb-84 | 30 | prodos-1.0.2.shk |
ProDOS 1.1 | 17-Aug-84 | 29 | prodos-1.1.shk |
ProDOS 1.1.1 | 18-Sep-84 | 29 | prodos-1.1.1.shk |
ProDOS-8 1.2 exp 04 | 07-Mar-86 | 30 | prodos-1.2exp04.shk |
ProDOS 8 v1.2 | 06-Sep-86 | 31 | prodos-1.2.shk |
ProDOS 8 v1.3 | 02-Dec-86 | 31 | prodos-1.3.shk |
ProDOS 8 v1.4 B | 12-Feb-87 | 31 | prodos-1.4_b.shk |
ProDOS 8 v1.4B | 12-Feb-87 | 31 | prodos-1.4b.shk |
ProDOS 8 v1.4 | 17-Apr-87 | 31 | prodos-1.4.shk |
ProDOS 8 v1.5 | 02-Apr-88 | 31 | prodos-1.5.shk |
ProDOS 8 v1.6 | 14-Jun-88 | 31 | prodos-1.6.shk |
ProDOS 8 v1.7B | 08-Aug-88 | 31 | prodos-1.7b.shk |
ProDOS 8 v1.7 | 08-Aug-88 | 31 | prodos-1.7.shk |
ProDOS 8 v1.8 | 23-May-89 | 31 | prodos-1.8.shk |
ProDOS 8 v1.9 | 16-Jul-90 | 33 | prodos-1.9.shk |
ProDOS 8 v2.0 | 22-Jan-92 | 34 | prodos-2.0.shk |
ProDOS 8 v2.0.1 | 04-Mar-92 | 34 | prodos-2.0.1.shk |
ProDOS 8 v2.0.2 | 02-Nov-92 | 34 | prodos-2.0.2.shk |
ProDOS 8 v2.0.3 | 06-May-93 | 34 | prodos-2.0.3.shk |
BASIC.SYSTEM:
Version | Date | Download |
---|---|---|
ProDOS BASIC 1.0 | 01-Sep-83 | basic.system-1.0-sep83.shk |
ProDOS BASIC 1.0 | 15-Nov-83 | basic.system-1.0-nov83.shk |
ProDOS BASIC 1.1 | 18-Jun-84 | basic.system-1.1.shk |
ProDOS BASIC 1.2 | 14-Dec-87 | basic.system-1.2.shk |
ProDOS BASIC 1.3 | 17-Jun-89 | basic.system-1.3.shk |
ProDOS BASIC 1.4 | 01-Aug-89 | basic.system-1.4.shk |
ProDOS BASIC 1.4.1 | 17-Jul-90 | basic.system-1.4.1.shk |
ProDOS BASIC 1.5 | 06-May-93 | basic.system-1.5.shk |