mirror of
https://github.com/A2osX/A2osX.git
synced 2024-10-31 23:09:33 +00:00
1553 lines
26 KiB
Plaintext
1553 lines
26 KiB
Plaintext
NEW
|
||
AUTO 3,1
|
||
*--------------------------------------
|
||
CURSOR.BLINK.SPEED .EQ 2
|
||
*--------------------------------------
|
||
.DUMMY ZPDRV
|
||
.OR ZPDRV
|
||
ZPIOCTL .BS 2
|
||
ZPBufPtr .BS 2
|
||
ZPDCBPtr .BS 2
|
||
ZPCnt .BS 2
|
||
|
||
ZPBufBL1 .BS 2
|
||
ZPBufBL2 .BS 2
|
||
ZPScrBL1 .BS 2
|
||
ZPScrBL2 .BS 2
|
||
*--------------------------------------
|
||
bActive .BS 1
|
||
ZPhFD .BS 1
|
||
|
||
ZPTmpBool .BS 1
|
||
ZPTmpChar .BS 1
|
||
|
||
CsiH .BS 1
|
||
CsiPCnt .BS 1
|
||
CsiP .BS 4
|
||
.ED
|
||
*--------------------------------------
|
||
TERMX .DA TERMX.STATUS
|
||
.DA A2osX.BADCALL
|
||
.DA A2osX.BADCALL
|
||
.DA A2osX.BADCALL
|
||
.DA TERMX.CONTROL
|
||
.DA A2osX.BADCALL
|
||
.DA TERMX.OPEN
|
||
.DA TERMX.CLOSE
|
||
.DA TERMX.READ
|
||
.DA TERMX.WRITE
|
||
*--------------------------------------
|
||
TERMX.STATUS tya
|
||
beq .1
|
||
|
||
cmp #S.IOCTL.S.GETDIB
|
||
bne .3
|
||
|
||
ldy #S.DIB-1
|
||
.HS 2C bit abs
|
||
.1 ldy #3
|
||
|
||
sta CLRWRITEAUX
|
||
|
||
.2 lda TERMX.DIB,y
|
||
sta (ZPBufPtr),y
|
||
dey
|
||
bne .2
|
||
|
||
ldy #S.DCB.TTY.S
|
||
lda (ZPDCBPtr),y
|
||
sta (ZPBufPtr)
|
||
clc
|
||
rts
|
||
|
||
.3 cmp #S.IOCTL.S.EOF
|
||
bne .9
|
||
|
||
jsr TERMX.ISOPENED
|
||
beq TERMX.OPEN.E
|
||
|
||
jsr TERMX.CBLNK
|
||
ldy #S.DCB.TTY.OUTTAIL
|
||
lda (ZPDCBPtr),y
|
||
iny
|
||
* sec
|
||
eor (ZPDCBPtr),y OUTHEAD
|
||
bne .8
|
||
|
||
bit bActive
|
||
bpl .7
|
||
|
||
bit OPENAPPLE
|
||
bmi .7
|
||
|
||
bit KBD
|
||
bmi .8
|
||
|
||
.7 lda #$ff
|
||
.HS 2C BIT ABS
|
||
.8 lda #0
|
||
clc
|
||
rts
|
||
|
||
.9 lda #MLI.E.BADCTL
|
||
.HS 2C BIT ABS
|
||
TERMX.OPEN.E lda #MLI.E.OPEN
|
||
sec
|
||
rts
|
||
*--------------------------------------
|
||
TERMX.OPEN jsr TERMX.ISOPENED
|
||
bne TERMX.OPEN.E
|
||
|
||
lda (ZPDCBPtr) #S.DCB.TTY.DEVID
|
||
tax
|
||
lda ZPhFD
|
||
|
||
sta CLRWRITEAUX
|
||
sta A2osX.SCRNDEVS,x
|
||
sta SETWRITEAUX
|
||
|
||
ldy #S.DCB.TTY.S
|
||
lda (ZPDCBPtr),y
|
||
ora #S.DIB.S.OPENED
|
||
ora TERMX.DIB+S.DIB.S
|
||
sta (ZPDCBPtr),y
|
||
jsr RESET
|
||
*--------------------------------------
|
||
TERMX.CONTROL lda (ZPDCBPtr) #S.DCB.TTY.DEVID
|
||
|
||
sta CLRWRITEAUX
|
||
sta A2osX.ASCREEN
|
||
sta SETWRITEAUX
|
||
|
||
sta SETTEXT
|
||
sta CLRMIXED
|
||
|
||
jsr TERMX.SCRCPY
|
||
|
||
lda #0
|
||
ldy #S.DCB.TTY.bCURON
|
||
sta (ZPDCBPtr),y
|
||
iny #S.DCB.TTY.bTITLE
|
||
sta (ZPDCBPtr),y
|
||
clc
|
||
rts
|
||
*--------------------------------------
|
||
TERMX.CLOSE jsr TERMX.ISOPENED
|
||
beq .9
|
||
|
||
lda TERMX.DIB+S.DIB.S
|
||
sta (ZPDCBPtr),y
|
||
|
||
lda (ZPDCBPtr) #S.DCB.TTY.DEVID
|
||
tax
|
||
|
||
sta CLRWRITEAUX
|
||
stz A2osX.SCRNDEVS,x
|
||
sta SETWRITEAUX
|
||
|
||
clc
|
||
rts
|
||
|
||
.9 lda #MLI.E.IO
|
||
sec
|
||
rts
|
||
*--------------------------------------
|
||
TERMX.ISOPENED ldy #S.DCB.TTY.S
|
||
lda (ZPDCBPtr),y
|
||
bit #S.DIB.S.OPENED
|
||
rts
|
||
*--------------------------------------
|
||
TERMX.READ bit bActive is screen active?
|
||
bpl .6 no....go check flush...
|
||
jsr TERMX.CBLNK
|
||
|
||
bit OPENAPPLE
|
||
bpl .1
|
||
|
||
jsr TERMX.Title.ON
|
||
|
||
bra .6 Open apple key, not for us...
|
||
|
||
.1 jsr TERMX.Title.OFF
|
||
|
||
lda KBD
|
||
|
||
bpl .6
|
||
sta KBDSTROBE
|
||
|
||
and #$7F
|
||
cmp #C.ESC
|
||
bne .10
|
||
|
||
lda #3
|
||
|
||
.10 ldx #3
|
||
|
||
.2 cmp KeyMap,x
|
||
beq .3
|
||
|
||
dex
|
||
bpl .2
|
||
|
||
cmp #C.CR
|
||
bne .21
|
||
|
||
jsr TERMX.COUT
|
||
ldy #S.DCB.TTY.bCRLF
|
||
lda (ZPDCBPtr),y
|
||
bpl .7
|
||
|
||
lda #C.LF
|
||
.21 jsr TERMX.COUT no remap....send char....
|
||
bra .7 and flush
|
||
|
||
.3 lda KeyMap.Tbl,x
|
||
pha
|
||
lda #C.ESC
|
||
jsr TERMX.COUT
|
||
lda #'['
|
||
jsr TERMX.COUT
|
||
pla
|
||
jsr TERMX.COUT
|
||
bra .7
|
||
|
||
.6 ldy #S.DCB.TTY.OUTTAIL
|
||
lda (ZPDCBPtr),y
|
||
iny
|
||
cmp (ZPDCBPtr),y OUTHEAD
|
||
beq .9 no char in output buffer...
|
||
|
||
.7 stz .8+1
|
||
|
||
.70 inc ZPCnt
|
||
bne .71
|
||
|
||
inc ZPCnt+1
|
||
beq .8
|
||
|
||
.71 jsr Char.Out.Get
|
||
bcs .8
|
||
|
||
ldy .8+1
|
||
sta CLRWRITEAUX
|
||
sta (ZPBufPtr),y
|
||
sta SETWRITEAUX
|
||
iny
|
||
sty .8+1
|
||
bra .70
|
||
|
||
.8 lda #$ff SELF MODIFIED
|
||
|
||
sta CLRWRITEAUX
|
||
|
||
ldy #S.IOCTL.BYTECNT
|
||
sta (ZPIOCTL),y
|
||
iny
|
||
lda #0
|
||
sta (ZPIOCTL),y
|
||
clc
|
||
rts
|
||
|
||
.9 lda #E.NODATA
|
||
* sec
|
||
rts
|
||
*--------------------------------------
|
||
TERMX.WRITE jsr TERMX.CUROFF
|
||
|
||
.1 inc ZPCnt
|
||
bne .2
|
||
|
||
inc ZPCnt+1
|
||
beq .8
|
||
|
||
.2 ldy #S.DCB.TTY.M
|
||
lda (ZPDCBPtr),y
|
||
tax
|
||
jsr .3
|
||
|
||
inc ZPBufPtr
|
||
bne .1
|
||
inc ZPBufPtr+1
|
||
bra .1
|
||
|
||
.3 jmp (.4,x)
|
||
|
||
.4 .DA TERMX.OUT
|
||
.DA TERMX.ESC
|
||
.DA TERMX.CSI
|
||
.DA TERMX.IAC
|
||
.DA TERMX.G0
|
||
.DA TERMX.G1
|
||
|
||
.8 clc
|
||
rts
|
||
*--------------------------------------
|
||
TERMX.OUT jsr TERM.GetBufByte
|
||
|
||
cmp #IAC
|
||
bne .1
|
||
|
||
lda #S.DCB.TTY.M.IAC
|
||
jmp TERMX.SETM
|
||
|
||
.1 cmp #C.DEL
|
||
beq TERMX.OUT.DEL
|
||
|
||
cmp #C.SPACE
|
||
bcs .8
|
||
|
||
ldx #CtrlChars.Cnt-1
|
||
|
||
.2 cmp CtrlChars,x
|
||
beq .3
|
||
|
||
dex
|
||
bpl .2
|
||
|
||
clc
|
||
rts
|
||
|
||
.3 txa
|
||
asl
|
||
tax
|
||
jmp (.4,x)
|
||
|
||
.4 .DA ENQ
|
||
.DA TERMX.OUT.BS
|
||
.DA TERMX.OUT.LF
|
||
.DA TERMX.OUT.FF
|
||
.DA TERMX.OUT.CR
|
||
.DA TERMX.OUT.SO
|
||
.DA TERMX.OUT.SI
|
||
.DA TERMX.OUT.FS
|
||
.DA TERMX.OUT.ESC
|
||
*--------------------------------------
|
||
.8 jsr SetCharAtCurPos
|
||
*--------------------------------------
|
||
TERMX.OUT.FS ldy #S.DCB.TTY.CH
|
||
lda (ZPDCBPtr),y
|
||
inc
|
||
sta (ZPDCBPtr),y
|
||
cmp #80
|
||
bcc TERMX.OUT.BS.8
|
||
|
||
ldy #S.DCB.TTY.bLINEWRAP
|
||
lda (ZPDCBPtr),y
|
||
bpl TERMX.OUT.BS.8
|
||
|
||
jsr TERMX.OUT.CR
|
||
|
||
jmp TERMX.OUT.LF.1
|
||
*--------------------------------------
|
||
TERMX.OUT.BS ldy #S.DCB.TTY.CH
|
||
lda (ZPDCBPtr),y
|
||
beq TERMX.OUT.BS.1
|
||
|
||
dec
|
||
sta (ZPDCBPtr),y
|
||
|
||
TERMX.OUT.BS.8 clc
|
||
rts
|
||
|
||
TERMX.OUT.BS.1 ldy #S.DCB.TTY.CV
|
||
lda (ZPDCBPtr),y
|
||
beq .2
|
||
|
||
dec
|
||
sta (ZPDCBPtr),y
|
||
|
||
lda #79
|
||
ldy #S.DCB.TTY.CH
|
||
sta (ZPDCBPtr),y
|
||
|
||
.2 clc
|
||
rts
|
||
*--------------------------------------
|
||
TERMX.OUT.DEL ldy #S.DCB.TTY.CH
|
||
lda (ZPDCBPtr),y
|
||
beq .1
|
||
|
||
dec
|
||
sta (ZPDCBPtr),y
|
||
bra .3
|
||
|
||
.1 ldy #S.DCB.TTY.CV
|
||
lda (ZPDCBPtr),y
|
||
beq TERMX.OUT.BS.8
|
||
dec
|
||
sta (ZPDCBPtr),y
|
||
|
||
ldy #S.DCB.TTY.CH
|
||
lda #79
|
||
sta (ZPDCBPtr),y S.DCB.TTY.CH
|
||
.3 lda #C.SPACE
|
||
jmp SetCharAtCurPos
|
||
*--------------------------------------
|
||
TERMX.OUT.FF jsr HOME
|
||
jmp TERMX.CLRSCR
|
||
*--------------------------------------
|
||
TERMX.OUT.CR lda #0
|
||
ldy #S.DCB.TTY.CH
|
||
sta (ZPDCBPtr),y
|
||
clc
|
||
rts
|
||
*--------------------------------------
|
||
TERMX.OUT.SO sec
|
||
.HS 90 BCC
|
||
*--------------------------------------
|
||
TERMX.OUT.SI clc
|
||
ldy #S.DCB.TTY.bG0G1
|
||
ror
|
||
sta (ZPDCBPtr),y
|
||
clc
|
||
rts
|
||
*--------------------------------------
|
||
TERMX.OUT.ESC lda #S.DCB.TTY.M.ESC
|
||
bra TERMX.SETM
|
||
*--------------------------------------
|
||
TERMX.ESC jsr TERM.GetBufByte y = #S.DCB.TTY.M
|
||
|
||
ldx #EscCodes.Cnt-1
|
||
.2 cmp EscCodes,x
|
||
beq .3
|
||
dex
|
||
bpl .2
|
||
|
||
bra TERMX.SETM0
|
||
|
||
.3 phx
|
||
jsr .4
|
||
plx
|
||
lda EscModes,x
|
||
bra TERMX.SETM
|
||
|
||
.4 txa
|
||
asl
|
||
tax
|
||
jmp (.5,x)
|
||
|
||
.5 .DA SaveCurPos 7
|
||
.DA RestoreCurPos 8
|
||
.DA Scroll.Dn M
|
||
.DA Scroll.Up D
|
||
.DA RESET c
|
||
.DA TERMX.RTS [
|
||
.DA TERMX.RTS (
|
||
.DA TERMX.RTS )
|
||
*--------------------------------------
|
||
TERMX.SETM0 lda #0
|
||
TERMX.SETM ldy #S.DCB.TTY.M
|
||
sta (ZPDCBPtr),y
|
||
ldy #S.DCB.TTY.INBUF
|
||
lda #S.DCB.TTY.INBUF
|
||
sta (ZPDCBPtr),y
|
||
clc
|
||
rts
|
||
*--------------------------------------
|
||
TERMX.CSI ldy #S.DCB.TTY.INBUF
|
||
lda (ZPDCBPtr),y
|
||
inc
|
||
sta (ZPDCBPtr),y
|
||
tay
|
||
|
||
jsr TERM.GetBufByte
|
||
|
||
sta (ZPDCBPtr),y
|
||
cmp #64 End of Seq ?
|
||
bcs TERMX.CSI.Exec
|
||
cpy #S.DCB.TTY.INBUF.MAX-1 buffer full?
|
||
bne .8
|
||
|
||
jsr RESET.MODE
|
||
|
||
.8 clc
|
||
rts
|
||
|
||
TERMX.CSI.Exec stz CsiH
|
||
stz CsiPCnt
|
||
|
||
lda #S.DCB.TTY.INBUF+1 EscSeq Ptr
|
||
clc
|
||
adc ZPDCBPtr
|
||
sta ZPPtr2
|
||
|
||
lda /S.DCB.TTY.INBUF+1
|
||
adc ZPDCBPtr+1
|
||
sta ZPPtr2+1
|
||
|
||
lda (ZPPtr2)
|
||
cmp #'?'
|
||
bne .2
|
||
|
||
sta CsiH
|
||
|
||
.1 jsr SHARED.NextCP2
|
||
|
||
.2 jsr MATH.Dec2ACC32
|
||
bcs .5
|
||
|
||
jsr SHARED.AddY2P2
|
||
lda #255
|
||
ldx ACC32+1
|
||
bne .3
|
||
|
||
lda ACC32
|
||
|
||
.3 ldx CsiPCnt
|
||
sta CsiP,x
|
||
inc CsiPCnt
|
||
|
||
lda (ZPPtr2)
|
||
cmp #';'
|
||
beq .1
|
||
|
||
.5 jsr RESET.MODE
|
||
|
||
lda (ZPPtr2)
|
||
ldx #CsiCodes.Cnt-1
|
||
|
||
.6 cmp CsiCodes,x
|
||
beq .7
|
||
|
||
dex
|
||
bpl .6
|
||
|
||
clc
|
||
rts
|
||
|
||
.7 txa
|
||
asl
|
||
tax
|
||
jmp (.8,x)
|
||
|
||
.8 .DA Csi.SetM h
|
||
.DA Csi.ResetM l
|
||
.DA Csi.DispAttr m
|
||
.DA Csi.Query n
|
||
.DA Csi.Scroll r
|
||
.DA Csi.CUU A
|
||
.DA Csi.CUD B
|
||
.DA Csi.CUF C
|
||
.DA Csi.CUB D
|
||
.DA Csi.CLRSCR J
|
||
.DA Csi.CLRL K
|
||
.DA Csi.Home H
|
||
*--------------------------------------
|
||
Csi.SetM sec
|
||
.HS 90 BCC
|
||
*--------------------------------------
|
||
Csi.ResetM clc
|
||
|
||
ldx CsiPCnt
|
||
beq .99
|
||
|
||
dex
|
||
bne .99
|
||
|
||
ldx CsiH
|
||
|
||
lda CsiP
|
||
php
|
||
|
||
cmp #20 bCRLF
|
||
bne .1
|
||
|
||
txa
|
||
bne .98
|
||
|
||
ldy #S.DCB.TTY.bCRLF
|
||
bra .8
|
||
|
||
.1 cmp #7
|
||
bne .98
|
||
|
||
cpx #'?'
|
||
bne .98
|
||
|
||
ldy #S.DCB.TTY.bLINEWRAP
|
||
|
||
.8 plp
|
||
ror
|
||
sta (ZPDCBPtr),y
|
||
clc
|
||
rts
|
||
|
||
.98 plp
|
||
.99 clc
|
||
rts
|
||
*--------------------------------------
|
||
Csi.DispAttr ldx CsiPCnt
|
||
bne .10
|
||
|
||
jmp RESETATTR
|
||
|
||
.10 ldx #0
|
||
|
||
.1 lda CsiP,x
|
||
bne .2
|
||
|
||
jsr RESETATTR
|
||
bra .7
|
||
|
||
.2 eor #7
|
||
bne .7
|
||
|
||
.3 ldy #S.DCB.TTY.bNORMAL
|
||
sta (ZPDCBPtr),y
|
||
|
||
.7 inx
|
||
dec CsiPCnt
|
||
bne .1
|
||
|
||
.8 clc
|
||
rts
|
||
*--------------------------------------
|
||
Csi.Query ldx CsiPCnt
|
||
beq .8
|
||
dex
|
||
bne .8
|
||
|
||
lda CsiP
|
||
cmp #6
|
||
bne .8
|
||
lda #C.ESC
|
||
jsr TERMX.COUT
|
||
lda #'['
|
||
jsr TERMX.COUT
|
||
ldy #S.DCB.TTY.CV
|
||
lda (ZPDCBPtr),y
|
||
inc
|
||
jsr DecOut
|
||
lda #';'
|
||
jsr TERMX.COUT
|
||
|
||
ldy #S.DCB.TTY.CH
|
||
lda (ZPDCBPtr),y
|
||
inc
|
||
jsr DecOut
|
||
lda #'R'
|
||
jsr TERMX.COUT
|
||
.8 clc
|
||
rts
|
||
*--------------------------------------
|
||
Csi.Scroll ldy CsiPCnt
|
||
bne .1
|
||
lda #0
|
||
ldx #23
|
||
bra .8
|
||
.1 cpy #2
|
||
bne .9
|
||
lda CsiP
|
||
dec
|
||
ldx CsiP+1
|
||
dex
|
||
.8 ldy #S.DCB.TTY.SCROLLTOP
|
||
sta (ZPDCBPtr),y
|
||
iny S.DCB.TTY.SCROLLBOT
|
||
txa
|
||
sta (ZPDCBPtr),y
|
||
.9 clc
|
||
rts
|
||
*--------------------------------------
|
||
Csi.CUU sec
|
||
.HS 90 BCC
|
||
Csi.CUD clc
|
||
ldy #S.DCB.TTY.CV
|
||
bra Csi.CU
|
||
|
||
Csi.CUF clc
|
||
.HS B0 BCS
|
||
Csi.CUB sec
|
||
ldy #S.DCB.TTY.CH
|
||
|
||
Csi.CU lda CsiPCnt
|
||
beq .8
|
||
|
||
dec
|
||
bne .8
|
||
|
||
lda (ZPDCBPtr),y
|
||
bcs .1
|
||
|
||
adc CsiP
|
||
sta (ZPDCBPtr),y
|
||
|
||
clc
|
||
rts
|
||
|
||
.1 sbc CsiP
|
||
sta (ZPDCBPtr),y
|
||
|
||
.8 clc
|
||
rts
|
||
*--------------------------------------
|
||
Csi.CLRSCR ldx CsiPCnt
|
||
beq .8
|
||
|
||
.1 lda CsiP
|
||
beq .8
|
||
|
||
cmp #1
|
||
bne .2
|
||
|
||
jmp TERMX.CLRSCR.DN
|
||
|
||
.2 cmp #2
|
||
bne .9
|
||
|
||
jmp TERMX.CLRSCR.UP
|
||
|
||
.8 jmp TERMX.CLRSCR
|
||
|
||
.9 clc
|
||
rts
|
||
*--------------------------------------
|
||
Csi.CLRL ldx CsiPCnt
|
||
|
||
bne .1
|
||
jmp CLREOL
|
||
.1 lda CsiP
|
||
cmp #1
|
||
bne .2
|
||
jmp CLRSOL
|
||
|
||
.2 cmp #2
|
||
bne Csi.Home.8
|
||
jmp CLRLINE
|
||
*--------------------------------------
|
||
Csi.Home lda CsiPCnt
|
||
beq HOME
|
||
|
||
ldx #1
|
||
lda CsiP
|
||
beq .2
|
||
|
||
ldx #24
|
||
cmp #24
|
||
bcs .2
|
||
|
||
tax
|
||
|
||
.2 dex
|
||
txa
|
||
ldy #S.DCB.TTY.CV
|
||
sta (ZPDCBPtr),y
|
||
dec CsiPCnt
|
||
beq Csi.Home.8
|
||
|
||
ldx #1
|
||
lda CsiP+1
|
||
beq .3
|
||
|
||
ldx #80
|
||
cmp #80
|
||
bcs .3
|
||
|
||
tax
|
||
|
||
.3 dex
|
||
txa
|
||
ldy #S.DCB.TTY.CH
|
||
sta (ZPDCBPtr),y
|
||
|
||
Csi.Home.8 clc
|
||
rts
|
||
*--------------------------------------
|
||
HOME lda #0
|
||
ldy #S.DCB.TTY.CV
|
||
sta (ZPDCBPtr),y
|
||
|
||
ldy #S.DCB.TTY.CH
|
||
sta (ZPDCBPtr),y
|
||
clc
|
||
rts
|
||
*--------------------------------------
|
||
TERMX.G0 ldx #$80
|
||
.HS 2C BIT ABS
|
||
TERMX.G1 ldx #$40
|
||
|
||
ldy #S.DCB.TTY.bG0G1ALT
|
||
|
||
jsr TERM.GetBufByte
|
||
cmp #'0'
|
||
beq .1
|
||
|
||
txa
|
||
eor #$ff
|
||
and (ZPDCBPtr),y
|
||
bra .8
|
||
|
||
.1 txa
|
||
ora (ZPDCBPtr),y
|
||
.8 sta (ZPDCBPtr),y
|
||
|
||
jmp TERMX.SETM0
|
||
*--------------------------------------
|
||
TERMX.IAC ldy #S.DCB.TTY.INBUF
|
||
lda (ZPDCBPtr),y
|
||
inc
|
||
sta (ZPDCBPtr),y
|
||
tay
|
||
|
||
jsr TERM.GetBufByte
|
||
|
||
sta (ZPDCBPtr),y
|
||
cpy #S.DCB.TTY.INBUF+1 CMD ?
|
||
beq Csi.Home.8 yes, wait for additional bytes
|
||
|
||
ldy #S.DCB.TTY.INBUF+1
|
||
lda (ZPDCBPtr),y get back CMD
|
||
cmp #SB
|
||
bne .1 not a SB/SE....stop with CMD/SUBCMD
|
||
|
||
jsr TERM.GetBufByte
|
||
|
||
cmp #SE
|
||
bne Csi.Home.8 wait for ending SE....keep bIACMode
|
||
bra COUT.IAC.SB
|
||
ldy #S.DCB.TTY.INBUF+1
|
||
lda (ZPDCBPtr),y get back CMD
|
||
.1 cmp #IAC
|
||
beq COUT.IAC.SB.9
|
||
sec
|
||
sbc #WILL
|
||
bcc COUT.IAC.SB.9
|
||
asl
|
||
tax
|
||
|
||
ldy #S.DCB.TTY.INBUF+2
|
||
lda (ZPDCBPtr),y Get SUBCMD in A
|
||
|
||
jmp (.8,x)
|
||
|
||
.8 .DA COUT.IAC.WILL
|
||
.DA COUT.IAC.WONT
|
||
.DA COUT.IAC.DO
|
||
.DA COUT.IAC.DONT
|
||
*--------------------------------------
|
||
COUT.IAC.SB ldy #S.DCB.TTY.INBUF+2
|
||
lda (ZPDCBPtr),y Get SUBCMD in A
|
||
|
||
cmp #TN.O.TTYPE
|
||
bne COUT.IAC.SB.9
|
||
iny
|
||
lda (ZPDCBPtr),y
|
||
cmp #SB.SEND
|
||
bne COUT.IAC.SB.9
|
||
ldx #0
|
||
.1 lda SB.IS.TTYPE,x
|
||
jsr TERMX.COUT
|
||
inx
|
||
cpx #SB.IS.TTYPE.LEN
|
||
bne .1
|
||
|
||
COUT.IAC.SB.9 bra COUT.IAC.EXIT
|
||
*--------------------------------------
|
||
COUT.IAC.WILL ldx #WILLDO.CNT-1
|
||
|
||
.1 cmp WILLDO,x
|
||
beq .7
|
||
dex
|
||
bpl .1
|
||
ldx #WILLDONT.CNT-1
|
||
|
||
.2 cmp WILLDONT,x
|
||
beq .8
|
||
dex
|
||
bpl .2
|
||
|
||
bra COUT.IAC.EXIT
|
||
|
||
.7 ldx #DO
|
||
.HS 2C BIT ABS
|
||
.8 ldx #DONT
|
||
|
||
bra COUT.IAC.SendAX
|
||
*--------------------------------------
|
||
COUT.IAC.DO ldx #DOWILL.CNT-1
|
||
|
||
.1 cmp DOWILL,x
|
||
beq .7
|
||
dex
|
||
bpl .1
|
||
|
||
ldx #DOWONT.CNT-1
|
||
|
||
.2 cmp DOWONT,x
|
||
beq .8
|
||
dex
|
||
bpl .2
|
||
|
||
bra COUT.IAC.EXIT
|
||
|
||
.7 ldx #WILL
|
||
.HS 2C BIT ABS
|
||
.8 ldx #WONT
|
||
*--------------------------------------
|
||
COUT.IAC.SendAX
|
||
pha push CMD
|
||
phx
|
||
lda #IAC
|
||
jsr TERMX.COUT
|
||
pla
|
||
jsr TERMX.COUT
|
||
pla
|
||
jsr TERMX.COUT
|
||
*--------------------------------------
|
||
COUT.IAC.WONT
|
||
*--------------------------------------
|
||
COUT.IAC.DONT
|
||
*--------------------------------------
|
||
COUT.IAC.EXIT
|
||
*--------------------------------------
|
||
RESET.MODE lda #0
|
||
ldy #S.DCB.TTY.M
|
||
sta (ZPDCBPtr),y
|
||
rts
|
||
*--------------------------------------
|
||
RESET ldy #S.DCB.TTY.M
|
||
.1 lda RESET.VALUES-S.DCB.TTY.M,y
|
||
sta (ZPDCBPtr),y
|
||
iny
|
||
cpy #S.DCB.TTY.INBUF+1
|
||
bne .1
|
||
jmp TERMX.CLRSCR
|
||
*--------------------------------------
|
||
RESETATTR lda #$80
|
||
ldy #S.DCB.TTY.bNORMAL
|
||
sta (ZPDCBPtr),y
|
||
clc
|
||
rts
|
||
*--------------------------------------
|
||
ENQ ldx #0
|
||
|
||
.1 lda ENQ.String,x
|
||
|
||
jsr TERMX.COUT
|
||
inx
|
||
cpx #ENQ.String.Len
|
||
bne .1
|
||
.8 clc
|
||
rts
|
||
*--------------------------------------
|
||
TERMX.OUT.LF ldy #S.DCB.TTY.bCRLF
|
||
lda (ZPDCBPtr),y
|
||
bpl TERMX.OUT.LF.1
|
||
|
||
jsr TERMX.OUT.CR
|
||
|
||
TERMX.OUT.LF.1 ldy #S.DCB.TTY.CV
|
||
lda (ZPDCBPtr),y
|
||
ldy #S.DCB.TTY.SCROLLBOT
|
||
cmp (ZPDCBPtr),y
|
||
beq SCROLL.UP
|
||
|
||
inc
|
||
ldy #S.DCB.TTY.CV
|
||
sta (ZPDCBPtr),y
|
||
clc
|
||
rts
|
||
*--------------------------------------
|
||
CLRSOL ldy #S.DCB.TTY.CH End
|
||
lda (ZPDCBPtr),y
|
||
cmp #80
|
||
bcc CLRLINE.1
|
||
|
||
CLRLINE lda #80 End
|
||
|
||
CLRLINE.1 ldy #0 Start
|
||
bra CLR
|
||
|
||
CLREOL ldy #S.DCB.TTY.CH
|
||
lda (ZPDCBPtr),y
|
||
tay Start
|
||
cpy #80
|
||
bcs CLR.8
|
||
|
||
lda #80 End
|
||
|
||
CLR sty .1+1 Save Start
|
||
sta .2+1 Save End
|
||
|
||
ldy #S.DCB.TTY.CV
|
||
lda (ZPDCBPtr),y
|
||
tax
|
||
|
||
.1 ldy #$ff SELF MODIFIED
|
||
.2 cpy #$ff SELF MODIFIED
|
||
bcs CLR.8
|
||
|
||
lda #" "
|
||
jsr SetCharAtYX X unmodified
|
||
|
||
inc .1+1
|
||
bra .1
|
||
|
||
CLR.8 clc
|
||
rts
|
||
*--------------------------------------
|
||
SaveCurPos ldy #S.DCB.TTY.CH
|
||
|
||
jsr .1
|
||
|
||
iny
|
||
|
||
.1 lda (ZPDCBPtr),y
|
||
iny
|
||
sta (ZPDCBPtr),y
|
||
rts
|
||
*--------------------------------------
|
||
RestoreCurPos jsr TERMX.CUROFF
|
||
|
||
ldy #S.DCB.TTY.CV.SAVE
|
||
|
||
jsr .1
|
||
|
||
dey
|
||
|
||
.1 lda (ZPDCBPtr),y
|
||
dey
|
||
sta (ZPDCBPtr),y
|
||
rts
|
||
*--------------------------------------
|
||
SCROLL.UP ldy #S.DCB.TTY.SCROLLTOP
|
||
lda (ZPDCBPtr),y
|
||
|
||
tax
|
||
|
||
.1 jsr TERMX.SETUP.L1X
|
||
|
||
inx
|
||
jsr TERMX.COPY.XtoL1
|
||
|
||
txa
|
||
ldy #S.DCB.TTY.SCROLLBOT
|
||
cmp (ZPDCBPtr),y
|
||
bne .1
|
||
bra CLRLINE
|
||
*--------------------------------------
|
||
SCROLL.DN ldy #S.DCB.TTY.SCROLLBOT
|
||
lda (ZPDCBPtr),y
|
||
|
||
tax
|
||
|
||
.1 jsr TERMX.SETUP.L1X
|
||
|
||
dex
|
||
jsr TERMX.COPY.XtoL1
|
||
|
||
txa
|
||
ldy #S.DCB.TTY.SCROLLTOP
|
||
cmp (ZPDCBPtr),y
|
||
bne .1
|
||
|
||
clc
|
||
rts
|
||
*--------------------------------------
|
||
TERMX.CBLNK bit bActive
|
||
bpl .9
|
||
|
||
lda DevMgr.Timer
|
||
and #CURSOR.BLINK.SPEED
|
||
ldy #S.DCB.TTY.bCURON
|
||
eor (ZPDCBPtr),y
|
||
bne TERMX.CBLNK.1
|
||
|
||
.9 rts
|
||
|
||
TERMX.CUROFF bit bActive
|
||
bpl TERMX.RTS
|
||
ldy #S.DCB.TTY.bCURON
|
||
lda (ZPDCBPtr),y
|
||
beq TERMX.RTS
|
||
|
||
TERMX.CBLNK.1 lda (ZPDCBPtr),y
|
||
bne TERMX.CBLNK.OFF
|
||
|
||
jsr GetCharAtCurPos
|
||
bcs TERMX.RTS Out of screen
|
||
|
||
and #$80
|
||
eor #" "
|
||
|
||
TERMX.CBLNK.SET
|
||
jsr SetCharAtY.SCR
|
||
ldy #S.DCB.TTY.bCURON
|
||
lda (ZPDCBPtr),y
|
||
eor #CURSOR.BLINK.SPEED
|
||
sta (ZPDCBPtr),y
|
||
rts
|
||
|
||
TERMX.CBLNK.OFF
|
||
jsr GetCharAtCurPos
|
||
bcc TERMX.CBLNK.SET if not Out of screen
|
||
|
||
TERMX.RTS rts
|
||
*--------------------------------------
|
||
DecOut jsr MATH.A2STR10NP
|
||
|
||
ldx #0
|
||
.1 lda FOUTBuf,x
|
||
beq TERMX.RTS
|
||
inx
|
||
jsr TERMX.COUT
|
||
bra .1
|
||
*--------------------------------------
|
||
TERMX.COUT pha save char
|
||
|
||
ldy #S.DCB.TTY.OUTHEAD
|
||
lda (ZPDCBPtr),y
|
||
pha save actual HEAD
|
||
inc
|
||
cmp #S.DCB.TTY.OUTBUF.MAX
|
||
bne .1
|
||
lda #S.DCB.TTY.OUTBUF
|
||
|
||
.1 dey OUTTAIL
|
||
cmp (ZPDCBPtr),y HEAD+1 = TAIL ?
|
||
beq .9 CS, full!
|
||
iny
|
||
sta (ZPDCBPtr),y new head
|
||
ply old head
|
||
pla
|
||
sta (ZPDCBPtr),y
|
||
clc
|
||
rts
|
||
.9 pla
|
||
pla
|
||
rts
|
||
*--------------------------------------
|
||
Char.Out.Get ldy #S.DCB.TTY.OUTTAIL
|
||
lda (ZPDCBPtr),y
|
||
iny OUTHEAD
|
||
cmp (ZPDCBPtr),y
|
||
beq .9 CS
|
||
tay
|
||
lda (ZPDCBPtr),y
|
||
pha
|
||
tya
|
||
inc
|
||
cmp #S.DCB.TTY.OUTBUF.MAX
|
||
bne .1
|
||
lda #S.DCB.TTY.OUTBUF
|
||
|
||
.1 ldy #S.DCB.TTY.OUTTAIL
|
||
sta (ZPDCBPtr),y
|
||
pla
|
||
clc
|
||
.9 rts
|
||
*--------------------------------------
|
||
TERMX.SETUP.L1X lda ZPDCBPtr
|
||
clc
|
||
adc BUF.BL,x
|
||
sta ZPBufBL1
|
||
|
||
lda ZPDCBPtr+1
|
||
adc BUF.BH,x
|
||
sta ZPBufBL1+1
|
||
|
||
bit bActive
|
||
bpl TERMX.SETUP.L1X.8
|
||
|
||
TERMX.SETUP.L1X.SCR
|
||
lda SCR.BL,x
|
||
sta ZPScrBL1
|
||
lda SCR.BH,x
|
||
sta ZPScrBL1+1
|
||
TERMX.SETUP.L1X.8
|
||
rts
|
||
*--------------------------------------
|
||
TERMX.CLRSCR.DN ldy #S.DCB.TTY.CV
|
||
sta (ZPDCBPtr),y
|
||
tax
|
||
bra TERMX.CLRSCR.1
|
||
|
||
TERMX.CLRSCR.UP ldx #0
|
||
ldy #S.DCB.TTY.CV
|
||
sta (ZPDCBPtr),y
|
||
tay
|
||
bra TERMX.CLRSCR.2
|
||
|
||
TERMX.CLRSCR ldx #0
|
||
|
||
TERMX.CLRSCR.1 ldy #24
|
||
|
||
TERMX.CLRSCR.2 sty .1+1
|
||
|
||
.1 cpx #$ff SELF MODIFIED
|
||
beq .9
|
||
jsr TERMX.SETUP.L1X
|
||
lda #" "
|
||
|
||
bit bActive
|
||
bpl .4
|
||
|
||
sta SETPAGE2
|
||
jsr .7
|
||
|
||
sta CLRPAGE2
|
||
jsr .7
|
||
|
||
.4 ldy #79
|
||
|
||
.5 sta (ZPBufBL1),y
|
||
dey
|
||
bpl .5
|
||
|
||
inx
|
||
bra .1
|
||
|
||
.7 ldy #39
|
||
.8 sta (ZPScrBL1),y
|
||
dey
|
||
bpl .8
|
||
.9 rts
|
||
*--------------------------------------
|
||
TERMX.Title.ON ldy #S.DCB.TTY.bTITLE
|
||
lda (ZPDCBPtr),y
|
||
bmi TERMX.RTS2
|
||
|
||
lda #$ff
|
||
sta (ZPDCBPtr),y
|
||
|
||
jsr TERM.GetDevName
|
||
|
||
ldx #0
|
||
jsr TERMX.SETUP.L1X.SCR
|
||
|
||
ldy #0
|
||
|
||
.1 jsr SHARED.TXTPTRgn
|
||
beq .3
|
||
|
||
cmp #$40
|
||
bcc .2
|
||
cmp #$60
|
||
bcs .2
|
||
and #$1F remap UPPERCASE
|
||
|
||
.2 phy
|
||
jsr SetCharAtY.SCR
|
||
ply
|
||
iny
|
||
bne .1
|
||
|
||
.3 lda #C.SPACE
|
||
|
||
.4 phy
|
||
jsr SetCharAtY.SCR
|
||
ply
|
||
iny
|
||
cpy #80
|
||
bne .4
|
||
|
||
TERMX.RTS2 rts
|
||
|
||
TERMX.Title.OFF ldy #S.DCB.TTY.bTITLE
|
||
lda (ZPDCBPtr),y
|
||
bpl TERMX.RTS2
|
||
|
||
lda #$0
|
||
sta (ZPDCBPtr),y
|
||
*--------------------------------------
|
||
TERMX.LINE0CPY ldx #0
|
||
.HS 2C BIT ABS
|
||
TERMX.SCRCPY ldx #23
|
||
|
||
.1 lda ZPDCBPtr
|
||
clc
|
||
adc BUF.BL,x
|
||
sta .80+1
|
||
|
||
lda ZPDCBPtr+1
|
||
adc BUF.BH,x
|
||
sta .80+2
|
||
jsr TERMX.SETUP.L1X.SCR
|
||
|
||
phx
|
||
|
||
ldx #78
|
||
|
||
sta SETPAGE2
|
||
|
||
ldy #39
|
||
|
||
jsr .8
|
||
|
||
ldx #79
|
||
sta CLRPAGE2
|
||
|
||
ldy #39
|
||
|
||
jsr .8
|
||
|
||
plx
|
||
dex
|
||
bpl .1
|
||
rts
|
||
|
||
.8 ldy #39
|
||
|
||
.80 lda $ffff,x SELF MODIFIED
|
||
|
||
sta (ZPScrBL1),y
|
||
dex
|
||
dex
|
||
dey
|
||
bpl .80
|
||
|
||
rts
|
||
*--------------------------------------
|
||
TERMX.COPY.XtoL1
|
||
lda ZPDCBPtr
|
||
clc
|
||
adc BUF.BL,x
|
||
sta ZPBufBL2
|
||
|
||
lda ZPDCBPtr+1
|
||
adc BUF.BH,x
|
||
sta ZPBufBL2+1
|
||
|
||
ldy #79
|
||
|
||
.1 lda (ZPBufBL2),y
|
||
sta (ZPBufBL1),y
|
||
dey
|
||
bpl .1
|
||
|
||
bit bActive
|
||
bpl .8
|
||
|
||
lda SCR.BL,x
|
||
sta ZPScrBL2
|
||
lda SCR.BH,x
|
||
sta ZPScrBL2+1
|
||
|
||
sta SETPAGE2
|
||
jsr .6
|
||
sta CLRPAGE2
|
||
|
||
.6 ldy #39
|
||
.7 lda (ZPScrBL2),y
|
||
sta (ZPScrBL1),y
|
||
dey
|
||
bpl .7
|
||
|
||
.8 rts
|
||
*--------------------------------------
|
||
SetCharAtCurPos pha
|
||
ldy #S.DCB.TTY.CV
|
||
lda (ZPDCBPtr),y
|
||
tax
|
||
ldy #S.DCB.TTY.CH
|
||
lda (ZPDCBPtr),y
|
||
tay
|
||
pla
|
||
cpy #80
|
||
bcs SetCharAtYX.8
|
||
*--------------------------------------
|
||
SetCharAtYX cmp #$40
|
||
bcc .1
|
||
cmp #$60
|
||
bcs .1
|
||
and #$1F remap UPPERCASE
|
||
|
||
.1 phy
|
||
|
||
ldy #S.DCB.TTY.bNORMAL
|
||
ora (ZPDCBPtr),y
|
||
sta ZPTmpChar
|
||
|
||
ldy #S.DCB.TTY.bG0G1 Select Active Font
|
||
lda (ZPDCBPtr),y
|
||
clc
|
||
bpl .2
|
||
sec
|
||
|
||
.2 lda #$80
|
||
bcc .21
|
||
lsr
|
||
|
||
.21 iny #S.DCB.TTY.bG0G1ALT
|
||
and (ZPDCBPtr),y
|
||
beq .3 not Graphic mode
|
||
|
||
lda ZPTmpChar
|
||
cmp #$E0 Normal lowercase ?
|
||
bcc .3
|
||
|
||
tay
|
||
lda REMAP.E0.FF-$E0,y
|
||
sta ZPTmpChar
|
||
|
||
.3 jsr TERMX.SETUP.L1X
|
||
ply
|
||
lda ZPTmpChar
|
||
sta (ZPBufBL1),y
|
||
|
||
bit bActive
|
||
bpl SetCharAtYX.8
|
||
|
||
SetCharAtY.SCR pha
|
||
tya
|
||
lsr
|
||
tay
|
||
pla
|
||
|
||
bcs .2
|
||
sta SETPAGE2
|
||
sta (ZPScrBL1),y
|
||
rts
|
||
|
||
.2 sta CLRPAGE2
|
||
sta (ZPScrBL1),y
|
||
|
||
SetCharAtYX.8 rts
|
||
*--------------------------------------
|
||
GetCharAtCurPos ldy #S.DCB.TTY.CV
|
||
lda (ZPDCBPtr),y
|
||
cmp #24
|
||
bcs .9 Out of screen
|
||
|
||
tax
|
||
jsr TERMX.SETUP.L1X
|
||
|
||
ldy #S.DCB.TTY.CH
|
||
lda (ZPDCBPtr),y
|
||
cmp #80
|
||
bcs .9 Out of screen
|
||
|
||
tay
|
||
lda (ZPBufBL1),y
|
||
cmp #$20
|
||
bcs .8
|
||
|
||
* clc
|
||
adc #40 remap $00-$1F uppercase
|
||
.8 clc
|
||
|
||
.9 rts
|
||
*--------------------------------------
|
||
CtrlChars .DA #C.ENQ,#C.BS,#C.LF,#C.FF,#C.CR,#C.SO,#C.SI,#C.FS,#C.ESC
|
||
CtrlChars.Cnt .EQ *-CtrlChars
|
||
*--------------------------------------
|
||
EscCodes .AZ "78MDc[()"
|
||
EscCodes.Cnt .EQ *-EscCodes
|
||
EscModes .DA #0,#0,#0,#0,#0,#S.DCB.TTY.M.CSI,#S.DCB.TTY.M.G0,#S.DCB.TTY.M.G1
|
||
CsiCodes .AS "hlmnrABCDJKH"
|
||
CsiCodes.Cnt .EQ *-CsiCodes
|
||
*--------------------------------------
|
||
KeyMap .HS 080A0B15 Left,Down,Up,Right
|
||
KeyMap.Tbl .HS 44424143 esc[D,esc[B,esc[A,esc[C
|
||
*--------------------------------------
|
||
WILLDO .DA #TN.O.BINARY,#TN.O.SGA,#TN.O.ECHO
|
||
WILLDO.CNT .EQ *-WILLDO
|
||
WILLDONT .DA #TN.O.TSPEED,#TN.O.LINEMODE,#TN.O.STATUS
|
||
WILLDONT.CNT .EQ *-WILLDONT
|
||
DOWILL .DA #TN.O.BINARY,#TN.O.SGA,#TN.O.TTYPE,#TN.O.NAWS
|
||
DOWILL.CNT .EQ *-DOWILL
|
||
DOWONT .DA #TN.O.ECHO,#TN.O.NEWENV,#TN.O.XDISPLOC
|
||
.DA #TN.O.TSPEED,#TN.O.LFLOW,#TN.O.AUTH
|
||
DOWONT.CNT .EQ *-DOWONT
|
||
*--------------------------------------
|
||
SB.IS.TTYPE .DA #IAC,#SB,#TN.O.TTYPE,#SB.IS
|
||
ENQ.String .AS "vt100"
|
||
ENQ.String.Len .EQ *-ENQ.String
|
||
.DA #IAC,#SE
|
||
SB.IS.TTYPE.LEN .EQ *-SB.IS.TTYPE
|
||
SB.IS.NAWS .DA #IAC,#SB,#TN.O.NAWS,#SB.IS
|
||
.DA 80
|
||
.DA 24
|
||
.DA #IAC,#SE
|
||
SB.IS.NAWS.LEN .EQ *-SB.IS.NAWS
|
||
*--------------------------------------
|
||
RESET.VALUES .DA #0 MODE
|
||
.DA #0 CH
|
||
.DA #0 CH.SAVE
|
||
.DA #0 CV
|
||
.DA #0 CV.SAVE
|
||
.DA #0 SCROLLTOP
|
||
.DA #23 SCROLLBOT
|
||
.DA #0 bCURON
|
||
.DA #0 bTITLE
|
||
|
||
.DA #$80 bNORMAL
|
||
.DA #$80 bLINEWRAP
|
||
.DA #$80 bCRLF
|
||
|
||
.DA #0 bG0G1
|
||
.DA #0 bG0G1ALT
|
||
|
||
.DA #S.DCB.TTY.OUTBUF OUTTAIL
|
||
.DA #S.DCB.TTY.OUTBUF OUTHEAD
|
||
.DA #S.DCB.TTY.INBUF INBUFFER
|
||
*--------------------------------------
|
||
TERMX.DIB .DA #S.DIB.S.WRITE+S.DIB.S.READ
|
||
.DA #0,#0,#0
|
||
>PSTR "A2osX VT100 term"
|
||
.DA #S.DIB.T.CHAR
|
||
.DA #0
|
||
.DA K.VER
|
||
*--------------------------------------
|
||
* ` a b c d e f g h i j k l m n o
|
||
REMAP.E0.FF .HS 5B4142434445464748495FA0DF544e4f
|
||
* p q r s t u v w x y z { | } ~ DEL
|
||
.HS 50DF5253545556575F595a5b5c5d5e5f
|
||
*--------------------------------------
|
||
SCR.BL .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.BH .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.BL .DA #S.DCB.TTY+0
|
||
.DA #S.DCB.TTY+80
|
||
.DA #S.DCB.TTY+160
|
||
.DA #S.DCB.TTY+240
|
||
.DA #S.DCB.TTY+320
|
||
.DA #S.DCB.TTY+400
|
||
.DA #S.DCB.TTY+480
|
||
.DA #S.DCB.TTY+560
|
||
.DA #S.DCB.TTY+640
|
||
.DA #S.DCB.TTY+720
|
||
.DA #S.DCB.TTY+800
|
||
.DA #S.DCB.TTY+880
|
||
.DA #S.DCB.TTY+960
|
||
.DA #S.DCB.TTY+1040
|
||
.DA #S.DCB.TTY+1120
|
||
.DA #S.DCB.TTY+1200
|
||
.DA #S.DCB.TTY+1280
|
||
.DA #S.DCB.TTY+1360
|
||
.DA #S.DCB.TTY+1440
|
||
.DA #S.DCB.TTY+1520
|
||
.DA #S.DCB.TTY+1600
|
||
.DA #S.DCB.TTY+1680
|
||
.DA #S.DCB.TTY+1760
|
||
.DA #S.DCB.TTY+1840
|
||
BUF.BH .DA /S.DCB.TTY+0
|
||
.DA /S.DCB.TTY+80
|
||
.DA /S.DCB.TTY+160
|
||
.DA /S.DCB.TTY+240
|
||
.DA /S.DCB.TTY+320
|
||
.DA /S.DCB.TTY+400
|
||
.DA /S.DCB.TTY+480
|
||
.DA /S.DCB.TTY+560
|
||
.DA /S.DCB.TTY+640
|
||
.DA /S.DCB.TTY+720
|
||
.DA /S.DCB.TTY+800
|
||
.DA /S.DCB.TTY+880
|
||
.DA /S.DCB.TTY+960
|
||
.DA /S.DCB.TTY+1040
|
||
.DA /S.DCB.TTY+1120
|
||
.DA /S.DCB.TTY+1200
|
||
.DA /S.DCB.TTY+1280
|
||
.DA /S.DCB.TTY+1360
|
||
.DA /S.DCB.TTY+1440
|
||
.DA /S.DCB.TTY+1520
|
||
.DA /S.DCB.TTY+1600
|
||
.DA /S.DCB.TTY+1680
|
||
.DA /S.DCB.TTY+1760
|
||
.DA /S.DCB.TTY+1840
|
||
*--------------------------------------
|
||
MAN
|
||
SAVE usr/src/sys/kernel.s.termx
|
||
LOAD usr/src/sys/kernel.s
|
||
ASM
|