mirror of
https://github.com/A2osX/A2osX.git
synced 2024-10-01 22:57:43 +00:00
Kernel 0.94
This commit is contained in:
parent
8a81ee27bc
commit
1e0867a9f2
Binary file not shown.
@ -257,18 +257,15 @@ OPEN tax DEV.ID in A
|
|||||||
bit DIB+S.DIB.S
|
bit DIB+S.DIB.S
|
||||||
bne CLOSE.IOE
|
bne CLOSE.IOE
|
||||||
|
|
||||||
txa
|
lda A2osX.SCRNDEVS+9
|
||||||
ldx #0
|
|
||||||
.10 ldy A2osX.SCRNDEVS,x
|
|
||||||
beq .20
|
beq .20
|
||||||
inx
|
|
||||||
cpx #K.SCR.MAX
|
|
||||||
bne .10
|
|
||||||
lda #E.OOH
|
lda #E.OOH
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
.20 sta A2osX.SCRNDEVS,x
|
|
||||||
sta DCB+S.DCB.GFX.DEVID
|
.20 stx A2osX.SCRNDEVS+9
|
||||||
|
stx DCB+S.DCB.GFX.DEVID
|
||||||
|
|
||||||
lda #S.DIB.S.OPENED
|
lda #S.DIB.S.OPENED
|
||||||
tsb DIB+S.DIB.S
|
tsb DIB+S.DIB.S
|
||||||
@ -299,12 +296,16 @@ OPEN tax DEV.ID in A
|
|||||||
CONTROL lda DCB+S.DCB.GFX.DEVID NON STANDARD
|
CONTROL lda DCB+S.DCB.GFX.DEVID NON STANDARD
|
||||||
cmp A2osX.ASCREEN
|
cmp A2osX.ASCREEN
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
sta A2osX.ASCREEN
|
sta A2osX.ASCREEN
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
bit DCB+S.DCB.GFX.S
|
bit DCB+S.DCB.GFX.S
|
||||||
bpl .1 //c,EVE mode
|
bpl .1 //c,EVE mode
|
||||||
|
|
||||||
ldy #CONTROL.EVE-CONTROL.80C
|
ldy #CONTROL.EVE-CONTROL.80C
|
||||||
|
|
||||||
.1 ldx CONTROL.80C,y
|
.1 ldx CONTROL.80C,y
|
||||||
beq .8 Ending 0
|
beq .8 Ending 0
|
||||||
sta $C000,x
|
sta $C000,x
|
||||||
@ -314,6 +315,7 @@ CONTROL lda DCB+S.DCB.GFX.DEVID NON STANDARD
|
|||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
CLOSE.IOE lda #MLI.E.IO
|
CLOSE.IOE lda #MLI.E.IO
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
@ -321,16 +323,11 @@ CLOSE.IOE lda #MLI.E.IO
|
|||||||
CLOSE lda #S.DIB.S.OPENED
|
CLOSE lda #S.DIB.S.OPENED
|
||||||
bit DIB+S.DIB.S
|
bit DIB+S.DIB.S
|
||||||
beq CLOSE.IOE
|
beq CLOSE.IOE
|
||||||
trb DIB+S.DIB.S
|
|
||||||
ldx #0
|
|
||||||
lda DCB+S.DCB.GFX.DEVID
|
|
||||||
.1 cmp A2osX.SCRNDEVS,x
|
|
||||||
bne .2
|
|
||||||
|
|
||||||
stz A2osX.SCRNDEVS,x
|
trb DIB+S.DIB.S
|
||||||
.2 inx
|
|
||||||
cpx #K.SCR.MAX
|
stz A2osX.SCRNDEVS+9
|
||||||
bne .1
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -52,10 +52,10 @@ A2osX.BADCALL .EQ $BC0C
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
A2osX.SLEEP .EQ $BC10
|
A2osX.SLEEP .EQ $BC10
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* $BEE0->$BEEF : Public Variables
|
* $BED0->$BEEF : Public Variables
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
*A2osX.ASCREEN .EQ $BEE0 Active Screen
|
A2osX.SCRNDEVS .EQ $BED0 0=console, 1-8=VT100, 9=GFX
|
||||||
*A2osX.SCRNDEVS .EQ $BEE1 -> $BEE5 (5 screen devices)
|
A2osX.ASCREEN .EQ $BEDA Active Screen
|
||||||
|
|
||||||
A2osX.CPUTYPE .EQ $BEE6
|
A2osX.CPUTYPE .EQ $BEE6
|
||||||
A2osX.CPUSPEED .EQ $BEE7 WORD, (->255.99 Mhz)
|
A2osX.CPUSPEED .EQ $BEE7 WORD, (->255.99 Mhz)
|
||||||
|
@ -94,10 +94,10 @@ CORE.Events jsr CORE.GetEvents
|
|||||||
sta KBDSTROBE
|
sta KBDSTROBE
|
||||||
and #$0F
|
and #$0F
|
||||||
tax
|
tax
|
||||||
lda DevMgr.SCRNDEVS,x Get DevID
|
lda A2osX.SCRNDEVS,x Get DevID
|
||||||
beq .8 No device claimed this screen
|
beq .8 No device claimed this screen
|
||||||
|
|
||||||
cmp DevMgr.ASCREEN Same as active screen...nothing to do
|
cmp A2osX.ASCREEN Same as active screen...nothing to do
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
>PUSHA
|
>PUSHA
|
||||||
@ -165,7 +165,7 @@ CORE.GetEvents lda #Evt.Table
|
|||||||
lda IRQ.Mode
|
lda IRQ.Mode
|
||||||
eor #$C0
|
eor #$C0
|
||||||
sta IRQ.Mode
|
sta IRQ.Mode
|
||||||
ldx DevMgr.ASCREEN
|
ldx A2osX.ASCREEN
|
||||||
cpx #3 devID 3 is /DEV/CONSOLE
|
cpx #3 devID 3 is /DEV/CONSOLE
|
||||||
bne .22
|
bne .22
|
||||||
sta SYS.BASL0+38
|
sta SYS.BASL0+38
|
||||||
|
@ -438,11 +438,11 @@ IRQ.Tick .BS 1
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
*BrkHandler bra *
|
*BrkHandler bra *
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GP.CodeEnd .BS $BEE0-*
|
GP.CodeEnd .BS $BED0-*
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* $BEE0->$BEEF : Public Variables
|
* $BED0->$BEEF : Public Variables
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.BS 16
|
.BS 32
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* $BEF0->$BEFF : Kernel Config Block
|
* $BEF0->$BEFF : Kernel Config Block
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -309,6 +309,7 @@ SysScrInit >LDYAI Mem.XHiMem
|
|||||||
|
|
||||||
>PUSHWI FD.TTY
|
>PUSHWI FD.TTY
|
||||||
>PUSHWI FD.TTY.NAME
|
>PUSHWI FD.TTY.NAME
|
||||||
|
|
||||||
>SYSCALL2 MKDev
|
>SYSCALL2 MKDev
|
||||||
plx
|
plx
|
||||||
bcs .9
|
bcs .9
|
||||||
|
@ -59,7 +59,9 @@ IO.WRITE.PIPE ldy #S.FD.PIPE.S
|
|||||||
|
|
||||||
ldy #S.FD.PIPE.Head+1
|
ldy #S.FD.PIPE.Head+1
|
||||||
jsr IO.PIPE.GET.BUF
|
jsr IO.PIPE.GET.BUF
|
||||||
|
|
||||||
>STYA IO.PIPE.DSTBUF
|
>STYA IO.PIPE.DSTBUF
|
||||||
|
|
||||||
>PULLA get cnt lo
|
>PULLA get cnt lo
|
||||||
sta IO.PIPE.CNT
|
sta IO.PIPE.CNT
|
||||||
eor #$ff
|
eor #$ff
|
||||||
@ -81,22 +83,28 @@ IO.WRITE.PIPE ldy #S.FD.PIPE.S
|
|||||||
pla
|
pla
|
||||||
inc
|
inc
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
pha
|
pha
|
||||||
|
|
||||||
.2 lda (IO.PIPE.SRCBUF)
|
.2 lda (IO.PIPE.SRCBUF)
|
||||||
sta (IO.PIPE.DSTBUF),y
|
sta (IO.PIPE.DSTBUF),y
|
||||||
|
|
||||||
inc IO.PIPE.SRCBUF
|
inc IO.PIPE.SRCBUF
|
||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
inc IO.PIPE.SRCBUF+1
|
inc IO.PIPE.SRCBUF+1
|
||||||
.4 iny
|
.4 iny
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
lda IO.PIPE.BUFH
|
lda IO.PIPE.BUFH
|
||||||
inc
|
inc
|
||||||
cmp IO.PIPE.SIZEH
|
cmp IO.PIPE.SIZEH
|
||||||
beq .6
|
beq .6
|
||||||
|
|
||||||
sta IO.PIPE.BUFH
|
sta IO.PIPE.BUFH
|
||||||
inc IO.PIPE.DSTBUF+1
|
inc IO.PIPE.DSTBUF+1
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.6 stz IO.PIPE.BUFH
|
.6 stz IO.PIPE.BUFH
|
||||||
lda IO.PIPE.BASEH Pipe Buffer Base
|
lda IO.PIPE.BASEH Pipe Buffer Base
|
||||||
sta IO.PIPE.DSTBUF+1
|
sta IO.PIPE.DSTBUF+1
|
||||||
@ -131,10 +139,12 @@ IO.READ.PIPE ldy #S.FD.PIPE.Used+1
|
|||||||
dey
|
dey
|
||||||
ora (pFD),y
|
ora (pFD),y
|
||||||
bne .10 yes...
|
bne .10 yes...
|
||||||
|
|
||||||
ldy #S.FD.PIPE.S
|
ldy #S.FD.PIPE.S
|
||||||
lda (pFD),y
|
lda (pFD),y
|
||||||
bmi IO.READ.PIPE.EOF Remote PS closed the Pipe
|
bmi IO.READ.PIPE.EOF Remote PS closed the Pipe
|
||||||
bpl IO.READ.PIPE.NODATA
|
bpl IO.READ.PIPE.NODATA
|
||||||
|
|
||||||
.10 >PULLW IO.PIPE.DSTBUF get dest buf
|
.10 >PULLW IO.PIPE.DSTBUF get dest buf
|
||||||
|
|
||||||
ldy #S.FD.PIPE.Tail+1
|
ldy #S.FD.PIPE.Tail+1
|
||||||
@ -146,6 +156,7 @@ IO.READ.PIPE ldy #S.FD.PIPE.Used+1
|
|||||||
tax
|
tax
|
||||||
ldy #S.FD.PIPE.Used
|
ldy #S.FD.PIPE.Used
|
||||||
cmp (pFD),y
|
cmp (pFD),y
|
||||||
|
|
||||||
>PULLA get cnt hi
|
>PULLA get cnt hi
|
||||||
pha
|
pha
|
||||||
iny #S.FD.PIPE.Used+1
|
iny #S.FD.PIPE.Used+1
|
||||||
@ -158,6 +169,7 @@ IO.READ.PIPE ldy #S.FD.PIPE.Used+1
|
|||||||
tax
|
tax
|
||||||
iny
|
iny
|
||||||
lda (pFD),y X,A = Used
|
lda (pFD),y X,A = Used
|
||||||
|
|
||||||
.12 stx IO.PIPE.CNT
|
.12 stx IO.PIPE.CNT
|
||||||
sta IO.PIPE.CNT+1
|
sta IO.PIPE.CNT+1
|
||||||
|
|
||||||
@ -174,25 +186,32 @@ IO.READ.PIPE ldy #S.FD.PIPE.Used+1
|
|||||||
|
|
||||||
.1 inx
|
.1 inx
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
pla
|
pla
|
||||||
inc
|
inc
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
pha
|
pha
|
||||||
|
|
||||||
.2 lda (IO.PIPE.SRCBUF),y
|
.2 lda (IO.PIPE.SRCBUF),y
|
||||||
sta (IO.PIPE.DSTBUF)
|
sta (IO.PIPE.DSTBUF)
|
||||||
|
|
||||||
inc IO.PIPE.DSTBUF
|
inc IO.PIPE.DSTBUF
|
||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
inc IO.PIPE.DSTBUF+1
|
inc IO.PIPE.DSTBUF+1
|
||||||
.4 iny
|
.4 iny
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
lda IO.PIPE.BUFH
|
lda IO.PIPE.BUFH
|
||||||
inc
|
inc
|
||||||
cmp IO.PIPE.SIZEH
|
cmp IO.PIPE.SIZEH
|
||||||
beq .6
|
beq .6
|
||||||
|
|
||||||
sta IO.PIPE.BUFH
|
sta IO.PIPE.BUFH
|
||||||
inc IO.PIPE.SRCBUF+1
|
inc IO.PIPE.SRCBUF+1
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.6 stz IO.PIPE.BUFH
|
.6 stz IO.PIPE.BUFH
|
||||||
lda IO.PIPE.BASEH
|
lda IO.PIPE.BASEH
|
||||||
sta IO.PIPE.SRCBUF+1 Restore Pipe Buf base
|
sta IO.PIPE.SRCBUF+1 Restore Pipe Buf base
|
||||||
|
@ -149,6 +149,12 @@ SHARED.ZPPtr3.GetY
|
|||||||
sta SETREADAUX
|
sta SETREADAUX
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
SHARED.GetScrnDevX
|
||||||
|
sta CLRREADAUX
|
||||||
|
lda A2osX.SCRNDEVS,x
|
||||||
|
sta SETREADAUX
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE USR/SRC/SYS/KERNEL.S.SHARED
|
SAVE USR/SRC/SYS/KERNEL.S.SHARED
|
||||||
LOAD USR/SRC/SYS/KERNEL.S
|
LOAD USR/SRC/SYS/KERNEL.S
|
||||||
|
@ -307,6 +307,7 @@ K.Pipe sta .1+1 SIZE HI
|
|||||||
txa hFD
|
txa hFD
|
||||||
* clc
|
* clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 pha save error code
|
.9 pha save error code
|
||||||
lda .8+1 get back PIPE buffer
|
lda .8+1 get back PIPE buffer
|
||||||
|
|
||||||
|
@ -77,7 +77,7 @@ TERM.GetDCB ldy #S.FD.DEV.DCBPTR
|
|||||||
sta ZPBufBase+1
|
sta ZPBufBase+1
|
||||||
|
|
||||||
lda (ZPDCBPtr) #S.DCB.TTY.DEVID
|
lda (ZPDCBPtr) #S.DCB.TTY.DEVID
|
||||||
cmp DevMgr.ASCREEN
|
cmp A2osX.ASCREEN
|
||||||
beq .1 CS
|
beq .1 CS
|
||||||
|
|
||||||
clc
|
clc
|
||||||
|
@ -98,21 +98,28 @@ TERMX.OPEN tax
|
|||||||
jsr TERMX.ISOPENED
|
jsr TERMX.ISOPENED
|
||||||
bne TERMX.OPEN.E
|
bne TERMX.OPEN.E
|
||||||
|
|
||||||
TERMX.OPEN.1 txa
|
phx
|
||||||
|
|
||||||
ldx #0
|
ldx #0
|
||||||
|
|
||||||
.2 ldy DevMgr.SCRNDEVS,x
|
.2 jsr SHARED.GetScrnDevX
|
||||||
beq .3
|
beq .3
|
||||||
|
|
||||||
inx
|
inx
|
||||||
cpx #K.TTY.MAX+1
|
cpx #K.TTY.MAX+1
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
|
plx
|
||||||
|
|
||||||
lda #E.OOH
|
lda #E.OOH
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.3 sta DevMgr.SCRNDEVS,x
|
.3 pla
|
||||||
|
|
||||||
|
sta CLRWRITEAUX
|
||||||
|
sta A2osX.SCRNDEVS,x
|
||||||
|
sta SETWRITEAUX
|
||||||
|
|
||||||
sta (ZPDCBPtr) #S.DCB.TTY.DEVID
|
sta (ZPDCBPtr) #S.DCB.TTY.DEVID
|
||||||
|
|
||||||
@ -124,7 +131,10 @@ TERMX.OPEN.1 txa
|
|||||||
jsr RESET
|
jsr RESET
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TERMX.CONTROL lda (ZPDCBPtr) #S.DCB.TTY.DEVID
|
TERMX.CONTROL lda (ZPDCBPtr) #S.DCB.TTY.DEVID
|
||||||
sta DevMgr.ASCREEN
|
|
||||||
|
sta CLRWRITEAUX
|
||||||
|
sta A2osX.ASCREEN
|
||||||
|
sta SETWRITEAUX
|
||||||
|
|
||||||
sta SETTEXT
|
sta SETTEXT
|
||||||
|
|
||||||
@ -146,11 +156,13 @@ TERMX.CLOSE jsr TERMX.ISOPENED
|
|||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
ldx #0
|
ldx #0
|
||||||
|
|
||||||
.1 lda DevMgr.SCRNDEVS,x
|
.1 jsr SHARED.GetScrnDevX
|
||||||
cmp (ZPDCBPtr) #S.DCB.TTY.DEVID
|
cmp (ZPDCBPtr) #S.DCB.TTY.DEVID
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
stz DevMgr.SCRNDEVS,x
|
sta CLRWRITEAUX
|
||||||
|
stz A2osX.SCRNDEVS,x
|
||||||
|
sta SETWRITEAUX
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
@ -181,7 +193,7 @@ TERMX.READ bit bActive is screen active?
|
|||||||
.1 jsr TERMX.Title.OFF
|
.1 jsr TERMX.Title.OFF
|
||||||
|
|
||||||
lda KBD
|
lda KBD
|
||||||
sta A2osX.RANDOM16
|
|
||||||
bpl .6
|
bpl .6
|
||||||
sta KBDSTROBE
|
sta KBDSTROBE
|
||||||
|
|
||||||
@ -1311,8 +1323,7 @@ SetCharAtCurPos pha
|
|||||||
cpy #80
|
cpy #80
|
||||||
bcs SetCharAtYX.8
|
bcs SetCharAtYX.8
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SetCharAtYX ror A2osX.RANDOM16+1
|
SetCharAtYX cmp #$40
|
||||||
cmp #$40
|
|
||||||
bcc .1
|
bcc .1
|
||||||
cmp #$60
|
cmp #$60
|
||||||
bcs .1
|
bcs .1
|
||||||
|
@ -114,8 +114,6 @@ A2osX.E0.B .PH $E000
|
|||||||
.INB USR/SRC/SYS/KERNEL.S.PFT
|
.INB USR/SRC/SYS/KERNEL.S.PFT
|
||||||
|
|
||||||
DevMgr.Timer .BS 1
|
DevMgr.Timer .BS 1
|
||||||
DevMgr.ASCREEN .BS 1
|
|
||||||
DevMgr.SCRNDEVS .BS K.TTY.MAX+2 1-8=VT100, 9=GFX, 0=console
|
|
||||||
DevMgr.Stat .DA DevMgr.FreeMem
|
DevMgr.Stat .DA DevMgr.FreeMem
|
||||||
DevMgr.Free .DA DevMgr.FreeMem
|
DevMgr.Free .DA DevMgr.FreeMem
|
||||||
.DA DevMgr.HiMem
|
.DA DevMgr.HiMem
|
||||||
|
Loading…
Reference in New Issue
Block a user