Kernel version 0.8 : Exported SSC EQUATES in a separate X. file

This commit is contained in:
Rémy GIBERT 2016-12-12 17:38:32 +01:00
parent dfd8ecf162
commit bf25ef28a8
3 changed files with 100 additions and 113 deletions

View File

@ -13,33 +13,7 @@ AUTO 6
*-------------------------------------- *--------------------------------------
ZPTmpPtr1 .EQ ZPDRV ZPTmpPtr1 .EQ ZPDRV
*-------------------------------------- *--------------------------------------
* SSC/ACIA I/O .INB DRV/X.SER.6551.S
*--------------------------------------
SSC.REG.DIPSW1 .EQ $C081 R
SSC.REG.DIPSW2 .EQ $C082 R
SSC.REG.DATA .EQ $C088 R,W
SSC.REG.RESET .EQ $C089 W
SSC.REG.STATUS .EQ $C089 R
SSC.REG.STATUS.IRQ .EQ %10000000
SSC.REG.STATUS.DSR .EQ %01000000
SSC.REG.STATUS.DCD .EQ %00100000
SSC.REG.STATUS.TDRE .EQ %00010000
SSC.REG.STATUS.RDRF .EQ %00001000
SSC.REG.STATUS.OE .EQ %00000100
SSC.REG.STATUS.FE .EQ %00000010
SSC.REG.STATUS.PE .EQ %00000001
SSC.REG.CMD .EQ $C08A W
SSC.REG.CMD.ODDP .EQ %00100000
SSC.REG.CMD.EVENP .EQ %01100000
SSC.REG.CMD.MARKP .EQ %10100000
SSC.REG.CMD.SPACEP .EQ %11100000
SSC.REG.CMD.ECHO .EQ %00010000
SSC.REG.CMD.TENOIRQ .EQ %00001000
SSC.REG.CMD.TEIRQ .EQ %00000100
SSC.REG.CMD.TBRK .EQ %00001100
SSC.REG.CMD.RIRQDIS .EQ %00000010
SSC.REG.CMD.DTR .EQ %00000001
SSC.REG.CTL .EQ $C08B W
*-------------------------------------- *--------------------------------------
* File Header (16 Bytes) * File Header (16 Bytes)
*-------------------------------------- *--------------------------------------
@ -143,29 +117,29 @@ OPEN ldx DEVSLOTn0
php php
sei sei
stz SSC.REG.RESET,x stz SSC.RESET,x
lda #$1E lda #$1E
sta SSC.REG.CTL,x sta SSC.CTL,x
ldx DEVSLOTn0 ldx DEVSLOTn0
lda #SSC.REG.CMD.TENOIRQ+SSC.REG.CMD.RIRQDIS lda #SSC.CMD.RIRQDIS
sta SSC.REG.CMD,x sta SSC.CMD,x
lda SSC.REG.STATUS,x clear any IRQ pending lda SSC.STATUS,x clear any IRQ pending
bmi * bmi *
plp plp
clc clc
rts rts
*-------------------------------------- *--------------------------------------
GETEVENT ldx DEVSLOTn0 GETEVENT ldx DEVSLOTn0
lda SSC.REG.STATUS,x lda SSC.STATUS,x
bmi * bmi *
and #SSC.REG.STATUS.RDRF incoming char? and #SSC.STATUS.RDRF incoming char?
beq .9 beq .9
lda SSC.REG.DATA,x lda SSC.DATA,x
ldy #S.EVT.DATA ldy #S.EVT.DATA
sta (pEvent),y sta (pEvent),y
@ -186,16 +160,16 @@ GETEVENT ldx DEVSLOTn0
COUT pha COUT pha
ldx DEVSLOTn0 ldx DEVSLOTn0
.1 lda SSC.REG.STATUS,x .1 lda SSC.STATUS,x
bmi * bmi *
and #SSC.REG.STATUS.DCD+SSC.REG.STATUS.DSR and #SSC.STATUS.DCD+SSC.STATUS.DSR
beq .9 beq .9
and #SSC.REG.STATUS.TDRE Outgoing char? and #SSC.STATUS.TDRE Outgoing char?
bne .1 bne .1
pla pla
sta SSC.REG.DATA,x sta SSC.DATA,x
clc clc
rts rts
@ -207,7 +181,7 @@ COUT pha
CLOSE php CLOSE php
sei sei
ldx DEVSLOTn0 ldx DEVSLOTn0
stz SSC.REG.RESET,x stz SSC.RESET,x
plp plp
clc clc
rts rts

View File

@ -15,64 +15,13 @@ BUF.SIZE .EQ $20
BUF.MASK .EQ $1F BUF.MASK .EQ $1F
*-------------------------------------- *--------------------------------------
ZPTmpPtr1 .EQ ZPDRV ZPTmpPtr1 .EQ ZPDRV
*--------------------------------------
.INB DRV/X.SER.6551.S
*-------------------------------------- *--------------------------------------
* see this : * see this :
* http://mirrors.apple2.org.za/apple.cabi.net/Applications/Telcom/SSC.DRIVER/SSC.DRIVER.TXT * http://mirrors.apple2.org.za/apple.cabi.net/Applications/Telcom/SSC.DRIVER/SSC.DRIVER.TXT
* About False read issue in SSC * About False read issue in SSC
*-------------------------------------- *--------------------------------------
* SSC/ACIA I/O
*--------------------------------------
SSC.REG.DIPSW1 .EQ $C081 R
SSC.REG.DIPSW2 .EQ $C082 R
SSC.REG.DATA .EQ $C088 R,W
SSC.REG.RESET .EQ $C089 W
SSC.REG.STATUS .EQ $C089 R
SSC.REG.STATUS.IRQ .EQ %10000000
SSC.REG.STATUS.DSR .EQ %01000000
SSC.REG.STATUS.DCD .EQ %00100000
SSC.REG.STATUS.TDRE .EQ %00010000
SSC.REG.STATUS.RDRF .EQ %00001000
SSC.REG.STATUS.OE .EQ %00000100
SSC.REG.STATUS.FE .EQ %00000010
SSC.REG.STATUS.PE .EQ %00000001
SSC.REG.CMD .EQ $C08A W
SSC.REG.CMD.NOP .EQ %00000000
SSC.REG.CMD.ODDP .EQ %00100000
SSC.REG.CMD.EVENP .EQ %01100000
SSC.REG.CMD.MARKP .EQ %10100000
SSC.REG.CMD.SPACEP .EQ %11100000
SSC.REG.CMD.ECHO .EQ %00010000
SSC.REG.CMD.TBRK .EQ %00001100
SSC.REG.CMD.TE .EQ %00001000
SSC.REG.CMD.TEIRQ .EQ %00000100
SSC.REG.CMD.RIRQDIS .EQ %00000010
SSC.REG.CMD.DTR .EQ %00000001
SSC.REG.CTL .EQ $C08B W
SSC.REG.CTL.1S .EQ %00000000
SSC.REG.CTL.2S .EQ %10000000
SSC.REG.CTL.8D .EQ %00000000
SSC.REG.CTL.7D .EQ %00100000
SSC.REG.CTL.6D .EQ %01000000
SSC.REG.CTL.5D .EQ %01100000
SSC.REG.CTL.CLKEXT .EQ %00000000
SSC.REG.CTL.CLKINT .EQ %00010000
SSC.REG.CTL.B16EXT .EQ %00000000
SSC.REG.CTL.B50 .EQ %00000001
SSC.REG.CTL.B75 .EQ %00000010
SSC.REG.CTL.B110 .EQ %00000011
SSC.REG.CTL.B135 .EQ %00000100
SSC.REG.CTL.B150 .EQ %00000101
SSC.REG.CTL.B300 .EQ %00000110
SSC.REG.CTL.B600 .EQ %00000111
SSC.REG.CTL.B1200 .EQ %00001000
SSC.REG.CTL.B1800 .EQ %00001001
SSC.REG.CTL.B2400 .EQ %00001010
SSC.REG.CTL.B3600 .EQ %00001011
SSC.REG.CTL.B4800 .EQ %00001100
SSC.REG.CTL.B7200 .EQ %00001101
SSC.REG.CTL.B9600 .EQ %00001110
SSC.REG.CTL.B19200 .EQ %00001111
*--------------------------------------
* File Header (16 Bytes) * File Header (16 Bytes)
*-------------------------------------- *--------------------------------------
CS.START cld CS.START cld
@ -135,7 +84,7 @@ Dev.Detect sta hArgs
asl asl
sta DEVSLOTn0 sta DEVSLOTn0
clc clc
adc #SSC.REG.DATA+1 adc #SSC.DATA+1
sta DEV.DATA.BFFF sta DEV.DATA.BFFF
>PUSHW L.DEV.HEADER.NAME >PUSHW L.DEV.HEADER.NAME
@ -178,21 +127,21 @@ OPEN php
sei sei
ldx DEVSLOTn0 ldx DEVSLOTn0
stz SSC.REG.RESET,x stz SSC.RESET,x
stz INBUF.PTR stz INBUF.PTR
stz INBUF.CNT stz INBUF.CNT
stz OUTBUF.PTR stz OUTBUF.PTR
stz OUTBUF.CNT stz OUTBUF.CNT
lda #SSC.REG.CTL.CLKINT+SSC.REG.CTL.B9600 lda #SSC.CTL.CLKINT+SSC.CTL.B9600
sta SSC.REG.CTL,x sta SSC.CTL,x
lda #SSC.REG.CMD.TE+SSC.REG.CMD.DTR lda #SSC.CMD.TE+SSC.CMD.DTR
sta SSC.REG.CMD,x sta SSC.CMD,x
lda SSC.REG.DATA,x discard any garbage byte lda SSC.DATA,x discard any garbage byte
lda SSC.REG.STATUS,x clear any IRQ pending lda SSC.STATUS,x clear any IRQ pending
plp plp
clc clc
@ -237,15 +186,15 @@ COUT php
tay save char in Y tay save char in Y
ldx DEVSLOTn0 ldx DEVSLOTn0
lda SSC.REG.STATUS,x lda SSC.STATUS,x
bit #SSC.REG.STATUS.DCD+SSC.REG.STATUS.DSR true when 0 bit #SSC.STATUS.DCD+SSC.STATUS.DSR true when 0
bne .9 bne .9
ldx OUTBUF.CNT Buffer Empty? ldx OUTBUF.CNT Buffer Empty?
bne .10 not empty, queue char bne .10 not empty, queue char
and #SSC.REG.STATUS.TDRE Register Empty ? and #SSC.STATUS.TDRE Register Empty ?
beq .10 not empty, queue char beq .10 not empty, queue char
tya yes, write directly to ACIA tya yes, write directly to ACIA
@ -271,8 +220,8 @@ COUT php
inc OUTBUF.CNT inc OUTBUF.CNT
* ldx DEVSLOTn0 * ldx DEVSLOTn0
lda #SSC.REG.CMD.TEIRQ+SSC.REG.CMD.DTR lda #SSC.CMD.TEIRQ+SSC.CMD.DTR
sta SSC.REG.CMD,x sta SSC.CMD,x
plp plp
clc clc
rts rts
@ -284,7 +233,7 @@ COUT php
CLOSE php CLOSE php
sei sei
ldx DEVSLOTn0 ldx DEVSLOTn0
stz SSC.REG.RESET,x stz SSC.RESET,x
plp plp
clc clc
rts rts
@ -297,15 +246,15 @@ GETINFO >LDYA L.DEVINFO
* on exit, CC if handled * on exit, CC if handled
*-------------------------------------- *--------------------------------------
IRQ ldx DEVSLOTn0 IRQ ldx DEVSLOTn0
lda SSC.REG.STATUS,x IRQ from this device ? lda SSC.STATUS,x IRQ from this device ?
* bpl .9 no, exit !!!!Applewin bug #308!!!! * bpl .9 no, exit !!!!Applewin bug #308!!!!
bit #SSC.REG.STATUS.RDRF incoming char? bit #SSC.STATUS.RDRF incoming char?
beq .1 beq .1
*------------ IRQ In *------------ IRQ In
ldy SSC.REG.DATA,x read data to clear IRQ ldy SSC.DATA,x read data to clear IRQ
lda INBUF.CNT lda INBUF.CNT
cmp #BUF.SIZE cmp #BUF.SIZE
@ -323,7 +272,7 @@ IRQ ldx DEVSLOTn0
*------------ IRQ Out *------------ IRQ Out
.1 bit #SSC.REG.STATUS.TDRE .1 bit #SSC.STATUS.TDRE
beq .2 no transmit, no recieve, CTS changed! beq .2 no transmit, no recieve, CTS changed!
lda OUTBUF.CNT something to transmit ? lda OUTBUF.CNT something to transmit ?
@ -342,8 +291,8 @@ IRQ ldx DEVSLOTn0
clc clc
rts rts
.11 lda #SSC.REG.CMD.TE+SSC.REG.CMD.DTR .11 lda #SSC.CMD.TE+SSC.CMD.DTR
sta SSC.REG.CMD,x sta SSC.CMD,x
clc clc
rts rts

64
DRV/X.SER.6551.S.txt Normal file
View File

@ -0,0 +1,64 @@
PR#3
PREFIX /A2OSX.SRC
NEW
INC 1
AUTO 6
.LIST OFF
*--------------------------------------
* SSC/ACIA 6551 I/O
*--------------------------------------
SSC.DIPSW1 .EQ $C081 R
SSC.DIPSW2 .EQ $C082 R
SSC.DATA .EQ $C088 R,W
SSC.RESET .EQ $C089 W
SSC.STATUS .EQ $C089 R
SSC.STATUS.IRQ .EQ %10000000
SSC.STATUS.DSR .EQ %01000000
SSC.STATUS.DCD .EQ %00100000
SSC.STATUS.TDRE .EQ %00010000
SSC.STATUS.RDRF .EQ %00001000
SSC.STATUS.OE .EQ %00000100
SSC.STATUS.FE .EQ %00000010
SSC.STATUS.PE .EQ %00000001
SSC.CMD .EQ $C08A W
SSC.CMD.NOP .EQ %00000000
SSC.CMD.ODDP .EQ %00100000
SSC.CMD.EVENP .EQ %01100000
SSC.CMD.MARKP .EQ %10100000
SSC.CMD.SPACEP .EQ %11100000
SSC.CMD.ECHO .EQ %00010000
SSC.CMD.TBRK .EQ %00001100
SSC.CMD.TE .EQ %00001000
SSC.CMD.TEIRQ .EQ %00000100
SSC.CMD.RIRQDIS .EQ %00000010
SSC.CMD.DTR .EQ %00000001
SSC.CTL .EQ $C08B W
SSC.CTL.1S .EQ %00000000
SSC.CTL.2S .EQ %10000000
SSC.CTL.8D .EQ %00000000
SSC.CTL.7D .EQ %00100000
SSC.CTL.6D .EQ %01000000
SSC.CTL.5D .EQ %01100000
SSC.CTL.CLKEXT .EQ %00000000
SSC.CTL.CLKINT .EQ %00010000
SSC.CTL.B16EXT .EQ %00000000
SSC.CTL.B50 .EQ %00000001
SSC.CTL.B75 .EQ %00000010
SSC.CTL.B110 .EQ %00000011
SSC.CTL.B135 .EQ %00000100
SSC.CTL.B150 .EQ %00000101
SSC.CTL.B300 .EQ %00000110
SSC.CTL.B600 .EQ %00000111
SSC.CTL.B1200 .EQ %00001000
SSC.CTL.B1800 .EQ %00001001
SSC.CTL.B2400 .EQ %00001010
SSC.CTL.B3600 .EQ %00001011
SSC.CTL.B4800 .EQ %00001100
SSC.CTL.B7200 .EQ %00001101
SSC.CTL.B9600 .EQ %00001110
SSC.CTL.B19200 .EQ %00001111
SSC.CTL.B115200 .EQ %00010000
*--------------------------------------
MAN
SAVE DRV/X.SER.6551.S