From c64f70246084e4aa6e73c45cd5152146fca5079c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Fri, 8 Mar 2019 11:16:19 +0000 Subject: [PATCH] Kernel 0.92+ --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/SH.S.CMD.txt | 168 ++++++++++++++++++++++++++++++++++++--- 2 files changed, 159 insertions(+), 9 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index f774f6fe5b74f8a913ca5819bd4f341f73442a08..6ce492d6d0c14c0a0302cfebec0f6a367525a6bb 100644 GIT binary patch delta 8276 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�UFsePs(aAPmba>x^>Gd=e@Gjd(7oW{kb;oCV7s{&>@fP$edttnntQ<` zA$vi_qo>{rb{Tttb+@!iD32MF;@qR{TK4(M<61*Fz8x&hTCG;g&X|$!bd`jjbKf;1?P2}Qq#v2Ih^?+gY_|Vbv-LgLZXSBy$Gh_b zBkq0}?2_$Bx5P(~i21mOYY62NbHRSvy?bBHKLOE{eQ+_Z_`O!25arY>%gnR&g&o)R-o3EnwRW+v6E(HSr8D*00b^y` zWg|9VWjkc7Z0A3!JCbBQc^*n;b**;S((Z3oFAz}!G95gtp{h%hnWBu$^X%15%FgRI|m1VZjLT4BABh1#bRxWJx*ETL}^(|?2yWOIHhHPBj zB_dL_V~G5QNoUGP z7R)o5e#|Ia*oq505j$G$x?UWjcU#!Tpq7?dVM@osJmoA%;N~i0oUFc9YNxjG#W-pf z`*rEl%Sw>V1=U!`qk^NzoSUBga7@7bhup531|$~4YFtb9IQv*jG{vQc;)sdCX)41s zwc*Zm;3R!!$}20qYeMJ7yQrZ-*v<~xqm*k4Yl(=OY)*@IqZ(Tg?6TS8O0&nfQ}t?! z&p|C5<7`tM?Fvy3WT@KXL+kq11;;ZIB9=P&IzjhK3N}V}u^&!L7 zZ(eZNv`L?jYQ{aZ(qIhNhy`-M*Vqh4h3l(n5zfJF3w!h(`l|_b_a;eeD{)_eLFDdJ>FpbGy6708iX&YLNx-7I0m-pzyvS1&q zS3p#`QlA>3pq_S#Xa<^P9OSD99=Fs*7gtV&*KY!@w6i|bo!>#lB?qn6m5ap`R8 z9F{Rm*j9C`yc(_BuF+fyC!s8nbgit0mD=s`w$+f)W(4lI1~LP#lhp@oP8xf?*0ox# zJo<*NHVcL!VYaOeezC4YjfnL!?v?e+{|&N!lu6oXG+t`EvD<(Sh$^Zvc?mZe%dom} zYEzT1xu^!`Q)@u8@Mf+5Nb=!hx0oHiRqo6hYuOt1=s{;@*oK(MgG^4QBqn0&&oqE( zAk!eG!AvfuAxuM=l9^JNPGd@C8pbr7DUB(eX#~?qrVJ)G)9Fl^Oj%6XOgT)sOrx0c znDUuCOa)A5FrCRXnrRHvSf;a>#xWH#jb|!in!r@dRKirsG?A%{X%f@fOyx|InJSnn znY>KrFil~qVyb4E%5*N%G^XiHGni&FoyT-O(*;ZyGF`+pi>ZcbHd8Ir93~&rT&9be z>X_=8<}uA@YG7Kxw2-NhsfpxVrdFm!OqVh(W?I6ul<6|2%bAujUBPrEQybHA zCO^|vOe>h$nN~6}(<-K`nXX~FmT5K98m8-*u4lS|X)V(_ru9r4m^L!q$kf54GTp=! zV7i&<7N%R7ZezNg=?(|t@^nC@qKfayV|txOLwJZ@oH`8NGdzc<)dV*;$)00g9W_pTgAJfxJ&oDj9^c>UkOfN9K z$h4p7C8n2|4lupK^eWS9Ob3}>XL^I_KTK~jy~T8h>20QWnBHYN%=BNT_n6*i`he*} zrXx%rF@4PR3Dc)cpD`U}`kd(trZ1VkV)~lt8>VlWzGM2H=@`>-rXQGoWcrEeXQp46 zer5WN>360-nEqt?i|GW@-%Ka3rLgNM3|N2!WMBn-KwqGMa1a4(AQD7@ejpmefLIU* z;z0sP1a{y6PLKpNJ^jG|Fc1s^gMkYS0YgDDNCBsTR4@z-2WcQ3i~u7+25^JZK_9t342Ss24C}mVl+;GH^Lq2Ce{Cf;O-m_`y|R1!xB=0fSZGYH$s>7OVzq zz;)nya06Hi)`9h41K0>|1RX#HH-P}S8QcPH1-F6Q!5v@|xD(t3{sry^_khjdUT`1S z0`3P7fCs@=@DO+yYy;cD4zLqE0v-jsKquG@9s_&8gFnEZ;4g3j M{2lfXoecZ*fAwG-ng9R* delta 7621 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 diff --git a/BIN/SH.S.CMD.txt b/BIN/SH.S.CMD.txt index a7c62480..49fbec03 100644 --- a/BIN/SH.S.CMD.txt +++ b/BIN/SH.S.CMD.txt @@ -683,11 +683,66 @@ FOR.FILE sec .99 rts *-------------------------------------- -FOR.EXEC -* lda #$ff -* >STA.G bReadMode - clc - rts +FOR.EXEC sec + jsr CORE.StkPushPtr Push CmdPtr AFTER FOR + bcs .9 + + jsr CORE.ArgV.NextChar skip "`" + + jsr IO.Pipe.Out + bcs .99 + + >PUSHBI S.PS.F.DUPENV + >LDYA ZPArgVBufPtr + >SYSCALL execl + bcs .99 + + >LDA.G IO.hOut + ldy #S.PS.hStdOut + sta (pPS),y + + >STZ.G IO.hOut + + >PUSHWI 0 auxtype + >PUSHBI 0 type + >PUSHBI O.RDONLY+O.TEXT + >LEA.G IO.NodBuf + + >SYSCALL fopen +.9 bcs .99 + jsr CORE.StkPush push hPIPE + bcs .99 + + >LDYA ZPVarNamePtr + >SYSCALL strdup + bcs .99 + + txa + jsr CORE.StkPush Push hVARNAME + bcs .99 + + lda #C.FOR.EXEC + jsr CORE.StkPush + bcs .99 + + lda #C.FOR + jsr CORE.StkPush + bcs .99 + + jsr CMD.NEXT.EXEC.1 + bcs .99 + + >ORA.G CORE.Test + ora #C.FOR Push FOR + pha + lda (pData) + tay + pla + sta (pData),y + +* clc + +.99 rts *-------------------------------------- CMD.NEXT jsr CORE.StkGet Y = StkPtr @@ -775,10 +830,22 @@ CMD.NEXT.LIST.1 lda (pData) lda (pData),y sta ZPPtr1+1 - ldy #$ff + ldy #0 -.1 iny - lda (ZPPtr1) +.10 lda (ZPPtr1) + beq .3 + + inc ZPPtr1 + bne .11 + inc ZPPtr1+1 + +.11 cmp #C.SPACE + beq .10 + + sta (ZPCLBuf),y + iny + +.1 lda (ZPPtr1) beq .3 inc ZPPtr1 @@ -789,6 +856,7 @@ CMD.NEXT.LIST.1 lda (pData) beq .3 sta (ZPCLBuf),y + iny bra .1 .3 lda #0 @@ -909,8 +977,90 @@ CMD.NEXT.FILE.1 lda (pData) * clc .9 rts *-------------------------------------- -CMD.NEXT.EXEC clc +* stack-4 CmdPtr +* stack-3 hPIPE +* stack-2 hVARNAME +* stack-1 FOR SUB TOKEN +* stack FOR TOKEN +*-------------------------------------- +CMD.NEXT.EXEC lda (pData),y Y = StkPtr + + bpl .1 + + jsr CMD.NEXT.FILE.1 + bcs .9 + bpl .1 + + lda (pData) + sec + sbc #4 + tay + + lda (pData),y + sta ZPInputBufPtr+1 + dey + lda (pData),y + sta ZPInputBufPtr + + clc rts + +.1 lda (pData) + tay + sec + sbc #6 + sta (pData) + + dey + dey + lda (pData),y hVARNAME + pha + dey + lda (pData),y hPIPE + >SYSCALL fclose + pla + >SYSCALL freemem +* clc +.9 rts +*-------------------------------------- +CMD.NEXT.EXEC.1 lda (pData) + dec skip FOR + dec skip SUB TOKEN + + tay + lda (pData),y + phy + >SYSCALL GetMemPtr hVARNAME + >STYA ZPVarNamePtr + ply + + + dey + lda (pData),y hPIPE + pha + >PUSHWI 256 + >PUSHW ZPCLBuf + pla + + >SYSCALL fgets + bcs .8 + + >PUSHW ZPCLBuf + >LDYA ZPVarNamePtr + >SYSCALL SetEnv + bcs .9 + + lda #$80 +* clc + rts + +.8 >LDYA ZPVarNamePtr + >SYSCALL UnSetEnv + bcs .9 + + lda #0 +* clc +.9 rts *-------------------------------------- CMD.WHILE CMD.IF jsr CORE.StkGet