From 00bc0ccf5adf0fbcb7c478ebc803bea1cb31357e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Sat, 19 Oct 2019 22:54:59 +0200 Subject: [PATCH] Kernel 0.93+ --- .Floppies/A2OSX.BOOT.po | Bin 143360 -> 143360 bytes .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/CUT.S.txt | 5 +---- SBIN/LOGIN.S.txt | 44 +++++++++++++++++++++++++++++++++++---- 4 files changed, 41 insertions(+), 8 deletions(-) diff --git a/.Floppies/A2OSX.BOOT.po b/.Floppies/A2OSX.BOOT.po index d3fc0aab82549074c240929947a5ab51768b1d40..77f7b3c9c0022191836640ad62bab15ad213da8b 100644 GIT binary patch delta 574 zcmZp8z|ru4V}l$Ehqx#s!(nw^*2!ut^4#L0$_$Sg6oS>oMJETa$kZe8nHVkyM+P$> z0e(FOMg|5Z29RoyHZTLI%*oRaNfiTs9Cl@{A#Z0*0{;67bK%VGC=<@0UgGwt`zKnYzG5d0)qg0b88>~CV=;!hg%Ri$HgyqCKhF?^9SkfbKo0|*hZ20nV9!iTW8|`R zb@uRAh)GR$G|DfoQ1HwvE=kPENiB*gipc|EUfv*AM;8U%00ku%*WeI^0LKsy1uF$5 z1()CuUf$`B#f|iq^s%zz=pn2+(Za0LRc^ QSD?gm#-@ME{xKQ>0Isrhp#T5? delta 1092 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 delta 6504 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 diff --git a/BIN/CUT.S.txt b/BIN/CUT.S.txt index 09a55624..6c1afa52 100644 --- a/BIN/CUT.S.txt +++ b/BIN/CUT.S.txt @@ -37,7 +37,7 @@ CS.START cld .DA #0 .DA CS.END-CS.START Code Size (without Constants) .DA DS.END-DS.START Data SegmentSize - .DA #16 Stack Size + .DA #32 Stack Size .DA #ZS.END-ZS.START Zero Page Size .DA 0 *-------------------------------------- @@ -159,9 +159,6 @@ CS.RUN.LOOP >SLEEP lda (ZPBufPtr) beq CS.RUN.LOOP -* >LDYA ZPBufPtr -* >SYSCALL puts - jsr CS.RUN.OUT bcs .9 bra CS.RUN.LOOP diff --git a/SBIN/LOGIN.S.txt b/SBIN/LOGIN.S.txt index 04790f24..86bc778a 100644 --- a/SBIN/LOGIN.S.txt +++ b/SBIN/LOGIN.S.txt @@ -86,7 +86,7 @@ CS.RUN >LDYAI 33 Enough for HASH >LDYA L.ETCISSUE jsr CS.RUN.DUMPFILE - >PUSHWZ Dry Run, no output + >PUSHWZ Dry Run, no output * lda #0 ROOT user >SYSCALL GetPWUID bcc CS.RUN.AUTH @@ -95,8 +95,10 @@ CS.RUN.NOAUTH >PUSHBI 0 >LDYA L.MSG.NOAUTH >SYSCALL printf bcs .9 + jsr CS.RUN.SetRootSession bcs .9 + jmp CS.RUN.EXEC .9 rts *-------------------------------------- @@ -142,13 +144,17 @@ CS.RUN.AUTH >LDYA L.LIBCRYPT bcs .9 jmp CS.RUN.EXEC + .8 >PUSHBI 0 >LDYA L.MSG.BAD >SYSCALL printf bcs .9 + dec ZPRetryCnt beq .99 + jmp .1 + .99 lda #E.IUSR sec .9 rts @@ -236,6 +242,7 @@ CS.RUN.CHECKPWD rol ZPbValidUser >STYA ZPPWPtr stx ZPhPW + >PUSHYA lda ZPUID >SYSCALL GetPWUID @@ -244,15 +251,24 @@ CS.RUN.CHECKPWD rol ZPbValidUser >PUSHW ZPGetlinePtr >PUSHW ZPGetlinePtr >LIBCALL hLIBCRYPT,LIBCRYPT.MD5 + lda ZPPWPtr clc adc #S.PW.PASSWD tay lda ZPPWPtr+1 adc /S.PW.PASSWD + >PUSHYA >LDYA ZPGetlinePtr >SYSCALL strcmp + bcc CS.RUN.CHECK.9 + + lda ZPhPW + stz ZPhPW + >SYSCALL freemem + + sec CS.RUN.CHECK.9 rts *-------------------------------------- @@ -260,12 +276,15 @@ CS.RUN.EXEC ldx #1 .1 lda S.Table.hSession-1,x beq .2 + inx cpx #K.USR.MAX+1 bne .1 + lda #E.OOH * sec rts + .2 stx ZPUsrID txa ldy #S.PS.hSID @@ -284,12 +303,14 @@ CS.RUN.EXEC ldx #1 >LDYA L.SHELL >SYSCALL ExecL bcs .9 + >SLEEP ldx ZPUsrID lda S.Table.hSession-1,x stz S.Table.hSession-1,x stz S.Table.hFILE-1,x >SYSCALL freemem + sec .9 rts *-------------------------------------- @@ -317,26 +338,35 @@ CS.RUN.GetLine sta ZPGetLineMax ror ZPbGetLineSecret stz ZPGetLineLen stz ZPbEsc + .1 >SYSCALL getchar bcs .9 + bit ZPbEsc bpl .11 + * clc ror ZPbEsc cmp #'D' bne .1 + bra .3 + .11 cmp #C.DEL beq .3 + cmp #C.SPACE bcc .2 + ldy ZPGetLineLen cpy ZPGetLineMax beq .1 + sta (ZPGetLinePtr),y inc ZPGetLineLen bit ZPbGetLineSecret bmi .1 + >SYSCALL putchar bra .1 @@ -345,20 +375,26 @@ CS.RUN.GetLine sta ZPGetLineMax cmp #C.CR beq .8 + cmp #C.ESC bne .1 + * sec ror ZPbEsc bra .1 + .3 ldy ZPGetLineLen beq .1 + dec ZPGetLineLen bit ZPbGetLineSecret bmi .1 + >PUSHBI 0 >LDYA L.MSG.BS >SYSCALL printf bra .1 + .8 ldy ZPGetLineLen lda #0 sta (ZPGetLinePtr),y @@ -425,10 +461,11 @@ CS.CLEANUP lda ZPhGetLine .1 lda ZPhPW beq .8 - + stz ZPhPW >SYSCALL freemem + .8 clc rts *-------------------------------------- @@ -459,8 +496,7 @@ SESSION.ROOT.Size .EQ *-SESSION.ROOT .DUMMY .OR 0 DS.START -DS.END - .ED +DS.END .ED *-------------------------------------- MAN SAVE USR/SRC/SBIN/LOGIN.S