From 9e853cd049022857b68080f330f02cd73be68e90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Mon, 17 Apr 2017 21:36:00 +0200 Subject: [PATCH] Kernel version 0.9 : Many bugfix in NIC drivers, ATLK massages at load time to help debugging --- A2osX.STARTUP.txt | 4 +- DRV/LANCEGS.DRV.S.txt | 297 ++++++++++++++++++++-------------------- DRV/PIC.DRV.S.txt | 12 +- DRV/UTHER2.AI.DRV.S.txt | 8 +- DRV/UTHERNET2.DRV.S.txt | 16 +-- Floppies/A2OSX.BOOT.po | Bin 143360 -> 143360 bytes Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes README.md | 8 +- SYS/KM.APPLETALK.S.txt | 10 +- 10 files changed, 181 insertions(+), 174 deletions(-) diff --git a/A2osX.STARTUP.txt b/A2osX.STARTUP.txt index adfc7d9b..b1b9afc7 100644 --- a/A2osX.STARTUP.txt +++ b/A2osX.STARTUP.txt @@ -16,9 +16,9 @@ STARTPROC GETTY COM2 ${A2OSX}SBIN/LOGIN #INSDRV PIC.DRV # Network Section INSDRV UTHERNET.DRV 000E3A123456 -#INSDRV UTHERNET2.DRV 0008DC123456 +INSDRV UTHERNET2.DRV 0008DC123456 #INSDRV UTHER2.AI.DRV 0008DC123456 -#INSDRV LANCEGS.DRV +INSDRV LANCEGS.DRV STARTPROC TCPIP STARTPROC DHCPCLNT STARTPROC TELNETD diff --git a/DRV/LANCEGS.DRV.S.txt b/DRV/LANCEGS.DRV.S.txt index 075ed40f..18a546a0 100644 --- a/DRV/LANCEGS.DRV.S.txt +++ b/DRV/LANCEGS.DRV.S.txt @@ -1,6 +1,6 @@ PR#3 PREFIX /A2OSX.BUILD -NEW +LOMEM $A00 INC 1 AUTO 6 .LIST OFF @@ -10,11 +10,12 @@ AUTO 6 *-------------------------------------- .INB /A2OSX.BUILD/INC/MACROS.I .INB /A2OSX.BUILD/INC/A2OSX.I + .INB /A2OSX.BUILD/INC/MLI.ERR.I + .INB /A2OSX.BUILD/INC/NET.I + .INB /A2OSX.BUILD/INC/NET.91C96.I .INB /A2OSX.BUILD/INC/LIBTCPIP.I *-------------------------------------- ZPTmpPTR .EQ ZPDRV -*-------------------------------------- - .INB DRV/X.NET.91C96.S *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -40,27 +41,46 @@ Dev.Detect >STYA Args >LDYA L.MSG.DETECT >SYSCALL CPrintFYA - ldx #$10 -.1 lda L91C96.BSR+1,x + ldx #$70 + +.1 txa IO based detection, avoid scanning in Disk Controller IO!!!! + lsr + lsr + lsr + lsr + tay + + lda A2osX.SLOTS,y + bne .2 + + lda L91C96.BSR+1,x cmp #DEVID beq .3 - inc DEV.HEADER.NAME+4 +.2 dec DEV.HEADER.NAME+4 txa - clc - adc #$10 + sec + sbc #$10 tax - bpl .1 not yat at $80 + bne .1 >LDYA L.MSG.DETECT.KO >SYSCALL CPrintFYA - lda #DEVMGR.ERRNOHW Not Found in any slot, exiting + lda #MLI.ERR.NODEV sec rts .3 stx DEVSLOTx0 - + txa + lsr + lsr + lsr + lsr + tay + lda #A2osX.SLOTS.NET + sta A2osX.SLOTS,y + >LDYA ARGS >STYA ZPTmpPTR lda (ZPTmpPTR) @@ -82,108 +102,79 @@ Dev.Detect >STYA Args clc rts *-------------------------------------- - .INB DRV/X.NET.DRV.S + .INB /A2OSX.SRC/DRV/X.NET.DRV.S *-------------------------------------- CS.END -MSG.DETECT >CSTR "LanCeGS/SMSC91C96 Driver.\n" -MSG.DETECT.OK >CSTR "LanCeGS/SMSC91C96 Installed As Device : %S\n" -MSG.DETECT.KO >CSTR "Hardware Not Found.\n" +MSG.DETECT >CSTR "LanCeGS/SMSC91C96 Driver.\r\n" +MSG.DETECT.OK >CSTR "LanCeGS/SMSC91C96 Installed As Device : %S\r\n" +MSG.DETECT.KO >CSTR "Hardware Not Found.\r\n" Args .BS 2 *-------------------------------------- * Device Header (16 Bytes) *-------------------------------------- DEV.HEADER cld jmp (DRV.CS.START,x) - .DA #S.DEV.F.SHARE+S.DEV.F.EVENT -DEV.HEADER.NAME >PSTR "ETH1" NAME - .HS 00.00 - .HS 00.00.00.00 + .DA #0 + .BS 6 +DEV.HEADER.NAME >PSTR "ETH7" *-------------------------------------- * Driver Code *-------------------------------------- -DRV.CS.START .DA OPEN - .DA GETEVENT - .DA $FFFF no COUT +DRV.CS.START .DA STATUS + .DA READBLOCK + .DA WRITEBLOCK + .DA BADCALL + .DA BADCALL + .DA BADCALL + .DA OPEN .DA CLOSE - .DA GETINFO - .DA $FFFF no IRQ - .DA SEND - .DA $FFFF no SETIPCFG -L.DEVINFO .DA DEVINFO + .DA BADCALL + .DA BADCALL +L.DEVSTAT .DA DEVSTAT .DA 0 end or relocation *-------------------------------------- -* input : -* none -* output : -* CC on success -* CS on error -*-------------------------------------- -OPEN jsr Reset will select L91C96.0 +BADCALL lda #MLI.ERR.BADCALL + sec + rts +*-------------------------------------- +STATUS lda #S.DEVSTAT.NET.STATUS.10 + sta LINK.STATUS - lda #L91C96.0.TCR.FDSE+L91C96.0.TCR.FUDPLX+L91C96.0.TCR.PADEN+L91C96.0.TCR.TXENA - sta L91C96.0.TCR,x - lda /L91C96.0.TCR.FDSE+L91C96.0.TCR.FUDPLX+L91C96.0.TCR.PADEN+L91C96.0.TCR.TXENA - sta L91C96.0.TCR+1,x - - lda #L91C96.0.RCR.NOCRC+L91C96.0.RCR.RXENA+L91C96.0.RCR.ALLMUL - sta L91C96.0.RCR,x - lda /L91C96.0.RCR.NOCRC+L91C96.0.RCR.RXENA+L91C96.0.RCR.ALLMUL - sta L91C96.0.RCR+1,x - - lda #1 - sta L91C96.BSR,x - - lda #L91C96.1.CR.NOWAIT - sta L91C96.1.CR,x - lda /L91C96.1.CR.NOWAIT - sta L91C96.1.CR+1,x + ldx DEVSLOTx0 - ldy #0 - bit USERMAC - bmi .2 + stz L91C96.BSR,x + lda L91C96.0.EPHSR,x + lda L91C96.0.EPHSR+1,x + and /L91C96.0.EPHSR.LINK + beq .1 + lda LINK.STATUS + ora #S.DEVSTAT.NET.STATUS.OK + sta LINK.STATUS -.1 lda L91C96.1.IAR,x - sta MAC,y - inx - iny - cpy #6 - bne .1 - bra .3 - -.2 lda MAC,y - sta L91C96.1.IAR,x - inx - iny - cpy #6 +.1 lda L91C96.0.TCR,x + lda L91C96.0.TCR+1,x + and /L91C96.0.TCR.FDSE bne .2 + lda LINK.STATUS + ora #S.DEVSTAT.NET.STATUS.FD + sta LINK.STATUS -.3 ldx DEVSLOTx0 - lda #L91C96.1.CTR.DEFAULT+L91C96.1.CTR.AUTOREL - sta L91C96.1.CTR,x - lda /L91C96.1.CTR.DEFAULT+L91C96.1.CTR.AUTOREL - sta L91C96.1.CTR+1,x - +.2 >LDYA L.DEVSTAT clc rts *-------------------------------------- -* input : -* pEvent -* output : -* CC no event -* CS event -*-------------------------------------- -GETEVENT ldx DEVSLOTx0 +READBLOCK ldx DEVSLOTx0 lda #2 sta L91C96.BSR,x lda L91C96.2.IST,x and #L91C96.2.IST.RCV - bne GETEVENT.RxOK + bne READBLOCK.RxOK lda #ERR.DEV.NOFRAME sec rts -GETEVENT.RxOK lda #L91C96.2.PTR.RCVD+L91C96.2.PTR.AUTOI+L91C96.2.PTR.READ +READBLOCK.RxOK lda #L91C96.2.PTR.RCVD+L91C96.2.PTR.AUTOI+L91C96.2.PTR.READ sta L91C96.2.PTR,x lda /L91C96.2.PTR.RCVD+L91C96.2.PTR.AUTOI+L91C96.2.PTR.READ sta L91C96.2.PTR+1,x @@ -191,10 +182,7 @@ GETEVENT.RxOK lda #L91C96.2.PTR.RCVD+L91C96.2.PTR.AUTOI+L91C96.2.PTR.READ lda L91C96.2.DATA,x Get Frame Status Word (lo) lda L91C96.2.DATA,x Get Frame Status Word (HI) - asl #$60 = Broadcast? - ldy #S.EVT.DATAHI - sta (pEvent),y - + asl asl asl #$10 = odd? asl if odd, CS @@ -209,21 +197,20 @@ GETEVENT.RxOK lda #L91C96.2.PTR.RCVD+L91C96.2.PTR.AUTOI+L91C96.2.PTR.READ iny bne .1 + inc .1 iny bne .11 + inc .11 >PUSHYA FRAMLEN+2 >PUSHBI 0 >SYSCALL GetMem bcs .99 >STYA ZPTmpPTR - txa - ldy #S.EVT.DATALO - sta (pEvent),y - - lda #S.EVT.F.NET+S.EVT.F.hMEM1 - sta (pEvent) + stx .8+1 + sty .8+3 + sta .8+5 lda FRAMELEN sta (ZPTmpPTR) @@ -236,14 +223,14 @@ GETEVENT.RxOK lda #L91C96.2.PTR.RCVD+L91C96.2.PTR.AUTOI+L91C96.2.PTR.READ ldx DEVSLOTx0 .2 jsr DecFrameLen - beq .8 + beq .4 lda L91C96.2.DATA,x sta (ZPTmpPTR),y iny bne .3 inc ZPTmpPTR+1 .3 jsr DecFrameLen - beq .8 + beq .4 lda L91C96.2.DATA,x sta (ZPTmpPTR),y iny @@ -251,58 +238,16 @@ GETEVENT.RxOK lda #L91C96.2.PTR.RCVD+L91C96.2.PTR.AUTOI+L91C96.2.PTR.READ inc ZPTmpPTR+1 bra .2 -.8 lda #L91C96.2.MMUCR.REMREL +.4 lda #L91C96.2.MMUCR.REMREL sta L91C96.2.MMUCR,x - clc - rts -.99 sec - rts -*-------------------------------------- -CLOSE jsr Reset +.8 ldx #$ff hMem + ldy #$ff PtrLO + lda #$ff PtrHI clc - rts +.99 rts *-------------------------------------- -* in: -* out: -* Y,A = BUFFER PTR -* CC on success -* CS on error -*-------------------------------------- -GETINFO lda #S.DEVINFO.NET.STATUS.10 - sta LINK.STATUS - - ldx DEVSLOTx0 - - stz L91C96.BSR,x - lda L91C96.0.EPHSR,x - lda L91C96.0.EPHSR+1,x - and /L91C96.0.EPHSR.LINK - beq .1 - lda LINK.STATUS - ora #S.DEVINFO.NET.STATUS.OK - sta LINK.STATUS - -.1 lda L91C96.0.TCR,x - lda L91C96.0.TCR+1,x - and /L91C96.0.TCR.FDSE - bne .2 - lda LINK.STATUS - ora #S.DEVINFO.NET.STATUS.FD - sta LINK.STATUS - -.2 >LDYA L.DEVINFO - clc - rts -*-------------------------------------- -* in: -* PULLW = FRAME PTR -* PULLW = FRAME LEN -* out: -* CC on success -* CS on error -*-------------------------------------- -SEND >PULLW ZPTmpPTR +WRITEBLOCK >STYA ZPTmpPTR ldx DEVSLOTx0 lda #2 @@ -406,9 +351,55 @@ SEND >PULLW ZPTmpPTR .9 sec rts *-------------------------------------- -* PRIVATE +OPEN jsr CLOSE + + lda #L91C96.0.TCR.FDSE+L91C96.0.TCR.FUDPLX+L91C96.0.TCR.PADEN+L91C96.0.TCR.TXENA + sta L91C96.0.TCR,x + lda /L91C96.0.TCR.FDSE+L91C96.0.TCR.FUDPLX+L91C96.0.TCR.PADEN+L91C96.0.TCR.TXENA + sta L91C96.0.TCR+1,x + + lda #L91C96.0.RCR.NOCRC+L91C96.0.RCR.RXENA+L91C96.0.RCR.ALLMUL + sta L91C96.0.RCR,x + lda /L91C96.0.RCR.NOCRC+L91C96.0.RCR.RXENA+L91C96.0.RCR.ALLMUL + sta L91C96.0.RCR+1,x + + lda #1 + sta L91C96.BSR,x + + lda #L91C96.1.CR.NOWAIT + sta L91C96.1.CR,x + lda /L91C96.1.CR.NOWAIT + sta L91C96.1.CR+1,x + + ldy #0 + bit USERMAC + bmi .2 + +.1 lda L91C96.1.IAR,x + sta MAC,y + inx + iny + cpy #6 + bne .1 + bra .3 + +.2 lda MAC,y + sta L91C96.1.IAR,x + inx + iny + cpy #6 + bne .2 + +.3 ldx DEVSLOTx0 + lda #L91C96.1.CTR.DEFAULT+L91C96.1.CTR.AUTOREL + sta L91C96.1.CTR,x + lda /L91C96.1.CTR.DEFAULT+L91C96.1.CTR.AUTOREL + sta L91C96.1.CTR+1,x + + clc + rts *-------------------------------------- -Reset ldx DEVSLOTx0 +CLOSE ldx DEVSLOTx0 stz L91C96.BSR,x lda #L91C96.0.RCR.RESET @@ -426,6 +417,8 @@ Reset ldx DEVSLOTx0 stz L91C96.0.RCR,x stz L91C96.0.RCR+1,x + + clc rts *-------------------------------------- DecFrameLen lda FRAMELEN @@ -438,16 +431,22 @@ DecFrameLen lda FRAMELEN .8 rts *-------------------------------------- DRV.CS.END -*-------------------------------------- DEVSLOTx0 .BS 1 USERMAC .BS 1 FRAMELEN .BS 2 +*-------------------------------------- +DEVSTAT .DA #0 + .BS 3 size + >PSTR "LanCEGS/L91C96" + .BS 1 + .DA #S.DEVSTAT.TYPE.NET + .BS 1 Subtype + .BS 2 Version *-------------------------------------- -DEVINFO .DA #S.DEVINFO.TYPE.NET -DEVFLAGS .DA #0 -MAC .BS 6 +FLAGS .DA #0 LINK.STATUS .BS 1 OK/DUPLEX/SPEED +MAC .BS 6 *-------------------------------------- MAN -SAVE DRV/LANCEGS.DRV.S +SAVE /A2OSX.SRC/DRV/LANCEGS.DRV.S ASM diff --git a/DRV/PIC.DRV.S.txt b/DRV/PIC.DRV.S.txt index 741fded1..579021a8 100644 --- a/DRV/PIC.DRV.S.txt +++ b/DRV/PIC.DRV.S.txt @@ -36,7 +36,7 @@ L.DEV.HEADER.NAME .DA DEV.HEADER.NAME *-------------------------------------- Dev.Detect >STYA ARGS >LDYA L.MSG.DETECT - >SYSCALL PPrintFYA + >SYSCALL CPrintFYA stz ZPTmpPtr1 lda #$C1 @@ -63,7 +63,7 @@ Dev.Detect >STYA ARGS bne .1 >LDYA L.MSG.DETECT.KO - >SYSCALL PPrintFYA + >SYSCALL CPrintFYA lda #MLI.ERR.NODEV Not Found in any slot, exiting sec @@ -86,7 +86,7 @@ Dev.Detect >STYA ARGS >PUSHW L.DEV.HEADER.NAME >LDYA L.MSG.DETECT.OK - >SYSCALL PPrintFYA + >SYSCALL CPrintFYA clc rts *-------------------------------------- @@ -94,9 +94,9 @@ CS.END DEVSIG.Offset .HS 0507 DEVSIG.Value .HS 4848 DEVSIG.Length .EQ DEVSIG.Value-DEVSIG.Offset -MSG.DETECT >CSTR "Apple PIC (Parallel Interface Card).\n" -MSG.DETECT.OK >CSTR "PIC Installed As Device : %S\n" -MSG.DETECT.KO >CSTR "No PIC Found.\n" +MSG.DETECT >CSTR "Apple PIC (Parallel Interface Card).\r\n" +MSG.DETECT.OK >CSTR "PIC Installed As Device : %S\r\n" +MSG.DETECT.KO >CSTR "No PIC Found.\r\n" ARGS .BS 2 *-------------------------------------- * Device Header (16 Bytes) diff --git a/DRV/UTHER2.AI.DRV.S.txt b/DRV/UTHER2.AI.DRV.S.txt index 3ec66403..7cbf5800 100644 --- a/DRV/UTHER2.AI.DRV.S.txt +++ b/DRV/UTHER2.AI.DRV.S.txt @@ -75,7 +75,7 @@ Dev.Detect >STYA Args cmp #W5100.MR.AI+W5100.MR.IND bne .2 - >AR.SELECT RTR Double Check with RTR default value... + >AR.SELECT RTR lda W5100.DR,x Get RTR HI cmp /2000 @@ -299,7 +299,7 @@ READBLOCK.RxOK >AR.SELECT S0.RX.RD clc rts *-------------------------------------- -WRITEBLOCK >PULLW ZPTmpPTR +WRITEBLOCK >STYA ZPTmpPTR lda (ZPTmpPTR) sec @@ -383,6 +383,8 @@ WRITEBLOCK.1 >AR.SELECT S0.DIPR lda Offset+1 adc RXTX.Size+1 + and /RXTX.MASK + ora /TX.BASE sta W5100.DR,x write HI pla sta W5100.DR,x write LO @@ -507,11 +509,9 @@ DEVSTAT .DA #0 .DA #S.DEVSTAT.TYPE.NET .BS 1 Subtype .BS 2 Version -*-------------------------------------- FLAGS .DA #S.DEVSTAT.NET.FLAGS.ARPOFFLOAD+S.DEVSTAT.NET.FLAGS.IPOFFLOAD LINK.STATUS .DA #S.DEVSTAT.NET.STATUS.OK+S.DEVSTAT.NET.STATUS.FD+S.DEVSTAT.NET.STATUS.100 MAC .BS 6 -*-------------------------------------- MAN SAVE /A2OSX.SRC/DRV/UTHER2.AI.DRV.S ASM diff --git a/DRV/UTHERNET2.DRV.S.txt b/DRV/UTHERNET2.DRV.S.txt index 6ea90789..22dc093b 100644 --- a/DRV/UTHERNET2.DRV.S.txt +++ b/DRV/UTHERNET2.DRV.S.txt @@ -74,7 +74,7 @@ Dev.Detect >STYA Args cmp #W5100.MR.AI+W5100.MR.IND bne .2 - >AR.SELECT RTR Double Check with RTR default value... + >AR.SELECT RTR lda W5100.DR,x Get RTR HI cmp /2000 @@ -153,7 +153,7 @@ DEV.HEADER cld jmp (DRV.CS.START,x) .DA #0 .BS 6 -DEV.HEADER.NAME >PSTR "ETH7" NAME +DEV.HEADER.NAME >PSTR "ETH7" *-------------------------------------- * Driver Code *-------------------------------------- @@ -187,7 +187,7 @@ READBLOCK ldx DEVSLOTx0 lda #ERR.DEV.NOFRAME -READBLOCK.Err sec + sec rts READBLOCK.RxOK >AR.SELECT S0.RX.RD @@ -217,7 +217,7 @@ READBLOCK.RxOK >AR.SELECT S0.RX.RD * >PUSHYA Already pushed.... >PUSHBI 0 >SYSCALL GetMem - bcs READBLOCK.Err + bcs .99 >STYA ZPTmpPTR stx .8+1 sty .8+3 @@ -274,9 +274,9 @@ READBLOCK.RxOK >AR.SELECT S0.RX.RD ldy #$ff PtrLO lda #$ff PtrHI clc - rts +.99 rts *-------------------------------------- -WRITEBLOCK >PULLW ZPTmpPTR +WRITEBLOCK >STYA ZPTmpPTR lda (ZPTmpPTR) sta RXTX.Size @@ -347,8 +347,8 @@ WRITEBLOCK.1 ldy #S.ETH.SRCMAC+5 lda Offset+1 adc RXTX.Size+1 -* and /RXTX.MASK -* ora /TX.BASE + and /RXTX.MASK + ora /TX.BASE sta W5100.DR,x write HI pla sta W5100.DR,x write LO diff --git a/Floppies/A2OSX.BOOT.po b/Floppies/A2OSX.BOOT.po index 38336ce9a92372550afd3abbc33f77f59bbc7315..a33259410bb467bb5878a1d5dc678facdd5b3614 100644 GIT binary patch delta 4652 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 diff --git a/Floppies/A2OSX.BUILD.po b/Floppies/A2OSX.BUILD.po index ee8323b2a9608e6910adfa0373cce12b2e9aeb8d..427d196d11e49dafe6a86bfc88f91e698c5cc0b5 100644 GIT binary patch delta 2219 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 QD5;`o+Zl22jPAAn0}vAkK>z>% delta 8660 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 aKNx=}Z?NopMha&8CHNgr@&iw5Fa0l|pn_un diff --git a/README.md b/README.md index 0056f9db..32993b23 100644 --- a/README.md +++ b/README.md @@ -81,7 +81,7 @@ OApple+1,OApple+2,OApple+3 to switch between screens : Kernel Log, text, DHGR. | LOGIN | In Progress | no auth using /etc/passd yet | 0.9 | | SHELL | Working | (See Internal Shell commands) | 0.9 | | KCONFIG | Working | Kernel Configuration Utility | 0.9 | -| ---- | ------ | ------- | -----:| +| ---- | ------ | ------- | ----- | | TCPIP | Working | Socket API.ARP,IP,ICMP,UDP & TCP ok | 0.9 | | DHCPCLNT| Working | rewritten to use new Socket API | 0.9 | | TELNETD | In Progress | | 0.9 | @@ -126,14 +126,14 @@ note : '$VAR' does NOT expand Variable | Console.DRV | Working | ANSI support in Progress. | 0.9 | | SSC.DRV | Working | Apple "Super Serial Card" Driver | 0.9 | | SSC.I.DRV | Working | Apple "Super Serial Card" Driver (IRQ enabled) | 0.9 | -| PIC.DRV | In Progress | Apple "Parallel Interface Card" Driver, renamed from PPIC.DRV | 0.8 | +| PIC.DRV | In Progress | Apple "Parallel Interface Card" Driver, renamed from PPIC.DRV | 0.9 | | Mouse.DRV | Working | Apple Mouse Card,//c Mouse Port | 0.9 | | DHGR.DRV | In Progress | except bitblt... | 0.8 | | ---- | ------ | ------- | ----- | +| LanCeGS.DRV | Working | | 0.9 | | Uthernet.DRV | Working | | 0.9 | | Uthernet2.DRV | Working | | 0.9 | -| Uther2.AI.DRV | In Progress | With ARP/IP Offloading | 0.8 | -| LanCeGS.DRV | Working | | 0.8 | +| Uther2.AI.DRV | In Progress | With ARP/IP Offloading | 0.9 | ## BIN,External Shell commands: | Name | Status | Comment | K.Ver | diff --git a/SYS/KM.APPLETALK.S.txt b/SYS/KM.APPLETALK.S.txt index dda02358..2d438691 100644 --- a/SYS/KM.APPLETALK.S.txt +++ b/SYS/KM.APPLETALK.S.txt @@ -78,12 +78,18 @@ AT.INIT >LDAXI MSG.INIT bmi .5 >STYA MLI+1 + + >LDAXI MSG.ATINIT + jsr PrintCStrAX .5 jsr GO.WSCARD .DA #MLIATALK .DA MLIATALK.PARAMS bcs .9 + >LDAXI MSG.PRODOS + jsr PrintCStrAX + jsr MLI .DA #MLIALLOCIRQ .DA MLIALLOCIRQ.PARAMS @@ -116,9 +122,11 @@ GO.OLDMLI jmp $ffff .INB /A2OSX.SRC/X.PRINTF.S *-------------------------------------- MSG.INIT >CSTR "AppleTalk Driver For A2osX\n" +MSG.FAILED >CSTR "AppleTalk Workstation Card Failed Power Up Diagnostics : EC=%h.\n" MSG.NOHW >CSTR "AppleTalk Workstation Card Not Found.\n" MSG.HWOK >CSTR "AppleTalk Workstation Card Type #%d Found In Slot #%d.\n" -MSG.FAILED >CSTR "AppleTalk Workstation Card Failed Power Up Diagnostics : EC=%h.\n" +MSG.ATINIT >CSTR "Calling ATINIT..." +MSG.PRODOS >CSTR "Registering Into ProDOS..." MSG.OK >CSTR "AppleTalk Driver Successfully Installed.\n" MSG.KO >CSTR "AppleTalk Driver Install Failed : EC=%h.\n" *--------------------------------------