mirror of
https://github.com/A2osX/A2osX.git
synced 2024-09-09 00:54:29 +00:00
Kernel 0.92
This commit is contained in:
parent
95a10cbd54
commit
2120025d9f
3
ETC/INIT
3
ETC/INIT
@ -3,7 +3,8 @@ PREFIX
|
|||||||
AUTO 4,1
|
AUTO 4,1
|
||||||
#!/BIN/SHELL
|
#!/BIN/SHELL
|
||||||
ECHO *** A2osX INIT Script ***
|
ECHO *** A2osX INIT Script ***
|
||||||
SET PS1='$PWD'
|
SET PS1 = '$PWD'
|
||||||
|
SET PATH = ${PATH}BIN/DEV/
|
||||||
# Main Screen
|
# Main Screen
|
||||||
GETTY /DEV/TTY1 ${ROOT}SBIN/LOGIN &
|
GETTY /DEV/TTY1 ${ROOT}SBIN/LOGIN &
|
||||||
GETTY /DEV/TTY2 ${ROOT}SBIN/LOGIN &
|
GETTY /DEV/TTY2 ${ROOT}SBIN/LOGIN &
|
||||||
|
@ -3,30 +3,25 @@ PREFIX
|
|||||||
AUTO 4,1
|
AUTO 4,1
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
*** $3F0-$3FF IRQ Handler.... ***
|
Dev.Table.hPath .EQ $1300 K.Dev.MAX
|
||||||
|
Dev.Table.hFD .EQ $1320 K.Dev.MAX
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Main/Aux $400 -> $7FF : TXT PAGE1 Console Screen
|
Nod.Table.hPath .EQ $1340 K.NOD.MAX
|
||||||
* Main/Aux $800 -> $BFF : TXT PAGE2 System Screen
|
Nod.Table.hFD .EQ $1360 K.NOD.MAX
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* free $0C00->$17FF = $C00 (3072) Aux
|
PS.Table.PID .EQ $1380 K.PS.MAX
|
||||||
|
PS.Table.hPS .EQ $13A0 K.PS.MAX
|
||||||
|
PS.Table.Hits .EQ $13C0 K.PS.MAX
|
||||||
|
PS.Table.Stats .EQ $13E0 K.PS.MAX
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Dev.Table.hPath .EQ $0C00 K.Dev.MAX
|
OF.Table.hPath .EQ $1400 K.OF.MAX
|
||||||
Dev.Table.hFD .EQ $0C20 K.Dev.MAX
|
OF.Table.hFD .EQ $1420 K.OF.MAX
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Nod.Table.hPath .EQ $0C40 K.NOD.MAX
|
Evt.Table .EQ $1440 K.EVT.MAX*S.EVT=4*8=32b
|
||||||
Nod.Table.hFD .EQ $0C60 K.NOD.MAX
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PS.Table.PID .EQ $0C80 K.PS.MAX
|
Flt.Table .EQ $1460 K.FLT.MAX*S.FLT=4*32=128b
|
||||||
PS.Table.hPS .EQ $0CA0 K.PS.MAX
|
|
||||||
PS.Table.Hits .EQ $0CC0 K.PS.MAX
|
|
||||||
PS.Table.Stats .EQ $0CE0 K.PS.MAX
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
OF.Table.hPath .EQ $0D00 K.OF.MAX
|
|
||||||
OF.Table.hFD .EQ $0D20 K.OF.MAX
|
|
||||||
*--------------------------------------
|
|
||||||
Evt.Table .EQ $0D40 K.EVT.MAX*S.EVT=4*8=32b
|
|
||||||
*--------------------------------------
|
|
||||||
Flt.Table .EQ $0D60 K.FLT.MAX*S.FLT=4*32=128b
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE INC/KERNEL.I
|
SAVE INC/KERNEL.I
|
||||||
|
@ -163,11 +163,17 @@ CORE.GetEvents lda #Evt.Table
|
|||||||
dec CORE.TickSec
|
dec CORE.TickSec
|
||||||
bne .3 not yet One Sec
|
bne .3 not yet One Sec
|
||||||
|
|
||||||
lda SYS.BASL0+38
|
lda IRQ.Mode
|
||||||
eor #$C0
|
eor #$C0
|
||||||
|
sta IRQ.Mode
|
||||||
|
|
||||||
|
ldx A2osX.ASCREEN
|
||||||
|
cpx #1 /DEV/CONSOLE
|
||||||
|
bne .22
|
||||||
|
|
||||||
sta SYS.BASL0+38
|
sta SYS.BASL0+38
|
||||||
|
|
||||||
ldx CORE.TickPerSec
|
.22 ldx CORE.TickPerSec
|
||||||
stx CORE.TickSec
|
stx CORE.TickSec
|
||||||
|
|
||||||
lda #S.EVT.F.T1SEC
|
lda #S.EVT.F.T1SEC
|
||||||
|
@ -14,12 +14,12 @@ A2osX.D2.S .EQ A2osX.E0-A2osX.D2
|
|||||||
A2osX.E0.S .EQ A2osX.E0.E-A2osX.E0
|
A2osX.E0.S .EQ A2osX.E0.E-A2osX.E0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
.DO A2osX.MAIN.S>$700
|
.DO Mem.MLoMem>$1fff
|
||||||
.LIST ON
|
.LIST ON
|
||||||
* ERROR:MAIN too big
|
* ERROR:MAIN too big
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
.FIN
|
.FIN
|
||||||
.DO A2osX.AUX.S>$C00
|
.DO Mem.XLoMem>$1fff
|
||||||
.LIST ON
|
.LIST ON
|
||||||
* ERROR:AUX too big
|
* ERROR:AUX too big
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
|
@ -91,30 +91,31 @@ K.MLI.PARAMS .EQ $03AA Main, 18 bytes min for GetFileInfo (ATLK needs MORE!!!
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.STACKTOP .EQ $03ED XFer !!! down to $3E0
|
K.STACKTOP .EQ $03ED XFer !!! down to $3E0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.Buf256 .EQ $0E00
|
*** $3F0-$3FF IRQ Handler.... ***
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.IOBuf .EQ $0F00
|
* Main/Aux $400 -> $7FF : TXT PAGE1 Screens
|
||||||
|
*--------------------------------------
|
||||||
|
* MemMgr : $0800->$0FFF MAIN/AUX (2 kBytes)
|
||||||
|
*--------------------------------------
|
||||||
|
Mem.Table .EQ $0800 Slot 0 is Reserved
|
||||||
|
Mem.LoMem .EQ $0800
|
||||||
|
Mem.Free .EQ $0802
|
||||||
|
Mem.HiMem .EQ $0804
|
||||||
|
Mem.LastSlot .EQ $0806
|
||||||
|
*--------------------------------------
|
||||||
|
* free $1000->$1FFF = $1000 (4096) Aux
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
*** Z80 Reserved $1000-10FF***
|
*** Z80 Reserved $1000-10FF***
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Z80CODE .EQ $1000 (00000h) Up To $10FF
|
Z80CODE .EQ $1000 (00000h) Up To $10FF
|
||||||
Z80STACK .EQ $10FF (000FFh) Down to $1000
|
Z80STACK .EQ $10FF (000FFh) Down to $1000
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* CORE $1100->$17FF = $700 Main
|
K.Buf256 .EQ $1100
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* MemMgr : $1800->$1FFF MAIN/AUX (2 kBytes)
|
K.IOBuf .EQ $1200
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Mem.Table .EQ $1800 Slot 0 is Reserved
|
|
||||||
Mem.LoMem .EQ $1800
|
|
||||||
Mem.Free .EQ $1802
|
|
||||||
Mem.HiMem .EQ $1804
|
|
||||||
Mem.LastSlot .EQ $1806
|
|
||||||
*--------------------------------------
|
|
||||||
Mem.MLoMem .EQ $2000
|
|
||||||
Mem.MHiMem .EQ $BD00
|
Mem.MHiMem .EQ $BD00
|
||||||
Mem.XLoMem .EQ $2000
|
|
||||||
Mem.XHiMem .EQ $C000
|
Mem.XHiMem .EQ $C000
|
||||||
*--------------------------------------
|
|
||||||
DevMgr.HiMem .EQ $FFFA Protect IRQ vectors in Aux LC
|
DevMgr.HiMem .EQ $FFFA Protect IRQ vectors in Aux LC
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
H.BIN.T .EQ 0
|
H.BIN.T .EQ 0
|
||||||
|
@ -322,6 +322,7 @@ GP.IrqH.Exit stz IRQ.SkipA2osX reset flag
|
|||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
IRQ.Mode .BS 1
|
||||||
IRQ.SkipA2osX .BS 1
|
IRQ.SkipA2osX .BS 1
|
||||||
IRQ.Tick .BS 1
|
IRQ.Tick .BS 1
|
||||||
IRQ.InKernel .BS 1
|
IRQ.InKernel .BS 1
|
||||||
|
@ -309,7 +309,7 @@ MemMgrInit >LDYAI Mem.MHiMem
|
|||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SysScrInit jsr SysScrInit.EnvBuf
|
SysScrInit jsr SysScrInit.DCBBuf
|
||||||
|
|
||||||
>PUSHWI FD.CONSOLE.NAME
|
>PUSHWI FD.CONSOLE.NAME
|
||||||
>LDYAI FD.TTY
|
>LDYAI FD.TTY
|
||||||
@ -326,7 +326,7 @@ SysScrInit jsr SysScrInit.EnvBuf
|
|||||||
sbc /2048
|
sbc /2048
|
||||||
sta FD.TTY+S.FD.DEV.BUFPTR+1
|
sta FD.TTY+S.FD.DEV.BUFPTR+1
|
||||||
|
|
||||||
jsr SysScrInit.EnvBuf
|
jsr SysScrInit.DCBBuf
|
||||||
|
|
||||||
>PUSHWI FD.TTY.NAME
|
>PUSHWI FD.TTY.NAME
|
||||||
>LDYAI FD.TTY
|
>LDYAI FD.TTY
|
||||||
@ -339,7 +339,7 @@ SysScrInit jsr SysScrInit.EnvBuf
|
|||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SysScrInit.EnvBuf
|
SysScrInit.DCBBuf
|
||||||
clc
|
clc
|
||||||
|
|
||||||
lda DevMgr.Free
|
lda DevMgr.Free
|
||||||
@ -587,7 +587,7 @@ IrqMgrInit >LDYAI MSG.IRQ
|
|||||||
bcs .1
|
bcs .1
|
||||||
|
|
||||||
lda #"C"
|
lda #"C"
|
||||||
sta SYS.BASL0+38
|
sta IRQ.Mode
|
||||||
|
|
||||||
>LDYAI K.IrqH.TCLOCK
|
>LDYAI K.IrqH.TCLOCK
|
||||||
>STYA K.IrqHAuxLC.JSR+1
|
>STYA K.IrqHAuxLC.JSR+1
|
||||||
@ -603,7 +603,7 @@ IrqMgrInit >LDYAI MSG.IRQ
|
|||||||
bcs .8
|
bcs .8
|
||||||
|
|
||||||
lda #"V"
|
lda #"V"
|
||||||
sta SYS.BASL0+38
|
sta IRQ.Mode
|
||||||
|
|
||||||
>LDYAI K.IrqH.VBL
|
>LDYAI K.IrqH.VBL
|
||||||
>STYA K.IrqHAuxLC.JSR+1
|
>STYA K.IrqHAuxLC.JSR+1
|
||||||
@ -618,7 +618,7 @@ IrqMgrInit >LDYAI MSG.IRQ
|
|||||||
.8 jsr IrqMgrInit.HZ2Tick
|
.8 jsr IrqMgrInit.HZ2Tick
|
||||||
|
|
||||||
lda #"P"
|
lda #"P"
|
||||||
sta SYS.BASL0+38
|
sta IRQ.Mode
|
||||||
|
|
||||||
>LDYAI MSG.IRQ.POLL
|
>LDYAI MSG.IRQ.POLL
|
||||||
>SYSCALL puts
|
>SYSCALL puts
|
||||||
|
@ -33,6 +33,10 @@ K.IrqHAuxLC cld
|
|||||||
lda $ff
|
lda $ff
|
||||||
pha
|
pha
|
||||||
|
|
||||||
|
lda RDPAGE2
|
||||||
|
pha
|
||||||
|
sta CLRPAGE2
|
||||||
|
|
||||||
lda RDREADAUX
|
lda RDREADAUX
|
||||||
pha
|
pha
|
||||||
sta CLRREADAUX Make sure we can access FD.Table
|
sta CLRREADAUX Make sure we can access FD.Table
|
||||||
@ -79,6 +83,11 @@ K.IrqHAuxLC.3 pla Must keep Carry
|
|||||||
sta SETREADAUX
|
sta SETREADAUX
|
||||||
|
|
||||||
.2 pla
|
.2 pla
|
||||||
|
bpl .3
|
||||||
|
|
||||||
|
sta SETPAGE2
|
||||||
|
|
||||||
|
.3 pla
|
||||||
sta $ff
|
sta $ff
|
||||||
pla
|
pla
|
||||||
sta $fe
|
sta $fe
|
||||||
@ -96,10 +105,10 @@ K.IrqHAuxLC.3 pla Must keep Carry
|
|||||||
tsx
|
tsx
|
||||||
|
|
||||||
lda $104,x get RTI PC LO
|
lda $104,x get RTI PC LO
|
||||||
bne .3
|
bne .4
|
||||||
dec $105,x adjust RTI PC HI
|
dec $105,x adjust RTI PC HI
|
||||||
|
|
||||||
.3 dec $104,x back one byte, to make it a "RTS" return adddress
|
.4 dec $104,x back one byte, to make it a "RTS" return adddress
|
||||||
|
|
||||||
lda $103,x get IRQ pushed P
|
lda $103,x get IRQ pushed P
|
||||||
sta $101,x down 2 bytes
|
sta $101,x down 2 bytes
|
||||||
@ -110,8 +119,8 @@ K.IrqHAuxLC.3 pla Must keep Carry
|
|||||||
sta $103,x
|
sta $103,x
|
||||||
|
|
||||||
lda #$A0+'S
|
lda #$A0+'S
|
||||||
eor SYS.BASL0+37
|
eor SYS.BASL0+39
|
||||||
sta SYS.BASL0+37
|
sta SYS.BASL0+39
|
||||||
|
|
||||||
K.IrqHAuxLC.4 ldy #$ff Self Modified
|
K.IrqHAuxLC.4 ldy #$ff Self Modified
|
||||||
K.IrqHAuxLC.5 ldx #$ff Self Modified
|
K.IrqHAuxLC.5 ldx #$ff Self Modified
|
||||||
|
@ -347,7 +347,7 @@ K.FreeMem tay
|
|||||||
* Mem.Table is page aligned at $1800
|
* Mem.Table is page aligned at $1800
|
||||||
* S.MEM is 8 bytes
|
* S.MEM is 8 bytes
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DO Mem.Table=$1800
|
.DO Mem.Table=$800
|
||||||
.ELSE
|
.ELSE
|
||||||
!!!!!WARNING!!!!!
|
!!!!!WARNING!!!!!
|
||||||
.FIN
|
.FIN
|
||||||
|
@ -36,9 +36,7 @@ DRV.TERM cld
|
|||||||
.DA DRV.TERM.READ
|
.DA DRV.TERM.READ
|
||||||
.DA DRV.TERM.WRITE
|
.DA DRV.TERM.WRITE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.TERM.STATUS >STYA ZPIOCTL
|
DRV.TERM.STATUS jsr DRV.TERM.GetIOCTLBufAndCnt
|
||||||
|
|
||||||
jsr DRV.TERM.GetIOCTLBuf
|
|
||||||
|
|
||||||
ldy #S.IOCTL.STATCODE
|
ldy #S.IOCTL.STATCODE
|
||||||
lda (ZPIOCTL),y
|
lda (ZPIOCTL),y
|
||||||
@ -118,6 +116,14 @@ DRV.TERM.CONTROL
|
|||||||
|
|
||||||
jsr DRV.TERM.SCRCPY
|
jsr DRV.TERM.SCRCPY
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
|
||||||
|
ldy #S.DCB.TTY.bCURON
|
||||||
|
sta (ZPDCBPtr),y
|
||||||
|
|
||||||
|
ldy #S.DCB.TTY.bTITLE
|
||||||
|
sta (ZPDCBPtr),y
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -151,14 +157,9 @@ DRV.TERM.CLOSE jsr DRV.TERM.GetDCB
|
|||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.TERM.READ >STYA ZPIOCTL
|
DRV.TERM.READ jsr DRV.TERM.GetIOCTLBufAndCnt
|
||||||
|
|
||||||
jsr DRV.TERM.GetIOCTLBufAndCnt
|
|
||||||
|
|
||||||
jsr DRV.TERM.GetDCB
|
jsr DRV.TERM.GetDCB
|
||||||
|
|
||||||
jsr DRV.TERM.GetActive
|
|
||||||
|
|
||||||
bit bActive is screen active?
|
bit bActive is screen active?
|
||||||
bpl .6 no....go check flush...
|
bpl .6 no....go check flush...
|
||||||
|
|
||||||
@ -168,11 +169,19 @@ DRV.TERM.READ >STYA ZPIOCTL
|
|||||||
eor (ZPDCBPtr),y
|
eor (ZPDCBPtr),y
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
jsr CURBLNK
|
jsr DRV.TERM.CURBLNK
|
||||||
|
|
||||||
.1 lda OPENAPPLE
|
.1 lda OPENAPPLE
|
||||||
|
bpl .11
|
||||||
|
|
||||||
|
lda KBD
|
||||||
bmi .6 Open apple key, not for us...
|
bmi .6 Open apple key, not for us...
|
||||||
|
|
||||||
|
jsr DRV.TERM.Title.ON
|
||||||
|
bra .6
|
||||||
|
|
||||||
|
.11 jsr DRV.TERM.Title.OFF
|
||||||
|
|
||||||
lda KBD
|
lda KBD
|
||||||
bpl .6
|
bpl .6
|
||||||
sta KBDSTROBE
|
sta KBDSTROBE
|
||||||
@ -233,20 +242,17 @@ DRV.TERM.READ >STYA ZPIOCTL
|
|||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.TERM.WRITE >STYA ZPIOCTL
|
DRV.TERM.WRITE jsr DRV.TERM.GetIOCTLBufAndCnt
|
||||||
|
|
||||||
jsr DRV.TERM.GetIOCTLBufAndCnt
|
|
||||||
|
|
||||||
jsr DRV.TERM.GetDCB
|
jsr DRV.TERM.GetDCB
|
||||||
|
|
||||||
jsr DRV.TERM.GetActive
|
|
||||||
|
|
||||||
.1 inc ZPCount
|
.1 inc ZPCount
|
||||||
bne .2
|
bne .2
|
||||||
inc ZPCount+1
|
inc ZPCount+1
|
||||||
beq .8
|
beq FS.8
|
||||||
|
|
||||||
.2 ldy #S.DCB.TTY.MODE
|
.2 jsr DRV.TERM.CUROFF
|
||||||
|
|
||||||
|
ldy #S.DCB.TTY.MODE
|
||||||
lda (ZPDCBPtr),y
|
lda (ZPDCBPtr),y
|
||||||
tax
|
tax
|
||||||
|
|
||||||
@ -258,13 +264,11 @@ DRV.TERM.WRITE >STYA ZPIOCTL
|
|||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.3 jmp (.4,x)
|
.3 jmp (.4,x)
|
||||||
|
|
||||||
.4 .DA DRV.TERM.COUT
|
.4 .DA DRV.TERM.COUT
|
||||||
.DA DRV.TERM.ESC
|
.DA DRV.TERM.ESC
|
||||||
.DA DRV.TERM.CSI
|
.DA DRV.TERM.CSI
|
||||||
.DA DRV.TERM.IAC
|
.DA DRV.TERM.IAC
|
||||||
|
|
||||||
.8 clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.TERM.COUT lda (ZPBufPtr)
|
DRV.TERM.COUT lda (ZPBufPtr)
|
||||||
|
|
||||||
@ -272,21 +276,12 @@ DRV.TERM.COUT lda (ZPBufPtr)
|
|||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
lda #S.DCB.TTY.MODE.IAC
|
lda #S.DCB.TTY.MODE.IAC
|
||||||
sta (ZPDCBPtr),y
|
bra DRV.TERM.SETMODE
|
||||||
|
|
||||||
ldy #S.DCB.TTY.INBUFFER
|
.1 cmp #C.DEL
|
||||||
lda #S.DCB.TTY.INBUFFER
|
beq DRV.TERM.COUT.DEL
|
||||||
sta (ZPDCBPtr),y
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
.1 pha
|
|
||||||
jsr CUROFF
|
|
||||||
pla
|
|
||||||
cmp #C.DEL
|
|
||||||
beq DEL
|
|
||||||
cmp #C.SPACE
|
cmp #C.SPACE
|
||||||
bcc COUT.Ctrl
|
bcc DRV.TERM.COUT.Ctrl
|
||||||
|
|
||||||
ldy #S.DCB.TTY.bINVERSE
|
ldy #S.DCB.TTY.bINVERSE
|
||||||
ora (ZPDCBPtr),y
|
ora (ZPDCBPtr),y
|
||||||
@ -313,7 +308,8 @@ FS ldy #S.DCB.TTY.CH
|
|||||||
FS.8 clc
|
FS.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DEL ldy #S.DCB.TTY.CH
|
DRV.TERM.COUT.DEL
|
||||||
|
ldy #S.DCB.TTY.CH
|
||||||
lda (ZPDCBPtr),y
|
lda (ZPDCBPtr),y
|
||||||
beq .1
|
beq .1
|
||||||
dec
|
dec
|
||||||
@ -336,7 +332,8 @@ DEL ldy #S.DCB.TTY.CH
|
|||||||
ora (ZPDCBPtr),y
|
ora (ZPDCBPtr),y
|
||||||
jmp SetCharAtCurPos
|
jmp SetCharAtCurPos
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
COUT.Ctrl ldx #CtrlChars.Cnt-1
|
DRV.TERM.COUT.Ctrl
|
||||||
|
ldx #CtrlChars.Cnt-1
|
||||||
|
|
||||||
.1 cmp CtrlChars,x
|
.1 cmp CtrlChars,x
|
||||||
beq .2
|
beq .2
|
||||||
@ -348,14 +345,27 @@ COUT.Ctrl ldx #CtrlChars.Cnt-1
|
|||||||
.2 txa
|
.2 txa
|
||||||
asl
|
asl
|
||||||
tax
|
tax
|
||||||
jmp (J.CtrlChars,x)
|
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
|
||||||
|
bra DRV.TERM.SETMODE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.TERM.ESC lda (ZPBufPtr)
|
DRV.TERM.ESC lda (ZPBufPtr)
|
||||||
|
|
||||||
cmp #'['
|
cmp #'['
|
||||||
bne .1
|
bne DRV.TERM.ESC1
|
||||||
|
|
||||||
lda #S.DCB.TTY.MODE.CSI
|
lda #S.DCB.TTY.MODE.CSI
|
||||||
|
|
||||||
|
DRV.TERM.SETMODE
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
ldy #S.DCB.TTY.INBUFFER
|
ldy #S.DCB.TTY.INBUFFER
|
||||||
lda #S.DCB.TTY.INBUFFER
|
lda #S.DCB.TTY.INBUFFER
|
||||||
@ -363,7 +373,7 @@ DRV.TERM.ESC lda (ZPBufPtr)
|
|||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.1 lda #0 y = #S.DCB.TTY.MODE
|
DRV.TERM.ESC1 lda #0 y = #S.DCB.TTY.MODE
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
|
|
||||||
ldx #EscCodes.Cnt-1
|
ldx #EscCodes.Cnt-1
|
||||||
@ -802,36 +812,29 @@ RESET.MODE lda #0
|
|||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
RESET jsr RESET.MODE
|
RESET.VALUES .DA #0 S.DCB.TTY.MODE
|
||||||
|
.DA #0 S.DCB.TTY.CH
|
||||||
|
.DA #0 S.DCB.TTY.CV
|
||||||
|
.DA #0 S.DCB.TTY.SCROLLTOP
|
||||||
|
.DA #23 S.DCB.TTY.SCROLLBOT
|
||||||
|
.DA #0 S.DCB.TTY.bCURON
|
||||||
|
.DA #0 S.DCB.TTY.CURCHAR
|
||||||
|
.DA #$80 S.DCB.TTY.bINVERSE
|
||||||
|
.DA #$80 S.DCB.TTY.bLINEWRAP
|
||||||
|
.DA #0 S.DCB.TTY.bTITLE
|
||||||
|
.DA #S.DCB.TTY.OUTBUFFER S.DCB.TTY.OUTTAIL
|
||||||
|
.DA #S.DCB.TTY.OUTBUFFER S.DCB.TTY.OUTHEAD
|
||||||
|
.DA #S.DCB.TTY.INBUFFER S.DCB.TTY.INBUFFER
|
||||||
|
*--------------------------------------
|
||||||
|
RESET ldy #1
|
||||||
|
|
||||||
ldy #S.DCB.TTY.OUTTAIL
|
.1 iny
|
||||||
sta (ZPDCBPtr),y
|
lda RESET.VALUES-2,y
|
||||||
iny
|
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
|
cpy #S.DCB.TTY.INBUFFER
|
||||||
|
bne .1
|
||||||
|
|
||||||
ldy #S.DCB.TTY.bCURON
|
jmp DRV.TERM.CLRSCR
|
||||||
sta (ZPDCBPtr),y
|
|
||||||
|
|
||||||
dec
|
|
||||||
ldy #S.DCB.TTY.bLINEWRAP
|
|
||||||
sta (ZPDCBPtr),y
|
|
||||||
|
|
||||||
lda #0
|
|
||||||
ldy #S.DCB.TTY.SCROLLTOP
|
|
||||||
sta (ZPDCBPtr),y
|
|
||||||
|
|
||||||
iny
|
|
||||||
lda #23
|
|
||||||
sta (ZPDCBPtr),y
|
|
||||||
|
|
||||||
lda #S.DCB.TTY.OUTBUFFER
|
|
||||||
|
|
||||||
ldy #S.DCB.TTY.OUTTAIL
|
|
||||||
sta (ZPDCBPtr),y
|
|
||||||
iny
|
|
||||||
sta (ZPDCBPtr),y
|
|
||||||
|
|
||||||
jsr DRV.TERM.CLRSCR
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
RESETATTR lda #$80
|
RESETATTR lda #$80
|
||||||
ldy #S.DCB.TTY.bINVERSE
|
ldy #S.DCB.TTY.bINVERSE
|
||||||
@ -839,14 +842,6 @@ RESETATTR lda #$80
|
|||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
J.CtrlChars .DA ENQ 5
|
|
||||||
.DA BS 8
|
|
||||||
.DA LF 10
|
|
||||||
.DA DRV.TERM.CLRSCR 12
|
|
||||||
.DA CROUT 13
|
|
||||||
.DA FS 21
|
|
||||||
.DA ESC 27
|
|
||||||
*--------------------------------------
|
|
||||||
ENQ ldx #0
|
ENQ ldx #0
|
||||||
|
|
||||||
.1 lda ENQ.String,x
|
.1 lda ENQ.String,x
|
||||||
@ -881,6 +876,13 @@ BS ldy #S.DCB.TTY.CH
|
|||||||
.2 clc
|
.2 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
FF lda #0
|
||||||
|
ldy #S.DCB.TTY.CV
|
||||||
|
sta (ZPDCBPtr),y
|
||||||
|
dey
|
||||||
|
sta (ZPDCBPtr),y
|
||||||
|
jmp DRV.TERM.CLRSCR
|
||||||
|
*--------------------------------------
|
||||||
CROUT lda #0
|
CROUT lda #0
|
||||||
ldy #S.DCB.TTY.CH
|
ldy #S.DCB.TTY.CH
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
@ -900,13 +902,6 @@ LF ldy #S.DCB.TTY.CV
|
|||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ESC lda #S.DCB.TTY.MODE.ESC
|
|
||||||
ldy #S.DCB.TTY.MODE
|
|
||||||
|
|
||||||
sta (ZPDCBPtr),y
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
SCROLL.UP ldy #S.DCB.TTY.SCROLLTOP
|
SCROLL.UP ldy #S.DCB.TTY.SCROLLTOP
|
||||||
lda (ZPDCBPtr),y
|
lda (ZPDCBPtr),y
|
||||||
|
|
||||||
@ -916,7 +911,7 @@ SCROLL.UP ldy #S.DCB.TTY.SCROLLTOP
|
|||||||
|
|
||||||
inx
|
inx
|
||||||
|
|
||||||
jsr COPY.XtoL1
|
jsr DRV.TERM.COPY.XtoL1
|
||||||
|
|
||||||
txa
|
txa
|
||||||
ldy #S.DCB.TTY.SCROLLBOT
|
ldy #S.DCB.TTY.SCROLLBOT
|
||||||
@ -969,7 +964,7 @@ SCROLL.DN ldy #S.DCB.TTY.SCROLLBOT
|
|||||||
|
|
||||||
dex
|
dex
|
||||||
|
|
||||||
jsr COPY.XtoL1
|
jsr DRV.TERM.COPY.XtoL1
|
||||||
|
|
||||||
txa
|
txa
|
||||||
ldy #S.DCB.TTY.SCROLLTOP
|
ldy #S.DCB.TTY.SCROLLTOP
|
||||||
@ -979,40 +974,37 @@ SCROLL.DN ldy #S.DCB.TTY.SCROLLBOT
|
|||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CUROFF ldy #S.DCB.TTY.bCURON
|
DRV.TERM.CUROFF ldy #S.DCB.TTY.bCURON
|
||||||
lda (ZPDCBPtr),y
|
lda (ZPDCBPtr),y
|
||||||
|
beq DRV.TERM.CURBLNK.RTS
|
||||||
beq CUREXIT.RTS
|
DRV.TERM.CURBLNK
|
||||||
|
bit bActive
|
||||||
CURBLNK bit bActive
|
bpl DRV.TERM.CURBLNK.RTS do not Light if screen is not active
|
||||||
bmi CURBLNK1
|
|
||||||
|
|
||||||
ldy #S.DCB.TTY.bCURON
|
ldy #S.DCB.TTY.bCURON
|
||||||
lda (ZPDCBPtr),y
|
lda (ZPDCBPtr),y
|
||||||
bne CURBLNK.OFF
|
bne DRV.TERM.CURBLNK.OFF
|
||||||
rts do not Light if screen is not active
|
|
||||||
|
|
||||||
CURBLNK1 ldy #S.DCB.TTY.bCURON
|
|
||||||
lda (ZPDCBPtr),y
|
|
||||||
bne CURBLNK.OFF
|
|
||||||
|
|
||||||
jsr GetCharAtCurPos
|
jsr GetCharAtCurPos
|
||||||
ldy #S.DCB.TTY.CURCHAR
|
ldy #S.DCB.TTY.CURCHAR
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
and #$80
|
and #$80
|
||||||
eor #" "
|
eor #" "
|
||||||
bra CUREXIT
|
bra DRV.TERM.CURBLNK.SET
|
||||||
|
|
||||||
CURBLNK.OFF ldy #S.DCB.TTY.CURCHAR
|
DRV.TERM.CURBLNK.OFF
|
||||||
|
ldy #S.DCB.TTY.CURCHAR
|
||||||
lda (ZPDCBPtr),y
|
lda (ZPDCBPtr),y
|
||||||
|
|
||||||
CUREXIT jsr SetCharAtCurPos
|
DRV.TERM.CURBLNK.SET
|
||||||
|
jsr SetCharAtCurPos
|
||||||
|
|
||||||
ldy #S.DCB.TTY.bCURON
|
ldy #S.DCB.TTY.bCURON
|
||||||
lda (ZPDCBPtr),y
|
lda (ZPDCBPtr),y
|
||||||
eor #CURSOR.BLINK.SPEED
|
eor #CURSOR.BLINK.SPEED
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
CUREXIT.RTS rts
|
DRV.TERM.CURBLNK.RTS
|
||||||
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Decimal.Out stz ZPTmpWord
|
Decimal.Out stz ZPTmpWord
|
||||||
stz ZPTmpWord+1
|
stz ZPTmpWord+1
|
||||||
@ -1125,9 +1117,7 @@ DRV.TERM.GetDCB ldy #S.FD.DEV.DCBPTR
|
|||||||
iny
|
iny
|
||||||
lda (pFD),y
|
lda (pFD),y
|
||||||
sta ZPDCBPtr+1
|
sta ZPDCBPtr+1
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
DRV.TERM.GetActive
|
|
||||||
ldy #S.DCB.TTY.DEVID
|
ldy #S.DCB.TTY.DEVID
|
||||||
lda (ZPDCBPtr),y
|
lda (ZPDCBPtr),y
|
||||||
cmp A2osX.ASCREEN
|
cmp A2osX.ASCREEN
|
||||||
@ -1138,7 +1128,16 @@ DRV.TERM.GetActive
|
|||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.TERM.GetIOCTLBufAndCnt
|
DRV.TERM.GetIOCTLBufAndCnt
|
||||||
ldy #S.IOCTL.BYTECNT
|
>STYA ZPIOCTL
|
||||||
|
|
||||||
|
ldy #S.IOCTL.BUFPTR
|
||||||
|
lda (ZPIOCTL),y
|
||||||
|
sta ZPBufPtr
|
||||||
|
iny
|
||||||
|
lda (ZPIOCTL),y
|
||||||
|
sta ZPBufPtr+1
|
||||||
|
|
||||||
|
iny #S.IOCTL.BYTECNT
|
||||||
|
|
||||||
lda (ZPIOCTL),y
|
lda (ZPIOCTL),y
|
||||||
eor #$ff
|
eor #$ff
|
||||||
@ -1148,88 +1147,62 @@ DRV.TERM.GetIOCTLBufAndCnt
|
|||||||
eor #$ff
|
eor #$ff
|
||||||
sta ZPCount+1
|
sta ZPCount+1
|
||||||
|
|
||||||
DRV.TERM.GetIOCTLBuf
|
|
||||||
ldy #S.IOCTL.BUFPTR
|
|
||||||
lda (ZPIOCTL),y
|
|
||||||
sta ZPBufPtr
|
|
||||||
iny
|
|
||||||
lda (ZPIOCTL),y
|
|
||||||
sta ZPBufPtr+1
|
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.TERM.SETUP.L1X
|
DRV.TERM.Title.ON
|
||||||
ldy #S.FD.DEV.BUFPTR
|
ldy #S.DCB.TTY.bTITLE
|
||||||
lda (pFD),y
|
lda (ZPDCBPtr),y
|
||||||
clc
|
bmi DRV.TERM.Title.RTS
|
||||||
adc BUF.BASEL,x
|
|
||||||
sta ZPBufBaseL1
|
|
||||||
|
|
||||||
|
lda #$ff
|
||||||
|
sta (ZPDCBPtr),y
|
||||||
|
|
||||||
|
ldy #S.DCB.TTY.DEVID
|
||||||
|
lda (ZPDCBPtr),y
|
||||||
|
tax
|
||||||
|
lda Dev.Table.hPath,x
|
||||||
|
jsr K.GetMemPtr
|
||||||
|
>STYA ZPTmpWord
|
||||||
|
|
||||||
|
ldx #0
|
||||||
|
jsr DRV.TERM.SETUP.L1X.SCR
|
||||||
|
|
||||||
|
ldy #0
|
||||||
|
|
||||||
|
.1 lda (ZPTmpWord),y
|
||||||
|
beq .2
|
||||||
|
|
||||||
|
cmp #$40
|
||||||
|
bcc .10
|
||||||
|
cmp #$5F
|
||||||
|
bcs .10
|
||||||
|
and #$3F
|
||||||
|
|
||||||
|
.10 phy
|
||||||
|
jsr SetCharAtY.SCR
|
||||||
|
ply
|
||||||
iny
|
iny
|
||||||
lda (pFD),y
|
bne .1
|
||||||
adc BUF.BASEH,x
|
|
||||||
sta ZPBufBaseL1+1
|
|
||||||
|
|
||||||
bit bActive
|
.2 lda #C.SPACE
|
||||||
bpl .8
|
|
||||||
|
|
||||||
lda SCR.BASEL,x
|
.3 phy
|
||||||
sta ZPScrBaseL1
|
jsr SetCharAtY.SCR
|
||||||
lda SCR.BASEH,x
|
ply
|
||||||
sta ZPScrBaseL1+1
|
iny
|
||||||
.8 rts
|
cpy #80
|
||||||
*--------------------------------------
|
bne .3
|
||||||
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
|
DRV.TERM.Title.RTS
|
||||||
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
|
rts
|
||||||
*--------------------------------------
|
|
||||||
BUF.BASEL .DA #S.TTYBUF.SCRBUF
|
DRV.TERM.Title.OFF
|
||||||
.DA #S.TTYBUF.SCRBUF+80
|
ldy #S.DCB.TTY.bTITLE
|
||||||
.DA #S.TTYBUF.SCRBUF+160
|
lda (ZPDCBPtr),y
|
||||||
.DA #S.TTYBUF.SCRBUF+240
|
bpl DRV.TERM.Title.RTS
|
||||||
.DA #S.TTYBUF.SCRBUF+320
|
|
||||||
.DA #S.TTYBUF.SCRBUF+400
|
lda #$0
|
||||||
.DA #S.TTYBUF.SCRBUF+480
|
sta (ZPDCBPtr),y
|
||||||
.DA #S.TTYBUF.SCRBUF+560
|
jmp DRV.TERM.LINE0CPY
|
||||||
.DA #S.TTYBUF.SCRBUF+640
|
|
||||||
.DA #S.TTYBUF.SCRBUF+720
|
|
||||||
.DA #S.TTYBUF.SCRBUF+800
|
|
||||||
.DA #S.TTYBUF.SCRBUF+880
|
|
||||||
.DA #S.TTYBUF.SCRBUF+960
|
|
||||||
.DA #S.TTYBUF.SCRBUF+1040
|
|
||||||
.DA #S.TTYBUF.SCRBUF+1120
|
|
||||||
.DA #S.TTYBUF.SCRBUF+1200
|
|
||||||
.DA #S.TTYBUF.SCRBUF+1280
|
|
||||||
.DA #S.TTYBUF.SCRBUF+1360
|
|
||||||
.DA #S.TTYBUF.SCRBUF+1440
|
|
||||||
.DA #S.TTYBUF.SCRBUF+1520
|
|
||||||
.DA #S.TTYBUF.SCRBUF+1600
|
|
||||||
.DA #S.TTYBUF.SCRBUF+1680
|
|
||||||
.DA #S.TTYBUF.SCRBUF+1760
|
|
||||||
.DA #S.TTYBUF.SCRBUF+1840
|
|
||||||
BUF.BASEH .DA /S.TTYBUF.SCRBUF
|
|
||||||
.DA /S.TTYBUF.SCRBUF+80
|
|
||||||
.DA /S.TTYBUF.SCRBUF+160
|
|
||||||
.DA /S.TTYBUF.SCRBUF+240
|
|
||||||
.DA /S.TTYBUF.SCRBUF+320
|
|
||||||
.DA /S.TTYBUF.SCRBUF+400
|
|
||||||
.DA /S.TTYBUF.SCRBUF+480
|
|
||||||
.DA /S.TTYBUF.SCRBUF+560
|
|
||||||
.DA /S.TTYBUF.SCRBUF+640
|
|
||||||
.DA /S.TTYBUF.SCRBUF+720
|
|
||||||
.DA /S.TTYBUF.SCRBUF+800
|
|
||||||
.DA /S.TTYBUF.SCRBUF+880
|
|
||||||
.DA /S.TTYBUF.SCRBUF+960
|
|
||||||
.DA /S.TTYBUF.SCRBUF+1040
|
|
||||||
.DA /S.TTYBUF.SCRBUF+1120
|
|
||||||
.DA /S.TTYBUF.SCRBUF+1200
|
|
||||||
.DA /S.TTYBUF.SCRBUF+1280
|
|
||||||
.DA /S.TTYBUF.SCRBUF+1360
|
|
||||||
.DA /S.TTYBUF.SCRBUF+1440
|
|
||||||
.DA /S.TTYBUF.SCRBUF+1520
|
|
||||||
.DA /S.TTYBUF.SCRBUF+1600
|
|
||||||
.DA /S.TTYBUF.SCRBUF+1680
|
|
||||||
.DA /S.TTYBUF.SCRBUF+1760
|
|
||||||
.DA /S.TTYBUF.SCRBUF+1840
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CtrlChars .HS 05080A0C0D151B
|
CtrlChars .HS 05080A0C0D151B
|
||||||
CtrlChars.Cnt .EQ *-CtrlChars
|
CtrlChars.Cnt .EQ *-CtrlChars
|
||||||
|
@ -2,6 +2,80 @@ NEW
|
|||||||
PREFIX
|
PREFIX
|
||||||
AUTO 4,1
|
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
|
||||||
|
*--------------------------------------
|
||||||
|
BUF.BASEL .DA #S.TTYBUF.SCRBUF
|
||||||
|
.DA #S.TTYBUF.SCRBUF+80
|
||||||
|
.DA #S.TTYBUF.SCRBUF+160
|
||||||
|
.DA #S.TTYBUF.SCRBUF+240
|
||||||
|
.DA #S.TTYBUF.SCRBUF+320
|
||||||
|
.DA #S.TTYBUF.SCRBUF+400
|
||||||
|
.DA #S.TTYBUF.SCRBUF+480
|
||||||
|
.DA #S.TTYBUF.SCRBUF+560
|
||||||
|
.DA #S.TTYBUF.SCRBUF+640
|
||||||
|
.DA #S.TTYBUF.SCRBUF+720
|
||||||
|
.DA #S.TTYBUF.SCRBUF+800
|
||||||
|
.DA #S.TTYBUF.SCRBUF+880
|
||||||
|
.DA #S.TTYBUF.SCRBUF+960
|
||||||
|
.DA #S.TTYBUF.SCRBUF+1040
|
||||||
|
.DA #S.TTYBUF.SCRBUF+1120
|
||||||
|
.DA #S.TTYBUF.SCRBUF+1200
|
||||||
|
.DA #S.TTYBUF.SCRBUF+1280
|
||||||
|
.DA #S.TTYBUF.SCRBUF+1360
|
||||||
|
.DA #S.TTYBUF.SCRBUF+1440
|
||||||
|
.DA #S.TTYBUF.SCRBUF+1520
|
||||||
|
.DA #S.TTYBUF.SCRBUF+1600
|
||||||
|
.DA #S.TTYBUF.SCRBUF+1680
|
||||||
|
.DA #S.TTYBUF.SCRBUF+1760
|
||||||
|
.DA #S.TTYBUF.SCRBUF+1840
|
||||||
|
BUF.BASEH .DA /S.TTYBUF.SCRBUF
|
||||||
|
.DA /S.TTYBUF.SCRBUF+80
|
||||||
|
.DA /S.TTYBUF.SCRBUF+160
|
||||||
|
.DA /S.TTYBUF.SCRBUF+240
|
||||||
|
.DA /S.TTYBUF.SCRBUF+320
|
||||||
|
.DA /S.TTYBUF.SCRBUF+400
|
||||||
|
.DA /S.TTYBUF.SCRBUF+480
|
||||||
|
.DA /S.TTYBUF.SCRBUF+560
|
||||||
|
.DA /S.TTYBUF.SCRBUF+640
|
||||||
|
.DA /S.TTYBUF.SCRBUF+720
|
||||||
|
.DA /S.TTYBUF.SCRBUF+800
|
||||||
|
.DA /S.TTYBUF.SCRBUF+880
|
||||||
|
.DA /S.TTYBUF.SCRBUF+960
|
||||||
|
.DA /S.TTYBUF.SCRBUF+1040
|
||||||
|
.DA /S.TTYBUF.SCRBUF+1120
|
||||||
|
.DA /S.TTYBUF.SCRBUF+1200
|
||||||
|
.DA /S.TTYBUF.SCRBUF+1280
|
||||||
|
.DA /S.TTYBUF.SCRBUF+1360
|
||||||
|
.DA /S.TTYBUF.SCRBUF+1440
|
||||||
|
.DA /S.TTYBUF.SCRBUF+1520
|
||||||
|
.DA /S.TTYBUF.SCRBUF+1600
|
||||||
|
.DA /S.TTYBUF.SCRBUF+1680
|
||||||
|
.DA /S.TTYBUF.SCRBUF+1760
|
||||||
|
.DA /S.TTYBUF.SCRBUF+1840
|
||||||
|
*--------------------------------------
|
||||||
DRV.TERM.CLRSCR ldx #23
|
DRV.TERM.CLRSCR ldx #23
|
||||||
sta SET80STORE
|
sta SET80STORE
|
||||||
|
|
||||||
@ -48,21 +122,23 @@ DRV.TERM.CLRSCR ldx #23
|
|||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.TERM.SCRCPY ldx #0
|
DRV.TERM.LINE0CPY
|
||||||
|
ldx #0
|
||||||
|
.HS 2C BIT ABS
|
||||||
|
DRV.TERM.SCRCPY ldx #23
|
||||||
|
|
||||||
sta SET80STORE
|
sta SET80STORE
|
||||||
|
|
||||||
.1 ldy #S.FD.DEV.BUFPTR
|
.1 ldy #S.FD.DEV.BUFPTR
|
||||||
lda (pFD),y
|
lda (pFD),y
|
||||||
clc
|
clc
|
||||||
adc BUF.BASEL,x
|
adc BUF.BASEL,x
|
||||||
sta .2+1
|
sta .80+1
|
||||||
sta .3+1
|
|
||||||
|
|
||||||
iny
|
iny
|
||||||
lda (pFD),y
|
lda (pFD),y
|
||||||
adc BUF.BASEH,x
|
adc BUF.BASEH,x
|
||||||
sta .2+2
|
sta .80+2
|
||||||
sta .3+2
|
|
||||||
|
|
||||||
lda SCR.BASEL,x
|
lda SCR.BASEL,x
|
||||||
sta ZPScrBaseL1
|
sta ZPScrBaseL1
|
||||||
@ -74,94 +150,39 @@ DRV.TERM.SCRCPY ldx #0
|
|||||||
sta SETREADAUX
|
sta SETREADAUX
|
||||||
|
|
||||||
ldx #78
|
ldx #78
|
||||||
ldy #39
|
|
||||||
sta SETPAGE2
|
sta SETPAGE2
|
||||||
|
|
||||||
.2 lda $ffff,x SELF MODIFIED
|
ldy #39
|
||||||
sta (ZPScrBaseL1),y
|
|
||||||
dex
|
jsr .8
|
||||||
dex
|
|
||||||
dey
|
|
||||||
bpl .2
|
|
||||||
|
|
||||||
ldx #79
|
ldx #79
|
||||||
ldy #39
|
|
||||||
sta CLRPAGE2
|
sta CLRPAGE2
|
||||||
|
|
||||||
.3 lda $ffff,x SELF MODIFIED
|
ldy #39
|
||||||
sta (ZPScrBaseL1),y
|
|
||||||
dex
|
jsr .8
|
||||||
dex
|
|
||||||
dey
|
|
||||||
bpl .3
|
|
||||||
|
|
||||||
sta CLRREADAUX
|
sta CLRREADAUX
|
||||||
|
|
||||||
plx
|
plx
|
||||||
inx
|
dex
|
||||||
cpx #24
|
|
||||||
bne .1
|
bpl .1
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
|
||||||
SetCharAtCurPos pha
|
.8 ldy #39
|
||||||
ldy #S.DCB.TTY.CV
|
|
||||||
lda (ZPDCBPtr),y
|
.80 lda $ffff,x SELF MODIFIED
|
||||||
tax
|
sta (ZPScrBaseL1),y
|
||||||
|
dex
|
||||||
|
dex
|
||||||
dey
|
dey
|
||||||
lda (ZPDCBPtr),y
|
bpl .80
|
||||||
tay
|
|
||||||
pla
|
|
||||||
*--------------------------------------
|
|
||||||
SetCharAtYX cmp #$40
|
|
||||||
bcc .1
|
|
||||||
cmp #$5F
|
|
||||||
bcs .1
|
|
||||||
and #$3F
|
|
||||||
|
|
||||||
.1 pha
|
|
||||||
phy
|
|
||||||
jsr DRV.TERM.SETUP.L1X
|
|
||||||
ply
|
|
||||||
|
|
||||||
pla
|
|
||||||
sta SETWRITEAUX
|
|
||||||
sta (ZPBufBaseL1),y
|
|
||||||
sta CLRWRITEAUX
|
|
||||||
|
|
||||||
bit bActive
|
|
||||||
bpl .8
|
|
||||||
|
|
||||||
pha
|
|
||||||
|
|
||||||
tya
|
|
||||||
lsr
|
|
||||||
tay
|
|
||||||
|
|
||||||
pla
|
|
||||||
bcs .2
|
|
||||||
sta SET80STORE
|
|
||||||
sta SETPAGE2
|
|
||||||
.2 sta (ZPScrBaseL1),y
|
|
||||||
sta CLRPAGE2
|
|
||||||
.8 rts
|
|
||||||
*--------------------------------------
|
|
||||||
GetCharAtCurPos ldy #S.DCB.TTY.CV
|
|
||||||
lda (ZPDCBPtr),y
|
|
||||||
tax
|
|
||||||
|
|
||||||
jsr DRV.TERM.SETUP.L1X
|
|
||||||
|
|
||||||
ldy #S.DCB.TTY.CH
|
|
||||||
lda (ZPDCBPtr),y
|
|
||||||
tay
|
|
||||||
|
|
||||||
sta SETREADAUX
|
|
||||||
lda (ZPBufBaseL1),y
|
|
||||||
sta CLRREADAUX
|
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
COPY.XtoL1 ldy #79
|
DRV.TERM.COPY.XtoL1
|
||||||
|
ldy #79
|
||||||
|
|
||||||
sta SETWRITEAUX
|
sta SETWRITEAUX
|
||||||
sta SETREADAUX
|
sta SETREADAUX
|
||||||
@ -196,6 +217,65 @@ COPY.XtoL1 ldy #79
|
|||||||
bpl .7
|
bpl .7
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
SetCharAtCurPos pha
|
||||||
|
ldy #S.DCB.TTY.CV
|
||||||
|
lda (ZPDCBPtr),y
|
||||||
|
tax
|
||||||
|
dey
|
||||||
|
lda (ZPDCBPtr),y
|
||||||
|
tay
|
||||||
|
pla
|
||||||
|
*--------------------------------------
|
||||||
|
SetCharAtYX cmp #$40
|
||||||
|
bcc .1
|
||||||
|
cmp #$5F
|
||||||
|
bcs .1
|
||||||
|
and #$3F
|
||||||
|
|
||||||
|
.1 pha
|
||||||
|
phy
|
||||||
|
jsr DRV.TERM.SETUP.L1X
|
||||||
|
ply
|
||||||
|
|
||||||
|
pla
|
||||||
|
sta SETWRITEAUX
|
||||||
|
sta (ZPBufBaseL1),y
|
||||||
|
sta CLRWRITEAUX
|
||||||
|
|
||||||
|
bit bActive
|
||||||
|
bpl SetCharAtYX.8
|
||||||
|
SetCharAtY.SCR
|
||||||
|
pha
|
||||||
|
|
||||||
|
tya
|
||||||
|
lsr
|
||||||
|
tay
|
||||||
|
|
||||||
|
pla
|
||||||
|
sta SET80STORE
|
||||||
|
bcs .2
|
||||||
|
sta SETPAGE2
|
||||||
|
.2 sta (ZPScrBaseL1),y
|
||||||
|
sta CLRPAGE2
|
||||||
|
|
||||||
|
SetCharAtYX.8 rts
|
||||||
|
*--------------------------------------
|
||||||
|
GetCharAtCurPos ldy #S.DCB.TTY.CV
|
||||||
|
lda (ZPDCBPtr),y
|
||||||
|
tax
|
||||||
|
|
||||||
|
jsr DRV.TERM.SETUP.L1X
|
||||||
|
|
||||||
|
ldy #S.DCB.TTY.CH
|
||||||
|
lda (ZPDCBPtr),y
|
||||||
|
tay
|
||||||
|
|
||||||
|
sta SETREADAUX
|
||||||
|
lda (ZPBufBaseL1),y
|
||||||
|
sta CLRREADAUX
|
||||||
|
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE USR/SRC/SYS/KERNEL.S.TERMLC
|
SAVE USR/SRC/SYS/KERNEL.S.TERMLC
|
||||||
LOAD USR/SRC/SYS/KERNEL.S
|
LOAD USR/SRC/SYS/KERNEL.S
|
||||||
|
@ -21,13 +21,16 @@ AUTO 4,1
|
|||||||
.INB USR/SRC/SYS/KERNEL.S.INIT
|
.INB USR/SRC/SYS/KERNEL.S.INIT
|
||||||
.INB USR/SRC/X.PRINTF.S
|
.INB USR/SRC/X.PRINTF.S
|
||||||
|
|
||||||
A2osX.MAIN .PH $1100
|
A2osX.MAIN .PH $1480
|
||||||
.INB USR/SRC/SYS/KERNEL.S.CORE
|
.INB USR/SRC/SYS/KERNEL.S.CORE
|
||||||
.INB USR/SRC/SYS/KERNEL.S.DRV
|
.INB USR/SRC/SYS/KERNEL.S.DRV
|
||||||
|
.INB USR/SRC/SYS/KERNEL.S.TERM
|
||||||
|
Mem.MLoMem .EQ *
|
||||||
.EP
|
.EP
|
||||||
A2osX.AUX .PH $0800
|
A2osX.AUX .PH $1000
|
||||||
.INB USR/SRC/SYS/KERNEL.S.OSD
|
.INB USR/SRC/SYS/KERNEL.S.OSD
|
||||||
.INB USR/SRC/SYS/KERNEL.S.SLIST
|
.INB USR/SRC/SYS/KERNEL.S.SLIST
|
||||||
|
Mem.XLoMem .EQ *
|
||||||
.EP
|
.EP
|
||||||
A2osX.GP .PH $BD00
|
A2osX.GP .PH $BD00
|
||||||
.INB USR/SRC/SYS/KERNEL.S.GP
|
.INB USR/SRC/SYS/KERNEL.S.GP
|
||||||
@ -53,7 +56,6 @@ A2osX.E0 .PH $E000
|
|||||||
.INB USR/SRC/SYS/KERNEL.S.JMP
|
.INB USR/SRC/SYS/KERNEL.S.JMP
|
||||||
.INB USR/SRC/SYS/KERNEL.S.IRQ
|
.INB USR/SRC/SYS/KERNEL.S.IRQ
|
||||||
.INB USR/SRC/SYS/KERNEL.S.MEM
|
.INB USR/SRC/SYS/KERNEL.S.MEM
|
||||||
.INB USR/SRC/SYS/KERNEL.S.TERM
|
|
||||||
.INB USR/SRC/SYS/KERNEL.S.TERMLC
|
.INB USR/SRC/SYS/KERNEL.S.TERMLC
|
||||||
********* TMP ***** go to A2osX.D1
|
********* TMP ***** go to A2osX.D1
|
||||||
.INB USR/SRC/SYS/KERNEL.S.PFT
|
.INB USR/SRC/SYS/KERNEL.S.PFT
|
||||||
|
Loading…
Reference in New Issue
Block a user