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.