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 *-------------------------------------- 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 sta SET80STORE .1 jsr DRV.TERM.SETUP.L1X lda #" " bit bActive bpl .4 sta SETPAGE2 ldy #39 .2 sta (ZPScrBaseL1),y dey bpl .2 sta CLRPAGE2 ldy #39 .3 sta (ZPScrBaseL1),y dey bpl .3 .4 sta SETWRITEAUX ldy #79 .5 sta (ZPBufBaseL1),y dey bpl .5 sta CLRWRITEAUX dex bpl .1 lda #0 ldy #S.DCB.TTY.CV sta (ZPDCBPtr),y dey sta (ZPDCBPtr),y 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 lda SCR.BASEL,x sta ZPScrBaseL1 lda SCR.BASEH,x sta ZPScrBaseL1+1 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 sta (ZPScrBaseL1),y dex dex dey bpl .80 rts *-------------------------------------- DRV.TERM.COPY.XtoL1 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 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 SAVE USR/SRC/SYS/KERNEL.S.TERMLC LOAD USR/SRC/SYS/KERNEL.S ASM