Kernel 0.93+ : #138 #139 #140.......pffff

This commit is contained in:
Rémy GIBERT 2019-12-14 19:44:01 +01:00
parent ce645607b9
commit f796f9a665
10 changed files with 280 additions and 388 deletions

Binary file not shown.

View File

@ -57,25 +57,30 @@ CS.INIT clc
CS.RUN >INC.G ArgIndex
>SYSCALL ArgV
bcs .8
>STYA ZPPtr1
lda (ZPPtr1)
cmp #'-'
bne .4
ldy #1
lda (ZPPtr1),y
ldx OptionList
ldx #OptionVars-OptionList-1
.2 cmp OptionList,x
beq .3
dex
bne .2
bpl .2
.9 >PUSHBI 0
>LDYA L.MSG.USAGE
>SYSCALL printf
lda #E.SYN
sec
.99 rts
.3 ldy OptionVars-1,x
.3 ldy OptionVars,x
lda #$80
sta (pData),y
bra CS.RUN
@ -86,6 +91,7 @@ CS.RUN >INC.G ArgIndex
>LDA.G ArgIndex
>STA.G StrMode
bra CS.RUN
.5 >LDA.G hSrcBasePath
bne .9
>LDYA ZPPtr1
@ -274,7 +280,7 @@ CS.QUIT jsr LeaveSubDir
*--------------------------------------
CS.END
*--------------------------------------
OptionList >PSTR "CRcr"
OptionList .AS "CRcr"
OptionVars .DA #bContinue,#bRecurse,#bContinue,#bRecurse
*--------------------------------------
MSG.USAGE .AS "Usage : CHMOD mode [File *,? wildcards allowed]\r\n"

View File

@ -50,6 +50,7 @@ CS.INIT
.1 >INC.G ArgCount
>SYSCALL ArgV
bcs .7
>STYA ZPPtr1
lda (ZPPtr1)
cmp #'-'
@ -57,42 +58,45 @@ CS.INIT
ldy #1
lda (ZPPtr1),y
ldx OptionList
ldx #OptionVars-OptionList-1
.2 cmp OptionList,x
beq .3
dex
bne .2
.99 >PUSHBI 0
>LDYA L.MSG.USAGE
>SYSCALL printf
lda #E.SYN
sec
rts
.3 ldy OptionVars-1,x
.3 ldy OptionVars,x
lda #$80
sta (pData),y
bra .1
.4 ldy #index
lda (pData),y
*--------------------------------------
.4 >LDA.G HexFileType
bne .5
>LDYA ZPPtr1
jsr InitSrcDirYA
bcc .1
rts
.5 ldy #HexFileType
lda (pData),y
bne .99
jsr GetHexFileType
bcs .99
bra .1
.7 ldy #index processed all args
lda (pData),y
beq .99 , no src ? ERROR
.5 >LDA.G hSrcBasePath
bne .99
ldy #HexFileType
lda (pData),y
>LDYA ZPPtr1
jsr InitSrcDirYA
bcs .99
bra .1
*--------------------------------------
.7 >LDA.G hSrcBasePath
beq .99 no src ? ERROR
>LDA.G HexFileType
beq .99 we also have a TYPE
>LDYAI 256
>SYSCALL getmem
bcs .99
@ -148,7 +152,7 @@ CS.RUN ldy #S.PS.hStdIn
CS.RUN.DIR
CS.RUN.DEV
.8 jsr GetNextEntry
clc.9
clc
rts
*--------------------------------------
CS.RUN.FILE jsr CS.RUN.GetFilePath
@ -303,11 +307,11 @@ IsDigit16 cmp #'0'
*--------------------------------------
CS.END
*--------------------------------------
OptionList >PSTR "CRcr"
OptionList .AS "CRcr"
OptionVars .DA #bContinue,#bRecurse,#bContinue,#bRecurse
*--------------------------------------
MSG.USAGE .AS "Usage : CHTYP [File *,? wildcards allowed] [File type]\r\n"
.AS " File types : 0xx (Hexadecimal byte),SYS,TXT...\r\n"
MSG.USAGE .AS "Usage : CHTYP type [File *,? wildcards allowed]\r\n"
.AS " type : 0xx (Hexadecimal byte),SYS,TXT...\r\n"
.AS " -C : Continue on error\r\n"
.AZ " -R : Recurse subdirectories\r\n"
MSG.OK .AZ "[OK]"

View File

@ -218,28 +218,28 @@ CS.RUN.PRINTCR >PUSHBI 0
rts
*--------------------------------------
CS.RUN.OUT.MN ldy #$ff
CS.RUN.OUT.MN ldy #0
ldx StartChar
beq .2
.1 iny
lda (ZPBufPtr),y
.1 lda (ZPBufPtr),y
beq CS.RUN.PRINTCR
iny
dex
bne .1
.2 ldx EndChar
beq .8
.3 iny
lda (ZPBufPtr),y
.2 lda (ZPBufPtr),y
beq .8
cpy EndChar
bne .3
lda #0
beq .3
iny
bra .2
.3 lda #0
sta (ZPBufPtr),y
.8 ldy StartChar
@ -264,7 +264,7 @@ CS.RUN.AddYToBufPtr
adc ZPBufPtr
sta ZPBufPtr
bcc .8
lda ZPBufPtr+1
inc ZPBufPtr+1
.8 rts
*--------------------------------------
CS.QUIT lda hToClose

View File

@ -28,29 +28,6 @@ NEW
* ^X = Cut Block
* ^Y = End Of File
*--------------------------------------
Prompt.Editor cmp #C.DEL
beq Ctrl.DEL
cmp #C.SPACE
bcc .3
pha
jsr BUF.ComputeCOffset
pla
jsr BUF.InsertA
bcs .9
jsr SCRN.UpdateCurrentLine
bcs .9
jmp Ctrl.FS
.9 rts
.3 asl
tax
jmp (J.CTRL,x)
*--------------------------------------
Ctrl.DEL jsr BUF.ComputeCOffset
lda BUF.COffset
@ -99,15 +76,15 @@ Ctrl.A >LDYA L.MSG.HELP
inc ZPPTR1+1
bra .1
.8 lda #PromptModeHelp
>STA.G PromptMode
jsr SCRN.UpdateStatusBar
bcs .9
.8 jsr SCRN.ResetStatusBar
>PUSHBI 0
>LDYA L.MSG.STATUSBAR.H
>SYSCALL printf
>SYSCALL getchar
bcs .9
>STZ.G PromptMode
jmp SCRN.UpDateMain
.9 rts
@ -432,9 +409,8 @@ Ctrl.N
clc
rts
*--------------------------------------
Ctrl.R lda #PromptModeReplace
>STA.G PromptMode
jmp SCRN.UpdateStatusBar
Ctrl.R clc
rts
*--------------------------------------
Ctrl.Q lda #$FF
>STA.G bExit
@ -574,108 +550,9 @@ Ctrl.Z jsr BUF.ComputeCOffset
.8 jsr SCRN.UpdateCurrentLine
bcs .9
.80 jsr SCRN.UpdateStatusBar
bcs .9
jmp SCRN.GotoCurXCurY
*--------------------------------------
Prompt.Help >STZ.G PromptMode
Prompt.Help.Upd jsr SCRN.UpdateStatusBar
bcs Prompt.Find.RTS
jmp SCRN.UpdateMain
*--------------------------------------
Prompt.Find cmp #3
bne .1
>STZ.G PromptMode
.80 jsr SCRN.GotoCurXCurY
jmp SCRN.UpdateStatusBar
.1 cmp #C.CR
bne .2
.2
clc
.9
Prompt.Find.RTS rts
*--------------------------------------
Prompt.Replace cmp #3
bne .1
>STZ.G PromptMode
jsr SCRN.UpdateStatusBar
bcs .9
rts
.1 cmp #C.CR
bne .2
.2
clc
.9 rts
*--------------------------------------
Prompt.Save cmp #3 Ctrl-C
bne .1
>STZ.G PromptMode
bra .80
.1 cmp #C.CR
bne .2
>LDA.G PromptBufPtr
beq .8
>LDYA pData
>SYSCALL RealPath
bcs .12
phx
>LDA.G hFileName
beq .11
>SYSCALL FreeMem
.11 pla
>STA.G hFileName
>STZ.G PromptMode
jsr FILE.Save
bcc .81
.12 jsr SCRN.LineBufInitInv
jmp SCRN.UpdateStatusBarErrA
.2 cmp #C.DEL
bne .3
>LDA.G PromptBufPtr
beq .8
dec
sta (pData),y
tay
lda #0
sta (pData),y
bra .80
.3 cmp #C.SPACE
bcc .8
pha
>LDA.G PromptBufPtr
tay
pla
cpy #PROMPTBUFMAX
beq .8
sta (pData),y
iny
lda #0
sta (pData),y
tya
>STA.G PromptBufPtr
bra .80
.8 clc
rts
.81 jsr SCRN.UpdateTopBar
bcs .9
.80 jmp SCRN.UpdateStatusBar
.9 rts
*--------------------------------------
MAN
SAVE USR/SRC/BIN/EDIT.S.CTRL

View File

@ -81,6 +81,106 @@ SCRN.UpdateTopBar
.8 jmp SCRN.LineBufOut
.9 rts
*--------------------------------------
SCRN.UpdateViewPort
stz bRepaint
.1 >LDA.G FileX
>CMP.G ScreenX
bcs .2 out of left border ?
>DEC.G ScreenX yes
sec
ror bRepaint
bra .1
.2 bit bRepaint
bmi .30
.21 >LDA.G ScreenX
clc
>ADC.G ScreenW
dec
>CMP.G FileX
bcs .3 out of right border ?
>INC.G ScreenX
sec
ror bRepaint
bra .21
.3 bit bRepaint
.30 bmi .6
.31 >LDA.G FileY+1
tax
dey
lda (pData),y A,X = FileY
>CMP.G ScreenY
iny
txa
sbc (pData),y
bcs .4 out of top border ?
>DECW.G ScreenY move viewport up one line....
bit bRepaint
bmi .31 skip scroll, will be repainted later
jsr SCRN.scrollDn ...and move content one line down
bcc .31
rts
.4 bit bRepaint
bmi .6
.41 >LDA.G ScreenY+1
tax
dey
lda (pData),y
clc
>ADC.G ViewPortHm1
bcc .5
inx
.5 >CMP.G FileY A,X = screen bottom
txa
iny FileY > screen bottom ?
sbc (pData),y
bcs .6 CS : fileY>= screen bottom
>INCW.G ScreenY move viewport down one line....
bit bRepaint
bmi .41
jsr SCRN.scrollUp ...and move content one line up
bcc .41
.9 rts
.6 >LDA.G FileX
sec
>SBC.G ScreenX
>STA.G CurX
>LDA.G FileY
sec
>SBC.G ScreenY
>STA.G CurY
bit bRepaint
bpl .7
jsr SCRN.UpdateMain
bcs .9
.7 jsr BUF.ComputeCOffset
jsr SCRN.GotoCurXCurY
bcs .9
jmp SCRN.UpdateStatusBar
*--------------------------------------
SCRN.UpdateMain >LDA.G ScreenY
sta TmpIndex
iny
@ -139,9 +239,10 @@ SCRN.UpdateMain.1
dec TmpCount
bne .5
.8 jsr SCRN.UpdateStatusBar
.8 jsr SCRN.GotoCurXCurY
bcs SCRN.UpdateMain.9
jmp SCRN.GotoCurXCurY
>DEBUG
jmp SCRN.UpdateStatusBar
SCRN.UpdateMain.9
rts
@ -262,27 +363,14 @@ SCRN.ToggleSel ldy #SEQ.NORM-SEQS
SCRN.ToggleSel.RTS
rts
*--------------------------------------
SCRN.UpdateStatusBar
jsr SCRN.LineBufInitBar
>PUSHBI 1
>PUSHB.G ScreenH
>PUSHBI 2
>PUSHW L.MSG.GOTOXY
jsr SCRN.LineBufSprintf
bcs .9
>LDA.G ScreenW
tax
lda #C.SPACE
.1 jsr SCRN.ToLineBuf
dex
bpl .1
lda #C.CR
jsr SCRN.ToLineBuf
SCRN.UpdateStatusBar
lda #$ff
>STA.G bUpdateStatus
clc
rts
*--------------------------------------
SCRN.DrawStatusBar
jsr SCRN.ResetStatusBar
>LDA.G FileY
tax
@ -307,63 +395,39 @@ SCRN.UpdateStatusBar
>PUSHW L.MSG.STATUSBAR
jsr SCRN.LineBufSprintf
bcs .9
ldx #SEQ.CURRESTORE-SEQS
jsr SCRN.SEQS.ToLineBuf
jmp SCRN.LineBufOut
.9 rts
*--------------------------------------
SCRN.UpdateStatusBar.OLD
.2 eor #PromptModeHelp
beq .3
>PUSHW pData
lda #2
.3 >PUSHA
bra SCRN.UpdateStatusBarOut
*--------------------------------------
SCRN.UpdateStatusBarErrA
>PUSHA
SCRN.ResetStatusBar
jsr SCRN.LineBufInitBar
ldx #SEQ.CURSAVE-SEQS
jsr SCRN.SEQS.ToLineBuf
>PUSHBI 1
ldx #10
bra SCRN.UpdateStatusBarOutErr
SCRN.UpdateStatusBarOut
ldy #PromptMode
lda (pData),y
tax
SCRN.UpdateStatusBarOutErr
>PUSHW L.MSG.STATUSBAR,x
>LDYA LineBufPtr
>SYSCALL sprintf
SCRN.LineBufOutBar
>PUSHB.G ScreenH
>PUSHBI 2
>PUSHW L.MSG.GOTOXY
jsr SCRN.LineBufSprintf
>LDA.G ScreenW
tax
ldy #0
.1 lda (LineBufPtr),y
beq .2
iny
lda #C.SPACE
.1 jsr SCRN.ToLineBuf
dex
bne .1
bra .4
.2 lda #C.SPACE
.3 sta (LineBufPtr),y
iny
dex
bne .3
lda #C.CR
jsr SCRN.ToLineBuf
lda #0
sta (LineBufPtr),y
.4 >PUSHW.G LineBufBase
>PUSHBI 2
>LDYA L.SEQ.BAR
>SYSCALL printf
bcs .9
.9 rts
jmp SCRN.LineBufOut
*--------------------------------------
SCRN.CursorAdjust
.1 jsr BUF.ComputeCOffset
@ -395,106 +459,6 @@ SCRN.GotoXY txa
>SYSCALL printf
rts
*--------------------------------------
SCRN.UpdateViewPort
stz bRepaint
.1 >LDA.G FileX
>CMP.G ScreenX
bcs .2 out of left border ?
>DEC.G ScreenX yes
sec
ror bRepaint
bra .1
.2 bit bRepaint
bmi .30
.21 >LDA.G ScreenX
clc
>ADC.G ScreenW
dec
>CMP.G FileX
bcs .3 out of right border ?
>INC.G ScreenX
sec
ror bRepaint
bra .21
.3 bit bRepaint
.30 bmi .6
.31 >LDA.G FileY+1
tax
dey
lda (pData),y A,X = FileY
>CMP.G ScreenY
iny
txa
sbc (pData),y
bcs .4 out of top border ?
>DECW.G ScreenY move viewport up one line....
bit bRepaint
bmi .31 skip scroll, will be repainted later
jsr SCRN.scrollDn ...and move content one line down
bcc .31
rts
.4 bit bRepaint
bmi .6
.41 >LDA.G ScreenY+1
tax
dey
lda (pData),y
clc
>ADC.G ViewPortHm1
bcc .5
inx
.5 >CMP.G FileY A,X = screen bottom
txa
iny FileY > screen bottom ?
sbc (pData),y
bcs .6 CS : fileY>= screen bottom
>INCW.G ScreenY move viewport down one line....
bit bRepaint
bmi .41
jsr SCRN.scrollUp ...and move content one line up
bcc .41
.9 rts
.6 >LDA.G FileX
sec
>SBC.G ScreenX
>STA.G CurX
>LDA.G FileY
sec
>SBC.G ScreenY
>STA.G CurY
bit bRepaint
bpl .7
jsr SCRN.UpdateMain
bcs .9
.7 jsr BUF.ComputeCOffset
jsr SCRN.UpdateStatusBar
bcs .9
jmp SCRN.GotoCurXCurY
*--------------------------------------
SCRN.scrollUp >PUSHBI 0
>LDYA L.SEQ.SCROLLUP
>SYSCALL printf
@ -573,20 +537,18 @@ SCRN.LineBufInit
>LDYA.G LineBufBase
>STYA LineBufPtr
.1 lda SEQS,x
.2 jsr SCRN.ToLineBuf
inx
lda SEQS,x
bne .2
jsr SCRN.SEQS.ToLineBuf
plx
rts
*--------------------------------------
SCRN.ToLineBuf sta (LineBufPtr)
inc LineBufPtr
bne .8
inc LineBufPtr+1
.8 rts
SCRN.SEQS.ToLineBuf
lda SEQS,x
.1 jsr SCRN.ToLineBuf
inx
lda SEQS,x
bne .1
rts
*--------------------------------------
SCRN.LineBufSprintf
>LDYA LineBufPtr
@ -604,6 +566,12 @@ SCRN.LineBufSprintf
.9 rts
*--------------------------------------
SCRN.ToLineBuf sta (LineBufPtr)
inc LineBufPtr
bne .8
inc LineBufPtr+1
.8 rts
*--------------------------------------
SCRN.LineBufOut lda #0
sta (LineBufPtr)

View File

@ -44,18 +44,13 @@ TmpByte .BS 1
ZS.END .ED
*--------------------------------------
PromptModeHelp .EQ 2
PromptModeFind .EQ 4
PromptModeReplace .EQ 6
PromptModeSave .EQ 8
*--------------------------------------
* File Header (16 Bytes)
*--------------------------------------
CS.START cld
jmp (.1,x)
.DA #$61 6502,Level 1 (65c02)
.DA #1 BIN Layout Version 1
.DA #0
.DA #S.PS.F.EVENT S.PS.F
.DA #0
.DA CS.END-CS.START CS
.DA DS.END-DS.START DS
@ -84,7 +79,7 @@ L.MSG.FILETYPES .DA MSG.TXTCR
.DA MSG.TXTCRLF
.DA MSG.TXTASM
L.MSG.STATUSBAR .DA MSG.STATUSBAR
.DA MSG.STATUSBAR.H
L.MSG.STATUSBAR.H .DA MSG.STATUSBAR.H
.DA MSG.STATUSBAR.F
.DA MSG.STATUSBAR.R
.DA MSG.STATUSBAR.S
@ -96,11 +91,6 @@ L.MSG.HELP .DA MSG.HELP
J.SAVE .DA FILE.Save.CR
.DA FILE.Save.CRLF
.DA FILE.Save.ASM
J.PROMPT .DA Prompt.Editor
.DA Prompt.Help
.DA Prompt.Find
.DA Prompt.Replace
.DA Prompt.Save
J.CTRL .DA Ctrl.Invalid
.DA Ctrl.A
.DA Ctrl.B
@ -230,7 +220,18 @@ CS.RUN.LOOP >SYSCALL GetChar
sec
CS.RUN.RTS rts
*--------------------------------------
CS.DOEVENT sec
CS.DOEVENT lda (pEvent)
bpl .9 is it a TIMER event?
asl
bpl .9
>LDA.G bUpdateStatus
bpl .9
jsr SCRN.DrawStatusBar
>STZ.G bUpdateStatus
.9 sec
rts
*--------------------------------------
CS.QUIT ldy #hLineBuffer
@ -296,13 +297,30 @@ CharIn tax
>STA.G EscBuffer
.8 clc
rts
.9 rts
.2 pha
>LDA.G PromptMode
tax
.2 cmp #C.DEL
bne .22
jmp Ctrl.DEL
.22 cmp #C.SPACE
bcc .3
pha
jsr BUF.ComputeCOffset
pla
jmp (J.PROMPT,x)
jsr BUF.InsertA
bcs .9
jsr SCRN.UpdateCurrentLine
bcs .9
jmp Ctrl.FS
.3 asl
tax
jmp (J.CTRL,x)
*--------------------------------------
CharIn.Esc >STZ.G bEscMode
@ -416,10 +434,12 @@ SEQ.DLG.RIGHT .AS "\e[37;40m"
SEQ.DLG.LBL .AZ "\e[0m\e[30;46m"
SEQ.DLG.TB .AZ "\e[0m\e[93;44m"
SEQ.DLG.BUT .AZ "\e[7m\e[93;44m"
SEQ.INV .AZ "\e[7m"
SEQ.EDIT .AS "\e[0m\e[93;44m" +CEOL
SEQ.CEOL .AZ "\e[K"
SEQ.NORM .AZ "\e[0m"
SEQ.INV .AZ "\e[7m"
SEQ.CURSAVE .AZ "\e7"
SEQ.CURRESTORE .AZ "\e8"
*--------------------------------------
SEQ.DETECT .AZ "Querying term caps...\e[999;999H\e[6n"
SEQ.RESET .AZ "\ec"
@ -587,9 +607,7 @@ DLG.FIND.LEN .EQ *-DLG.FIND
.DUMMY
.OR 0
DS.START
PromptBuf .BS PROMPTBUFMAX+1
PromptBufPtr .BS 1
PromptMode .BS 1
bUpdateStatus .BS 1
bExit .BS 1
bSaved .BS 1
bEscMode .BS 1

View File

@ -131,34 +131,45 @@ CS.RUN.SETUP
.1 >INC.G ArgIndex
>SYSCALL ArgV
bcs .4
>STYA ZPTmpPtr1
lda (ZPTmpPtr1)
cmp #'-'
bne .99
ldy #1
lda (ZPTmpPtr1),y
ldx OptionList
ldx #OptionVars-OptionList-1
.2 cmp OptionList,x
beq .3
dex
bne .2
bpl .2
.99 >PUSHBI 0
>LDYA L.MSG.USAGE
>SYSCALL printf
lda #E.SYN
sec
rts
.3 ldy OptionVars-1,x
.3 ldy OptionVars,x
lda #$80
sta (pData),y
bra .1
*--------------------------------------
.4 >LDA.G bSET
bne .41 Force ...
.4 lda IPCFG+S.NETCFG.STATUS
lda IPCFG+S.NETCFG.STATUS
bne .5
lda #$ff no config, force all
.41 lda #$ff no config, force all
>STA.G bETC
>STA.G bDHCP
.5 >LDA.G bETC
>ORA.G bDHCP
beq CS.RUN.DUMP
@ -346,8 +357,8 @@ CS.END
LIBTCPIP .AZ "libtcpip"
hLIBTCPIP .BS 1
*--------------------------------------
OptionList >PSTR "DEde"
OptionVars .DA #bDHCP,#bETC,#bDHCP,#bETC
OptionList .AS "DdEeSs"
OptionVars .DA #bDHCP,#bDHCP,#bETC,#bETC,#bSET,#bSET
*--------------------------------------
MSG.USAGE .AS "Usage : IPCONFIG <switches>\r\n"
.AS " -D : Try to get IP address from DHCP\r\n"
@ -470,6 +481,7 @@ DS.START
ArgIndex .BS 1
bDHCP .BS 1
bETC .BS 1
bSET .BS 1
DIB .BS S.DIB
IOCTL .BS S.IOCTL
DCB.NIC .BS S.DCB.NIC

View File

@ -75,18 +75,23 @@ CS.RUN
bne .4
ldy #1
lda (ZPPtr1),y
ldx OptionList
ldx #OptionVars-OptionList-1
.2 cmp OptionList,x
beq .3
dex
bne .2
bpl .2
lda #E.SYN
sec
rts
.3 ldy OptionVars-1,x
.3 ldy OptionVars,x
lda #$80
sta (pData),y
bra .1
.4 >LDYA ZPPtr1
jsr InitSrcDirYA
bcc .1 scan for any other args
@ -592,7 +597,7 @@ Mod2CSTR ldy #S.STAT.MODE+1
*--------------------------------------
CS.END
*--------------------------------------
OptionList >PSTR "ACFLRacflr"
OptionList .AS "ACFLRacflr"
OptionVars .DA #bAllmostAll,#bColumn,#bFullPath,#bLong,#bRecurse,#bAllmostAll,#bColumn,#bFullPath,#bLong,#bRecurse
*--------------------------------------
MSG.DEVEXT .AZ "/%15s S%dD%d Blocks Used:%5D Total:%5D\r\n"

View File

@ -870,7 +870,7 @@ RESET.MODE lda #0
rts
*--------------------------------------
RESET ldy #S.DCB.TTY.MODE
.1 lda RESET.VALUES-S.DCB.TTY.MODE,y
.1 lda RESET.VALUES-S.DCB.TTY.MODE,y
sta (ZPDCBPtr),y
iny
cpy #S.DCB.TTY.INBUFFER+1
@ -950,11 +950,12 @@ CLR.8 clc
rts
*--------------------------------------
SaveCurPos ldy #S.DCB.TTY.CH
lda (ZPDCBPtr),y
jsr .1
iny
sta (ZPDCBPtr),y
iny
lda (ZPDCBPtr),y
.1 lda (ZPDCBPtr),y
iny
sta (ZPDCBPtr),y
rts
@ -962,11 +963,12 @@ SaveCurPos ldy #S.DCB.TTY.CH
RestoreCurPos jsr DRV.TERM.CUROFF
ldy #S.DCB.TTY.CV.SAVE
lda (ZPDCBPtr),y
jsr .1
dey
sta (ZPDCBPtr),y
dey
lda (ZPDCBPtr),y
.1 lda (ZPDCBPtr),y
dey
sta (ZPDCBPtr),y
rts