Site Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
mg_notes:apple_ii_atlk:undoc_functionality [2017/08/04 00:58]
M.G. created
mg_notes:apple_ii_atlk:undoc_functionality [2018/01/23 17:22] (current)
M.G. [Init (function $01)]
Line 1: Line 1:
-====== Undocumented Functionality ======+====== ​AppleTalk ​Undocumented Functionality ======
  
 Here is some AppleTalk functionality not documented in the APDA //Apple II AppleShare Programmer'​s Guide//. Here is some AppleTalk functionality not documented in the APDA //Apple II AppleShare Programmer'​s Guide//.
Line 12: Line 12:
 | $02 | Result Code | Word | <-  | | $02 | Result Code | Word | <-  |
 | $04 | Init flags  | Byte | See below. | | $04 | Init flags  | Byte | See below. |
-| $05 | P8 Entry.   | Long | P8 MLI entry address |+| $05 | P8 Entry    | Long | P8 MLI entry address |
 | $09 | Node number | Byte | Preferred node number or $00 | | $09 | Node number | Byte | Preferred node number or $00 |
 | $0A | Unknown ​    | Word | ? | | $0A | Unknown ​    | Word | ? |
Line 22: Line 22:
 | $80   | Full init, no MLI global page update \\ Used during IIgs boot | | $80   | Full init, no MLI global page update \\ Used during IIgs boot |
 | $40   | Full init, MLI global page update \\ Used by ATINIT and boot block LOGON | | $40   | Full init, MLI global page update \\ Used by ATINIT and boot block LOGON |
 +
 +To initialize AppleTalk just enough to do ATP when ProDOS is not loaded, set up an IRQ handler that does ''​JSR $Cn19 ''​ followed by ''​RTI''​ (where n is the slot number of the Workstation Card) and issue the init call with all parameters 0 except for the command byte of $01, then do ''​JSR $Cn14''​ in the manner of a ProDOS MLI call to initialize it.  When it returns, enable interrupts. ​ Example code is in [[projects:​netboot_lc|NetBoot LC]].
 +
 +To initalize AppleTalk for use by ProDOS (in, say, an ATINIT file), you must make the call with init flags = $40 and the P8 entry address as $0000BF00. ​ After the init call returns success the following must take place: ​ Use the ProDOS 8 ALLOC_INTERRUPT to allocate an interrupt routine with $Cn19 as the routine address, then update the global page MLI vector to go to $Cn14, and finally, enable interrupts.
 +
  
 ===== FIUserPrefix (function $2A) ===== ===== FIUserPrefix (function $2A) =====