This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
mg_notes:apple_ii_atlk:undoc_functionality [2017/08/04 01:09] M.G. [Init (function $01)] |
mg_notes:apple_ii_atlk:undoc_functionality [2018/01/23 17:22] M.G. [Init (function $01)] |
||
---|---|---|---|
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) ===== |