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