mirror of
https://github.com/A2osX/A2osX.git
synced 2024-11-29 17:50:18 +00:00
149 lines
3.3 KiB
Plaintext
149 lines
3.3 KiB
Plaintext
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
|