LIBCRYPT:Bufixes and MD5 removal (duplicated in KERNEL)

ACOS:bugfixes in GET
KERNEL:fixes for //c loobing bug
This commit is contained in:
burniouf 2021-07-27 18:21:58 +02:00
parent f8b8e13285
commit 09923489fd
17 changed files with 411 additions and 423 deletions

Binary file not shown.

Binary file not shown.

View File

@ -265,16 +265,16 @@ EXP.ComputeY lda EXP.TYPE
clc clc
rts rts
.1 stz EXP.TYPE at the end ....TRUE/FALSE is int .1 cpy #3 +
cpy #3 +
bne .2 bne .2
ldx #SYS.StrCat ldx #RT.StrAdd.ID
clc clc
jmp CODE.SYSCALL jmp CODE.JSRRT
.2 cpy #11 <> .2 stz EXP.TYPE at the end ....TRUE/FALSE is int
cpy #11 <>
bne .3 bne .3
ldx #SYS.StrCmp ldx #SYS.StrCmp

View File

@ -14,6 +14,14 @@ RT.NOT lda (pStack)
>PUSHA >PUSHA
rts rts
*-------------------------------------- *--------------------------------------
RT.StrAdd >DEBUG
inc pStack
inc pStack
clc
rts
*--------------------------------------
RT.StrSet >PUSHB hStrings RT.StrSet >PUSHB hStrings
txa txa
>PUSHA >PUSHA
@ -105,7 +113,7 @@ RT.TIMEd.1 >PUSHW ZPStrBuf
>PUSHW ZPStrBuf >PUSHW ZPStrBuf
rts rts
*-------------------------------------- *--------------------------------------
RT.GET >SYSCALL GetChar RT.GET jsr RT.GetChar
sta (ZPStrBuf) sta (ZPStrBuf)
ldy #1 ldy #1
@ -123,7 +131,7 @@ RT.INPUT lda #0
ldx #0 OUT.ELW ldx #0 OUT.ELW
jsr RT.OUTX jsr RT.OUTX
.1 >SYSCALL GetChar .1 jsr RT.GetChar
bcs RT.INPUT.9 bcs RT.INPUT.9
ldy ZPPtr1 ldy ZPPtr1
@ -300,6 +308,19 @@ RT.OUTX ldy #S.PS.hStdOut
>SYSCALL FPutS >SYSCALL FPutS
rts rts
*-------------------------------------- *--------------------------------------
* TODO: handle lost conn CS and remap VT100 ESC codes
*--------------------------------------
RT.GetChar >SYSCALL GetChar
cmp #C.CR
bne .8
>SYSCALL GetChar LF
lda #C.CR
.8 clc
rts
*--------------------------------------
MAN MAN
SAVE usr/src/bin/acos.s.rt SAVE usr/src/bin/acos.s.rt
LOAD usr/src/bin/acos.s LOAD usr/src/bin/acos.s

View File

@ -203,6 +203,8 @@ RT.VAL.ID .EQ *-J.RT
*-------------------------------------- *--------------------------------------
RT.NOT.ID .EQ *-J.RT RT.NOT.ID .EQ *-J.RT
.DA RT.NOT .DA RT.NOT
RT.StrAdd.ID .EQ *-J.RT
.DA RT.StrAdd
RT.StrSet.ID .EQ *-J.RT RT.StrSet.ID .EQ *-J.RT
.DA RT.StrSet .DA RT.StrSet
RT.StrGet.ID .EQ *-J.RT RT.StrGet.ID .EQ *-J.RT
@ -393,11 +395,11 @@ CS.FClose >LDA.G hFile
.1 >LDA.G hInputBuf .1 >LDA.G hInputBuf
beq .8 beq .8
>SYSCALL FreeMem >SYSCALL FreeMem
>STZ.G hInputBuf >STZ.G hInputBuf
.8 .8
* clc * clc
rts rts
*-------------------------------------- *--------------------------------------

View File

@ -27,6 +27,11 @@ ArgIndex .BS 1
bWrite .BS 1 bWrite .BS 1
AttrAND .BS 1 AttrAND .BS 1
AttrORA .BS 1 AttrORA .BS 1
bContinue .BS 1
bRecurse .BS 1
bPause .BS 1
ZS.END .ED ZS.END .ED
*-------------------------------------- *--------------------------------------
* File Header (16 Bytes) * File Header (16 Bytes)
@ -121,13 +126,13 @@ CS.RUN.LOOP ldy #S.PS.hStdIn
cmp #$13 Ctrl-S cmp #$13 Ctrl-S
bne .1 bne .1
>LDA.G bPause lda bPause
eor #$ff eor #$ff
sta (pData),y sta bPause
bne CS.RUN.LOOP bne CS.RUN.LOOP
.1 >LDA.G bPause .1 lda bPause
bne CS.RUN.LOOP Pause... bmi CS.RUN.LOOP Pause...
*-------------------------------------- *--------------------------------------
jsr GetEntry jsr GetEntry
bcs CS.RUN.LEAVE bcs CS.RUN.LEAVE
@ -213,7 +218,7 @@ CS.RUN.DIR lda (ZPFileName)
>SYSCALL PrintF >SYSCALL PrintF
bcs .9 bcs .9
.7 >LDA.G bRecurse .7 bit bRecurse
bpl .8 bpl .8
>LDYA ZPFileName >LDYA ZPFileName
@ -272,7 +277,8 @@ CS.RUN.SetAttr >PUSHW ZPFullPath
>PUSHA >PUSHA
>PUSHBI 1 >PUSHBI 1
>SYSCALL PrintF >SYSCALL PrintF
>LDA.G bContinue
lda bContinue
eor #$80 eor #$80
asl asl
pla pla
@ -306,6 +312,7 @@ CS.RUN.CheckSwitch
.2 cmp OptionList,x .2 cmp OptionList,x
beq .3 beq .3
dex dex
bpl .2 bpl .2
@ -314,7 +321,7 @@ CS.RUN.CheckSwitch
.3 ldy OptionVars,x .3 ldy OptionVars,x
lda #$80 lda #$80
sta (pData),y sta $0,y
clc clc
rts rts
@ -438,10 +445,6 @@ MSG.FILE .AZ "File:%s..."
.DUMMY .DUMMY
.OR 0 .OR 0
DS.START DS.START
bContinue .BS 1
bRecurse .BS 1
bPause .BS 1
hSrcFullPath .BS 1 hSrcFullPath .BS 1
ATTR .BS 17 ATTR .BS 17

View File

@ -156,7 +156,7 @@ CS.RUN.FILE >LDYAI FILEBUF.SIZE
tay tay
beq .3 beq .3
.2 >LIBCALL hLIBCRYPT,LIBCRYPT.MD5Init .2 >SYSCALL MD5Init
bcs .9 bcs .9
sta hHMACMD5Ctx sta hHMACMD5Ctx
@ -168,10 +168,10 @@ CS.RUN.FILE >LDYAI FILEBUF.SIZE
>SYSCALL ArgV >SYSCALL ArgV
>PUSHYA >PUSHYA
>PUSHW ZPDataLen >PUSHW ZPDataLen
>LIBCALL hLIBCRYPT,LIBCRYPT.MD5Update >SYSCALL MD5Update
>PUSHB hHMACMD5Ctx >PUSHB hHMACMD5Ctx
>PUSHEA.G HMACMD5Buf >PUSHEA.G HMACMD5Buf
>LIBCALL hLIBCRYPT,LIBCRYPT.MD5Finalize >SYSCALL MD5Finalize
jsr RevertASCII jsr RevertASCII
@ -190,7 +190,7 @@ CS.RUN.FILE >LDYAI FILEBUF.SIZE
stz HMACMD5.OPAD+64 stz HMACMD5.OPAD+64
rebase rebase
>LIBCALL hLIBCRYPT,LIBCRYPT.MD5Init >SYSCALL MD5Init
bcc .6 bcc .6
rts rts
@ -200,7 +200,7 @@ rebase
>PUSHB hHMACMD5Ctx >PUSHB hHMACMD5Ctx
>PUSHW L.HMACMD5.IPAD >PUSHW L.HMACMD5.IPAD
>PUSHWI 64 >PUSHWI 64
>LIBCALL hLIBCRYPT,LIBCRYPT.MD5Update >SYSCALL MD5Update
.7 >SLEEP .7 >SLEEP
@ -222,16 +222,16 @@ rebase
>PUSHB hHMACMD5Ctx >PUSHB hHMACMD5Ctx
>PUSHW ZPDataBufPtr >PUSHW ZPDataBufPtr
>PUSHW ZPDataLen >PUSHW ZPDataLen
>LIBCALL hLIBCRYPT,LIBCRYPT.MD5Update >SYSCALL MD5Update
bra .7 bra .7
.10 >PUSHB hHMACMD5Ctx .10 >PUSHB hHMACMD5Ctx
>PUSHEA.G HMACMD5Buf >PUSHEA.G HMACMD5Buf
>LIBCALL hLIBCRYPT,LIBCRYPT.MD5Finalize >SYSCALL MD5Finalize
jsr RevertASCII jsr RevertASCII
>LIBCALL hLIBCRYPT,LIBCRYPT.MD5Init >SYSCALL MD5Init
bcs .99 bcs .99
sta hHMACMD5Ctx sta hHMACMD5Ctx
@ -239,16 +239,16 @@ rebase
>PUSHB hHMACMD5Ctx >PUSHB hHMACMD5Ctx
>PUSHW L.HMACMD5.OPAD >PUSHW L.HMACMD5.OPAD
>PUSHWI 64 >PUSHWI 64
>LIBCALL hLIBCRYPT,LIBCRYPT.MD5Update >SYSCALL MD5Update
>PUSHB hHMACMD5Ctx >PUSHB hHMACMD5Ctx
>PUSHW L.HMACMD5.IPAD >PUSHW L.HMACMD5.IPAD
>PUSHWI 16 >PUSHWI 16
>LIBCALL hLIBCRYPT,LIBCRYPT.MD5Update >SYSCALL MD5Update
>PUSHB hHMACMD5Ctx >PUSHB hHMACMD5Ctx
>PUSHEA.G HMACMD5Buf >PUSHEA.G HMACMD5Buf
>LIBCALL hLIBCRYPT,LIBCRYPT.MD5Finalize >SYSCALL MD5Finalize
CS.RUN.PRINT >LEA.G HMACMD5Buf CS.RUN.PRINT >LEA.G HMACMD5Buf
>SYSCALL PutS >SYSCALL PutS

View File

@ -84,6 +84,7 @@ CS.RUN >INC.G ArgIndex
jsr CS.RUN.CheckOpt jsr CS.RUN.CheckOpt
bcs .9 bcs .9
bne CS.RUN bne CS.RUN
>INC.G ArgIndex -X >INC.G ArgIndex -X

View File

@ -1,253 +1,255 @@
NEW NEW
AUTO 3,1 AUTO 3,1
.LIST OFF .LIST OFF
.OP 65C02 .OP 65C02
.OR $2000 .OR $2000
.TF bin/xargs .TF bin/xargs
*-------------------------------------- *--------------------------------------
.INB inc/macros.i .INB inc/macros.i
.INB inc/a2osx.i .INB inc/a2osx.i
.INB inc/kernel.i .INB inc/kernel.i
.INB inc/mli.i .INB inc/mli.i
.INB inc/mli.e.i .INB inc/mli.e.i
*-------------------------------------- *--------------------------------------
.DUMMY .DUMMY
.OR ZPBIN .OR ZPBIN
ZS.START ZS.START
ArgIndex .BS 1 ArgIndex .BS 1
ArgPattern .BS 1 ArgPattern .BS 1
ZPPtr1 .BS 2 ZPPtr1 .BS 2
ZPCommandPtr .BS 2 ZPCommandPtr .BS 2
ZPBufPtr .BS 2 ZPBufPtr .BS 2
ZPCmdBuf .BS 2 ZPCmdBuf .BS 2
hFile .BS 1 hFile .BS 1
hBuf .BS 1 hBuf .BS 1
hCmdBuf .BS 1 hCmdBuf .BS 1
DashArgs .BS 1 DashArgs .BS 1
ZS.END .ED ZS.END .ED
*-------------------------------------- *--------------------------------------
* File Header (16 Bytes) * File Header (16 Bytes)
*-------------------------------------- *--------------------------------------
CS.START cld CS.START cld
jmp (.1,x) jmp (.1,x)
.DA #$61 6502,Level 1 (65c02) .DA #$61 6502,Level 1 (65c02)
.DA #1 BIN Layout Version 1 .DA #1 BIN Layout Version 1
.DA #0 S.PS.F.EVENT .DA #0 S.PS.F.EVENT
.DA #0 .DA #0
.DA CS.END-CS.START Code Size (without Constants) .DA CS.END-CS.START Code Size (without Constants)
.DA DS.END-DS.START Data Segment Size .DA DS.END-DS.START Data Segment Size
.DA #16 Stack Size .DA #16 Stack Size
.DA #ZS.END-ZS.START Zero Page Size .DA #ZS.END-ZS.START Zero Page Size
.DA 0 .DA 0
*-------------------------------------- *--------------------------------------
* Relocation Table * Relocation Table
*-------------------------------------- *--------------------------------------
.1 .DA CS.INIT .1 .DA CS.INIT
.DA CS.RUN .DA CS.RUN
.DA CS.DOEVENT .DA CS.DOEVENT
.DA CS.QUIT .DA CS.QUIT
L.MSG.USAGE .DA MSG.USAGE L.MSG.USAGE .DA MSG.USAGE
L.MSG.CRLF .DA MSG.CRLF L.MSG.CRLF .DA MSG.CRLF
L.CMD.SPC .DA CMD.SPC L.CMD.SPC .DA CMD.SPC
.DA 0 .DA 0
*-------------------------------------- *--------------------------------------
CS.INIT clc CS.INIT clc
rts rts
*-------------------------------------- *--------------------------------------
CS.RUN jsr CS.RUN.CheckArgs CS.RUN jsr CS.RUN.CheckArgs
bcs CS.RUN.LOOP.RTS bcs CS.RUN.LOOP.RTS
CS.RUN.LOOP >SLEEP CS.RUN.LOOP >SLEEP
>PUSHB hFile >PUSHB hFile
>PUSHW ZPBufPtr >PUSHW ZPBufPtr
>PUSHWI 256 >PUSHWI 256
>SYSCALL FGetS >SYSCALL FGetS
bcs .9 bcs .9
.2 jsr CS.RUN.PRINT .2 jsr CS.RUN.PRINT
bcc CS.RUN.LOOP bcc CS.RUN.LOOP
rts rts
.9 cmp #MLI.E.EOF .9 cmp #MLI.E.EOF
bne .99 bne .99
lda #0 Exit with no Error lda #0 Exit with no Error
.99 sec .99 sec
CS.RUN.LOOP.RTS rts CS.RUN.LOOP.RTS rts
*-------------------------------------- *--------------------------------------
CS.RUN.CheckArgs CS.RUN.CheckArgs
jsr CS.RUN.NextArg jsr CS.RUN.NextArg
bcs .4 bcs .4
lda (ZPPtr1) lda (ZPPtr1)
cmp #'-' cmp #'-'
beq .1 beq .1
lda ArgPattern lda ArgPattern
bne .11 bne .11
lda ArgIndex lda ArgIndex
sta ArgPattern sta ArgPattern
>LDYA ZPPtr1 >LDYA ZPPtr1
>STYA ZPCommandPtr >STYA ZPCommandPtr
bra CS.RUN.CheckArgs bra CS.RUN.CheckArgs
.11 lda hFile .11 lda hFile
bne .97 bne .97
>LDYA ZPPtr1 >LDYA ZPPtr1
jsr CS.RUN.OPEN jsr CS.RUN.OPEN
bcs .9 bcs .9
sta hFile sta hFile
bra CS.RUN.CheckArgs bra CS.RUN.CheckArgs
.1 ldy #1 .1 ldy #1
lda (ZPPtr1),y lda (ZPPtr1),y
ldx #OptionList.Cnt-1 ldx #OptionList.Cnt-1
.2 cmp OptionList,x .2 cmp OptionList,x
beq .3 beq .3
dex dex
bpl .2 bpl .2
bra .97 bra .97
.3 txa .3 txa
lsr lsr
beq .98 beq .98
tax tax
lda #$80 lda #$80
sta DashArgs-1,x sta DashArgs-1,x
bra CS.RUN.CheckArgs bra CS.RUN.CheckArgs
.4 lda hFile .4 lda hFile
bne .80 bne .80
ldy #S.PS.hStdIn ldy #S.PS.hStdIn
lda (pPS),y lda (pPS),y
tax tax
lda hFDs-1,x lda hFDs-1,x
>SYSCALL GetMemPtr >SYSCALL GetMemPtr
>STYA ZPPtr1 >STYA ZPPtr1
lda (ZPPtr1) lda (ZPPtr1)
cmp #S.FD.T.PIPE cmp #S.FD.T.PIPE
bne .97 bne .97
ldy #S.PS.hStdIn ldy #S.PS.hStdIn
lda (pPS),y lda (pPS),y
sta hFile sta hFile
.80 >LDYAI 256 .80 >LDYAI 256
>SYSCALL GetMem >SYSCALL GetMem
bcs .9 bcs .9
>STYA ZPBufPtr >STYA ZPBufPtr
stx hBuf stx hBuf
>LDYAI 256 >LDYAI 256
>SYSCALL GetMem >SYSCALL GetMem
bcs .9 bcs .9
>STYA ZPCmdBuf >STYA ZPCmdBuf
stx hCmdBuf stx hCmdBuf
* clc * clc
.9 rts .9 rts
.97 lda #E.SYN .97 lda #E.SYN
.98 pha .98 pha
>PUSHW L.MSG.USAGE >PUSHW L.MSG.USAGE
>PUSHBI 0 >PUSHBI 0
>SYSCALL PrintF >SYSCALL PrintF
pla pla
sec sec
rts rts
*-------------------------------------- *--------------------------------------
CS.RUN.NextArg inc ArgIndex CS.RUN.NextArg inc ArgIndex
lda ArgIndex lda ArgIndex
>SYSCALL ArgV >SYSCALL ArgV
bcs .9 bcs .9
>STYA ZPPtr1 >STYA ZPPtr1
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
CS.RUN.OPEN >PUSHYA CS.RUN.OPEN >PUSHYA
>PUSHBI O.RDONLY+O.TEXT >PUSHBI O.RDONLY+O.TEXT
>PUSHBI S.FI.T.TXT >PUSHBI S.FI.T.TXT
>PUSHWZ Aux type >PUSHWZ Aux type
>SYSCALL FOpen >SYSCALL FOpen
bcs .9 bcs .9
sta hFile sta hFile
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
CS.RUN.PRINT >PUSHW ZPCmdBuf CS.RUN.PRINT >PUSHW ZPCmdBuf
>PUSHW ZPCommandPtr >PUSHW ZPCommandPtr
>SYSCALL StrCpy >SYSCALL StrCpy
>PUSHW ZPCmdBuf >PUSHW ZPCmdBuf
>PUSHW L.CMD.SPC >PUSHW L.CMD.SPC
>SYSCALL StrCat >SYSCALL StrCat
>PUSHW ZPCmdBuf >PUSHW ZPCmdBuf
>LDYA ZPBufPtr >LDYA ZPBufPtr
>PUSHYA >PUSHYA
>SYSCALL StrCat >SYSCALL StrCat
>LDYA ZPCmdBuf >LDYA ZPCmdBuf
>SYSCALL PutS >SYSCALL PutS
>PUSHW ZPCmdBuf >PUSHW ZPCmdBuf
>PUSHBI S.PS.F.HOLD >PUSHBI S.PS.F.HOLD
>SYSCALL ExecL >SYSCALL ExecL
rts rts
*-------------------------------------- *--------------------------------------
CS.QUIT lda hFile CS.QUIT lda hFile
beq .1 beq .1
>SYSCALL FClose >SYSCALL FClose
.1 lda hBuf .1 lda hBuf
beq .8 beq .2
>SYSCALL FreeMem
>SYSCALL FreeMem
lda hCmdBuf .2 lda hCmdBuf
beq .8 beq .8
>SYSCALL FreeMem
.8 clc >SYSCALL FreeMem
rts
.8 clc
rts
*-------------------------------------- *--------------------------------------
CS.DOEVENT sec CS.DOEVENT sec
rts rts
*-------------------------------------- *--------------------------------------
CS.END CS.END
*-------------------------------------- *--------------------------------------
OptionList .AS "Hh" OptionList .AS "Hh"
OptionList.Cnt .EQ *-OptionList OptionList.Cnt .EQ *-OptionList
*-------------------------------------- *--------------------------------------
MSG.USAGE .AS "Usage : XARGS command <file>\r\n" MSG.USAGE .AS "Usage : XARGS command <file>\r\n"
.AS " or : CMD|XARGS command" .AS " or : CMD|XARGS command"
MSG.CRLF .AZ "\r\n" MSG.CRLF .AZ "\r\n"
CMD.SPC .AZ " " CMD.SPC .AZ " "
*-------------------------------------- *--------------------------------------
.DUMMY .DUMMY
.OR 0 .OR 0
DS.START DS.START
DS.END .ED DS.END .ED
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE usr/src/bin/xargs.s SAVE usr/src/bin/xargs.s

View File

@ -7,12 +7,7 @@ LIBCRYPT.MD4Init .EQ 6
LIBCRYPT.MD4Update .EQ 8 LIBCRYPT.MD4Update .EQ 8
LIBCRYPT.MD4Finalize .EQ 10 LIBCRYPT.MD4Finalize .EQ 10
*-------------------------------------- *--------------------------------------
LIBCRYPT.MD5 .EQ 12 LIBCRYPT.HMACMD5 .EQ 12
LIBCRYPT.MD5Init .EQ 14
LIBCRYPT.MD5Update .EQ 16
LIBCRYPT.MD5Finalize .EQ LIBCRYPT.MD4Finalize
*--------------------------------------
LIBCRYPT.HMACMD5 .EQ 18
*-------------------------------------- *--------------------------------------
* S.MD4, S.MD5 STRUCT * S.MD4, S.MD5 STRUCT
*-------------------------------------- *--------------------------------------

View File

@ -253,12 +253,13 @@ CIFS.Negotiate lda (pStack)
.97 jsr FreeRespData .97 jsr FreeRespData
.98 lda #MLI.E.IO .98 lda #MLI.E.INVPARAM
.99 >RET 2 .99 >RET 2
*-------------------------------------- *--------------------------------------
* >PUSHB hSocket * >PUSHB hSocket
* >PUSHB hSMBContext * >PUSHB hSMBContext
* >PUSHW domain
* >PUSHW username * >PUSHW username
* >PUSHW password * >PUSHW password
* >PUSHBI 0 * >PUSHBI 0
@ -272,7 +273,7 @@ CIFS.SessionSetup
dec dec
sta (pStack) sta (pStack)
ldy #5 hSMBContext ldy #7 hSMBContext
jsr GetSMBContext jsr GetSMBContext
ldx #S.SMB.H.CMD.SESSION.SETUP.ANDX ldx #S.SMB.H.CMD.SESSION.SETUP.ANDX
@ -309,7 +310,7 @@ CIFS.SessionSetup
jsr SetReqLen jsr SetReqLen
ldy #6 hSocket ldy #8 hSocket
lda (pStack),y lda (pStack),y
jsr WriteSocketA jsr WriteSocketA
bcs .99 bcs .99
@ -322,7 +323,7 @@ CIFS.SessionSetup
sta (pStack) sta (pStack)
beq .98 beq .98
ldy #6 hSocket ldy #8 hSocket
lda (pStack),y lda (pStack),y
jsr ReadSocketA jsr ReadSocketA
bcc .6 bcc .6
@ -338,7 +339,7 @@ CIFS.SessionSetup
lda (ZPRespPtr),y lda (ZPRespPtr),y
bne .97 bne .97
ldy #5 hSMBContext ldy #7 hSMBContext
jsr GetSMBContext jsr GetSMBContext
ldy #S.NETBIOS+S.SMB.H.UID ldy #S.NETBIOS+S.SMB.H.UID
@ -355,7 +356,7 @@ CIFS.SessionSetup
.97 jsr FreeRespData .97 jsr FreeRespData
.98 lda #MLI.E.IO .98 lda #MLI.E.LOCKED
sec sec
.99 >RET 7 .99 >RET 7
*-------------------------------------- *--------------------------------------
@ -1102,7 +1103,7 @@ SMB.SessionSetup.H
.DA 2 MAX MPX COUNT .DA 2 MAX MPX COUNT
.HS 0000 VC NUMBER .HS 0000 VC NUMBER
.HS 00000000 SESSION KEY .HS 00000000 SESSION KEY
.DA 0 CI PASS LEN (ANSI) .BS 2 CI PASS LEN (ANSI)
.DA 0 CS PASS LEN (UNICODE) .DA 0 CS PASS LEN (UNICODE)
.HS 00000000 .HS 00000000
.HS 00000000 CAPABILITIES .HS 00000000 CAPABILITIES

View File

@ -15,11 +15,8 @@ ZS.START
ZPCtxPtr .BS 2 ZPCtxPtr .BS 2
ZPDataPtr .BS 2 ZPDataPtr .BS 2
ZPHashPtr .BS 2 ZPHashPtr .BS 2
ZPChunkLen .BS 2 ZPChunkLen .BS 2
* MD.MODE .BS 1 32 BYTES MAX !!!!!
MD4.ABCD MD4.ABCD
MD5.ABCD MD5.ABCD
MD4.A MD4.A
@ -127,9 +124,6 @@ CS.START cld
.DA MD4Init .DA MD4Init
.DA MD4Update .DA MD4Update
.DA MD4Finalize .DA MD4Finalize
.DA MD5
.DA MD5Init
.DA MD5Update
.DA HMACMD5 .DA HMACMD5
*-------------------------------------- *--------------------------------------
J.MD4.XXXX .DA MD4.0015 J.MD4.XXXX .DA MD4.0015
@ -139,8 +133,8 @@ J.MD5.XXXX .DA MD5.0015
.DA MD5.1631 .DA MD5.1631
.DA MD5.3247 .DA MD5.3247
.DA MD5.4863 .DA MD5.4863
L.HMACMD5.IPAD .DA HMACMD5.IPAD L.HMACMD5.IPAD .DA HMACMD5.IPAD
L.HMACMD5.OPAD .DA HMACMD5.OPAD L.HMACMD5.OPAD .DA HMACMD5.OPAD
.DA 0 .DA 0
*-------------------------------------- *--------------------------------------
LIB.LOAD LIB.LOAD
@ -158,40 +152,21 @@ LIB.UNLOAD clc
* ## RETURN VALUE * ## RETURN VALUE
* CC * CC
*\-------------------------------------- *\--------------------------------------
MD4 lda #0 MD4 >PULLW ZPHashPtr
.HS 2C BIT ABS
*/--------------------------------------
* ## MD5
* Return MD5 Hash for input String
* # C
* `void MD5 (const char* str, char* digest);`
* # ASM
* `>PUSHW str`
* `>PUSHW digest`
* `>LIBCALL hLIBCRYPT,LIBCRYPT.MD5`
* ## RETURN VALUE
* CC
*\--------------------------------------
MD5 lda #1
sta MD.MODE
>PULLW ZPHashPtr
>PULLYA >PULLYA
>STYA ZPDataPtr >STYA ZPDataPtr
>SYSCALL2 strlen >SYSCALL2 strlen
>STYA ZPDataLen >STYA ZPDataLen
.1 jsr MD4Init.I .1 jsr MDxInit.I
bcs .9 bcs .9
pha save MD4/MD5 Context hMem pha save MD4 Context hMem
lda MD.MODE
bne .2 jsr MD4Update.I
jsr MD4Update.I jsr MDxFinalize.I
bra .3
.2 jsr MD5Update.I
.3 jsr MD4Finalize.I
pla pla
>SYSCALL2 FreeMem Free MD4/MD5 Context >SYSCALL2 FreeMem Free MD4 Context
clc clc
.9 rts .9 rts
*/-------------------------------------- */--------------------------------------
@ -204,28 +179,14 @@ MD5 lda #1
* ## RETURN VALUE * ## RETURN VALUE
* A = hMem To S.MD4 * A = hMem To S.MD4
*\-------------------------------------- *\--------------------------------------
MD4Init lda #0 MD4Init
.HS 2C BIT ABS MDxInit.I >LDYAI S.MD4
*/--------------------------------------
* ## MD5Init
* Initialize a MD5 computation
* # C
* `hMD5 MD5init();`
* # ASM
* `>LIBCALL hLIBCRYPT,LIBCRYPT.MD5Init`
* ## RETURN VALUE
* A = hMem To S.MD5
*\--------------------------------------
MD5Init lda #1
sta MD.MODE
MD4Init.I
MD5Init.I >LDYAI S.MD4
>SYSCALL2 getmem >SYSCALL2 getmem
bcs .9 bcs MDxInit.9
>STYA ZPCtxPtr >STYA ZPCtxPtr
ldy #0
MD5Reset.I ldy #0
.1 lda MD4.ABCDINIT,y .1 lda MD4.ABCDINIT,y
sta (ZPCtxPtr),y sta (ZPCtxPtr),y
@ -237,12 +198,12 @@ MD5Init.I >LDYAI S.MD4
.2 sta (ZPCtxPtr),y .2 sta (ZPCtxPtr),y
iny iny
cpy #S.MD4 Includes S.MD4/5.FINALIZED Flag cpy #S.MD4 Includes S.MD4/5.FINALIZED Flag
bne .2 bne .2
txa txa
clc clc
.9 rts MDxInit.9 rts
*/-------------------------------------- */--------------------------------------
* ## MD4Update * ## MD4Update
* Add Data to MD4 computation * Add Data to MD4 computation
@ -255,28 +216,21 @@ MD5Init.I >LDYAI S.MD4
* `>hLIBCRYPT,LIBCRYPT.MD4Update` * `>hLIBCRYPT,LIBCRYPT.MD4Update`
* ## RETURN VALUE * ## RETURN VALUE
*\-------------------------------------- *\--------------------------------------
*/-------------------------------------- MD4Update >PULLW ZPDataLen get LEN
* ## MD5Update
* Add Data to MD5 computation
* # C
* `void MD5update (hMD5 MD5, char* data, int len);`
* # ASM
* `>PUSHB MD5`
* `>PUSHW data`
* `>PUSHW len`
* `>hLIBCRYPT,LIBCRYPT.MD5Update`
* ## RETURN VALUE
*\--------------------------------------
MD4Update
MD5Update >PULLW ZPDataLen get LEN
>PULLW ZPDataPtr get DATA >PULLW ZPDataPtr get DATA
>PULLA >PULLA
>SYSCALL2 GetMemPtr get MD5 Context >SYSCALL2 GetMemPtr get MD5 Context
>STYA ZPCtxPtr >STYA ZPCtxPtr
MD4Update.I MD4Update.I clc
MD5Update.I ldy #S.MD4.FINALIZED .HS B0 BCS
MD5Update.I sec
ror MD.MODE
ldy #S.MD4.FINALIZED
lda (ZPCtxPtr),y lda (ZPCtxPtr),y
beq .1 beq .1
@ -298,7 +252,7 @@ MD5Update.I ldy #S.MD4.FINALIZED
.3 lda #64 .3 lda #64
.50 sta ZPChunkLen Save Chunk Len .50 sta ZPChunkLen Save Chunk Len
jsr MD4UpdateBitCount jsr MDxUpdateBitCnt
ldy #0 ldy #0
@ -330,15 +284,11 @@ MD5Update.I ldy #S.MD4.FINALIZED
cmp #56 Enough room for BITCOUNT ? cmp #56 Enough room for BITCOUNT ?
bcs .58 no bcs .58 no
jsr MD4AppendBitCount jsr MDxAppendBitCnt
.58 lda MD.MODE .58 jsr MDxTransform
bne .59
jsr MD4Transform
bra .60
.59 jsr MD5Transform
.60 jsr MD4UpdateABCD0 jsr MDxUpdateABCD0
.8 lda ZPDataLen Substract Bytes processed from LEN .8 lda ZPDataLen Substract Bytes processed from LEN
sec sec
@ -366,38 +316,26 @@ MD5Update.I ldy #S.MD4.FINALIZED
* `>LIBCALL hLIBCRYPT,LIBCRYPT.MD4Finalize` * `>LIBCALL hLIBCRYPT,LIBCRYPT.MD4Finalize`
* ## RETURN VALUE * ## RETURN VALUE
*\-------------------------------------- *\--------------------------------------
*/-------------------------------------- MD4Finalize >PULLW ZPHashPtr
* ## MD5Finalize
* # C
* `void MD5finalize (hMD5 MD5, char* digest);`
* # ASM
* `>PUSHB MD5`
* `>PUSHW digest`
* `>LIBCALL hLIBCRYPT,LIBCRYPT.MD5Finalize`
* ## RETURN VALUE
*\--------------------------------------
MD4Finalize
MD5Finalize >PULLW ZPHashPtr
>PULLA >PULLA
pha pha
>SYSCALL2 GetMemPtr >SYSCALL2 GetMemPtr
>STYA ZPCtxPtr get MD5 Context >STYA ZPCtxPtr get MD5 Context
jsr MD4Finalize.I jsr MDxFinalize.I
pla pla
>SYSCALL2 FreeMem >SYSCALL2 FreeMem
rts rts
MD4Finalize.I MDxFinalize.I ldy #S.MD4.FINALIZED
MD5Finalize.I ldy #S.MD4.FINALIZED
lda (ZPCtxPtr),y lda (ZPCtxPtr),y
bne .11 bne .11
jsr MD4ExtraChunk jsr MDxExtraChunk
.11 ldy #S.MD4.ABCD0 .11 ldy #0
.1 lda (ZPCtxPtr),y .1 lda (ZPCtxPtr),y
lsr lsr
@ -406,30 +344,30 @@ MD5Finalize.I ldy #S.MD4.FINALIZED
lsr lsr
tax tax
lda MD4.DIGITS,x lda MD4.DIGITS,x
sta (ZPHashPtr) jsr .7
inc ZPHashPtr
bne .2
inc ZPHashPtr+1 lda (ZPCtxPtr),y
.2 lda (ZPCtxPtr),y
and #$0F and #$0F
tax tax
lda MD4.DIGITS,x lda MD4.DIGITS,x
sta (ZPHashPtr) jsr .7
inc ZPHashPtr
bne .3
inc ZPHashPtr+1 iny
cpy #16
.3 iny
cpy #S.MD4.ABCD0+16
bne .1 bne .1
lda #0 lda #0
sta (ZPHashPtr) sta (ZPHashPtr)
clc clc
.9 rts rts
.7 sta (ZPHashPtr)
inc ZPHashPtr
bne MDxFinalize.RTS
inc ZPHashPtr+1
MDxFinalize.RTS rts
*/-------------------------------------- */--------------------------------------
* ## HMACMD5 * ## HMACMD5
* Return HMACMD5 Hash for input String * Return HMACMD5 Hash for input String
@ -445,108 +383,111 @@ MD5Finalize.I ldy #S.MD4.FINALIZED
*\-------------------------------------- *\--------------------------------------
* https://github.com/fab13n/org.eclipse.mihini/blob/master/libs/hmac-md5/hmac_rfc2104/hmac-md5.c * https://github.com/fab13n/org.eclipse.mihini/blob/master/libs/hmac-md5/hmac_rfc2104/hmac-md5.c
*-------------------------------------- *--------------------------------------
HMACMD5 HMACMD5 >PULLW ZPHashPtr
>PULLW ZPHashPtr
>PULLW ZPDataPtr >PULLW ZPDataPtr
>PULLW HMAC.DTemp >PULLW HMAC.DTemp
.1 >LDYA ZPDataPtr
jsr MDxInit.I
bcs MDxFinalize.RTS
pha
>LDYA ZPDataPtr
>SYSCALL2 strlen >SYSCALL2 strlen
>STYA ZPDataLen >STYA ZPDataLen
cpy #65 cpy #65
bcs .2 bcs .2
tay tay
beq .4 beq .4
.2 jsr MD5Init .2 >PUSHW ZPHashPtr
bcc .3
rts
.3 >PUSHW ZPHashPtr
jsr MD5Update.I jsr MD5Update.I
jsr MD5Finalize.I jsr MDxFinalize.I
>PULLW ZPHashPtr >PULLW ZPHashPtr
>LDYA ZPCtxPtr >LDYA ZPCtxPtr
>STYA ZPDataPtr >STYA ZPDataPtr
lda #16 lda #16
sta ZPDataLen sta ZPDataLen
.4 ldy #0 .4 ldy #0
.5 lda #$36 .5 lda #$36
cpy ZPDataLen cpy ZPDataLen
bcs .6 bcs .6
eor (ZPDataPtr),y eor (ZPDataPtr),y
.6 sta HMACMD5.IPAD,y .6 sta HMACMD5.IPAD,y
eor #$6A #$36 eor #$5C eor #$6A #$36 eor #$5C
sta HMACMD5.OPAD,y sta HMACMD5.OPAD,y
iny iny
cpy #64 cpy #64
bne .5 bne .5
stz HMACMD5.IPAD+64 stz HMACMD5.IPAD+64
stz HMACMD5.OPAD+64 stz HMACMD5.OPAD+64
jsr MD5Init jsr MD5Reset.I
bcc .7
rts >LDYA L.HMACMD5.IPAD
.7 >LDYA L.HMACMD5.IPAD
>STYA ZPDataPtr >STYA ZPDataPtr
>LDYAI 64 >LDYAI 64
>STYA ZPDataLen >STYA ZPDataLen
>PUSHW ZPHashPtr >PUSHW ZPHashPtr
jsr MD5Update.I jsr MD5Update.I
>LDYA HMAC.DTemp >LDYA HMAC.DTemp
>STYA ZPDataPtr >STYA ZPDataPtr
>SYSCALL2 strlen >SYSCALL2 strlen
>STYA ZPDataLen >STYA ZPDataLen
jsr MD5Update.I jsr MD5Update.I
jsr MD5Finalize.I
jsr MDxFinalize.I
>PULLW ZPHashPtr >PULLW ZPHashPtr
ldy #S.MD5.ABCD0 ldy #0
.8 lda (ZPCtxPtr),y .8 lda (ZPCtxPtr),y
sta HMACMD5.IPAD,y sta HMACMD5.IPAD,y
iny iny
cpy #S.MD5.ABCD0+16 cpy #16
bne .8 bne .8
jsr MD5Init.I jsr MD5Reset.I
bcc .9
rts >LDYA L.HMACMD5.OPAD
.9 >LDYA L.HMACMD5.OPAD
>STYA ZPDataPtr >STYA ZPDataPtr
>LDYAI 64 >LDYAI 64
>STYA ZPDataLen >STYA ZPDataLen
jsr MD5Update.I jsr MD5Update.I
>LDYA L.HMACMD5.IPAD >LDYA L.HMACMD5.IPAD
>STYA ZPDataPtr >STYA ZPDataPtr
ldy #16 ldy #16
sty ZPDataLen sty ZPDataLen
jsr MD5Update.I jsr MD5Update.I
jsr MD5Finalize.I
jsr MDxFinalize.I
pla
>SYSCALL2 FreeMem
rts rts
*-------------------------------------- *--------------------------------------
* https://waterjuiceweb.wordpress.com/aes/ * https://waterjuiceweb.wordpress.com/aes/
*-------------------------------------- *--------------------------------------
* PRIVATE * PRIVATE
*-------------------------------------- *--------------------------------------
* MD4AppendBitCount * MDxAppendBitCount
* In : * In :
* ZPCtxPtr = MD4 Context * ZPCtxPtr = MD4 Context
*-------------------------------------- *--------------------------------------
* MD5AppendBitCount MDxAppendBitCnt ldx #56
* In :
* ZPCtxPtr = MD5 Context
*--------------------------------------
MD4AppendBitCount
MD5AppendBitCount
ldx #56
ldy #S.MD4.BITCOUNT Append 8 Bytes of BITCOUNT ldy #S.MD4.BITCOUNT Append 8 Bytes of BITCOUNT
.1 lda (ZPCtxPtr),y .1 lda (ZPCtxPtr),y
@ -561,20 +502,12 @@ MD5AppendBitCount
sta (ZPCtxPtr),y sta (ZPCtxPtr),y
rts rts
*-------------------------------------- *--------------------------------------
* MD4UpdateBitCount * MDxUpdateBitCnt
* In : * In :
* CL = Size (in bytes) to add to MD4 context * CL = Size (in bytes) to add to MDx context
* ZPCtxPtr = MD4 Context * ZPCtxPtr = MDx Context
*-------------------------------------- *--------------------------------------
*-------------------------------------- MDxUpdateBitCnt stz ZPChunkLen+1
* MD5UpdateBitCount
* In :
* CL = Size (in bytes) to add to MD5 context
* ZPCtxPtr = MD5 Context
*--------------------------------------
MD4UpdateBitCount
MD5UpdateBitCount
stz ZPChunkLen+1
lda ZPChunkLen lda ZPChunkLen
asl asl
rol ZPChunkLen+1 rol ZPChunkLen+1
@ -603,17 +536,11 @@ MD5UpdateBitCount
.8 rts .8 rts
*-------------------------------------- *--------------------------------------
* MD4ExtraChunk * MDxExtraChunk
* In : * In :
* ZPCtxPtr = MD4 Context * ZPCtxPtr = MDx Context
*-------------------------------------- *--------------------------------------
*-------------------------------------- MDxExtraChunk ldy #S.MD4.FINALIZED
* MD5ExtraChunk
* In :
* ZPCtxPtr = MD5 Context
*--------------------------------------
MD4ExtraChunk
MD5ExtraChunk ldy #S.MD4.FINALIZED
lda #$80 lda #$80
sta (ZPCtxPtr),y Mark MD5 Context as "finalized" sta (ZPCtxPtr),y Mark MD5 Context as "finalized"
ldx #0 ldx #0
@ -631,25 +558,14 @@ MD5ExtraChunk ldy #S.MD4.FINALIZED
cpx #56 cpx #56
bne .1 ...until room for bitcount bne .1 ...until room for bitcount
jsr MD4AppendBitCount jsr MDxAppendBitCnt
lda MD.MODE jsr MDxTransform
bne .2
jsr MD4Transform
bra .3
.2 jsr MD5Transform
.3
*-------------------------------------- *--------------------------------------
* MD4UpdateABCD0 * MDxUpdateABCD0
* In: * In:
* ZPCtxPtr = MD4 Context * ZPCtxPtr = MDx Context
*-------------------------------------- *--------------------------------------
*-------------------------------------- MDxUpdateABCD0 ldy #0
* MD5UpdateABCD0
* In:
* ZPCtxPtr = MD5 Context
*--------------------------------------
MD4UpdateABCD0
MD5UpdateABCD0 ldy #0
.1 clc ADC32 A+A0->A0, B, C, D.... .1 clc ADC32 A+A0->A0, B, C, D....
@ -666,6 +582,11 @@ MD5UpdateABCD0 ldy #0
rts rts
*-------------------------------------- *--------------------------------------
MDxTransform bit MD.MODE
bpl MD4Transform
jmp MD5Transform
*--------------------------------------
* MD4Transform * MD4Transform
* In: * In:
* ZPCtxPtr = MD4 Context * ZPCtxPtr = MD4 Context
@ -730,6 +651,7 @@ MD4.XXXX.END >MOV32 MD4.D,MD4.DTemp
lsr lsr
and #$0C and #$0C
beq .3 beq .3
tay tay
ldx #0 ldx #0

View File

@ -4,6 +4,8 @@ NEW
.OP 65C02 Target CPU, must match CPU level in header .OP 65C02 Target CPU, must match CPU level in header
.OR $2000 usualy $2000, but any value > $100 allowed .OR $2000 usualy $2000, but any value > $100 allowed
.TF sbin/cifsd .TF sbin/cifsd
*--------------------------------------
AUTH .EQ 0
*-------------------------------------- *--------------------------------------
.INB inc/macros.i .INB inc/macros.i
.INB inc/a2osx.i .INB inc/a2osx.i
@ -12,6 +14,9 @@ NEW
.INB inc/libtcpip.i .INB inc/libtcpip.i
.INB inc/net.smb.i .INB inc/net.smb.i
.INB inc/libcifs.i .INB inc/libcifs.i
.DO AUTH
.INB inc/libcrypt.i
.FIN
*-------------------------------------- *--------------------------------------
TIMEOUT.MAX .EQ 250 25 sec. TIMEOUT.MAX .EQ 250 25 sec.
*-------------------------------------- *--------------------------------------
@ -49,6 +54,9 @@ CS.START cld
.DA CS.QUIT .DA CS.QUIT
L.LIBTCPIP .DA LIBTCPIP L.LIBTCPIP .DA LIBTCPIP
L.LIBCIFS .DA LIBCIFS L.LIBCIFS .DA LIBCIFS
.DO AUTH
L.LIBCRYPT .DA LIBCRYPT
.FIN
L.MSG.USAGE .DA MSG.USAGE L.MSG.USAGE .DA MSG.USAGE
L.MSG.TCPIPERR .DA MSG.TCPIPERR L.MSG.TCPIPERR .DA MSG.TCPIPERR
L.MSG.UNKNOWN .DA MSG.UNKNOWN L.MSG.UNKNOWN .DA MSG.UNKNOWN
@ -72,6 +80,13 @@ CS.INIT >LDYA L.LIBTCPIP
sta hLIBCIFS sta hLIBCIFS
.DO AUTH
>LDYA L.LIBCRYPT
>SYSCALL LoadLib
bcs .9
sta hLIBCRYPT
.FIN
* clc * clc
.9 .9
CS.INIT.RTS rts CS.INIT.RTS rts
@ -106,6 +121,7 @@ CS.RUN lda hSocket
>PUSHB hSMBContext >PUSHB hSMBContext
>PUSHWZ >PUSHWZ
>PUSHWZ >PUSHWZ
>PUSHWZ
>PUSHBI 0 >PUSHBI 0
>LIBCALL hLIBCIFS,LIBCIFS.SessionSetup >LIBCALL hLIBCIFS,LIBCIFS.SessionSetup
bcs CS.INIT.RTS bcs CS.INIT.RTS
@ -226,10 +242,15 @@ CS.RUN.CheckArgs
sec sec
rts rts
.3 lda #2 .3 lda #4
>SYSCALL ArgV >SYSCALL ArgV
bcc .4
.4
clc .8 clc
CS.RUN.CheckArgs.RTS CS.RUN.CheckArgs.RTS
rts rts
*-------------------------------------- *--------------------------------------
@ -299,13 +320,16 @@ CS.QUIT lda hMount
>LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown >LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown
.2 lda hLIBCIFS .2
beq .3 .DO AUTH
lda hLIBCRYPT
jsr .7
.FIN
lda hLIBCIFS
jsr .7
>SYSCALL UnloadLib lda hLIBTCPIP
.7 beq .8
.3 lda hLIBTCPIP
beq .8
>SYSCALL UnloadLib >SYSCALL UnloadLib
@ -320,7 +344,12 @@ LIBTCPIP .AZ "libtcpip"
hLIBTCPIP .BS 1 hLIBTCPIP .BS 1
LIBCIFS .AZ "libcifs" LIBCIFS .AZ "libcifs"
hLIBCIFS .BS 1 hLIBCIFS .BS 1
MSG.USAGE .AZ "Usage : CIFSD <ip|host> sharename mountpoint" .DO AUTH
LIBCRYPT .AZ "libcrypt"
hLIBCRYPT .BS 1
.FIN
*--------------------------------------
MSG.USAGE .AZ "Usage : CIFSD <ip|host> sharename mountpoint [[domain\]user]"
MSG.TCPIPERR .AZ "CIFSD:TCP/IP Not initialized properly." MSG.TCPIPERR .AZ "CIFSD:TCP/IP Not initialized properly."
MSG.UNKNOWN .AZ "CIFSD:%s: Unknown host\r\n" MSG.UNKNOWN .AZ "CIFSD:%s: Unknown host\r\n"
MSG.NOCONN .AZ "CIFSD:No Connection To %s\r\n" MSG.NOCONN .AZ "CIFSD:No Connection To %s\r\n"

View File

@ -5,7 +5,7 @@ NEW
.OR $2000 .OR $2000
.TF sbin/initd .TF sbin/initd
*-------------------------------------- *--------------------------------------
INITDDBG .EQ 1 INITDDBG .EQ 0
*-------------------------------------- *--------------------------------------
.INB inc/macros.i .INB inc/macros.i
.INB inc/a2osx.i .INB inc/a2osx.i

View File

@ -106,7 +106,7 @@ MD5X.Init >LDYAI S.MD5
.1 lda MD5.ABCDINIT,y .1 lda MD5.ABCDINIT,y
sta (ZPCtxPtr),y sta (ZPCtxPtr),y
iny iny
cpy #16 cpy #S.MD5.BITCOUNT
bne .1 bne .1
lda #0 lda #0

View File

@ -45,7 +45,7 @@ TERM.TOAUX lda A2osX.ASCREEN
clc clc
.1 ror bActive .1 ror bActive
sta SET80STORE
jsr .8 jsr .8
sta CLRREADAUX sta CLRREADAUX

View File

@ -267,6 +267,7 @@ TERMX.WRITE jsr TERMX.CUROFF
inc ZPBufPtr inc ZPBufPtr
bne .1 bne .1
inc ZPBufPtr+1 inc ZPBufPtr+1
bra .1 bra .1
@ -632,20 +633,25 @@ Csi.Query ldx CsiPCnt
*-------------------------------------- *--------------------------------------
Csi.Scroll ldy CsiPCnt Csi.Scroll ldy CsiPCnt
bne .1 bne .1
lda #0 lda #0
ldx #23 ldx #23
bra .8 bra .8
.1 cpy #2 .1 cpy #2
bne .9 bne .9
lda CsiP lda CsiP
dec dec
ldx CsiP+1 ldx CsiP+1
dex dex
.8 ldy #S.DCB.TTY.SCROLLTOP .8 ldy #S.DCB.TTY.SCROLLTOP
sta (ZPDCBPtr),y sta (ZPDCBPtr),y
iny S.DCB.TTY.SCROLLBOT iny S.DCB.TTY.SCROLLBOT
txa txa
sta (ZPDCBPtr),y sta (ZPDCBPtr),y
.9 clc .9 clc
rts rts
*-------------------------------------- *--------------------------------------
@ -1325,6 +1331,7 @@ TERMX.COPY.XtoL1
sta SETPAGE2 sta SETPAGE2
jsr .6 jsr .6
sta CLRPAGE2 sta CLRPAGE2
.6 ldy #39 .6 ldy #39
@ -1348,8 +1355,10 @@ SetCharAtCurPos pha
*-------------------------------------- *--------------------------------------
SetCharAtYX cmp #$40 SetCharAtYX cmp #$40
bcc .1 bcc .1
cmp #$60 cmp #$60
bcs .1 bcs .1
and #$1F remap UPPERCASE and #$1F remap UPPERCASE
.1 phy .1 phy
@ -1362,10 +1371,12 @@ SetCharAtYX cmp #$40
lda (ZPDCBPtr),y lda (ZPDCBPtr),y
clc clc
bpl .2 bpl .2
sec sec
.2 lda #$80 .2 lda #$80
bcc .21 bcc .21
lsr lsr
.21 iny #S.DCB.TTY.bG0G1ALT .21 iny #S.DCB.TTY.bG0G1ALT
@ -1395,12 +1406,13 @@ SetCharAtY.SCR pha
pla pla
bcs .2 bcs .2
sta SETPAGE2 sta SETPAGE2
sta (ZPScrBL1),y sta (ZPScrBL1),y
sta CLRPAGE2
rts rts
.2 sta CLRPAGE2 .2 sta (ZPScrBL1),y
sta (ZPScrBL1),y
SetCharAtYX.8 rts SetCharAtYX.8 rts
*-------------------------------------- *--------------------------------------