Kernel 0.93++

This commit is contained in:
Rémy GIBERT 2020-02-06 17:23:59 +01:00
parent bf1990479c
commit c29cb8be90
16 changed files with 348 additions and 437 deletions

View File

@ -133,19 +133,6 @@ Create a hDEV
Y,A = PTR to Expanded String Y,A = PTR to Expanded String
X = hMem to Expanded String (C-String) X = hMem to Expanded String (C-String)
# PutEnv
Change or add an environment variable, string is 'NAME=VALUE'
## C
`int putenv(char *string);`
## ASM
**In:**
`>PUSHW string`
`>SYSCALL putenv`
## RETURN VALUE
# SetEnv # SetEnv
Change or add an environment variable Change or add an environment variable
@ -177,6 +164,19 @@ and returns a pointer to the corresponding value string.
CC : Y,A = PTR to VALUE (C-String) CC : Y,A = PTR to VALUE (C-String)
CS : not found CS : not found
# PutEnv
Change or add an environment variable, string is 'NAME=VALUE'
## C
`int putenv(char *string);`
## ASM
**In:**
`>PUSHW string`
`>SYSCALL putenv`
## RETURN VALUE
# UnsetEnv # UnsetEnv
Remove an environment variable Remove an environment variable
@ -357,15 +357,19 @@ Add Data to MD5 computation
## RETURN VALUE ## RETURN VALUE
# GetMem0 # Realloc
Y,A = Size Requested
## C
`void *realloc(short int hMem, int size);`
## ASM
`>PUSHB hMem`
`>PUSHW size`
`>SYSCALL realloc`
## RETURN VALUE ## RETURN VALUE
CC : success YA = ptr
YA = PTR to Mem (ZERO Initialised) X = hMem
* X = hMem
CS :
A = EC
# GetMem # GetMem
Y,A = Size Requested Y,A = Size Requested
@ -1292,24 +1296,41 @@ CS : no match
CC, Y,A=0 CC, Y,A=0
CS, Y,A > 0 or < 0 CS, Y,A > 0 or < 0
# NewStrV # StrVShift
**In:**
A = Initial Size (Page) ## ASM
`>PUSHB hSTRV`
`>PUSHB index`
`>SYSCALL StrVShift`
## RETURN VALUE ## RETURN VALUE
X = hStrV
Y,A = Ptr
# StrVGet # StrVGet
**In:**
A = hStrV ## ASM
X = index `>PUSHB hSTRV`
`>PUSHB index`
`>PUSHW ptr`
`>SYSCALL StrVGet`
## RETURN VALUE ## RETURN VALUE
Y,A = Ptr CC: Y,A = Ptr
CS: Y,A = NULL
# StrVAdd
## ASM
`>PUSHB hSTRV`
`>PUSHW str`
`>SYSCALL StrVAdd`
## RETURN VALUE
CC : str added to hSTRV
CS : hSTRV full
# StrVDup # StrVDup
**In:**
## ASM
Y,A = Src StrV Y,A = Src StrV
## RETURN VALUE ## RETURN VALUE
@ -1317,7 +1338,7 @@ CS : no match
A = Str Count A = Str Count
# Str2StrV # Str2StrV
Expand String and convert to ArgV List Expand String and convert to StrV List
## C ## C
short int str2strv(char* args, char* argv[]) short int str2strv(char* args, char* argv[])

View File

@ -1,72 +0,0 @@
*** Auto generated by docgen.cmd ***
## Copyright
Copyright 2015 - 2020, Remy Gibert and the A2osX contributors.
## MD5
Return MD5 Hash for input String
# C
`void md5 (const char* str, char* digest);`
# ASM
`>PUSHW digest`
`>PUSHW str`
## RETURN VALUE
CC
## MD5Init
Initialize a MD5 computation
# C
`hMD5 md5init ();`
# ASM
`>LIBCALL hLIBCRYPT,LIBCRYPT.MD5Init`
## RETURN VALUE
A = hMem To S.MD5
## MD5Update
Add Data to MD5 computation
# C
`void md5update (hMD5 md5, char* data, int len);`
# ASM
`>PUSHW len`
`>PUSHW data`
`>LDA.G md5`
`>hLIBCRYPT,LIBCRYPT.MD5Update`
## RETURN VALUE
## MD5Finalize
# C
`void md5finalize (hMD5 md5, char* digest);`
# ASM
`>PUSHW digest`
`>LDA.G md5`
`>LIBCALL hLIBCRYPT,LIBCRYPT.MD5Finalize`
## RETURN VALUE
## License
A2osX is licensed under the GNU General Public License.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
The full A2osX license can be found **[Here](../LICENSE)**.
*** End of Auto generated file ***

Binary file not shown.

View File

@ -319,6 +319,7 @@ Ctrl.O ldy #FileY+1
sta (pData),y sta (pData),y
>STZ.G FileX >STZ.G FileX
>STA.G ScreenX
jmp SCRN.UpdateMainAndStatus jmp SCRN.UpdateMainAndStatus
@ -345,9 +346,6 @@ Ctrl.P ldy #FileY+1
jsr BUF.GetLineAX A,X = FileY+PAGE jsr BUF.GetLineAX A,X = FileY+PAGE
bcs .8 bcs .8
tya Y = line length
>STA.G FileX
ldy #FileY+1 ldy #FileY+1
pla pla
sta (pData),y sta (pData),y
@ -365,6 +363,9 @@ Ctrl.P ldy #FileY+1
adc #0 adc #0
sta (pData),y sta (pData),y
>STZ.G FileX
>STA.G ScreenX
jmp SCRN.UpdateMainAndStatus jmp SCRN.UpdateMainAndStatus
.8 pla .8 pla

View File

@ -283,9 +283,12 @@ SCRN.UpdateCurrentLine
inx inx
.1 jsr BUF.GetLineAX .1 jsr BUF.GetLineAX
bcs SCRN.UpdateMain.9 bcc .2
phy jsr SCRN.LineBufInitEdit
jmp SCRN.UpdateLineAtBufPtr.EOL
.2 phy
>LDA.G CurY >LDA.G CurY
ply ply
*-------------------------------------- *--------------------------------------

View File

@ -35,17 +35,8 @@ CMD.SHIFT lda (ZPArgVBufPtr)
CMD.SHIFT.1 inc CMD.SHIFT.1 inc
CMD.SHIFTA >SYSCALL ArgV CMD.SHIFTA >SYSCALL Shift
bcs .8
jsr RemoveStrFromArgV
ldy #S.PS.ARGC
lda (pPS),y
dec
sta (pPS),y
.8 clc
CMD.SHIFTA.RTS rts CMD.SHIFTA.RTS rts
*-------------------------------------- *--------------------------------------
CMD.PUSHD >LDA.G PUSHD.STACK CMD.PUSHD >LDA.G PUSHD.STACK
@ -133,7 +124,12 @@ CMD.CD.YA >SYSCALL realpath
bcs .19 bcs .19
>STYA ZPPtr2 >STYA ZPPtr2
jsr StrCpyPtr1Ptr2 ldy #$ff
.1 iny
lda (ZPPtr1),y
sta (ZPPtr2),y
bne .1
lda #'/' lda #'/'
sta (ZPPtr2),y sta (ZPPtr2),y

View File

@ -486,21 +486,6 @@ CheckSleep ldy #Sleep+3
ora (pData),y ora (pData),y
rts rts
*-------------------------------------- *--------------------------------------
RemoveStrFromArgV
>STYA ZPPtr1
>STYA ZPPtr2
jsr GetPtr1LenY
.2 jsr AddYp1Ptr1
jsr StrCpyPtr1Ptr2
tya
beq .8
jsr AddAp1Ptr2
bra .2
.8 rts
*--------------------------------------
GetPtr1NextChar lda (ZPPtr1) GetPtr1NextChar lda (ZPPtr1)
beq IncPtr1.8 beq IncPtr1.8
@ -518,31 +503,15 @@ GetPtr1LenY ldy #$ff
GetPtr1NextString GetPtr1NextString
jsr GetPtr1LenY jsr GetPtr1LenY
*-------------------------------------- *--------------------------------------
AddYp1Ptr1 tya tya
AddAp1Ptr1 sec AddAp1Ptr1 sec
.HS 90 BCC
AddAPtr1 clc
adc ZPPtr1 adc ZPPtr1
sta ZPPtr1 sta ZPPtr1
bcc .8 bcc .8
inc ZPPtr1+1 inc ZPPtr1+1
.8 rts .8 rts
*-------------------------------------- *--------------------------------------
AddAp1Ptr2 sec
adc ZPPtr2
sta ZPPtr2
bcc .8
inc ZPPtr2+1
.8 rts
*--------------------------------------
StrCpyPtr1Ptr2 ldy #$ff
.1 iny
lda (ZPPtr1),y
sta (ZPPtr2),y
bne .1
rts
*--------------------------------------
ToUpperCase cmp #'a' ToUpperCase cmp #'a'
bcc .8 bcc .8
cmp #'z'+1 cmp #'z'+1

View File

@ -267,7 +267,7 @@ SYS.LoadTxtFile .EQ $AA
SYS.GetMemStat .EQ $AC SYS.GetMemStat .EQ $AC
* .EQ $AE * .EQ $AE
* .EQ $B0 SYS.Shift .EQ $B0
SYS.ArgV .EQ $B2 SYS.ArgV .EQ $B2
SYS.Expand .EQ $B4 SYS.Expand .EQ $B4
SYS.FileSearch .EQ $B6 SYS.FileSearch .EQ $B6

View File

@ -1,9 +1,52 @@
NEW NEW
AUTO 3,1 AUTO 3,1
*/-------------------------------------- */--------------------------------------
* # Shift
* ## ASM
* A = argument index.
* ## RETURN VALUE
* CC : success
* Y,A = PTR To Arg[A]
* CS : Out Of Bound
*\--------------------------------------
K.Shift jsr K.ArgV
bcs .9
>STYA ZPPtr1
* >STYA ZPPtr2 already set from ArgV
ldy #$ff
.1 iny
lda (ZPPtr1),y
bne .1
.2 jsr SHARED.AddYp1ToPtr1
ldy #$ff
.3 iny
lda (ZPPtr1),y
sta (ZPPtr2),y
bne .3
tya
beq .8
jsr SHARED.AddYp1ToPtr2
bra .2
.8 ldy #S.PS.ARGC
lda (pPS),y
dec
sta (pPS),y
clc
rts
.9 rts
*/--------------------------------------
* # ArgV * # ArgV
* ## ASM * ## ASM
* **In:**
* A = argument index. * A = argument index.
* ## RETURN VALUE * ## RETURN VALUE
* CC : success * CC : success

View File

@ -84,7 +84,11 @@ K.Expand jsr K.strdup
lda /K.Buf256 lda /K.Buf256
>STYA FORPNT >STYA FORPNT
jsr K.GetEnv.I ldy #S.PS.hENV
lda (pPs),y
ldx #SYS.GetEnv
jsr K.SYSCALL.JMPX
bcs .70 bcs .70
ldx ENV.BufLen ldx ENV.BufLen
@ -318,42 +322,6 @@ ENV.GetP3LenY ldy #$ff
bne .1 bne .1
rts rts
*/-------------------------------------- */--------------------------------------
* # PutEnv
* Change or add an environment variable, string is 'NAME=VALUE'
* ## C
* `int putenv(char *string);`
* ## ASM
* **In:**
* `>PUSHW string`
* `>SYSCALL putenv`
* ## RETURN VALUE
*\--------------------------------------
K.PutEnv >PULLW TXTPTR NAME=VALUE
ldy #$ff
.1 iny
lda (TXTPTR),y NAME=
beq .9
cmp #'='
bne .1
tya
sec skip =
adc TXTPTR
sta FORPNT
lda #0
adc TXTPTR+1
sta FORPNT+1
bra K.SetEnv.I
.9 lda #E.SYN
sec
rts
*/--------------------------------------
* # SetEnv * # SetEnv
* Change or add an environment variable * Change or add an environment variable
* ## C * ## C
@ -365,18 +333,14 @@ K.PutEnv >PULLW TXTPTR NAME=VALUE
* `>SYSCALL setenv` * `>SYSCALL setenv`
* ## RETURN VALUE * ## RETURN VALUE
*\-------------------------------------- *\--------------------------------------
K.SetEnv >PULLW FORPNT value K.SetEnv
>PULLW TXTPTR name * >PULLW FORPNT value
* >PULLW TXTPTR name
K.SetEnv.I ldy #S.PS.hENV * ldy #S.PS.hENV
lda (pPs),y * lda (pPs),y
sta SETREADAUX * jmp K.SYSCALL.JMPX
sta SETWRITEAUX
jsr ENVX.SetEnv
sta CLRREADAUX
sta CLRWRITEAUX
rts
*/-------------------------------------- */--------------------------------------
* # GetEnv * # GetEnv
* searches the environment list to find the environment variable name, * searches the environment list to find the environment variable name,
@ -393,17 +357,24 @@ K.SetEnv.I ldy #S.PS.hENV
* CS : not found * CS : not found
*\-------------------------------------- *\--------------------------------------
K.GetEnv >PULLW FORPNT value K.GetEnv >PULLW FORPNT value
>PULLW TXTPTR name * >PULLW TXTPTR name
*
* ldy #S.PS.hENV
* lda (pPs),y
K.GetEnv.I ldy #S.PS.hENV * jmp K.SYSCALL.JMPX
lda (pPs),y */--------------------------------------
* # PutEnv
sta SETREADAUX * Change or add an environment variable, string is 'NAME=VALUE'
sta SETWRITEAUX * ## C
jsr ENVX.GetEnv * `int putenv(char *string);`
sta CLRREADAUX * ## ASM
sta CLRWRITEAUX * **In:**
rts * `>PUSHW string`
* `>SYSCALL putenv`
* ## RETURN VALUE
*\--------------------------------------
K.PutEnv >PULLW TXTPTR NAME=VALUE
*/-------------------------------------- */--------------------------------------
* # UnsetEnv * # UnsetEnv
* Remove an environment variable * Remove an environment variable
@ -415,17 +386,13 @@ K.GetEnv.I ldy #S.PS.hENV
* `>SYSCALL unsetenv` * `>SYSCALL unsetenv`
* ## RETURN VALUE * ## RETURN VALUE
*\-------------------------------------- *\--------------------------------------
K.UnsetEnv >PULLW TXTPTR name K.UnsetEnv
* >PULLW TXTPTR name
ldy #S.PS.hENV ldy #S.PS.hENV
lda (pPs),y lda (pPs),y
sta SETREADAUX jmp K.SYSCALL.JMPX
sta SETWRITEAUX
jsr ENVX.UnsetEnv
sta CLRREADAUX
sta CLRWRITEAUX
rts
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE USR/SRC/SYS/KERNEL.S.ENV SAVE USR/SRC/SYS/KERNEL.S.ENV

View File

@ -3,11 +3,17 @@ NEW
*-------------------------------------- *--------------------------------------
ENVX.hEnv .BS 1 ENVX.hEnv .BS 1
*-------------------------------------- *--------------------------------------
ENVX.PutEnv ldy #$ff ENVX.PutEnv.9 lda #E.SYN
sec
rts
*--------------------------------------
ENVX.PutEnv tax save hEnv
ldy #$ff
.1 iny .1 iny
jsr SHARED.TXTPTR.GetY NAME= jsr SHARED.TXTPTR.GetY NAME=
beq .9 beq ENVX.PutEnv.9
cmp #'=' cmp #'='
bne .1 bne .1
@ -21,11 +27,7 @@ ENVX.PutEnv ldy #$ff
adc TXTPTR+1 adc TXTPTR+1
sta FORPNT+1 sta FORPNT+1
bra ENVX.SetEnv txa get back hEnv
.9 lda #E.SYN
sec
rts
*-------------------------------------- *--------------------------------------
ENVX.SetEnv jsr ENVX.UnsetEnv ENVX.SetEnv jsr ENVX.UnsetEnv

View File

@ -106,7 +106,7 @@ K.SYSCALL .DA 0 $00
.DA K.GetMemStat .DA K.GetMemStat
.DA 0 .DA 0
.DA 0 $B0 .DA K.Shift $B0
.DA K.ArgV .DA K.ArgV
.DA K.Expand .DA K.Expand
.DA K.FileSearch .DA K.FileSearch
@ -351,17 +351,17 @@ K.SYSCALL.BANK .DA #RRAMWRAMBNK1 $00
.DA #RRAMWRAMBNK2 .DA #RRAMWRAMBNK2
.DA #$80 .DA #$80
.DA #RRAMWRAMBNK2 .DA #RRAMWRAMBNK2
.DA #$80 .DA #0 $B8 : ENV
.DA #RRAMWRAMBNK2 .DA #0
.DA #$80 .DA #0
.DA #RRAMWRAMBNK2 .DA #0
.DA #$80 .DA #0
.DA #RRAMWRAMBNK2 .DA #0
.DA #$80 .DA #0
.DA #RRAMWRAMBNK2 .DA #0
.DA #$80 .DA #0
.DA #0 $C0 .DA #0 $C0 : TIME
.DA #$80 .DA #$80
.DA #0 .DA #0
.DA #$80 .DA #$80
@ -482,10 +482,18 @@ K.SYSCALL.JMPX sta SETREADAUX
sta CLRWRITEAUX sta CLRWRITEAUX
rts rts
.1 jmp (.2-SYS.StrFTime,x) .1 jmp (.2-SYS.PutEnv,x)
.2 .DA TIMEX.StrFTime
.2 .DA ENVX.PutEnv
.DA ENVX.SetEnv
.DA ENVX.GetEnv
.DA ENVX.UnsetEnv
.DA 0 Time
.DA TIMEX.StrFTime
.DA TIMEX.PTime2Time .DA TIMEX.PTime2Time
.DA TIMEX.CTime2Time .DA TIMEX.CTime2Time
.DA MD5X.MD5 .DA MD5X.MD5
.DA MD5X.Init .DA MD5X.Init
.DA MD5X.Update .DA MD5X.Update

View File

@ -226,7 +226,8 @@ PS.Load ldy #$ff
.6 lda K.S.STAT+S.STAT.P.TYPE .6 lda K.S.STAT+S.STAT.P.TYPE
cmp #S.FI.T.BIN cmp #S.FI.T.BIN
beq PS.LoadBIN bne .7
jmp PS.LoadBIN
.7 cmp #S.FI.T.TXT .7 cmp #S.FI.T.TXT
beq PS.Load.SCRIPT beq PS.Load.SCRIPT
@ -251,7 +252,7 @@ PS.Load.SCRIPT ldx #$ff
>PUSHWI PS.Load.ROOT >PUSHWI PS.Load.ROOT
>PUSHWI K.Buf256 K.Buf256 = "$ROOT" >PUSHWI K.Buf256 K.Buf256 = "$ROOT"
jsr K.GetEnv >SYSCALL2 GetEnv
bcs PS.Load.IPATH bcs PS.Load.IPATH
ldx #$ff ldx #$ff
@ -795,7 +796,7 @@ ENV.Search.PATH ldx #4
>PUSHW ENV.VARS,x >PUSHW ENV.VARS,x
>PUSHWI 0 allocate... >PUSHWI 0 allocate...
jsr K.GetEnv get value for Search Path >SYSCALL2 GetEnv get value for Search Path
bcs K.FileSearch.RTS bcs K.FileSearch.RTS
>STYA ENV.Search.2+1 >STYA ENV.Search.2+1

View File

@ -5,57 +5,43 @@ DRV.TERM cld
jmp (.1,x) jmp (.1,x)
.1 .DA DRV.TERM.STATUS.LC .1 .DA TERM.STATUS
.DA A2osX.BADCALL .DA A2osX.BADCALL
.DA A2osX.BADCALL .DA A2osX.BADCALL
.DA A2osX.BADCALL .DA A2osX.BADCALL
.DA DRV.TERM.CONTROL.LC .DA TERM.CONTROL
.DA A2osX.BADCALL .DA A2osX.BADCALL
.DA DRV.TERM.OPEN.LC .DA TERM.OPEN
.DA DRV.TERM.CLOSE.LC .DA TERM.CLOSE
.DA DRV.TERM.READ.LC .DA TERM.READ
.DA DRV.TERM.WRITE.LC .DA TERM.WRITE
*-------------------------------------- *--------------------------------------
DRV.TERM.STATUS.LC TERM.STATUS jsr TERM.GetIOCTLBufCntDCB
jsr DRV.TERM.GetIOCTLBufCntDCB
ldy #S.IOCTL.STATCODE ldy #S.IOCTL.STATCODE
lda (ZPIOCTL),y lda (ZPIOCTL),y
bra DRV.TERM.TOAUX bra TERM.TOAUX
DRV.TERM.CONTROL.LC TERM.CONTROL
DRV.TERM.OPEN.LC TERM.OPEN
DRV.TERM.CLOSE.LC TERM.CLOSE pha DEV.ID in A for OPEN
pha DEV.ID in A for OPEN jsr TERM.GetDCB
jsr DRV.TERM.GetDCB
pla pla
bra DRV.TERM.TOAUX bra TERM.TOAUX
DRV.TERM.READ.LC TERM.READ
DRV.TERM.WRITE.LC TERM.WRITE jsr TERM.GetIOCTLBufCntDCB
jsr DRV.TERM.GetIOCTLBufCntDCB
*-------------------------------------- *--------------------------------------
DRV.TERM.TOAUX sta SETREADAUX TERM.TOAUX sta SETREADAUX
sta SETWRITEAUX sta SETWRITEAUX
jsr .1 jsr .1
sta CLRREADAUX sta CLRREADAUX
sta CLRWRITEAUX sta CLRWRITEAUX
rts rts
.1 jmp (.2,x) .1 jmp (TERMX,x)
.2 .DA DRV.TERM.STATUS
.DA A2osX.BADCALL
.DA A2osX.BADCALL
.DA A2osX.BADCALL
.DA DRV.TERM.CONTROL
.DA A2osX.BADCALL
.DA DRV.TERM.OPEN
.DA DRV.TERM.CLOSE
.DA DRV.TERM.READ
.DA DRV.TERM.WRITE
*-------------------------------------- *--------------------------------------
DRV.TERM.GetIOCTLBufCntDCB TERM.GetIOCTLBufCntDCB
>STYA ZPIOCTL >STYA ZPIOCTL
ldy #S.IOCTL.BUFPTR ldy #S.IOCTL.BUFPTR
@ -74,7 +60,7 @@ DRV.TERM.GetIOCTLBufCntDCB
eor #$ff eor #$ff
sta ZPCount+1 sta ZPCount+1
*-------------------------------------- *--------------------------------------
DRV.TERM.GetDCB ldy #S.FD.DEV.DCBPTR TERM.GetDCB ldy #S.FD.DEV.DCBPTR
lda (pFD),y lda (pFD),y
sta ZPDCBPtr sta ZPDCBPtr
@ -100,14 +86,12 @@ DRV.TERM.GetDCB ldy #S.FD.DEV.DCBPTR
rts rts
*-------------------------------------- *--------------------------------------
DRV.TERM.GetBufByte TERM.GetBufByte sta CLRREADAUX
sta CLRREADAUX
lda (ZPBufPtr) lda (ZPBufPtr)
sta SETREADAUX sta SETREADAUX
rts rts
*-------------------------------------- *--------------------------------------
DRV.TERM.GetDevName TERM.GetDevName sta CLRREADAUX
sta CLRREADAUX
lda (ZPDCBPtr) #S.DCB.TTY.DEVID lda (ZPDCBPtr) #S.DCB.TTY.DEVID
tax tax

View File

@ -26,7 +26,18 @@ CsiParamCnt .BS 1
CsiParams .BS 4 CsiParams .BS 4
.ED .ED
*-------------------------------------- *--------------------------------------
DRV.TERM.STATUS beq .1 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 beq .1
cmp #S.IOCTL.STATCODE.GETDIB cmp #S.IOCTL.STATCODE.GETDIB
bne .3 bne .3
@ -37,7 +48,7 @@ DRV.TERM.STATUS beq .1
sta CLRWRITEAUX sta CLRWRITEAUX
.2 lda DRV.TERM.DIB,y .2 lda TERMX.DIB,y
sta (ZPBufPtr),y sta (ZPBufPtr),y
dey dey
bne .2 bne .2
@ -51,10 +62,10 @@ DRV.TERM.STATUS beq .1
.3 cmp #S.IOCTL.STATCODE.EOF .3 cmp #S.IOCTL.STATCODE.EOF
bne .9 bne .9
jsr DRV.TERM.ISOPENED jsr TERMX.ISOPENED
beq DRV.TERM.OPEN.E beq TERMX.OPEN.E
jsr DRV.TERM.CURBLNK jsr TERMX.CURBLNK
ldy #S.DCB.TTY.OUTTAIL ldy #S.DCB.TTY.OUTTAIL
lda (ZPDCBPtr),y lda (ZPDCBPtr),y
iny iny
@ -79,15 +90,15 @@ DRV.TERM.STATUS beq .1
.9 lda #MLI.E.BADCTL .9 lda #MLI.E.BADCTL
.HS 2C BIT ABS .HS 2C BIT ABS
DRV.TERM.OPEN.E lda #MLI.E.OPEN TERMX.OPEN.E lda #MLI.E.OPEN
sec sec
rts rts
*-------------------------------------- *--------------------------------------
DRV.TERM.OPEN tax TERMX.OPEN tax
jsr DRV.TERM.ISOPENED jsr TERMX.ISOPENED
bne DRV.TERM.OPEN.E bne TERMX.OPEN.E
DRV.TERM.OPEN.1 txa TERMX.OPEN.1 txa
ldx #0 ldx #0
.2 ldy DevMgr.SCRNDEVS,x .2 ldy DevMgr.SCRNDEVS,x
@ -108,17 +119,16 @@ DRV.TERM.OPEN.1 txa
ldy #S.DCB.TTY.STATUS ldy #S.DCB.TTY.STATUS
lda (ZPDCBPtr),y lda (ZPDCBPtr),y
ora #S.DIB.S.OPENED ora #S.DIB.S.OPENED
ora DRV.TERM.DIB+S.DIB.S ora TERMX.DIB+S.DIB.S
sta (ZPDCBPtr),y sta (ZPDCBPtr),y
jsr RESET jsr RESET
*-------------------------------------- *--------------------------------------
DRV.TERM.CONTROL TERMX.CONTROL lda (ZPDCBPtr) #S.DCB.TTY.DEVID
lda (ZPDCBPtr) #S.DCB.TTY.DEVID
sta DevMgr.ASCREEN sta DevMgr.ASCREEN
sta SETTEXT sta SETTEXT
jsr DRV.TERM.SCRCPY jsr TERMX.SCRCPY
lda #0 lda #0
ldy #S.DCB.TTY.bCURON ldy #S.DCB.TTY.bCURON
@ -129,10 +139,10 @@ DRV.TERM.CONTROL
clc clc
rts rts
*-------------------------------------- *--------------------------------------
DRV.TERM.CLOSE jsr DRV.TERM.ISOPENED TERMX.CLOSE jsr TERMX.ISOPENED
beq .9 beq .9
lda DRV.TERM.DIB+S.DIB.S lda TERMX.DIB+S.DIB.S
sta (ZPDCBPtr),y sta (ZPDCBPtr),y
ldx #0 ldx #0
@ -152,24 +162,23 @@ DRV.TERM.CLOSE jsr DRV.TERM.ISOPENED
sec sec
rts rts
*-------------------------------------- *--------------------------------------
DRV.TERM.ISOPENED TERMX.ISOPENED ldy #S.DCB.TTY.STATUS
ldy #S.DCB.TTY.STATUS
lda (ZPDCBPtr),y lda (ZPDCBPtr),y
bit #S.DIB.S.OPENED bit #S.DIB.S.OPENED
rts rts
*-------------------------------------- *--------------------------------------
DRV.TERM.READ bit bActive is screen active? TERMX.READ bit bActive is screen active?
bpl .6 no....go check flush... bpl .6 no....go check flush...
jsr DRV.TERM.CURBLNK jsr TERMX.CURBLNK
lda OPENAPPLE lda OPENAPPLE
bpl .1 bpl .1
jsr DRV.TERM.Title.ON jsr TERMX.Title.ON
bra .6 Open apple key, not for us... bra .6 Open apple key, not for us...
.1 jsr DRV.TERM.Title.OFF .1 jsr TERMX.Title.OFF
lda KBD lda KBD
sta A2osX.RANDOM16 sta A2osX.RANDOM16
@ -249,7 +258,7 @@ DRV.TERM.READ bit bActive is screen active?
* sec * sec
rts rts
*-------------------------------------- *--------------------------------------
DRV.TERM.WRITE jsr DRV.TERM.CUROFF TERMX.WRITE jsr TERMX.CUROFF
.1 inc ZPCount .1 inc ZPCount
bne .2 bne .2
@ -269,26 +278,26 @@ DRV.TERM.WRITE jsr DRV.TERM.CUROFF
.3 jmp (.4,x) .3 jmp (.4,x)
.4 .DA DRV.TERM.COUT .4 .DA TERMX.COUT
.DA DRV.TERM.ESC .DA TERMX.ESC
.DA DRV.TERM.CSI .DA TERMX.CSI
.DA DRV.TERM.IAC .DA TERMX.IAC
.DA DRV.TERM.G0 .DA TERMX.G0
.DA DRV.TERM.G1 .DA TERMX.G1
.8 clc .8 clc
rts rts
*-------------------------------------- *--------------------------------------
DRV.TERM.COUT jsr DRV.TERM.GetBufByte TERMX.COUT jsr TERM.GetBufByte
cmp #IAC cmp #IAC
bne .1 bne .1
lda #S.DCB.TTY.MODE.IAC lda #S.DCB.TTY.MODE.IAC
jmp DRV.TERM.SETMODE jmp TERMX.SETMODE
.1 cmp #C.DEL .1 cmp #C.DEL
beq DRV.TERM.COUT.DEL beq TERMX.COUT.DEL
cmp #C.SPACE cmp #C.SPACE
bcs .8 bcs .8
@ -310,45 +319,43 @@ DRV.TERM.COUT jsr DRV.TERM.GetBufByte
jmp (.4,x) jmp (.4,x)
.4 .DA ENQ .4 .DA ENQ
.DA DRV.TERM.COUT.BS .DA TERMX.COUT.BS
.DA DRV.TERM.COUT.LF .DA TERMX.COUT.LF
.DA DRV.TERM.COUT.FF .DA TERMX.COUT.FF
.DA DRV.TERM.COUT.CR .DA TERMX.COUT.CR
.DA DRV.TERM.COUT.SO .DA TERMX.COUT.SO
.DA DRV.TERM.COUT.SI .DA TERMX.COUT.SI
.DA DRV.TERM.COUT.FS .DA TERMX.COUT.FS
.DA DRV.TERM.COUT.ESC .DA TERMX.COUT.ESC
*--------------------------------------
.8 jsr SetCharAtCurPos .8 jsr SetCharAtCurPos
*-------------------------------------- *--------------------------------------
DRV.TERM.COUT.FS TERMX.COUT.FS ldy #S.DCB.TTY.CH
ldy #S.DCB.TTY.CH
lda (ZPDCBPtr),y lda (ZPDCBPtr),y
inc inc
sta (ZPDCBPtr),y sta (ZPDCBPtr),y
cmp #80 cmp #80
bcc DRV.TERM.COUT.BS.8 bcc TERMX.COUT.BS.8
ldy #S.DCB.TTY.bLINEWRAP ldy #S.DCB.TTY.bLINEWRAP
lda (ZPDCBPtr),y lda (ZPDCBPtr),y
bpl DRV.TERM.COUT.BS.8 bpl TERMX.COUT.BS.8
jsr DRV.TERM.COUT.CR jsr TERMX.COUT.CR
jmp DRV.TERM.COUT.LF.1 jmp TERMX.COUT.LF.1
*-------------------------------------- *--------------------------------------
DRV.TERM.COUT.BS TERMX.COUT.BS ldy #S.DCB.TTY.CH
ldy #S.DCB.TTY.CH
lda (ZPDCBPtr),y lda (ZPDCBPtr),y
beq DRV.TERM.COUT.BS.1 beq TERMX.COUT.BS.1
dec dec
sta (ZPDCBPtr),y sta (ZPDCBPtr),y
DRV.TERM.COUT.BS.8
clc TERMX.COUT.BS.8 clc
rts rts
DRV.TERM.COUT.BS.1 TERMX.COUT.BS.1 ldy #S.DCB.TTY.CV
ldy #S.DCB.TTY.CV
lda (ZPDCBPtr),y lda (ZPDCBPtr),y
beq .2 beq .2
@ -362,8 +369,7 @@ DRV.TERM.COUT.BS.1
.2 clc .2 clc
rts rts
*-------------------------------------- *--------------------------------------
DRV.TERM.COUT.DEL TERMX.COUT.DEL ldy #S.DCB.TTY.CH
ldy #S.DCB.TTY.CH
lda (ZPDCBPtr),y lda (ZPDCBPtr),y
beq .1 beq .1
@ -373,7 +379,7 @@ DRV.TERM.COUT.DEL
.1 ldy #S.DCB.TTY.CV .1 ldy #S.DCB.TTY.CV
lda (ZPDCBPtr),y lda (ZPDCBPtr),y
beq DRV.TERM.COUT.BS.8 beq TERMX.COUT.BS.8
dec dec
sta (ZPDCBPtr),y sta (ZPDCBPtr),y
@ -383,34 +389,29 @@ DRV.TERM.COUT.DEL
.3 lda #C.SPACE .3 lda #C.SPACE
jmp SetCharAtCurPos jmp SetCharAtCurPos
*-------------------------------------- *--------------------------------------
DRV.TERM.COUT.FF TERMX.COUT.FF jsr HOME
jsr HOME jmp TERMX.CLRSCR
jmp DRV.TERM.CLRSCR
*-------------------------------------- *--------------------------------------
DRV.TERM.COUT.CR TERMX.COUT.CR lda #0
lda #0
ldy #S.DCB.TTY.CH ldy #S.DCB.TTY.CH
sta (ZPDCBPtr),y sta (ZPDCBPtr),y
clc clc
rts rts
*-------------------------------------- *--------------------------------------
DRV.TERM.COUT.SO TERMX.COUT.SO sec
sec
.HS 90 BCC .HS 90 BCC
*-------------------------------------- *--------------------------------------
DRV.TERM.COUT.SI TERMX.COUT.SI clc
clc
ldy #S.DCB.TTY.bG0G1 ldy #S.DCB.TTY.bG0G1
ror ror
sta (ZPDCBPtr),y sta (ZPDCBPtr),y
clc clc
rts rts
*-------------------------------------- *--------------------------------------
DRV.TERM.COUT.ESC TERMX.COUT.ESC lda #S.DCB.TTY.MODE.ESC
lda #S.DCB.TTY.MODE.ESC bra TERMX.SETMODE
bra DRV.TERM.SETMODE
*-------------------------------------- *--------------------------------------
DRV.TERM.ESC jsr DRV.TERM.GetBufByte y = #S.DCB.TTY.MODE TERMX.ESC jsr TERM.GetBufByte y = #S.DCB.TTY.MODE
ldx #EscCodes.Cnt-1 ldx #EscCodes.Cnt-1
.2 cmp EscCodes,x .2 cmp EscCodes,x
@ -418,13 +419,13 @@ DRV.TERM.ESC jsr DRV.TERM.GetBufByte y = #S.DCB.TTY.MODE
dex dex
bpl .2 bpl .2
bra DRV.TERM.SETMODE0 bra TERMX.SETMODE0
.3 phx .3 phx
jsr .4 jsr .4
plx plx
lda EscModes,x lda EscModes,x
bra DRV.TERM.SETMODE bra TERMX.SETMODE
.4 txa .4 txa
asl asl
@ -436,33 +437,31 @@ DRV.TERM.ESC jsr DRV.TERM.GetBufByte y = #S.DCB.TTY.MODE
.DA Scroll.Dn M .DA Scroll.Dn M
.DA Scroll.Up D .DA Scroll.Up D
.DA RESET c .DA RESET c
.DA DRV.TERM.SETMODE.RTS [ .DA TERMX.SETMODE.RTS [
.DA DRV.TERM.SETMODE.RTS ( .DA TERMX.SETMODE.RTS (
.DA DRV.TERM.SETMODE.RTS ) .DA TERMX.SETMODE.RTS )
*-------------------------------------- *--------------------------------------
DRV.TERM.SETMODE0 TERMX.SETMODE0 lda #0
lda #0 TERMX.SETMODE ldy #S.DCB.TTY.MODE
DRV.TERM.SETMODE
ldy #S.DCB.TTY.MODE
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
sta (ZPDCBPtr),y sta (ZPDCBPtr),y
clc clc
DRV.TERM.SETMODE.RTS TERMX.SETMODE.RTS
rts rts
*-------------------------------------- *--------------------------------------
DRV.TERM.CSI ldy #S.DCB.TTY.INBUFFER TERMX.CSI ldy #S.DCB.TTY.INBUFFER
lda (ZPDCBPtr),y lda (ZPDCBPtr),y
inc inc
sta (ZPDCBPtr),y sta (ZPDCBPtr),y
tay tay
jsr DRV.TERM.GetBufByte jsr TERM.GetBufByte
sta (ZPDCBPtr),y sta (ZPDCBPtr),y
cmp #64 End of Seq ? cmp #64 End of Seq ?
bcs DRV.TERM.CSI.Exec bcs TERMX.CSI.Exec
cpy #S.DCB.TTY.INBUFFER.MAX-1 buffer full? cpy #S.DCB.TTY.INBUFFER.MAX-1 buffer full?
bne .8 bne .8
@ -471,8 +470,7 @@ DRV.TERM.CSI ldy #S.DCB.TTY.INBUFFER
.8 clc .8 clc
rts rts
DRV.TERM.CSI.Exec TERMX.CSI.Exec stz CsiHeader
stz CsiHeader
stz CsiParamCnt stz CsiParamCnt
lda #S.DCB.TTY.INBUFFER+1 EscSeq Ptr lda #S.DCB.TTY.INBUFFER+1 EscSeq Ptr
@ -651,15 +649,15 @@ Csi.Scroll ldy CsiParamCnt
Csi.EraseScreen ldx CsiParamCnt Csi.EraseScreen ldx CsiParamCnt
bne .1 bne .1
jmp DRV.TERM.CLRSCR.DN jmp TERMX.CLRSCR.DN
.1 lda CsiParams .1 lda CsiParams
cmp #1 cmp #1
bne .2 bne .2
jmp DRV.TERM.CLRSCR.UP jmp TERMX.CLRSCR.UP
.2 cmp #2 .2 cmp #2
bne .9 bne .9
jmp DRV.TERM.CLRSCR jmp TERMX.CLRSCR
.9 clc .9 clc
rts rts
@ -724,13 +722,13 @@ HOME lda #0
clc clc
rts rts
*-------------------------------------- *--------------------------------------
DRV.TERM.G0 ldx #$80 TERMX.G0 ldx #$80
.HS 2C BIT ABS .HS 2C BIT ABS
DRV.TERM.G1 ldx #$40 TERMX.G1 ldx #$40
ldy #S.DCB.TTY.bG0G1ALT ldy #S.DCB.TTY.bG0G1ALT
jsr DRV.TERM.GetBufByte jsr TERM.GetBufByte
cmp #'0' cmp #'0'
beq .1 beq .1
@ -743,15 +741,15 @@ DRV.TERM.G1 ldx #$40
ora (ZPDCBPtr),y ora (ZPDCBPtr),y
.8 sta (ZPDCBPtr),y .8 sta (ZPDCBPtr),y
jmp DRV.TERM.SETMODE0 jmp TERMX.SETMODE0
*-------------------------------------- *--------------------------------------
DRV.TERM.IAC ldy #S.DCB.TTY.INBUFFER TERMX.IAC ldy #S.DCB.TTY.INBUFFER
lda (ZPDCBPtr),y lda (ZPDCBPtr),y
inc inc
sta (ZPDCBPtr),y sta (ZPDCBPtr),y
tay tay
jsr DRV.TERM.GetBufByte jsr TERM.GetBufByte
sta (ZPDCBPtr),y sta (ZPDCBPtr),y
cpy #S.DCB.TTY.INBUFFER+1 CMD ? cpy #S.DCB.TTY.INBUFFER+1 CMD ?
@ -762,7 +760,7 @@ DRV.TERM.IAC ldy #S.DCB.TTY.INBUFFER
cmp #SB cmp #SB
bne .1 not a SB/SE....stop with CMD/SUBCMD bne .1 not a SB/SE....stop with CMD/SUBCMD
jsr DRV.TERM.GetBufByte jsr TERM.GetBufByte
cmp #SE cmp #SE
bne Csi.Home.8 wait for ending SE....keep bIACMode bne Csi.Home.8 wait for ending SE....keep bIACMode
@ -868,7 +866,7 @@ RESET ldy #S.DCB.TTY.MODE
iny iny
cpy #S.DCB.TTY.INBUFFER+1 cpy #S.DCB.TTY.INBUFFER+1
bne .1 bne .1
jmp DRV.TERM.CLRSCR jmp TERMX.CLRSCR
*-------------------------------------- *--------------------------------------
RESETATTR lda #$80 RESETATTR lda #$80
ldy #S.DCB.TTY.bNORMAL ldy #S.DCB.TTY.bNORMAL
@ -887,13 +885,12 @@ ENQ ldx #0
.8 clc .8 clc
rts rts
*-------------------------------------- *--------------------------------------
DRV.TERM.COUT.LF TERMX.COUT.LF ldy #S.DCB.TTY.bCRLF
ldy #S.DCB.TTY.bCRLF
lda (ZPDCBPtr),y lda (ZPDCBPtr),y
bpl DRV.TERM.COUT.LF.1 bpl TERMX.COUT.LF.1
jsr DRV.TERM.COUT.CR jsr TERMX.COUT.CR
DRV.TERM.COUT.LF.1
ldy #S.DCB.TTY.CV TERMX.COUT.LF.1 ldy #S.DCB.TTY.CV
lda (ZPDCBPtr),y lda (ZPDCBPtr),y
ldy #S.DCB.TTY.SCROLLBOT ldy #S.DCB.TTY.SCROLLBOT
cmp (ZPDCBPtr),y cmp (ZPDCBPtr),y
@ -953,7 +950,7 @@ SaveCurPos ldy #S.DCB.TTY.CH
sta (ZPDCBPtr),y sta (ZPDCBPtr),y
rts rts
*-------------------------------------- *--------------------------------------
RestoreCurPos jsr DRV.TERM.CUROFF RestoreCurPos jsr TERMX.CUROFF
ldy #S.DCB.TTY.CV.SAVE ldy #S.DCB.TTY.CV.SAVE
@ -971,10 +968,10 @@ SCROLL.UP ldy #S.DCB.TTY.SCROLLTOP
tax tax
.1 jsr DRV.TERM.SETUP.L1X .1 jsr TERMX.SETUP.L1X
inx inx
jsr DRV.TERM.COPY.XtoL1 jsr TERMX.COPY.XtoL1
txa txa
ldy #S.DCB.TTY.SCROLLBOT ldy #S.DCB.TTY.SCROLLBOT
@ -987,10 +984,10 @@ SCROLL.DN ldy #S.DCB.TTY.SCROLLBOT
tax tax
.1 jsr DRV.TERM.SETUP.L1X .1 jsr TERMX.SETUP.L1X
dex dex
jsr DRV.TERM.COPY.XtoL1 jsr TERMX.COPY.XtoL1
txa txa
ldy #S.DCB.TTY.SCROLLTOP ldy #S.DCB.TTY.SCROLLTOP
@ -1000,35 +997,33 @@ SCROLL.DN ldy #S.DCB.TTY.SCROLLBOT
clc clc
rts rts
*-------------------------------------- *--------------------------------------
DRV.TERM.CURBLNK TERMX.CURBLNK bit bActive
bit bActive
bpl .9 bpl .9
lda DevMgr.Timer lda DevMgr.Timer
and #CURSOR.BLINK.SPEED and #CURSOR.BLINK.SPEED
ldy #S.DCB.TTY.bCURON ldy #S.DCB.TTY.bCURON
eor (ZPDCBPtr),y eor (ZPDCBPtr),y
bne DRV.TERM.CURBLNK.1 bne TERMX.CURBLNK.1
.9 rts .9 rts
DRV.TERM.CUROFF bit bActive TERMX.CUROFF bit bActive
bpl DRV.TERM.CURBLNK.RTS bpl TERMX.CURBLNK.RTS
ldy #S.DCB.TTY.bCURON ldy #S.DCB.TTY.bCURON
lda (ZPDCBPtr),y lda (ZPDCBPtr),y
beq DRV.TERM.CURBLNK.RTS beq TERMX.CURBLNK.RTS
DRV.TERM.CURBLNK.1 TERMX.CURBLNK.1 lda (ZPDCBPtr),y
lda (ZPDCBPtr),y bne TERMX.CURBLNK.OFF
bne DRV.TERM.CURBLNK.OFF
jsr GetCharAtCurPos jsr GetCharAtCurPos
bcs DRV.TERM.CURBLNK.RTS Out of screen bcs TERMX.CURBLNK.RTS Out of screen
and #$80 and #$80
eor #" " eor #" "
DRV.TERM.CURBLNK.SET TERMX.CURBLNK.SET
jsr SetCharAtY.SCR jsr SetCharAtY.SCR
ldy #S.DCB.TTY.bCURON ldy #S.DCB.TTY.bCURON
lda (ZPDCBPtr),y lda (ZPDCBPtr),y
@ -1036,17 +1031,17 @@ DRV.TERM.CURBLNK.SET
sta (ZPDCBPtr),y sta (ZPDCBPtr),y
rts rts
DRV.TERM.CURBLNK.OFF TERMX.CURBLNK.OFF
jsr GetCharAtCurPos jsr GetCharAtCurPos
bcc DRV.TERM.CURBLNK.SET if not Out of screen bcc TERMX.CURBLNK.SET if not Out of screen
DRV.TERM.CURBLNK.RTS TERMX.CURBLNK.RTS
rts rts
*-------------------------------------- *--------------------------------------
Decimal.Out jsr MATH.A2STR10NP Decimal.Out jsr MATH.A2STR10NP
ldx #0 ldx #0
.1 lda A2osX.NumStrBuf,x .1 lda A2osX.NumStrBuf,x
beq DRV.TERM.CURBLNK.RTS beq TERMX.CURBLNK.RTS
inx inx
jsr Char.Out.Put jsr Char.Out.Put
bra .1 bra .1
@ -1095,8 +1090,7 @@ Char.Out.Get ldy #S.DCB.TTY.OUTTAIL
clc clc
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
DRV.TERM.SETUP.L1X TERMX.SETUP.L1X lda ZPBufBase
lda ZPBufBase
clc clc
adc BUF.BASEL,x adc BUF.BASEL,x
sta ZPBufBaseL1 sta ZPBufBaseL1
@ -1106,9 +1100,9 @@ DRV.TERM.SETUP.L1X
sta ZPBufBaseL1+1 sta ZPBufBaseL1+1
bit bActive bit bActive
bpl DRV.TERM.SETUP.L1X.8 bpl TERMX.SETUP.L1X.8
DRV.TERM.SETUP.L1X.SCR TERMX.SETUP.L1X.SCR
lda SCR.BASEL,x lda SCR.BASEL,x
sta ZPScrBaseL1 sta ZPScrBaseL1
txa txa
@ -1117,32 +1111,30 @@ DRV.TERM.SETUP.L1X.SCR
ora #4 ora #4
* lda SCR.BASEH,x * lda SCR.BASEH,x
sta ZPScrBaseL1+1 sta ZPScrBaseL1+1
DRV.TERM.SETUP.L1X.8 TERMX.SETUP.L1X.8
rts rts
*-------------------------------------- *--------------------------------------
DRV.TERM.CLRSCR.DN TERMX.CLRSCR.DN ldy #S.DCB.TTY.CV
ldy #S.DCB.TTY.CV
sta (ZPDCBPtr),y sta (ZPDCBPtr),y
tax tax
bra DRV.TERM.CLRSCR.1 bra TERMX.CLRSCR.1
DRV.TERM.CLRSCR.UP
ldx #0 TERMX.CLRSCR.UP ldx #0
ldy #S.DCB.TTY.CV ldy #S.DCB.TTY.CV
sta (ZPDCBPtr),y sta (ZPDCBPtr),y
tay tay
bra DRV.TERM.CLRSCR.2 bra TERMX.CLRSCR.2
DRV.TERM.CLRSCR ldx #0
DRV.TERM.CLRSCR.1 TERMX.CLRSCR ldx #0
ldy #24
DRV.TERM.CLRSCR.2 TERMX.CLRSCR.1 ldy #24
sty .1+1
TERMX.CLRSCR.2 sty .1+1
sta SET80STORE sta SET80STORE
.1 cpx #$ff SELF MODIFIED .1 cpx #$ff SELF MODIFIED
beq .9 beq .9
jsr DRV.TERM.SETUP.L1X jsr TERMX.SETUP.L1X
lda #" " lda #" "
bit bActive bit bActive
@ -1167,18 +1159,17 @@ DRV.TERM.CLRSCR.2
bpl .8 bpl .8
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
DRV.TERM.Title.ON TERMX.Title.ON ldy #S.DCB.TTY.bTITLE
ldy #S.DCB.TTY.bTITLE
lda (ZPDCBPtr),y lda (ZPDCBPtr),y
bmi DRV.TERM.Title.RTS bmi TERMX.Title.RTS
lda #$ff lda #$ff
sta (ZPDCBPtr),y sta (ZPDCBPtr),y
jsr DRV.TERM.GetDevName jsr TERM.GetDevName
ldx #0 ldx #0
jsr DRV.TERM.SETUP.L1X.SCR jsr TERMX.SETUP.L1X.SCR
ldy #0 ldy #0
@ -1205,20 +1196,18 @@ DRV.TERM.Title.ON
iny iny
cpy #80 cpy #80
bne .4 bne .4
DRV.TERM.Title.RTS
rts
DRV.TERM.Title.OFF TERMX.Title.RTS rts
ldy #S.DCB.TTY.bTITLE
TERMX.Title.OFF ldy #S.DCB.TTY.bTITLE
lda (ZPDCBPtr),y lda (ZPDCBPtr),y
bpl DRV.TERM.Title.RTS bpl TERMX.Title.RTS
lda #$0 lda #$0
sta (ZPDCBPtr),y sta (ZPDCBPtr),y
*-------------------------------------- *--------------------------------------
DRV.TERM.LINE0CPY TERMX.LINE0CPY ldx #0
ldx #0
.HS 2C BIT ABS .HS 2C BIT ABS
DRV.TERM.SCRCPY ldx #23 TERMX.SCRCPY ldx #23
sta SET80STORE sta SET80STORE
@ -1230,7 +1219,7 @@ DRV.TERM.SCRCPY ldx #23
lda ZPBufBase+1 lda ZPBufBase+1
adc BUF.BASEH,x adc BUF.BASEH,x
sta .80+2 sta .80+2
jsr DRV.TERM.SETUP.L1X.SCR jsr TERMX.SETUP.L1X.SCR
phx phx
@ -1266,7 +1255,7 @@ DRV.TERM.SCRCPY ldx #23
rts rts
*-------------------------------------- *--------------------------------------
DRV.TERM.COPY.XtoL1 TERMX.COPY.XtoL1
lda ZPBufBase lda ZPBufBase
clc clc
adc BUF.BASEL,x adc BUF.BASEL,x
@ -1353,7 +1342,7 @@ SetCharAtYX ror A2osX.RANDOM16+1
lda REMAP.E0.FF-$E0,y lda REMAP.E0.FF-$E0,y
sta ZPTmpChar sta ZPTmpChar
.3 jsr DRV.TERM.SETUP.L1X .3 jsr TERMX.SETUP.L1X
ply ply
lda ZPTmpChar lda ZPTmpChar
sta (ZPBufBaseL1),y sta (ZPBufBaseL1),y
@ -1380,7 +1369,7 @@ GetCharAtCurPos ldy #S.DCB.TTY.CV
bcs .9 Out of screen bcs .9 Out of screen
tax tax
jsr DRV.TERM.SETUP.L1X jsr TERMX.SETUP.L1X
ldy #S.DCB.TTY.CH ldy #S.DCB.TTY.CH
lda (ZPDCBPtr),y lda (ZPDCBPtr),y
@ -1451,7 +1440,7 @@ RESET.VALUES .DA #0 MODE
.DA #S.DCB.TTY.OUTBUFFER OUTHEAD .DA #S.DCB.TTY.OUTBUFFER OUTHEAD
.DA #S.DCB.TTY.INBUFFER INBUFFER .DA #S.DCB.TTY.INBUFFER INBUFFER
*-------------------------------------- *--------------------------------------
DRV.TERM.DIB .DA #S.DIB.S.WRITE+S.DIB.S.READ TERMX.DIB .DA #S.DIB.S.WRITE+S.DIB.S.READ
.DA #0,#0,#0 .DA #0,#0,#0
>PSTR "A2osX VT100 term" >PSTR "A2osX VT100 term"
.DA #S.DIB.T.CHAR .DA #S.DIB.T.CHAR

View File

@ -16,7 +16,6 @@ K.Time >PULLW FORPNT
>LDYAI DATELO >LDYAI DATELO
>STYA TXTPTR >STYA TXTPTR
ldx #SYS.PTime2Time ldx #SYS.PTime2Time
jmp K.SYSCALL.JMPX jmp K.SYSCALL.JMPX
*/-------------------------------------- */--------------------------------------
* # StrFTime * # StrFTime