From 1d907e3d9ae81470dc0fbf590006ada6b608ccdd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Fri, 30 Nov 2018 17:00:36 +0100 Subject: [PATCH] Kernel 0.92 --- .Floppies/A2OSX.BOOT.po | Bin 143360 -> 143360 bytes .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes A2osX.S.QC.txt | 28 ++++++++++++++-------------- A2osX.S.txt | 26 +++++++++++++++++++------- BIN/SHELL.S.CMD.txt | 6 +++++- BIN/SHELL.S.txt | 8 +------- SYS/KERNEL.S.PS.txt | 8 ++------ SYS/KERNEL.S.STDIO.txt | 29 +++++++++++++++++++++-------- SYS/KM.APPLETALK.S.txt | 4 ++-- SYS/KM.NSC.S.txt | 2 +- SYS/KM.RAMWORKS.S.txt | 4 ++-- X.PRINTF.S.txt | 2 +- 12 files changed, 68 insertions(+), 49 deletions(-) diff --git a/.Floppies/A2OSX.BOOT.po b/.Floppies/A2OSX.BOOT.po index 614c4482d8b7807b22f6be3a7f44d226e9540aef..ca3678444aecb38bf5ee0976cb3b62b55e521f04 100644 GIT binary patch delta 1480 zcmZvcL1@!Z7{|Ytwr_P4R~)T7lv20VwMcu|JZwFTZD}2GX$?!JID09S?jU$kP%qL$ z3pAqsr&*ms+FLY(phD_i((ttw-L~8v5;^)@-9vtMs%o zMjy2g^=RkE<3``};n(=ob|9o_)f=<4vpuG>J%`N&I4>^c`Rt0E%B)?{+ru}B>PJVy zjn3*#7CR#eyoFHgHW74*5mXEeRocGWK zWix`kApQg+Ff+z*=}qJq0ky~mwvGdoRXZeLKS4BziE<`OhuUoMCy|z5r0xFQL}%}s zM^RKidelUpDK3$KGj%Yxni1BFwE8dpP4;lkwf8P=B4_JI=l;MDoEm1-4_w?dIXu=C zL9{AjAM!wkk)o!*GL0A6z!n?mkbwQ$(#ZTIdf!mwBAuT&XMJ3>#a$`Rb%*`|zJNo0 delta 1480 zcmZvcPiWIn9LIkz?cVA(j5xaOP)gla*RE`b&couOjs#o0??YzM)Mf_jl2 zI@n2sC;?%q%!>?kbAkO4Jc%9zK@h})hpHD3#gljuneV+M+smsxG|jL1{C?l>H@~FX zh*TSq?RZ!kmd!*s**Po^z;}SVNph}*V_Ek+LC+=ls9({6`^Y1J03>!b!Q3CF?PKma z!HViMM}b`XAJ%NarqxmabI2$N^V2f2nQM!6W~gX7Eh9UXwpRu-v*?>);!SNaHpZD5 zfu7m9(UPtlO~6-)szc_ODccv6?FV8mL#8-YQVKKrXny_@ zm4~kr*AI@2yUI*k#CkPV@ezjIB!(^shRmjjrFC5yRgXb@hfLcLr{xY}-fp;YRt{oa zT%2VSNw;=h#!JMYm588#LraUGK=?ICk(DqMP1U^k@jW;V&l17#Yb^ZT4irDf+D?dV zCr}`{I`pU|-3yI1#!pEEPuz8;d(E_4b_*9RUYy~V4L>K`BOyAgNjQFo>M&#!ilu^) z_gnye0U>ZgK^t|F&70jx6hF&cEQ>CdgDxBxP^JvOBR%4`r0Zp&t7W%v{fZx_OXK%| zp?)H$#%i{3gN3}x55%9K6SCa`ms>%B6|gE|VePoUSZj+E_&10H$)cVwu%-4S{v_7Y z0c#m~@9zpabK8BY=`G91R=Pokv&Y;kXrz$k3Jyf)X7lR2+m?Rg-{c;S(|gZdX4x%V z{~V`>a(|#5PId@fvxOTXFOLO7E&3C28wx?5TH)vAz6!!CVqr}zY>`42*TW(ElivM? W;^!rjL?R_6y(HMEJuM||xBmljt2{>l diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 7908bf631fda76d400d7ad10893129cada0e167c..d91cf710a0fec3d05f11a0b7b99e7685c873107c 100644 GIT binary patch delta 2885 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 diff --git a/A2osX.S.QC.txt b/A2osX.S.QC.txt index 33ecc325..df8b02f5 100644 --- a/A2osX.S.QC.txt +++ b/A2osX.S.QC.txt @@ -38,29 +38,29 @@ A2osX.QC.Start1 sei lda #$CF protect zero page, stack and page 1 sta MEMTABL - + lda #$8C Reset 80 col screen ($0C=FF=HOME) jsr $C300 - + >LDYAI MSG.INIT1 - jsr A2osX.QC.PrintAX - + jsr A2osX.QC.PrintYA + .3 jsr MLI .DA #MLISETPREFIX .DA MLISETPREFIX00 bcc .4 >LDYAI MSG.SETPREFIXKO - jsr A2osX.QC.PrintAX + jsr A2osX.QC.PrintYA >LDYAI A2osX.QC.Prefix - jsr A2osX.QC.PrintAX + jsr A2osX.QC.PrintYA >DEBUG bra .3 .4 >LDYAI MSG.SETPREFIXOK - jsr A2osX.QC.PrintAX + jsr A2osX.QC.PrintYA jsr A2osX.QC.KLoad bcs * @@ -71,13 +71,13 @@ A2osX.QC.Start1 sei * jsr SETPWRC .8 >LDYAI MSG.INIT1OK - jsr A2osX.QC.PrintAX + jsr A2osX.QC.PrintYA >DEBUGOA jmp $2000 *-------------------------------------- A2osX.QC.KLoad >LDYAI MSG.KLOAD - jsr A2osX.QC.PrintAX + jsr A2osX.QC.PrintYA ldx A2osX.QC.Prefix @@ -93,7 +93,7 @@ A2osX.QC.KLoad >LDYAI MSG.KLOAD stx A2osX.QC.Prefix >LDYAI A2osX.QC.Prefix - jsr A2osX.QC.PrintAX + jsr A2osX.QC.PrintYA jsr MLI .DA #MLIOPEN @@ -121,18 +121,18 @@ A2osX.QC.KLoad >LDYAI MSG.KLOAD .9 pha >LDYAI MSG.KLOAD.KO - jsr A2osX.QC.PrintAX + jsr A2osX.QC.PrintYA pla jsr PRBYTE .8 rts *-------------------------------------- -A2osX.QC.PrintAX - sta TmpPtr1 - stx TmpPtr1+1 +A2osX.QC.PrintYA + >STYA TmpPtr1 lda (TmpPtr1) tax beq .9 + ldy #1 .1 lda (TmpPtr1),y diff --git a/A2osX.S.txt b/A2osX.S.txt index 35419ad8..e0c72e3c 100644 --- a/A2osX.S.txt +++ b/A2osX.S.txt @@ -112,7 +112,9 @@ A2osX.Prefix >LDYAI MSG.BOOTPREFIX bcs * ldx Boot.Prefix stx A2osX.QC.B.Start+4 + ldy #1 + .1 lda Boot.Prefix,y sta A2osX.QC.B.Start+4,y ora #$80 @@ -160,10 +162,11 @@ A2osX.SetupQC lda RRAMWRAMBNK2 A2osX.EnumKM >LDYAI MSG.KMENUM jsr PrintFYA jsr EnumKM + + bcs * *-------------------------------------- A2osX.MLIQuit >LDYAI MSG.INIT0OK jsr PrintFYA - >DEBUGOA jsr MLI .DA #MLIQUIT @@ -229,6 +232,7 @@ EnumKM.EL .EQ $27 *-------------------------------------- EnumKM ldx #0 ldy Boot.Prefix + .1 inx lda SYS,x sta Boot.Prefix+1,y @@ -242,7 +246,7 @@ EnumKM ldx #0 .DA #MLIOPEN .DA MLIOPEN01 bcs .99 - + lda MLIOPEN01+5 sta MLIREAD01+1 sta MLICLOSE01+1 @@ -259,20 +263,27 @@ EnumKM ldx #0 .3 >LDYA EnumKM.BPTR >STYA TmpPtr1 + lda (TmpPtr1) + and #$F0 Empty ? beq .5 yes, skip + and #$C0 anything out of type 1,2 or 3 ? bne .5 yes, skip + lda (TmpPtr1) and #$0F cmp KM.PREFIX at least enough chars for KM.*? bcc .5 no, skip + ldy #$10 file type lda (TmpPtr1),y cmp #$06 'BIN'? bne .5 skip + ldy KM.PREFIX + .4 lda (TmpPtr1),y cmp KM.PREFIX,y bne .5 @@ -292,18 +303,19 @@ EnumKM ldx #0 bne .3 bra .2 -.8 jsr MLI - .DA #MLICLOSE - .DA MLICLOSE01 - rts - .98 cmp #MLI.E.EOF beq .8 pha jsr .8 pla + .99 sec rts + +.8 jsr MLI + .DA #MLICLOSE + .DA MLICLOSE01 + rts *-------------------------------------- EnumKM.EC .BS 1 EnumKM.BPTR .BS 2 diff --git a/BIN/SHELL.S.CMD.txt b/BIN/SHELL.S.CMD.txt index 79480d3a..05c01716 100644 --- a/BIN/SHELL.S.CMD.txt +++ b/BIN/SHELL.S.CMD.txt @@ -26,12 +26,16 @@ CMD.Init >LDYAI 256 *-------------------------------------- CMD.Quit ldy #CMD.hArgVBuf jsr .8 + ldy #CMD.hCLBuf jsr .8 + ldy #hFileBuf -.8 lda (pData),y + +.8 lda (pData),y beq .9 >SYSCALL FreeMem + clc .9 rts *-------------------------------------- * Input : CMD.IntCmd,ZPArgVBuf diff --git a/BIN/SHELL.S.txt b/BIN/SHELL.S.txt index 8b51b3ef..20e4f194 100644 --- a/BIN/SHELL.S.txt +++ b/BIN/SHELL.S.txt @@ -174,15 +174,9 @@ L.ERR.Messages .DA ERR.Messages CS.INIT clc CS.INIT.RTS rts *-------------------------------------- -CS.RUN lda #'1' - >SYSCALL putchar - - jsr CMD.Init +CS.RUN jsr CMD.Init bcs CS.INIT.RTS - lda #'2' - >SYSCALL putchar - ldy #S.PS.ARGC lda (pPS),y beq .1 no arg, continue starting interactive diff --git a/SYS/KERNEL.S.PS.txt b/SYS/KERNEL.S.PS.txt index 9e39d429..cb1e590a 100644 --- a/SYS/KERNEL.S.PS.txt +++ b/SYS/KERNEL.S.PS.txt @@ -15,12 +15,10 @@ PS.ArgV .BS 2 * ## RETURN VALUE * A = Child PSID *\-------------------------------------- -K.ExecL >DEBUG - sty .1+1 +K.ExecL sty .1+1 sta .2+1 >PULLB PS.Flags - lda #'1' - >SYSCALL putchar + >LDYAI 256 jsr K.GetMem bcs .99 @@ -34,8 +32,6 @@ K.ExecL >DEBUG jsr K.Args2ArgV bcs .9 - lda #'2' - >SYSCALL putchar jsr PS.Exec diff --git a/SYS/KERNEL.S.STDIO.txt b/SYS/KERNEL.S.STDIO.txt index 18facffd..3759fec5 100644 --- a/SYS/KERNEL.S.STDIO.txt +++ b/SYS/KERNEL.S.STDIO.txt @@ -11,6 +11,7 @@ HEXBUF .EQ FAC K.PrintF.PadL .EQ FAC+4 K.PrintF.PadC .EQ FAC+5 BCDBUF .EQ ARG +HEXBUF.Signed .EQ ARG.SIGN */-------------------------------------- * # PutChar * Print A (char) to StdOut @@ -332,20 +333,25 @@ PrintF.B.1 ldx #8 PrintF.I sec signed short .HS 90 BCC PrintF.D clc unsigned short (BYTE) - ldx #0 one byte + + ror HEXBUF.Signed jsr PrintF.GetByte bcs PrintF.BB.RTS sta HEXBUF stz HEXBUF+1 + + ldx #0 one byte + bra PrintF.DD.1 PrintF.II sec signed int .HS 90 BCC PrintF.DD clc unsigned int (WORD) - ldx #1 two bytes - + + ror HEXBUF.Signed + jsr PrintF.GetByte bcs PrintF.BB.RTS sta HEXBUF @@ -354,6 +360,8 @@ PrintF.DD clc unsigned int (WORD) bcs PrintF.BB.RTS sta HEXBUF+1 + ldx #1 two bytes + PrintF.DD.1 stz HEXBUF+2 stz HEXBUF+3 bra PrintF.U.1 @@ -362,6 +370,8 @@ PrintF.L sec signed long .HS 90 BCC PrintF.U clc unsigned long (DWORD) + ror HEXBUF.Signed + ldx #$ff .1 jsr PrintF.GetByte @@ -374,12 +384,14 @@ PrintF.U clc unsigned long (DWORD) * ldx #3 4 bytes -PrintF.U.1 bcc PrintF.Hex2Dec unsigned, nothing to check +PrintF.U.1 clc + bit HEXBUF.Signed + bpl PrintF.Hex2Dec unsigned, nothing to check lda HEXBUF,x get sign bpl PrintF.Hex2Dec - -* sec + + sec ldy #0 @@ -395,7 +407,7 @@ PrintF.U.1 bcc PrintF.Hex2Dec unsigned, nothing to check *-------------------------------------- * Convert HEXBUF to ASCBUF decimal padded with 0 *-------------------------------------- -PrintF.Hex2Dec ror .31+1 +PrintF.Hex2Dec ror HEXBUF.Signed ldx #4 @@ -425,8 +437,9 @@ PrintF.Hex2Dec ror .31+1 cld -.31 bit #$ff SELF MODIFIED -sign to print before digits ? + bit HEXBUF.Signed bpl .9 + lda #'-' jsr PrintF.COut diff --git a/SYS/KM.APPLETALK.S.txt b/SYS/KM.APPLETALK.S.txt index c032ac3d..2db879cf 100644 --- a/SYS/KM.APPLETALK.S.txt +++ b/SYS/KM.APPLETALK.S.txt @@ -4,7 +4,7 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF SYS/KM.APPLETALK + .TF SYS/ATK/KM.APPLETALK *-------------------------------------- .INB INC/MACROS.I .INB INC/IO.I @@ -162,5 +162,5 @@ MLIGETPREFIX.PARAMS .DA BUF.PREFIX *-------------------------------------- MAN -SAVE USR/SRC/SYS/ATK/KM.APPLETALK.S +SAVE USR/SRC/SYS/KM.APPLETALK.S ASM diff --git a/SYS/KM.NSC.S.txt b/SYS/KM.NSC.S.txt index f7a6310e..424f0d58 100644 --- a/SYS/KM.NSC.S.txt +++ b/SYS/KM.NSC.S.txt @@ -299,5 +299,5 @@ NSCDRV.SIZE .EQ *-NSCDRV.B.START .FIN *-------------------------------------- MAN -SAVE USR/SRC/BIN/SYS/KM.NSC.S +SAVE USR/SRC/SYS/KM.NSC.S ASM diff --git a/SYS/KM.RAMWORKS.S.txt b/SYS/KM.RAMWORKS.S.txt index 134e91a8..6d95337b 100644 --- a/SYS/KM.RAMWORKS.S.txt +++ b/SYS/KM.RAMWORKS.S.txt @@ -377,7 +377,7 @@ RW.BLOCK2.CT .BS 4 Creation time RW.BLOCK2.TB .BS 2 Total Blocks RW.BLOCK2.END .EQ * *-------------------------------------- - .INB USR/SRC/BIN/X.PRINTF.S + .INB USR/SRC/X.PRINTF.S *-------------------------------------- RW.MSG .AZ "RAMWorks (I,II,III,z-Ram) Driver For A2osX\n" RW.MSG.OK .AZ "/RAM3 Device Already Installed.\n" @@ -662,5 +662,5 @@ RWDRVX.SIZE .EQ RWDRVX.B.END-RWDRVX.B.START .FIN *-------------------------------------- MAN -SAVE USR/SRC/BIN/SYS/KM.RAMWORKS.S +SAVE USR/SRC/SYS/KM.RAMWORKS.S ASM diff --git a/X.PRINTF.S.txt b/X.PRINTF.S.txt index aea2e1a4..916ef219 100644 --- a/X.PRINTF.S.txt +++ b/X.PRINTF.S.txt @@ -225,4 +225,4 @@ X.DigitCount .BS 1 X.DigitBuffer .BS 6 *-------------------------------------- MAN -SAVE USR/SRC/BIN/X.PRINTF.S +SAVE USR/SRC/X.PRINTF.S