-
Notifications
You must be signed in to change notification settings - Fork 71
AppleII & III FujiNet Quickstart Guide
- Status of the Apple II FujiNet
- Getting to Know Your FujiNet
- Supported Apple II Systems
- Hooking Up FujiNet
- Apple II 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 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).
- 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. 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/DiskII).
- There are 2 buttons: Button A (Function To Be Determined) and Reset
- There is one IDC20 port for SmartPort/Disk II connections
- Apple IIGS
- Apple IIc+
- Apple IIc
- Apple II+
- Apple IIe
- Apple IIe Enhanced
- Most clones of the above machines
- Apple /// & ///+
- KBOOHK softSP Card v6 (or newer) and I/O Controller/5.25 Drive Controller Card
- 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
- 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
- Original Disk II Interface Card with two IDC20 headers
- 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 Disk Drive 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 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.
NOTE: 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 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 ROM, the Apple will not boot the FujiNet, resulting in only a failed floppy boot (both trying PR#6 or PR#7). This was tested with firmware v1.3.
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 into the Control Panel at boot (press
[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.
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)
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
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
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 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 with [TAB]
. Selecting a host slot with [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 (e.g.
apps.irata.online
,fujinet.diller.org
,tnfs.fujinet.online
). - an SMB or FTP server url in the form
SMB://server.address[/directory]
orFTP://server.address[/directory]
– both require anonymous access, availability of which varies by server software.
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]
).
NOTE 1: most if not all public facing TNFS servers do not allow Write access so you should mount them Read Only.
NOTE 2: 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).
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 “Show Config” option (press [C]
), 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.
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 re-loaded. 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, available at: https://prodos8.com/releases/prodos-243/
you can find these at: https://mirrors.apple2.org.za/ftp.apple.asimov.net/images/masters/prodos/
PRODOS:
Version Date Size (Blocks) Download
ProDOS 1.0 1-Aug-83 28 prodos-1.0-aug83.shk
ProDOS 1.0 1-Sep-83 30 prodos-1.0-sep83.shk
ProDOS 1.0 1-Oct-83 30 prodos-1.0-oct83.shk
ProDOS 1.0 1-Nov-83 28 prodos-1.0-nov83.shk
ProDOS 1.0.1 1-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 7-Mar-86 30 prodos-1.2exp04.shk
ProDOS 8 v1.2 6-Sep-86 31 prodos-1.2.shk
ProDOS 8 v1.3 2-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 2-Apr-88 31 prodos-1.5.shk
ProDOS 8 v1.6 14-Jun-88 31 prodos-1.6.shk
ProDOS 8 v1.7B 8-Aug-88 31 prodos-1.7b.shk
ProDOS 8 v1.7 8-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 4-Mar-92 34 prodos-2.0.1.shk
ProDOS 8 v2.0.2 2-Nov-92 34 prodos-2.0.2.shk
ProDOS 8 v2.0.3 6-May-93 34 prodos-2.0.3.shk
BASIC.SYSTEM:
Version Date Download
ProDOS BASIC 1.0 1-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 1-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 6-May-93 basic.system-1.5.shk
Copyright 2024 Contributors to the FujiNetWIFI project.
Join us on Discord: https://discord.gg/7MfFTvD
- Home
- What is FujiNet?
- The Definition of Done
- Board bring up for FujiNet Platform.IO code
- The Complete Linux CLI Guide
- The Complete macOS CLI Guide
- Development Env for Apps
- FujiNet-Development-Guidelines
- System Quickstarts
- FujiNet Flasher
- Setting up a TNFS Server
- FujiNet Configuration File: fnconfig.ini
- AppKey Registry - SIO Command $DC Open App Key
- CP-M Support
- BBS
- Official Hardware Versions
- Prototype Board Revisions
- FujiNet Development Guidelines
- Atari Programming
- Apple Programming
- C64 Programming
- ADAM Programming
- Testing Plan
- Hacker List
- FujiNet VirtualMachine