Apple II
Technical Notes
_____________________________________________________________________________
                                                  Developer Technical Support

AppleTalk
#1:    Identifying AppleTalk

Revised by:    Jim Luther                                          March 1990
Written by:    Dan Strnad                                       November 1988

This Technical Note describes the correct methods for identifying AppleTalk 
under ProDOS 8 and GS/OS, as the ATLK ROM signature is no longer used.
Changes since July 1989:  Added warning concerning ProDOS 8, version 1.4.
_____________________________________________________________________________

To determine if an application has been launched over the network, refer to 
the NetLaunch code fragment found in the AppleShare Programmer's Guide for the 
Apple IIGS.

Under ProDOS, to identify both AppleTalk and the slot with which it is 
associated for printing, refer to Apple II AppleTalk Technical Note #4, 
Printing Through the Firmware.

To identify AppleTalk under ProDOS 8:

1.  Issue an AppleShare GetInfo call.
2.  If there is no error result, AppleTalk is installed.

    InfoParams    DB  $00        ;Synchronous only
                  DB  $02        ;GetInfo call number
    InfoResult    DS  13         ;<- results returned here
    
    CheckATalk    JSR $BF00
                  DB  $42        ;$42 command # for AppleTalk calls
                  DW  InfoParams ;Parameter list address
                  BCS NoATalk    ;handle the error
    IsATalk       ...            ;AppleTalk installed when here
    
    NoATalk       ...            ;AppleTalk not installed when here

Warning:  Due to a bug in ProDOS 8, version 1.4, using the $42 call 
          crashes ProDOS 8 if AppleTalk is not installed.  
          Applications that use this routine to check for AppleTalk 
          should ship with ProDOS 8 version 1.5 or greater, thus 
          avoiding this bug.  (ProDOS 8 Technical Note #21, 
          Identifying ProDOS Devices contains a routine which 
          correctly identifies the presence AppleTalk under all 
          versions of ProDOS 8.)

To identify AppleTalk protocols and AppleShare file system under System 
Software 5.0:

1.  Set up the parameter block for a GS/OS GetFSTInfo call using 
    fstNum = 1.
2.  Issue the GetFSTInfo call.
3.  If the fileSysID is $0D the AppleShare FST and AppleShare are 
    present.
4.  If a parameter out of range error ($53) results, the AppleShare 
    file system is not present.
5.  Otherwise, if steps 3 and 4 are inconclusive, increment the fstNum 
    and loop back to step 2.

To identify AppleTalk protocols, including LAP through PFI but excluding the 
file system, under System Software 5.0:

1.  Set up the parameter block for a GS/OS DInfo call using device 
    number one.
2.  Issue the DInfo call.
3.  If the deviceID is $1D, the AppleTalk main driver and AppleTalk 
    are present.
4.  If a parameter out of range error ($53) results, the AppleTalk 
    protocols are not present.
5.  Otherwise, if steps 3 and 4 are inconclusive, increment the device 
    number and loop back to step 2.

To identify AppleTalk protocols, including LAP through ASP but excluding the 
file system, under System Software 4.0:

1.  Issue an an SPGetStatus call
2.  If the call returns without error, AppleTalk is present.

Note:  With the release of System Software 5.0, earlier versions are not 
       supported.


Further Reference
_____________________________________________________________________________
  o  Inside AppleTalk
  o  AppleShare Programmer's Guide for the Apple IIGS
  o  GS/OS Reference
  o  Apple II AppleTalk Technical Note #4, Printing Through the Firmware
  o  ProDOS 8 Technical Note #21, Identifying ProDOS Devices

