mirror of
https://github.com/A2osX/A2osX.git
synced 2024-09-10 22:54:59 +00:00
Kernel 0.9.2
This commit is contained in:
parent
f32fc33900
commit
aad9f9912f
Binary file not shown.
Binary file not shown.
@ -146,6 +146,9 @@ FD.DEV.NAME .AZ "COM1" NAME
|
|||||||
* Driver Code
|
* Driver Code
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPIOCTL .EQ ZPDRV
|
ZPIOCTL .EQ ZPDRV
|
||||||
|
ZPBufPtr .EQ ZPDRV+2
|
||||||
|
ZPCount .EQ ZPDRV+4
|
||||||
|
ZPCount2 .EQ ZPDRV+6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.CS.START cld
|
DRV.CS.START cld
|
||||||
jmp (.1,x)
|
jmp (.1,x)
|
||||||
@ -282,59 +285,134 @@ CLOSE php
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
READ >STYA ZPIOCTL
|
READ >STYA ZPIOCTL
|
||||||
|
|
||||||
.DO SSCIRQ=1
|
|
||||||
php
|
php
|
||||||
sei
|
sei
|
||||||
ldx INBUF.TAIL
|
ldy #S.IOCTL.BUFPTR
|
||||||
cpx INBUF.HEAD
|
lda (ZPIOCTL),y
|
||||||
|
sta ZPBufPtr
|
||||||
|
iny
|
||||||
|
lda (ZPIOCTL),y
|
||||||
|
sta ZPBufPtr+1
|
||||||
|
|
||||||
|
* ldy #S.IOCTL.BYTECNT
|
||||||
|
iny
|
||||||
|
|
||||||
|
lda (ZPIOCTL),y
|
||||||
|
eor #$ff
|
||||||
|
sta ZPCount
|
||||||
|
iny
|
||||||
|
lda (ZPIOCTL),y
|
||||||
|
eor #$ff
|
||||||
|
sta ZPCount+1
|
||||||
|
|
||||||
|
stz ZPCount2
|
||||||
|
stz ZPCount2+1
|
||||||
|
|
||||||
|
ldx DEVSLOTn08F
|
||||||
|
|
||||||
|
.10 inc ZPCount
|
||||||
|
bne .11
|
||||||
|
inc ZPCount+1
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
.11 .DO SSCIRQ=1
|
||||||
|
ldy INBUF.TAIL
|
||||||
|
cpy INBUF.HEAD
|
||||||
beq .2
|
beq .2
|
||||||
|
|
||||||
lda INBUF,x
|
lda INBUF,y
|
||||||
inx
|
iny
|
||||||
cpx #BUF.SIZE
|
cpy #BUF.SIZE
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
ldx #0
|
ldy #0
|
||||||
|
|
||||||
.1 stx INBUF.TAIL
|
.1 sty INBUF.TAIL
|
||||||
|
|
||||||
|
sta (ZPBufPtr)
|
||||||
|
inc ZPBufPtr
|
||||||
|
bne .12
|
||||||
|
inc ZPBufPtr+1
|
||||||
|
|
||||||
|
.12 inc ZPCount2
|
||||||
|
bne .10
|
||||||
|
inc ZPCount2+1
|
||||||
|
bra .10
|
||||||
|
|
||||||
|
.FIN
|
||||||
|
|
||||||
|
.2 lda SSC.STATUS-$8F,x
|
||||||
|
bit #SSC.STATUS.nDSR true when 0
|
||||||
|
bne .9
|
||||||
|
|
||||||
|
ldx DEVSLOTn08F
|
||||||
|
lda SSC.STATUS-$8F,x
|
||||||
|
|
||||||
|
and #SSC.STATUS.RDRF incoming char?
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
sta (ZPBufPtr)
|
||||||
|
inc ZPBufPtr
|
||||||
|
bne .13
|
||||||
|
inc ZPBufPtr+1
|
||||||
|
|
||||||
|
.13 inc ZPCount2
|
||||||
|
bne .2
|
||||||
|
inc ZPCount2+1
|
||||||
|
bra .2
|
||||||
|
|
||||||
|
.8 lda ZPCount2
|
||||||
|
bne .81
|
||||||
|
ldx ZPCount2+1
|
||||||
|
beq .99
|
||||||
|
|
||||||
|
.81 ldy #S.IOCTL.BYTECNT
|
||||||
|
sta (ZPIOCTL),y
|
||||||
|
iny
|
||||||
|
txa
|
||||||
|
sta (ZPIOCTL),y
|
||||||
|
|
||||||
plp
|
plp
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.2 ldx DEVSLOTn08F
|
.90 lda #0
|
||||||
lda SSC.STATUS-$8F,x
|
.HS 2C BIT ABS
|
||||||
and #SSC.STATUS.nDSR true when 0
|
.9 lda #C.EOF
|
||||||
beq .90
|
.99 plp
|
||||||
|
|
||||||
lda #C.EOF
|
|
||||||
|
|
||||||
.90 plp
|
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
.ELSE
|
|
||||||
ldx DEVSLOTn08F
|
|
||||||
lda SSC.STATUS-$8F,x
|
|
||||||
|
|
||||||
and #SSC.STATUS.RDRF incoming char?
|
|
||||||
beq .9
|
|
||||||
|
|
||||||
lda SSC.DATA-$8F,x
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
.9 lda #0
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
.FIN
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
WRITE >STYA ZPIOCTL
|
WRITE >STYA ZPIOCTL
|
||||||
|
|
||||||
.DO SSCIRQ=1
|
|
||||||
php
|
php
|
||||||
sei
|
sei
|
||||||
tay save char in Y
|
|
||||||
|
|
||||||
|
ldy #S.IOCTL.BUFPTR
|
||||||
|
lda (ZPIOCTL),y
|
||||||
|
|
||||||
|
sta ZPBufPtr
|
||||||
|
iny
|
||||||
|
lda (ZPIOCTL),y
|
||||||
|
sta ZPBufPtr+1
|
||||||
|
|
||||||
|
* ldy #S.IOCTL.BYTECNT
|
||||||
|
|
||||||
|
iny
|
||||||
|
lda (ZPIOCTL),y
|
||||||
|
eor #$ff
|
||||||
|
sta ZPCount
|
||||||
|
iny
|
||||||
|
lda (ZPIOCTL),y
|
||||||
|
eor #$ff
|
||||||
|
sta ZPCount+1
|
||||||
|
|
||||||
|
.2 inc ZPCount
|
||||||
|
bne .3
|
||||||
|
inc ZPCount+1
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
.3 .DO SSCIRQ=1
|
||||||
ldx DEVSLOTn08F
|
ldx DEVSLOTn08F
|
||||||
|
|
||||||
lda SSC.STATUS-$8F,x
|
lda SSC.STATUS-$8F,x
|
||||||
@ -343,23 +421,25 @@ WRITE >STYA ZPIOCTL
|
|||||||
|
|
||||||
lda OUTBUF.HEAD
|
lda OUTBUF.HEAD
|
||||||
cmp OUTBUF.TAIL Buffer Empty?
|
cmp OUTBUF.TAIL Buffer Empty?
|
||||||
bne .11 not empty, queue char
|
bne .6 not empty, queue char
|
||||||
|
|
||||||
lda SSC.STATUS-$8F,x
|
lda SSC.STATUS-$8F,x
|
||||||
|
|
||||||
and #SSC.STATUS.TDRE Register Empty ?
|
and #SSC.STATUS.TDRE Register Empty ?
|
||||||
beq .10 not empty, queue char
|
beq .5 not empty, queue char
|
||||||
|
|
||||||
tya yes, write directly to ACIA
|
lda (ZPBufPtr) yes, write directly to ACIA
|
||||||
sta SSC.DATA-$8F,x
|
inc ZPBufPtr
|
||||||
|
bne .4
|
||||||
|
inc ZPBufPtr+1
|
||||||
|
|
||||||
plp
|
.4 sta SSC.DATA-$8F,x
|
||||||
clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
.10 lda OUTBUF.HEAD
|
bra .2
|
||||||
|
|
||||||
.11 tax
|
.5 lda OUTBUF.HEAD
|
||||||
|
|
||||||
|
.6 tax
|
||||||
inc
|
inc
|
||||||
and #BUF.MASK
|
and #BUF.MASK
|
||||||
cmp OUTBUF.TAIL
|
cmp OUTBUF.TAIL
|
||||||
@ -367,40 +447,46 @@ WRITE >STYA ZPIOCTL
|
|||||||
|
|
||||||
sta OUTBUF.HEAD
|
sta OUTBUF.HEAD
|
||||||
|
|
||||||
tya
|
lda (ZPBufPtr)
|
||||||
sta OUTBUF,x
|
inc ZPBufPtr
|
||||||
|
bne .7
|
||||||
|
inc ZPBufPtr+1
|
||||||
|
|
||||||
plp
|
.7 sta OUTBUF,x
|
||||||
clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
.90 lda #C.EOF
|
bra .2
|
||||||
.9 plp
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
.ELSE
|
.ELSE
|
||||||
pha
|
|
||||||
|
|
||||||
ldx DEVSLOTn08F
|
ldx DEVSLOTn08F
|
||||||
|
|
||||||
.1 lda SSC.STATUS-$8F,x
|
.4 lda SSC.STATUS-$8F,x
|
||||||
|
|
||||||
* and #SSC.STATUS.DCD+SSC.STATUS.DSR
|
* and #SSC.STATUS.DCD+SSC.STATUS.nDSR
|
||||||
* beq .9
|
* beq .9
|
||||||
|
|
||||||
and #SSC.STATUS.TDRE Outgoing char?
|
and #SSC.STATUS.TDRE Outgoing char?
|
||||||
beq .1
|
beq .4
|
||||||
|
|
||||||
pla
|
lda (ZPBufPtr)
|
||||||
sta SSC.DATA-$8F,x
|
inc ZPBufPtr
|
||||||
|
bne .5
|
||||||
|
inc ZPBufPtr+1
|
||||||
|
|
||||||
|
.5 sta SSC.DATA-$8F,x
|
||||||
|
|
||||||
|
bra .2
|
||||||
|
.FIN
|
||||||
|
|
||||||
|
.8 plp
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 pla
|
.90 lda #0
|
||||||
|
.HS 2C BIT ABS
|
||||||
|
.9 lda #C.EOF
|
||||||
|
plp
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
.FIN
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* IRQ Handler
|
* IRQ Handler
|
||||||
* on exit, CC if handled
|
* on exit, CC if handled
|
||||||
|
Loading…
Reference in New Issue
Block a user