NEW
PREFIX
AUTO 4,1
				.LIST OFF
				.OP	65C02
				.OR	$2000
				.TF SYS/ATK/KM.APPLETALK
*--------------------------------------
				.INB INC/MACROS.I
				.INB INC/IO.I
				.INB INC/MONITOR.I
				.INB INC/MLI.I
*--------------------------------------
TmpPtr1			.EQ	$0
*--------------------------------------
BUF.PREFIX		.EQ $300
*--------------------------------------
AT.INIT			>LDYAI MSG.INIT
				jsr PrintFYA
				
				lda #$F9
				sta TmpPtr1
				lda	#$C7
				sta TmpPtr1+1
				
.1				ldy #3

.2				lda (TmpPtr1),y
				cmp SIG.ATLK,y
				bne .3
				dey
				bpl .2
				
				ldy #4
				lda (TmpPtr1),y
				
				ldx #0
				cmp #1
				beq .4
				
				ldx #$80
				cmp #2
				beq .4

				pha
				>LDYAI MSG.FAILED
				jsr PrintFYA
				rts
				
.3				dec	TmpPtr1+1
				lda TmpPtr1+1
				cmp #$C0
				bne .1
				
				>LDYAI MSG.NOHW
				jsr PrintFYA
				rts
				
.4				stx WC.Flag
				tay
				
				lda TmpPtr1+1
				and #$0f
				pha						Push slot #
				phy						Push Type #
				>LDYAI MSG.HWOK
				jsr PrintFYA

				>LDYA MLI+1
				>STYA GO.OLDMLI+1
				>STYA MLIATALK.PARAMS.OLDMLI
				
				ldy	#$14
				lda TmpPtr1+1			Cn
				sta MLIALLOCIRQ.PARAMS.SLOT
				
				>STYA GO.WSCARD+1
				bit WC.Flag
				bmi .5
				
				>STYA MLI+1

.5				>LDYAI MSG.ATINIT
				jsr PrintFYA
				
				jsr GO.WSCARD
				.DA #MLIATALK
				.DA MLIATALK.PARAMS
				bcs .9
				
				>LDYAI MSG.IRQ
				jsr PrintFYA

				jsr MLI
				.DA #MLIALLOCIRQ
				.DA MLIALLOCIRQ.PARAMS
				bcs .9

				cli
				
				>LDYAI MSG.PREFIX1
				jsr PrintFYA

				jsr GO.OLDMLI
				.DA #MLIGETPREFIX
				.DA MLIGETPREFIX.PARAMS
				bcs .9
				
				>LDYAI MSG.PREFIX2
				jsr PrintFYA

				jsr GO.WSCARD
				.DA #MLISETPREFIX
				.DA MLIGETPREFIX.PARAMS
				bcs .9
				
				>LDYAI MSG.OK
				jsr PrintFYA
				rts
				
.9				pha
				>LDYAI MSG.KO
				jsr PrintFYA
				rts
*--------------------------------------
GO.WSCARD		jmp $ffff				SELF MODIFIED
GO.OLDMLI		jmp $ffff				SELF MODIFIED
*--------------------------------------
				.INB USR/SRC/X.PRINTF.S
*--------------------------------------
MSG.INIT		.AZ "AppleTalk Driver For A2osX\n"
MSG.FAILED		.AZ "AppleTalk Workstation Card Failed Power Up Diagnostics : EC=%h.\n"
MSG.NOHW		.AZ "AppleTalk Workstation Card Not Found.\n"
MSG.HWOK		.AZ "AppleTalk Workstation Card Type #%d Found In Slot #%d.\n"
MSG.ATINIT		.AZ "Calling ATInit...\n"
MSG.IRQ			.AZ "Setting Up IRQ Vector...\n"
MSG.PREFIX1		.AZ "Getting ProDOS Prefix...\n"
MSG.PREFIX2		.AZ "Setting AppleTalk Prefix...\n"
MSG.OK			.AZ "AppleTalk Driver Successfully Installed.\n"
MSG.KO			.AZ "AppleTalk Driver Install Failed : EC=%h.\n"
*--------------------------------------
SIG.ATLK		.AS "ATLK"
WC.Flag			.BS 1
*--------------------------------------
MLIATALK.PARAMS	.DA #0					Sync
				.DA #1					INIT
				.BS 2					RC
				.DA #$40				??? from ATINIT disassembly
MLIATALK.PARAMS.OLDMLI
				.BS 2					??? from ATINIT disassembly
				.BS 5					??? from ATINIT disassembly
*--------------------------------------
MLIALLOCIRQ.PARAMS
				.DA #2					Param Count
				.BS 1					Int Num returned
				.DA #$19				Lo byte always $19 for WS Card
MLIALLOCIRQ.PARAMS.SLOT
				.BS 1					hi byte : $Cn
*--------------------------------------
MLIGETPREFIX.PARAMS
				.DA #1
				.DA BUF.PREFIX
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KM.APPLETALK.S
ASM
