The Apple IIgs network boot happens in multiple stages. They are:
Stage 0 - ROM: The system has a very minimal AppleTalk stack built into the ROM. It is capable of NBP lookups, ATP, and the lower level protocols to support these, and not much else. The stage 0 code performs an NBP lookup for Apple //gs
. When it finds it, it retrieves the stage 1 code using ATP requests in the same fashion as the Workstation Card retrieves its boot blocks. The image is usually called ProDOS16 Boot Blocks
Stage 1: The stage 1 code is a small program with two purposes: It initializes an Apple II Ethernet Card, if installed, and patches it into the toolbox in a rudimentary fashion, and it uses ATP to load the stage 2 code from the server found by the stage 0 code, in usual manner.
Stage 2 “Fizzy”: Fizzy is the first chunk in an archive of files that make up the file ProDOS16 Image
. Fizzy's job is to selectively load the next stages of the boot, depending on the ROM version, boot OS (GS/OS or ProDOS 8), and network medium (EtherTalk or LocalTalk).
Specifically, Fizzy does these things:
ProDOS16 Image
file.
Contents of the ProDOS16 Image
:
The first block is a header block beginning with GSOSBOOT
at $000, and at $100 are the segment descriptors that tell how each of the embedded files is to be loaded.
The contents of a standard GS/OS ProDOS16 Image
are below. Note that the files are not named in the image, these are names that I have gotten from other sources or from analysis of the contents.
# Image Run Address Size Start Blk Max ROM, Boot OS, and Medium --- ------- ----------- ----- ---------- ---------------------------- 0: Fizzy @0x00001000, 0x047d bytes (0x0003 blks) at 0x0001, ROM 4, any OS, any HW 1: Stub @0x00002000, 0x033e bytes (0x0002 blks) at 0x0004, ROM 4, GS/OS, any HW 2: P8 @0x00002000, 0x42e8 bytes (0x0022 blks) at 0x0006, ROM 4, ProDOS 8, any HW 3: Logon @0x00006800, 0x458b bytes (0x0023 blks) at 0x0028, ROM 4, any OS, any HW 4: ATROM @0x0002a269, 0x281b bytes (0x0015 blks) at 0x004b, ROM 4, any OS, LocalTalk 5: ATRAM @0x00020000, 0xa269 bytes (0x0052 blks) at 0x0060, ROM 4, any OS, LocalTalk 6: ETBoot @0x00020000, 0x0596 bytes (0x0003 blks) at 0x00b2, ROM 4, any OS, EtherTalk 7: End @0x00000000, 0x0000 bytes (0x0000 blks) at 0x00b5, ROM 0, any OS, any HW
Stage 3: This stage is in the stub AppleShare FST. It looks for SYSTEM:START.GS.OS
on the user volume that Logon
mounted, loads it, and launches it.
Stage 4: START.GS.OS can use the stub FST to bring in the rest of GS/OS, eventually replacing the stub FST with the full AppleShare FST as it loads up.