A2osX/DRV/PPPSSC.DRV.S.D.txt

949 lines
17 KiB
Plaintext
Raw Normal View History

NEW
AUTO 3,1
.LIST OFF
*--------------------------------------
* Driver Code
*--------------------------------------
ZPIOCTL .EQ ZPDRV
ZPBufPtr .EQ ZPDRV+2
ZPCount .EQ ZPDRV+4
ZPnCount .EQ ZPDRV+6
ZPFCS .EQ ZPDRV+8
ZPb7D .EQ ZPDRV+10
.DO DBG=1
TempB .EQ ZPDRV+11
.FIN
*--------------------------------------
DRV.CS.START cld!
jmp (.1,x)
.1 .DA STATUS
.DA A2osX.BADCALL
.DA A2osX.BADCALL
.DA A2osX.BADCALL
.DA CONTROL
.DA A2osX.BADCALL
.DA OPEN
.DA CLOSE
.DA READ
.DA WRITE
.DA 0 end or relocation
*--------------------------------------
STATUS jsr STATUS.CONTROL.Init
ldy #S.IOCTL.S
lda (ZPIOCTL),y
beq .1
cmp #S.IOCTL.S.GETDIB
bne STATUS.DCB
ldy #S.DIB-1
.HS 2C bit abs
.1 ldy #3
.2 lda DIB,y
sta (ZPBufPtr),y
dey
bpl .2
clc
rts
STATUS.DCB cmp #S.IOCTL.S.GETDCB
bne .3
ldy #S.DCB.NIC-1
.2 lda DCB,y
sta (ZPBufPtr),y
dey
bpl .2
clc
rts
.3 cmp #S.IOCTL.S.EOF
bne STATUS.9
lda DIB+S.DIB.S
and #S.DIB.S.OPENED
beq OPEN.E
lda INBUF.CNT
ora INBUF.CNT+1
bne .8 NO DATA? eof = TRUE
lda #1
clc
rts
.8 lda #0
clc
rts
STATUS.9 lda #MLI.E.BADCTL
sec
rts
*--------------------------------------
CONTROL jsr STATUS.CONTROL.Init
ldy #S.IOCTL.C
lda (ZPIOCTL),y
cmp #S.IOCTL.C.SETDCB
bne STATUS.9
ldy #S.DCB.NIC-1
.2 lda (ZPBufPtr),y
sta DCB,y
dey
bpl .2
*--------------------------------------
OPEN lda DIB+S.DIB.S
bit #S.DIB.S.OPENED
beq OPEN.1
OPEN.E lda #MLI.E.OPEN
sec
rts
OPEN.1 >LDYAI INBUF.SIZE
>SYSCALL2 GetMem
bcs .9
stx hINBUF
>STYA READ.GetByte.BUF+1
>STYA READ.SSC.BUF+1
sta INBUF.BASEH
stz INBUF.TAIL
stz INBUF.TAIL+1
stz INBUF.HEAD
stz INBUF.HEAD+1
stz INBUF.CNT
stz INBUF.CNT+1
lda #S.DIB.S.OPENED
tsb DIB+S.DIB.S
clc
.9 rts
*--------------------------------------
CLOSE php
sei
ldx DEVSLOTn08F
lda #SSC.CMD.RIRQDIS
sta SSC.CMD-$8F,x Applewin Bug ???
stz SSC.RESET-$8F,x
lda #S.DIB.S.OPENED
trb DIB+S.DIB.S
lda hINBUF
>SYSCALL2 FreeMem
plp
clc
rts
*--------------------------------------
READ >STYA ZPIOCTL
.1 jsr READ.SSC
bcs .99
.2 bit INBUF.MidFrame
bmi .97
jsr READ.Sync
bcs .98
cmp #$C0 C021 = LCP
beq .6
tay 0021 = IP
bne .2
jsr READ.GetByteEsc
bcs .98
cmp #$21
bne .2
jsr READ.GetByteEsc
bcs .98
cmp #$45 45 = S.IP.V.IHL
bne .2
jsr READ.GetByteEsc
bcs .98
* tay ignore DSCP.ECN
* bne .2
jsr READ.GetByteEsc HHLL = S.IP.TOTAL.LENGTH
bcs .98
sta ZPCount+1
eor #$ff
sta ZPnCount+1
jsr READ.GetByteEsc
bcs .98
sta ZPCount
eor #$ff
* clc
adc #4 already 4 bytes read
sta ZPnCount
bcc .3
inc ZPnCount+1
.3 jsr READ.NewFrame
bcs .99
phx hFrame
jsr READ.GetFrame
pla
bcc .99
>SYSCALL2 FreeMem
lda #MLI.E.IO
sec
.99 rts
*--------------------------------------
.6 jsr READ.GetByteEsc
bcs .98
cmp #$21 C021 = LCP
bne .2
jsr READ.GetByteEsc
bcs .98
cmp #$09 EchoReq ?
bne .2
ldy #7
.7 jsr READ.GetByteEsc
dey
bne .7
jsr READ.GetFrameTail
bcs .98
jsr READ.SendEchoRep
jmp .2
.97 sec
.98 lda #E.NODATA
rts
*--------------------------------------
READ.SSC php
sei
stz INBUF.LastByte
.DO DBG=1
stz INBUF.FirstByte
stz TempB
.FIN
ldx DEVSLOTn08F
lda SSC.STATUS-$8F,x
bit #SSC.STATUS.nDCD true when 0
bne .9
.DO SWFC=1
lda #C.XON
sta SSC.DATA-$8F,x
.FIN
.DO HWFC=1
lda #SSC.CMD.NOP+SSC.CMD.TE+SSC.CMD.RIRQDIS+SSC.CMD.DTR
sta SSC.CMD-$8F,x
.FIN
ldy #0
.2 lda SSC.STATUS-$8F,x
and #SSC.STATUS.RDRF
bne .3
iny
bne .2
.DO SWFC=1
lda #C.XOFF
sta SSC.DATA-$8F,x
.FIN
.DO HWFC=1
lda #SSC.CMD.NOP+SSC.CMD.RIRQDIS+SSC.CMD.DTR
sta SSC.CMD-$8F,x
.FIN
plp
clc
rts
.3 lda SSC.DATA-$8F,x
cmp #$7E
beq .4
cmp #$FF
bne .4
lda #$7E
jsr READ.SSC.StoreByte
lda #$ff
.4
.DO DBG=1
sta INBUF.FirstByte
inc TempB
.FIN
jsr READ.SSC.StoreByte
.40 ldy #0
.5 lda SSC.STATUS-$8F,x
and #SSC.STATUS.RDRF
beq .6
lda SSC.DATA-$8F,x
sta INBUF.LastByte
jsr READ.SSC.StoreByte
.DO DBG=1
inc TempB
.FIN
bra .40
.6 iny
bne .5
.DO SWFC=1
lda #C.XOFF
sta SSC.DATA-$8F,x
.FIN
.DO HWFC=1
lda #SSC.CMD.NOP+SSC.CMD.RIRQDIS+SSC.CMD.DTR
sta SSC.CMD-$8F,x
.FIN
.DO DBG=1
lda TempB
beq .7
ldy #34
jsr READ.SCC.PrintAy
lda INBUF.FirstByte
jsr READ.SCC.PrintAy
lda INBUF.LastByte
jsr READ.SCC.PrintAy
.FIN
.7 sec
lda INBUF.LastByte
eor #$7E
bne .8
clc
.8 ror INBUF.MidFrame
plp
clc
rts
.9 lda #MLI.E.IO
plp
sec
.99 rts
*--------------------------------------
.DO DBG=1
READ.SCC.PrintAy
pha
lsr
lsr
lsr
lsr
jsr .1
pla
and #$0F
.1 ora #$B0
cmp #"9"+1
bcc .2
adc #6
.2 sta $7D0,y
iny
rts
.FIN
*--------------------------------------
READ.SSC.StoreByte
READ.SSC.BUF sta $FFFF SELF MODIFIED
inc READ.SSC.BUF+1
bne .1
inc READ.SSC.BUF+2
.1 inc INBUF.CNT
bne .2
inc INBUF.CNT+1
.2 inc INBUF.HEAD
bne .8
inc INBUF.HEAD+1
lda INBUF.HEAD+1
eor /INBUF.SIZE
bne .8
stz INBUF.HEAD+1
lda INBUF.BASEH
sta READ.SSC.BUF+2
.8 rts
*--------------------------------------
READ.NewFrame lda ZPCount
clc
adc #S.ETH.EII
ldy #S.IOCTL.BYTECNT
sta (ZPIOCTL),y
pha
lda ZPCount+1
adc /S.ETH.EII
iny
sta (ZPIOCTL),y
ply
>SYSCALL2 GetMem
bcs .9
>STYA ZPBufPtr
phy
ldy #S.IOCTL.BUFPTR+1
sta (ZPIOCTL),y
dey
pla
sta (ZPIOCTL),y
ldy #S.ETH.EII.TYPE-1
lda #0
.1 sta (ZPBufPtr),y Zero Src/Dst MAC
dey
bpl .1
ldy #S.ETH.EII.TYPE
lda /S.ETH.EII.TYPE.IP
sta (ZPBufPtr),y
iny
lda #S.ETH.EII.TYPE.IP
sta (ZPBufPtr),y
ldy #S.IP.V.IHL
lda #$45
sta (ZPBufPtr),y
iny
lda #0
sta (ZPBufPtr),y
iny S.IP.TOTAL.LENGTH
lda ZPCount+1
sta (ZPBufPtr),y
iny
lda ZPCount
sta (ZPBufPtr),y
iny
tya
* clc
adc ZPBufPtr
sta ZPBufPtr
bcc .8
inc ZPBufPtr+1
clc
.8
* clc
.9 rts
*--------------------------------------
READ.GetFrame inc ZPnCount
bne .1
inc ZPnCount+1
beq READ.GetFrameTail
.1 jsr READ.GetByteEsc
bcs READ.GetFrame.RTS
sta (ZPBufPtr)
inc ZPBufPtr
bne READ.GetFrame
inc ZPBufPtr+1
bra READ.GetFrame
READ.GetFrameTail
jsr READ.GetByteEsc skip FCS HI
bcs .9
jsr READ.GetByteEsc skip FCS LO
bcs .9
jsr READ.GetByte
bcs .9
eor #$7E
beq .9
sec
.9
READ.GetFrame.RTS
rts
*--------------------------------------
READ.Sync jsr READ.GetByte
bcs READ.GetByte.RTS
.1 cmp #$7E
bne READ.Sync
jsr READ.GetByteEsc
bcs READ.GetByte.RTS
cmp #$FF
bne .1
jsr READ.GetByteEsc
bcs READ.GetByte.RTS
cmp #$03
bne .1
*--------------------------------------
READ.GetByteEsc jsr READ.GetByte
bcs READ.GetByte.RTS
cmp #$7D
bne READ.GetByte.8
jsr READ.GetByte
bcs READ.GetByte.RTS
eor #%00100000
* clc
rts
READ.GetByte lda INBUF.CNT
bne READ.GetByte.1
lda INBUF.CNT+1
beq READ.GetByte.9
dec INBUF.CNT+1
READ.GetByte.1 dec INBUF.CNT
READ.GetByte.BUF
lda $FFFF SELF MODIFIED
inc READ.GetByte.BUF+1
bne .1
inc READ.GetByte.BUF+2
.1 inc INBUF.TAIL
bne READ.GetByte.8
inc INBUF.TAIL+1
phy
ldy INBUF.TAIL+1
cpy /INBUF.SIZE
bne .7
stz INBUF.TAIL+1
ldy INBUF.BASEH
sty READ.GetByte.BUF+2
.7 ply
READ.GetByte.8 clc
rts
READ.GetByte.9 sec
READ.GetByte.RTS
rts
*--------------------------------------
READ.SendEchoRep
.DO DBG=1
lda #"P"
sta $7D0+33
.FIN
ldx DEVSLOTn08F
.DO HWFC=1
lda #SSC.CMD.NOP+SSC.CMD.TE+SSC.CMD.RIRQDIS+SSC.CMD.DTR
sta SSC.CMD-$8F,x
.FIN
lda #$7E
jsr WRITE.Byte
ldy #0
.1 lda LCP.EchoRep,y
jsr WRITE.ByteEsc
iny
cpy #LCP.EchoRep.TOTAL
bne .1
lda #$7E
jsr WRITE.Byte
.2 lda SSC.STATUS-$8F,x
bit #SSC.STATUS.TDRE Register Empty ?
beq .2
.DO HWFC=1
lda #SSC.CMD.NOP+SSC.CMD.RIRQDIS+SSC.CMD.DTR
sta SSC.CMD-$8F,x
.FIN
rts
*--------------------------------------
* 7E FF 03 00 21 ... FCS FCS 7E
*--------------------------------------
WRITE >STYA ZPIOCTL
ldy #S.IOCTL.BUFPTR
lda (ZPIOCTL),y
clc
adc #S.ETH.EII
sta ZPBufPtr
iny
lda (ZPIOCTL),y
adc /S.ETH.EII
sta ZPBufPtr+1
iny #S.IOCTL.BYTECNT
lda (ZPIOCTL),y
sec
sbc #S.ETH.EII
eor #$ff
sta ZPCount
iny
lda (ZPIOCTL),y
sbc /S.ETH.EII
eor #$ff
sta ZPCount+1
ldx DEVSLOTn08F
php
sei
lda SSC.STATUS-$8F,x
bit #SSC.STATUS.nDCD true when 0
bne .9
.DO HWFC=1
lda #SSC.CMD.NOP+SSC.CMD.TE+SSC.CMD.RIRQDIS+SSC.CMD.DTR
sta SSC.CMD-$8F,x
.FIN
lda #$ff
sta ZPFCS
sta ZPFCS+1
lda #$7E
jsr WRITE.Byte
lda #$FF
jsr WRITE.ByteEscFCS
lda #$03
jsr WRITE.ByteEscFCS
lda #$00
jsr WRITE.ByteEscFCS
lda #$21
jsr WRITE.ByteEscFCS
.1 inc ZPCount
bne .2
inc ZPCount+1
beq .8
.2 lda (ZPBufPtr)
jsr WRITE.ByteEscFCS
inc ZPBufPtr
bne .1
inc ZPBufPtr+1
bra .1
.8 lda ZPFCS
eor #$ff
jsr WRITE.ByteEsc
lda ZPFCS+1
eor #$ff
jsr WRITE.ByteEsc
lda #$7E
jsr WRITE.Byte
.DO HWFC=1
lda #SSC.CMD.NOP+SSC.CMD.RIRQDIS+SSC.CMD.DTR
sta SSC.CMD-$8F,x
.FIN
plp
clc
rts
.9 lda #MLI.E.IO
plp
sec
rts
*--------------------------------------
WRITE.ByteEscFCS
pha
eor ZPFCS
tay
lda FCS.LO,y
eor ZPFCS+1
sta ZPFCS
lda FCS.HI,y
sta ZPFCS+1
pla
*--------------------------------------
WRITE.ByteEsc cmp #$7D
beq .1
cmp #$7E
beq .1
cmp #32
bcs WRITE.Byte
tax
bit ACCM.OUT,x
php
ldx DEVSLOTn08F
plp
bpl WRITE.Byte
.1 eor #%00100000
pha
lda #$7D
jsr WRITE.Byte
.HS 89 BIT imm
WRITE.Byte pha
.1 lda SSC.STATUS-$8F,x
bit #SSC.STATUS.TDRE Register Empty ?
beq .1
pla
sta SSC.DATA-$8F,x
rts
*--------------------------------------
STATUS.CONTROL.Init
>STYA ZPIOCTL
ldy #S.IOCTL.BUFPTR
lda (ZPIOCTL),y
sta ZPBufPtr
iny
lda (ZPIOCTL),y
sta ZPBufPtr+1
rts
*--------------------------------------
DRV.CS.END
*--------------------------------------
DEVSLOTn08F .BS 1
hINBUF .BS 1
INBUF.BASEH .BS 1
INBUF.TAIL .BS 2
INBUF.HEAD .BS 2
INBUF.CNT .BS 2
.DO DBG=1
INBUF.FirstByte .BS 1
.FIN
INBUF.LastByte .BS 1
INBUF.MidFrame .BS 1
*--------------------------------------
DIB .DA #0
.DA #0,#0,#0 size
2022-11-02 06:54:30 +00:00
.PS "SSC/PPP Driver "
.DA #S.DIB.T.NIC
.DA #0
.DA K.VER
*--------------------------------------
DCB .DA #S.DCB.T.NIC
.DA #S.DCB.NIC.FLAGS.ARPOFFLOAD
.DA #S.DCB.NIC.LINK.OK+S.DCB.NIC.LINK.FD
.DA #S.DCB.NIC.SPEED.10
.HS 000A1A123456 MAC
DCB.IP .BS 4
DCB.MASK .HS FF.FF.FF.FF
DCB.GW .BS 4
*--------------------------------------
ACCM.OUT .HS 8080808080808080 Default = FFFFFFFF
.HS 8080808080808080
.HS 8080808080808080
.HS 8080808080808080
*--------------------------------------
FRAME.HEADER .HS 7E 7EFF03
LCP.EchoRep .HS FF03
.HS C021 LCP
LCP.EchoRep.DATA
.HS 0A Echo-Reply
.HS FF ID
.DA /LCP.EchoRep.LEN,#LCP.EchoRep.LEN
.HS 05.06.EA4C2B41 MAGIC
LCP.EchoRep.LEN .EQ *-LCP.EchoRep.DATA
.BS 2 FCS
LCP.EchoRep.TOTAL .EQ *-LCP.EchoRep
*--------------------------------------
FCS.LO .DA #$0000,#$1189,#$2312,#$329b,#$4624,#$57ad,#$6536,#$74bf
.DA #$8c48,#$9dc1,#$af5a,#$bed3,#$ca6c,#$dbe5,#$e97e,#$f8f7
.DA #$1081,#$0108,#$3393,#$221a,#$56a5,#$472c,#$75b7,#$643e
.DA #$9cc9,#$8d40,#$bfdb,#$ae52,#$daed,#$cb64,#$f9ff,#$e876
.DA #$2102,#$308b,#$0210,#$1399,#$6726,#$76af,#$4434,#$55bd
.DA #$ad4a,#$bcc3,#$8e58,#$9fd1,#$eb6e,#$fae7,#$c87c,#$d9f5
.DA #$3183,#$200a,#$1291,#$0318,#$77a7,#$662e,#$54b5,#$453c
.DA #$bdcb,#$ac42,#$9ed9,#$8f50,#$fbef,#$ea66,#$d8fd,#$c974
.DA #$4204,#$538d,#$6116,#$709f,#$0420,#$15a9,#$2732,#$36bb
.DA #$ce4c,#$dfc5,#$ed5e,#$fcd7,#$8868,#$99e1,#$ab7a,#$baf3
.DA #$5285,#$430c,#$7197,#$601e,#$14a1,#$0528,#$37b3,#$263a
.DA #$decd,#$cf44,#$fddf,#$ec56,#$98e9,#$8960,#$bbfb,#$aa72
.DA #$6306,#$728f,#$4014,#$519d,#$2522,#$34ab,#$0630,#$17b9
.DA #$ef4e,#$fec7,#$cc5c,#$ddd5,#$a96a,#$b8e3,#$8a78,#$9bf1
.DA #$7387,#$620e,#$5095,#$411c,#$35a3,#$242a,#$16b1,#$0738
.DA #$ffcf,#$ee46,#$dcdd,#$cd54,#$b9eb,#$a862,#$9af9,#$8b70
.DA #$8408,#$9581,#$a71a,#$b693,#$c22c,#$d3a5,#$e13e,#$f0b7
.DA #$0840,#$19c9,#$2b52,#$3adb,#$4e64,#$5fed,#$6d76,#$7cff
.DA #$9489,#$8500,#$b79b,#$a612,#$d2ad,#$c324,#$f1bf,#$e036
.DA #$18c1,#$0948,#$3bd3,#$2a5a,#$5ee5,#$4f6c,#$7df7,#$6c7e
.DA #$a50a,#$b483,#$8618,#$9791,#$e32e,#$f2a7,#$c03c,#$d1b5
.DA #$2942,#$38cb,#$0a50,#$1bd9,#$6f66,#$7eef,#$4c74,#$5dfd
.DA #$b58b,#$a402,#$9699,#$8710,#$f3af,#$e226,#$d0bd,#$c134
.DA #$39c3,#$284a,#$1ad1,#$0b58,#$7fe7,#$6e6e,#$5cf5,#$4d7c
.DA #$c60c,#$d785,#$e51e,#$f497,#$8028,#$91a1,#$a33a,#$b2b3
.DA #$4a44,#$5bcd,#$6956,#$78df,#$0c60,#$1de9,#$2f72,#$3efb
.DA #$d68d,#$c704,#$f59f,#$e416,#$90a9,#$8120,#$b3bb,#$a232
.DA #$5ac5,#$4b4c,#$79d7,#$685e,#$1ce1,#$0d68,#$3ff3,#$2e7a
.DA #$e70e,#$f687,#$c41c,#$d595,#$a12a,#$b0a3,#$8238,#$93b1
.DA #$6b46,#$7acf,#$4854,#$59dd,#$2d62,#$3ceb,#$0e70,#$1ff9
.DA #$f78f,#$e606,#$d49d,#$c514,#$b1ab,#$a022,#$92b9,#$8330
.DA #$7bc7,#$6a4e,#$58d5,#$495c,#$3de3,#$2c6a,#$1ef1,#$0f78
*--------------------------------------
FCS.HI .DA /$0000,/$1189,/$2312,/$329b,/$4624,/$57ad,/$6536,/$74bf
.DA /$8c48,/$9dc1,/$af5a,/$bed3,/$ca6c,/$dbe5,/$e97e,/$f8f7
.DA /$1081,/$0108,/$3393,/$221a,/$56a5,/$472c,/$75b7,/$643e
.DA /$9cc9,/$8d40,/$bfdb,/$ae52,/$daed,/$cb64,/$f9ff,/$e876
.DA /$2102,/$308b,/$0210,/$1399,/$6726,/$76af,/$4434,/$55bd
.DA /$ad4a,/$bcc3,/$8e58,/$9fd1,/$eb6e,/$fae7,/$c87c,/$d9f5
.DA /$3183,/$200a,/$1291,/$0318,/$77a7,/$662e,/$54b5,/$453c
.DA /$bdcb,/$ac42,/$9ed9,/$8f50,/$fbef,/$ea66,/$d8fd,/$c974
.DA /$4204,/$538d,/$6116,/$709f,/$0420,/$15a9,/$2732,/$36bb
.DA /$ce4c,/$dfc5,/$ed5e,/$fcd7,/$8868,/$99e1,/$ab7a,/$baf3
.DA /$5285,/$430c,/$7197,/$601e,/$14a1,/$0528,/$37b3,/$263a
.DA /$decd,/$cf44,/$fddf,/$ec56,/$98e9,/$8960,/$bbfb,/$aa72
.DA /$6306,/$728f,/$4014,/$519d,/$2522,/$34ab,/$0630,/$17b9
.DA /$ef4e,/$fec7,/$cc5c,/$ddd5,/$a96a,/$b8e3,/$8a78,/$9bf1
.DA /$7387,/$620e,/$5095,/$411c,/$35a3,/$242a,/$16b1,/$0738
.DA /$ffcf,/$ee46,/$dcdd,/$cd54,/$b9eb,/$a862,/$9af9,/$8b70
.DA /$8408,/$9581,/$a71a,/$b693,/$c22c,/$d3a5,/$e13e,/$f0b7
.DA /$0840,/$19c9,/$2b52,/$3adb,/$4e64,/$5fed,/$6d76,/$7cff
.DA /$9489,/$8500,/$b79b,/$a612,/$d2ad,/$c324,/$f1bf,/$e036
.DA /$18c1,/$0948,/$3bd3,/$2a5a,/$5ee5,/$4f6c,/$7df7,/$6c7e
.DA /$a50a,/$b483,/$8618,/$9791,/$e32e,/$f2a7,/$c03c,/$d1b5
.DA /$2942,/$38cb,/$0a50,/$1bd9,/$6f66,/$7eef,/$4c74,/$5dfd
.DA /$b58b,/$a402,/$9699,/$8710,/$f3af,/$e226,/$d0bd,/$c134
.DA /$39c3,/$284a,/$1ad1,/$0b58,/$7fe7,/$6e6e,/$5cf5,/$4d7c
.DA /$c60c,/$d785,/$e51e,/$f497,/$8028,/$91a1,/$a33a,/$b2b3
.DA /$4a44,/$5bcd,/$6956,/$78df,/$0c60,/$1de9,/$2f72,/$3efb
.DA /$d68d,/$c704,/$f59f,/$e416,/$90a9,/$8120,/$b3bb,/$a232
.DA /$5ac5,/$4b4c,/$79d7,/$685e,/$1ce1,/$0d68,/$3ff3,/$2e7a
.DA /$e70e,/$f687,/$c41c,/$d595,/$a12a,/$b0a3,/$8238,/$93b1
.DA /$6b46,/$7acf,/$4854,/$59dd,/$2d62,/$3ceb,/$0e70,/$1ff9
.DA /$f78f,/$e606,/$d49d,/$c514,/$b1ab,/$a022,/$92b9,/$8330
.DA /$7bc7,/$6a4e,/$58d5,/$495c,/$3de3,/$2c6a,/$1ef1,/$0f78
*--------------------------------------
DRV.END
*--------------------------------------
MAN
SAVE usr/src/drv/pppssc.drv.s.d
LOAD usr/src/drv/pppssc.drv.s
ASM