A2osX/SYS/KERNEL.S.TERMLC.txt
2018-12-17 15:24:39 +01:00

285 lines
4.2 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

NEW
PREFIX
AUTO 4,1
*--------------------------------------
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 #0
.DA #80
.DA #160
.DA #240
.DA #320
.DA #400
.DA #480
.DA #560
.DA #640
.DA #720
.DA #800
.DA #880
.DA #960
.DA #1040
.DA #1120
.DA #1200
.DA #1280
.DA #1360
.DA #1440
.DA #1520
.DA #1600
.DA #1680
.DA #1760
.DA #1840
BUF.BASEH .DA /0
.DA /80
.DA /160
.DA /240
.DA /320
.DA /400
.DA /480
.DA /560
.DA /640
.DA /720
.DA /800
.DA /880
.DA /960
.DA /1040
.DA /1120
.DA /1200
.DA /1280
.DA /1360
.DA /1440
.DA /1520
.DA /1600
.DA /1680
.DA /1760
.DA /1840
*--------------------------------------
DRV.TERM.CLRSCR ldx #23
sta SET80STORE
.1 jsr DRV.TERM.SETUP.L1X
lda #" "
bit bActive
bpl .4
sta SETPAGE2
jsr .7
sta CLRPAGE2
jsr .7
.4 sta SETWRITEAUX
ldy #79
.5 sta (ZPBufBaseL1),y
dey
bpl .5
sta CLRWRITEAUX
dex
bpl .1
rts
.7 ldy #39
.8 sta (ZPScrBaseL1),y
dey
bpl .8
rts
*--------------------------------------
DRV.TERM.LINE0CPY
ldx #0
.HS 2C BIT ABS
DRV.TERM.SCRCPY ldx #23
sta SET80STORE
.1 ldy #S.FD.DEV.BUFPTR
lda (pFD),y
clc
adc BUF.BASEL,x
sta .80+1
iny
lda (pFD),y
adc BUF.BASEH,x
sta .80+2
jsr DRV.TERM.SETUP.L1X.SCR
phx
sta SETREADAUX
ldx #78
sta SETPAGE2
ldy #39
jsr .8
ldx #79
sta CLRPAGE2
ldy #39
jsr .8
sta CLRREADAUX
plx
dex
bpl .1
rts
.8 ldy #39
.80 lda $ffff,x SELF MODIFIED
cmp #$40
bcc .81
cmp #$5F
bcs .81
and #$3F
.81 sta (ZPScrBaseL1),y
dex
dex
dey
bpl .80
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
sta SETREADAUX
.1 lda (ZPBufBaseL2),y
sta (ZPBufBaseL1),y
dey
bpl .1
sta CLRWRITEAUX
sta CLRREADAUX
bit bActive
bpl .8
lda SCR.BASEL,x
sta ZPScrBaseL2
lda SCR.BASEH,x
sta ZPScrBaseL2+1
sta SET80STORE
sta SETPAGE2
jsr .6
sta CLRPAGE2
.6 ldy #39
.7 lda (ZPScrBaseL2),y
sta (ZPScrBaseL1),y
dey
bpl .7
.8 rts
*--------------------------------------
SetCharAtCurPos.SCR
pha
ldy #S.DCB.TTY.CV
lda (ZPDCBPtr),y
tax
dey
lda (ZPDCBPtr),y
tay CH
jsr DRV.TERM.SETUP.L1X.SCR
pla
bra SetCharAtY.SCR
SetCharAtCurPos pha
ldy #S.DCB.TTY.CV
lda (ZPDCBPtr),y
tax
dey
lda (ZPDCBPtr),y
tay
pla
*--------------------------------------
SetCharAtYX pha
phy
jsr DRV.TERM.SETUP.L1X
ply
pla
sta SETWRITEAUX
sta (ZPBufBaseL1),y
sta CLRWRITEAUX
bit bActive
bpl SetCharAtYX.8
SetCharAtY.SCR cmp #$40
bcc .1
cmp #$5F
bcs .1
and #$3F
.1 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
SAVE USR/SRC/SYS/KERNEL.S.TERMLC
LOAD USR/SRC/SYS/KERNEL.S
ASM