mirror of https://github.com/A2osX/A2osX.git
Kernel 0.92
This commit is contained in:
parent
18ed4d66be
commit
a4b457498f
Binary file not shown.
|
@ -141,6 +141,8 @@ H.BIN.EXE.REL.TABLE .EQ 16
|
|||
*
|
||||
H.BIN.DRV.REL.TABLE .EQ 2 Including main jmp
|
||||
*--------------------------------------
|
||||
TTY.BUF.SIZE .EQ 80*24
|
||||
*--------------------------------------
|
||||
S.DCB.TTY.DEVID .EQ 0
|
||||
S.DCB.TTY.STATUS .EQ 1
|
||||
S.DCB.TTY.MODE .EQ 2
|
||||
|
@ -167,9 +169,6 @@ S.DCB.TTY.OUTBUFFER.MAX .EQ 64
|
|||
*
|
||||
S.DCB.TTY .EQ 64
|
||||
*--------------------------------------
|
||||
S.TTYBUF.TITLE .EQ 48
|
||||
S.TTYBUF.SCRBUF .EQ 128 24x80=1920 bytes
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/SYS/KERNEL.S.DEF
|
||||
LOAD USR/SRC/SYS/KERNEL.S
|
||||
|
|
|
@ -249,28 +249,11 @@ MemMgrInit >LDYAI Mem.MHiMem
|
|||
>STYA Mem.LoMem
|
||||
stz Mem.LastSlot Reserve Slot #0
|
||||
|
||||
* reserve AUXmem for TTY Frame buffers
|
||||
|
||||
lda A2osX.TTYDEVS
|
||||
inc +1 for /DEV/CONSOLE
|
||||
asl
|
||||
asl
|
||||
asl 8 pages (2k)
|
||||
sta .10+1
|
||||
|
||||
sta SETWRITEAUX
|
||||
|
||||
ldy #Mem.XHiMem
|
||||
sty Mem.HiMem
|
||||
|
||||
lda /Mem.XHiMem
|
||||
sec
|
||||
.10 sbc #$FF SELF MODIFIED
|
||||
sta Mem.HiMem+1
|
||||
|
||||
>STYA Mem.Free
|
||||
|
||||
>LDYAI Mem.XLoMem
|
||||
>STYA Mem.LoMem
|
||||
|
||||
stz Mem.LastSlot Reserve Slot #0
|
||||
|
||||
sta CLRWRITEAUX
|
||||
|
@ -309,49 +292,67 @@ MemMgrInit >LDYAI Mem.MHiMem
|
|||
|
||||
rts
|
||||
*--------------------------------------
|
||||
SysScrInit jsr SysScrInit.DCBBuf
|
||||
SysScrInit >LDYAI Mem.XHiMem
|
||||
>STYA FD.TTY+S.FD.DEV.BUFPTR
|
||||
|
||||
jsr SysScrInit.TTYPtrs
|
||||
|
||||
>PUSHWI FD.CONSOLE.NAME
|
||||
>LDYAI FD.TTY
|
||||
>SYSCALL MKDev
|
||||
bcs .9
|
||||
|
||||
lda A2osX.TTYDEVS
|
||||
ldx A2osX.TTYDEVS
|
||||
|
||||
.1 pha
|
||||
.1 phx
|
||||
|
||||
inc FD.TTY+S.FD.DEV.DEVID
|
||||
inc FD.TTY.NAME+3
|
||||
lda FD.TTY+S.FD.DEV.BUFPTR+1
|
||||
sec
|
||||
sbc /2048
|
||||
sta FD.TTY+S.FD.DEV.BUFPTR+1
|
||||
|
||||
jsr SysScrInit.DCBBuf
|
||||
jsr SysScrInit.TTYPtrs
|
||||
|
||||
>PUSHWI FD.TTY.NAME
|
||||
>LDYAI FD.TTY
|
||||
>SYSCALL MKDev
|
||||
|
||||
pla
|
||||
dec
|
||||
plx
|
||||
bcs .9
|
||||
|
||||
dex
|
||||
bne .1
|
||||
|
||||
>LDYA FD.TTY+S.FD.DEV.BUFPTR
|
||||
sta SETWRITEAUX
|
||||
>STYA Mem.HiMem
|
||||
>STYA Mem.Free
|
||||
sta CLRWRITEAUX
|
||||
|
||||
clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
SysScrInit.DCBBuf
|
||||
clc
|
||||
|
||||
SysScrInit.TTYPtrs
|
||||
lda DevMgr.Free
|
||||
sta FD.TTY+S.FD.DEV.DCBPTR
|
||||
|
||||
clc
|
||||
adc #S.DCB.TTY
|
||||
sta DevMgr.Free
|
||||
|
||||
lda DevMgr.Free+1
|
||||
sta FD.TTY+S.FD.DEV.DCBPTR+1
|
||||
|
||||
adc /S.DCB.TTY
|
||||
sta DevMgr.Free+1
|
||||
|
||||
lda FD.TTY+S.FD.DEV.BUFPTR
|
||||
sec
|
||||
sbc #TTY.BUF.SIZE
|
||||
sta FD.TTY+S.FD.DEV.BUFPTR
|
||||
|
||||
lda FD.TTY+S.FD.DEV.BUFPTR+1
|
||||
sbc /TTY.BUF.SIZE
|
||||
sta FD.TTY+S.FD.DEV.BUFPTR+1
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
PS0.Init >LDYAI CORE.S.PS0 Select Process 0 (Kernel)
|
||||
|
@ -1127,7 +1128,7 @@ FD.TTY .DA #S.FD.T.CDEV
|
|||
.DA 0 BUSPTR
|
||||
.DA DRV.TERM
|
||||
.BS 2 DCBPTR
|
||||
.DA $B800 BUFPTR
|
||||
.BS 2 BUFPTR
|
||||
*--------------------------------------
|
||||
FD.CONSOLE.NAME .AZ "CONSOLE"
|
||||
FD.TTY.NAME .AZ "TTY0"
|
||||
|
|
|
@ -36,8 +36,8 @@ DRV.TERM cld
|
|||
.DA DRV.TERM.READ
|
||||
.DA DRV.TERM.WRITE
|
||||
*--------------------------------------
|
||||
DRV.TERM.STATUS jsr DRV.TERM.GetIOCTLBufAndCnt
|
||||
|
||||
DRV.TERM.STATUS jsr DRV.TERM.GetIOCTLBufCntDCB
|
||||
|
||||
ldy #S.IOCTL.STATCODE
|
||||
lda (ZPIOCTL),y
|
||||
beq .1
|
||||
|
@ -50,12 +50,10 @@ DRV.TERM.STATUS jsr DRV.TERM.GetIOCTLBufAndCnt
|
|||
.1 ldy #3
|
||||
|
||||
.2 lda DRV.TERM.DIB,y
|
||||
.3 sta (ZPBufPtr),y
|
||||
sta (ZPBufPtr),y
|
||||
dey
|
||||
bne .2
|
||||
|
||||
jsr DRV.TERM.GetDCB
|
||||
|
||||
ldy #S.DCB.TTY.STATUS
|
||||
lda (ZPDCBPtr),y
|
||||
sta (ZPBufPtr)
|
||||
|
@ -106,14 +104,14 @@ DRV.TERM.OPEN ldx #0 DEV.ID in A
|
|||
jsr RESET
|
||||
*--------------------------------------
|
||||
DRV.TERM.CONTROL
|
||||
sta SETTEXT
|
||||
|
||||
jsr DRV.TERM.GetDCB
|
||||
|
||||
ldy #S.DCB.TTY.DEVID
|
||||
lda (ZPDCBPtr),y
|
||||
sta A2osX.ASCREEN
|
||||
|
||||
sta SETTEXT
|
||||
|
||||
jsr DRV.TERM.SCRCPY
|
||||
|
||||
lda #0
|
||||
|
@ -157,8 +155,7 @@ DRV.TERM.CLOSE jsr DRV.TERM.GetDCB
|
|||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
DRV.TERM.READ jsr DRV.TERM.GetIOCTLBufAndCnt
|
||||
jsr DRV.TERM.GetDCB
|
||||
DRV.TERM.READ jsr DRV.TERM.GetIOCTLBufCntDCB
|
||||
|
||||
bit bActive is screen active?
|
||||
bpl .6 no....go check flush...
|
||||
|
@ -242,17 +239,16 @@ DRV.TERM.READ jsr DRV.TERM.GetIOCTLBufAndCnt
|
|||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
DRV.TERM.WRITE jsr DRV.TERM.GetIOCTLBufAndCnt
|
||||
jsr DRV.TERM.GetDCB
|
||||
DRV.TERM.WRITE jsr DRV.TERM.GetIOCTLBufCntDCB
|
||||
|
||||
jsr DRV.TERM.CUROFF
|
||||
|
||||
.1 inc ZPCount
|
||||
bne .2
|
||||
inc ZPCount+1
|
||||
beq FS.8
|
||||
|
||||
.2 jsr DRV.TERM.CUROFF
|
||||
|
||||
ldy #S.DCB.TTY.MODE
|
||||
.2 ldy #S.DCB.TTY.MODE
|
||||
lda (ZPDCBPtr),y
|
||||
tax
|
||||
|
||||
|
@ -276,18 +272,41 @@ DRV.TERM.COUT lda (ZPBufPtr)
|
|||
bne .1
|
||||
|
||||
lda #S.DCB.TTY.MODE.IAC
|
||||
bra DRV.TERM.SETMODE
|
||||
jmp DRV.TERM.SETMODE
|
||||
|
||||
.1 cmp #C.DEL
|
||||
beq DRV.TERM.COUT.DEL
|
||||
cmp #C.SPACE
|
||||
bcc DRV.TERM.COUT.Ctrl
|
||||
bcs .8
|
||||
|
||||
ldx #CtrlChars.Cnt-1
|
||||
|
||||
ldy #S.DCB.TTY.bINVERSE
|
||||
.2 cmp CtrlChars,x
|
||||
beq .3
|
||||
dex
|
||||
bpl .2
|
||||
clc
|
||||
rts
|
||||
|
||||
.3 txa
|
||||
asl
|
||||
tax
|
||||
jmp (.4,x)
|
||||
|
||||
.4 .DA ENQ 5
|
||||
.DA BS 8
|
||||
.DA LF 10
|
||||
.DA DRV.TERM.COUT.FF
|
||||
.DA DRV.TERM.COUT.CR
|
||||
.DA DRV.TERM.COUT.FS
|
||||
.DA DRV.TERM.COUT.ESC
|
||||
|
||||
.8 ldy #S.DCB.TTY.bINVERSE
|
||||
ora (ZPDCBPtr),y
|
||||
jsr SetCharAtCurPos
|
||||
*--------------------------------------
|
||||
FS ldy #S.DCB.TTY.CH
|
||||
DRV.TERM.COUT.FS
|
||||
ldy #S.DCB.TTY.CH
|
||||
lda (ZPDCBPtr),y
|
||||
cmp #79
|
||||
bne .1
|
||||
|
@ -332,30 +351,23 @@ DRV.TERM.COUT.DEL
|
|||
ora (ZPDCBPtr),y
|
||||
jmp SetCharAtCurPos
|
||||
*--------------------------------------
|
||||
DRV.TERM.COUT.Ctrl
|
||||
ldx #CtrlChars.Cnt-1
|
||||
|
||||
.1 cmp CtrlChars,x
|
||||
beq .2
|
||||
dex
|
||||
bpl .1
|
||||
DRV.TERM.COUT.FF
|
||||
lda #0
|
||||
ldy #S.DCB.TTY.CV
|
||||
sta (ZPDCBPtr),y
|
||||
dey
|
||||
sta (ZPDCBPtr),y
|
||||
jmp DRV.TERM.CLRSCR
|
||||
*--------------------------------------
|
||||
DRV.TERM.COUT.CR
|
||||
lda #0
|
||||
ldy #S.DCB.TTY.CH
|
||||
sta (ZPDCBPtr),y
|
||||
clc
|
||||
rts
|
||||
|
||||
.2 txa
|
||||
asl
|
||||
tax
|
||||
jmp (.8,x)
|
||||
|
||||
.8 .DA ENQ 5
|
||||
.DA BS 8
|
||||
.DA LF 10
|
||||
.DA FF 12
|
||||
.DA CROUT 13
|
||||
.DA FS 21
|
||||
.DA ESC 27
|
||||
*--------------------------------------
|
||||
ESC lda #S.DCB.TTY.MODE.ESC
|
||||
DRV.TERM.COUT.ESC
|
||||
lda #S.DCB.TTY.MODE.ESC
|
||||
bra DRV.TERM.SETMODE
|
||||
*--------------------------------------
|
||||
DRV.TERM.ESC lda (ZPBufPtr)
|
||||
|
@ -860,19 +872,6 @@ BS ldy #S.DCB.TTY.CH
|
|||
.2 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
FF lda #0
|
||||
ldy #S.DCB.TTY.CV
|
||||
sta (ZPDCBPtr),y
|
||||
dey
|
||||
sta (ZPDCBPtr),y
|
||||
jmp DRV.TERM.CLRSCR
|
||||
*--------------------------------------
|
||||
CROUT lda #0
|
||||
ldy #S.DCB.TTY.CH
|
||||
sta (ZPDCBPtr),y
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
LF ldy #S.DCB.TTY.CV
|
||||
lda (ZPDCBPtr),y
|
||||
ldy #S.DCB.TTY.SCROLLBOT
|
||||
|
@ -1092,23 +1091,7 @@ Char.Out.Get ldy #S.DCB.TTY.OUTTAIL
|
|||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
DRV.TERM.GetDCB ldy #S.FD.DEV.DCBPTR
|
||||
lda (pFD),y
|
||||
sta ZPDCBPtr
|
||||
iny
|
||||
lda (pFD),y
|
||||
sta ZPDCBPtr+1
|
||||
|
||||
ldy #S.DCB.TTY.DEVID
|
||||
lda (ZPDCBPtr),y
|
||||
cmp A2osX.ASCREEN
|
||||
beq .1 CS
|
||||
|
||||
clc
|
||||
.1 ror bActive
|
||||
rts
|
||||
*--------------------------------------
|
||||
DRV.TERM.GetIOCTLBufAndCnt
|
||||
DRV.TERM.GetIOCTLBufCntDCB
|
||||
>STYA ZPIOCTL
|
||||
|
||||
ldy #S.IOCTL.BUFPTR
|
||||
|
@ -1127,7 +1110,21 @@ DRV.TERM.GetIOCTLBufAndCnt
|
|||
lda (ZPIOCTL),y
|
||||
eor #$ff
|
||||
sta ZPCount+1
|
||||
*--------------------------------------
|
||||
DRV.TERM.GetDCB ldy #S.FD.DEV.DCBPTR
|
||||
lda (pFD),y
|
||||
sta ZPDCBPtr
|
||||
iny
|
||||
lda (pFD),y
|
||||
sta ZPDCBPtr+1
|
||||
|
||||
ldy #S.DCB.TTY.DEVID
|
||||
lda (ZPDCBPtr),y
|
||||
cmp A2osX.ASCREEN
|
||||
beq .1 CS
|
||||
|
||||
clc
|
||||
.1 ror bActive
|
||||
rts
|
||||
*--------------------------------------
|
||||
DRV.TERM.Title.ON
|
||||
|
@ -1153,13 +1150,7 @@ DRV.TERM.Title.ON
|
|||
.1 lda (ZPTmpWord),y
|
||||
beq .2
|
||||
|
||||
cmp #$40
|
||||
bcc .10
|
||||
cmp #$5F
|
||||
bcs .10
|
||||
and #$3F
|
||||
|
||||
.10 phy
|
||||
phy
|
||||
jsr SetCharAtY.SCR
|
||||
ply
|
||||
iny
|
||||
|
@ -1185,6 +1176,29 @@ DRV.TERM.Title.OFF
|
|||
sta (ZPDCBPtr),y
|
||||
jmp DRV.TERM.LINE0CPY
|
||||
*--------------------------------------
|
||||
DRV.TERM.SETUP.L1X
|
||||
ldy #S.FD.DEV.BUFPTR
|
||||
lda (pFD),y
|
||||
clc
|
||||
adc BUF.BASEL,x
|
||||
sta ZPBufBaseL1
|
||||
|
||||
iny
|
||||
lda (pFD),y
|
||||
adc BUF.BASEH,x
|
||||
sta ZPBufBaseL1+1
|
||||
|
||||
bit bActive
|
||||
bpl DRV.TERM.SETUP.L1X.8
|
||||
|
||||
DRV.TERM.SETUP.L1X.SCR
|
||||
lda SCR.BASEL,x
|
||||
sta ZPScrBaseL1
|
||||
lda SCR.BASEH,x
|
||||
sta ZPScrBaseL1+1
|
||||
DRV.TERM.SETUP.L1X.8
|
||||
rts
|
||||
*--------------------------------------
|
||||
RESET.VALUES .DA #0 S.DCB.TTY.MODE
|
||||
.DA #0 S.DCB.TTY.CH
|
||||
.DA #0 S.DCB.TTY.CV
|
||||
|
|
|
@ -2,29 +2,6 @@ NEW
|
|||
PREFIX
|
||||
AUTO 4,1
|
||||
*--------------------------------------
|
||||
DRV.TERM.SETUP.L1X
|
||||
ldy #S.FD.DEV.BUFPTR
|
||||
lda (pFD),y
|
||||
clc
|
||||
adc BUF.BASEL,x
|
||||
sta ZPBufBaseL1
|
||||
|
||||
iny
|
||||
lda (pFD),y
|
||||
adc BUF.BASEH,x
|
||||
sta ZPBufBaseL1+1
|
||||
|
||||
bit bActive
|
||||
bpl DRV.TERM.SETUP.L1X.8
|
||||
|
||||
DRV.TERM.SETUP.L1X.SCR
|
||||
lda SCR.BASEL,x
|
||||
sta ZPScrBaseL1
|
||||
lda SCR.BASEH,x
|
||||
sta ZPScrBaseL1+1
|
||||
DRV.TERM.SETUP.L1X.8
|
||||
rts
|
||||
*--------------------------------------
|
||||
SCR.BASEL .HS 00.80.00.80.00.80.00.80.28.A8.28.A8.28.A8.28.A8.50.D0.50.D0.50.D0.50.D0
|
||||
SCR.BASEH .HS 04.04.05.05.06.06.07.07.04.04.05.05.06.06.07.07.04.04.05.05.06.06.07.07
|
||||
*--------------------------------------
|
||||
|
@ -89,20 +66,12 @@ DRV.TERM.CLRSCR ldx #23
|
|||
|
||||
sta SETPAGE2
|
||||
|
||||
ldy #39
|
||||
|
||||
.2 sta (ZPScrBaseL1),y
|
||||
dey
|
||||
bpl .2
|
||||
jsr .7
|
||||
|
||||
sta CLRPAGE2
|
||||
|
||||
ldy #39
|
||||
|
||||
.3 sta (ZPScrBaseL1),y
|
||||
dey
|
||||
bpl .3
|
||||
|
||||
jsr .7
|
||||
|
||||
.4 sta SETWRITEAUX
|
||||
|
||||
ldy #79
|
||||
|
@ -115,12 +84,14 @@ DRV.TERM.CLRSCR ldx #23
|
|||
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
rts
|
||||
|
||||
lda #0
|
||||
ldy #S.DCB.TTY.CV
|
||||
sta (ZPDCBPtr),y
|
||||
.7 ldy #39
|
||||
|
||||
.8 sta (ZPScrBaseL1),y
|
||||
dey
|
||||
sta (ZPDCBPtr),y
|
||||
bpl .8
|
||||
rts
|
||||
*--------------------------------------
|
||||
DRV.TERM.LINE0CPY
|
||||
|
@ -172,7 +143,13 @@ DRV.TERM.SCRCPY ldx #23
|
|||
.8 ldy #39
|
||||
|
||||
.80 lda $ffff,x SELF MODIFIED
|
||||
sta (ZPScrBaseL1),y
|
||||
cmp #$40
|
||||
bcc .81
|
||||
cmp #$5F
|
||||
bcs .81
|
||||
and #$3F
|
||||
|
||||
.81 sta (ZPScrBaseL1),y
|
||||
dex
|
||||
dex
|
||||
dey
|
||||
|
@ -180,6 +157,17 @@ DRV.TERM.SCRCPY ldx #23
|
|||
rts
|
||||
*--------------------------------------
|
||||
DRV.TERM.COPY.XtoL1
|
||||
ldy #S.FD.DEV.BUFPTR
|
||||
lda (pFD),y
|
||||
clc
|
||||
adc BUF.BASEL,x
|
||||
sta ZPBufBaseL2
|
||||
|
||||
iny
|
||||
lda (pFD),y
|
||||
adc BUF.BASEH,x
|
||||
sta ZPBufBaseL2+1
|
||||
|
||||
ldy #79
|
||||
|
||||
sta SETWRITEAUX
|
||||
|
@ -214,6 +202,7 @@ DRV.TERM.COPY.XtoL1
|
|||
sta (ZPScrBaseL1),y
|
||||
dey
|
||||
bpl .7
|
||||
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
SetCharAtCurPos.SCR
|
||||
|
@ -228,13 +217,7 @@ SetCharAtCurPos.SCR
|
|||
jsr DRV.TERM.SETUP.L1X.SCR
|
||||
|
||||
pla
|
||||
cmp #$40
|
||||
bcc .1
|
||||
cmp #$5F
|
||||
bcs .1
|
||||
and #$3F
|
||||
|
||||
.1 bra SetCharAtY.SCR
|
||||
bra SetCharAtY.SCR
|
||||
|
||||
SetCharAtCurPos pha
|
||||
ldy #S.DCB.TTY.CV
|
||||
|
@ -245,13 +228,7 @@ SetCharAtCurPos pha
|
|||
tay
|
||||
pla
|
||||
*--------------------------------------
|
||||
SetCharAtYX cmp #$40
|
||||
bcc .1
|
||||
cmp #$5F
|
||||
bcs .1
|
||||
and #$3F
|
||||
|
||||
.1 pha
|
||||
SetCharAtYX pha
|
||||
phy
|
||||
jsr DRV.TERM.SETUP.L1X
|
||||
ply
|
||||
|
@ -263,8 +240,14 @@ SetCharAtYX cmp #$40
|
|||
|
||||
bit bActive
|
||||
bpl SetCharAtYX.8
|
||||
SetCharAtY.SCR
|
||||
pha
|
||||
|
||||
SetCharAtY.SCR cmp #$40
|
||||
bcc .1
|
||||
cmp #$5F
|
||||
bcs .1
|
||||
and #$3F
|
||||
|
||||
.1 pha
|
||||
|
||||
tya
|
||||
lsr
|
||||
|
|
Loading…
Reference in New Issue