From 14275e29d2411b9f8a2eb678ca010eac7c04a6c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Fri, 31 Mar 2017 17:24:42 +0200 Subject: [PATCH] Kernel version 0.9 : FORMAT Cmd OK (without LL) --- A2OSX.BUILD.po | Bin 819200 -> 819200 bytes A2OSX.DEV.po | Bin 143360 -> 143360 bytes A2OSX.SRC.po | Bin 819200 -> 819200 bytes BIN/FORMAT.S.txt | 16 +++-- BIN/LS.S.txt | 4 +- LIB/LIBBLKDEV.S.txt | 141 +++++++++++++++++++++---------------------- SBIN/SHELL.S.CMD.txt | 8 ++- SYS/KERNEL.S.ENV.txt | 1 + SYS/KERNEL.S.GP.txt | 6 +- 9 files changed, 91 insertions(+), 85 deletions(-) diff --git a/A2OSX.BUILD.po b/A2OSX.BUILD.po index 7b229fb57eda043b84fbd8c1efc579b7e8c1f66e..c21fa5114bbcc8b67aad670150d60e8b77c982f8 100644 GIT binary patch delta 2383 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 diff --git a/A2OSX.DEV.po b/A2OSX.DEV.po index 4793f29381ff3d3e8f689771d7a76e5d5321ba49..bbd218f6e95d77810b2d31b3f70f5e79516e2f5c 100644 GIT binary patch delta 203 zcmZp8z|ru4V}lq=5(602D;e-HG8|UtWn^GukYE%G2=aIF4~EDA$^YyOj37?Ek}01u z!(#}8iGd-+Kg1udh=GBh1Eh=zt}Fzko@p~9QwQTFHbyqF|5(9hah}(Vn;q1cnbgqC eD^&(L31%&r$;7~{4m9v8W0O#u5aTi-COH6(PBYK| delta 1060 zcmZ{iyKmD_6o-FyQpbrBQbI|Qc_pOaK2X#~>QgL<^T28x8z<0$SU^BQ9T4F)P{|Q0 zs1uc_5P}I7RuB;q0~-VE-8xl@nD`Goaqe{-rA75%pDTa<&cmm*E4Oy#FUjD|kE!rs zeBgI<)R+hf$AoRYrlIeOhadt${7NZ98FYY0XCiSC+XcPWMSaBtDDnn4~D_Ub;1D63_gMYG;(!oBN2#>J@5 zeP8joiM(Z1OLeo{?ZR!6Zl$Mt*VT;~W=(IHw(oPFAdEMMeB0`6&o*l0HM>8nL)fB+ zIaJ-ZE;pi^zKJW`4Jvsp;_KG$dAj2?l0tQ{Si0iT?j}w68K>AtUOe=$^R-eV+bC7p zgALieL7VkM<{V+gRgO9QjLyDA`fmrqv;zS(ldl`z2i{$ZAd2=7%IT>jIgu)-XOl9< z3ClLJGt-kf&Phoc-|rw{a~$J=j0wUV&MkSMq+kHoL-cyy=jKVrIF8Lt%`l&InmRcu zABbsP+gZx`df-6JW*GG^jZxMz%evraU7)P0Q8J2`4a@74uq-WTA%IHyh}SC%WDL`P t*n>^d-`E6UijOJGW?R}GEJwCKBKQ{Y(Xl-8mLNWTo_LuMJ|)Cc{{X<;raJ%t diff --git a/A2OSX.SRC.po b/A2OSX.SRC.po index 9aafe4a8e07fb4f1221f7bf7eb288b8ad3b30bed..97d57b4cc9d1e928c3e4225f393769f6e6adb318 100644 GIT binary patch delta 20324 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 ZPPtr1 ldy #S.DEVSTAT.SIZE lda (ZPPtr1),y - sta BlockSize + sta SizeInBlocks iny lda (ZPPtr1),y - sta BlockSize+1 + sta SizeInBlocks+1 ldy #hDev lda (pData),y @@ -203,14 +203,14 @@ CS.RUN.BuildCat ldy #hDev sta ZPPtr2+1 >PUSHW pData - >PUSHW BlockSize + >PUSHW SizeInBlocks >PUSHW ZPPtr2 >LDYA L.MSG.INIT >SYSCALL CPrintFYA bcs .9 - >PUSHW BlockSize + >PUSHW SizeInBlocks >LIBCALL hLIBBLKDEV,LIBBLKDEV.GetProDOSCatSize .99 bcs .9 @@ -225,10 +225,9 @@ CS.RUN.BuildCat ldy #hDev ldy #hBuf sta (pData),y - >PUSHW BlockSize + >PUSHW SizeInBlocks >PUSHW pData >PUSHW BlkParams.Ptr - >LIBCALL hLIBBLKDEV,LIBBLKDEV.BuildProDOSCat .9 rts *-------------------------------------- @@ -244,7 +243,6 @@ CS.RUN.WriteCat stz BlkParams.Num .1 >LDYA L.BlkParams.Ptr ldx #DEVMGR.WRITEBLOCK - >DEBUG jsr pDevJmp bcs .9 inc BlkParams.Ptr+1 @@ -304,8 +302,7 @@ DefaultVolName >PSTR "BLANKXXXXXXXX" ArgCount .BS 1 ArgIndex .BS 1 hLIBBLKDEV .BS 1 -BlockSize .BS 2 -hBuf .BS 1 +SizeInBlocks .BS 2 BlkCnt .BS 1 BlkParams.Ptr .BS 2 BlkParams.Num .BS 2 @@ -315,6 +312,7 @@ BlkParams.Num .BS 2 DS.START VolName .BS 16 hDev .BS 5 +hBuf .BS 1 bLL .BS 1 DS.END .ED diff --git a/BIN/LS.S.txt b/BIN/LS.S.txt index bf39f586..91398a9a 100644 --- a/BIN/LS.S.txt +++ b/BIN/LS.S.txt @@ -169,9 +169,9 @@ CS.RUN >SYSCALL GetC bcs .92 jsr BasePath.. - jsr GetNextEntry -.8 clc +.8 jsr GetNextEntry + clc rts .92 lda #0 diff --git a/LIB/LIBBLKDEV.S.txt b/LIB/LIBBLKDEV.S.txt index d7fbdc0a..068ff67c 100644 --- a/LIB/LIBBLKDEV.S.txt +++ b/LIB/LIBBLKDEV.S.txt @@ -128,6 +128,7 @@ BuildProDOSCat >PULLW ZPPtr1 DstBuf >PULLW VolDirHdr.TB ldx #3 + .10 lda DATELO,x sta VolDirHdr.CT,x dex @@ -138,23 +139,21 @@ BuildProDOSCat >PULLW ZPPtr1 DstBuf >STYA ZPPtr3 ldy #0 + ldx #2 2 pages + .1 lda (ZPPtr3),y sta (ZPPtr1),y iny bne .1 - inc ZPPtr3 - inc ZPPtr1 + inc ZPPtr3+1 + inc ZPPtr1+1 -.2 lda (ZPPtr3),y - sta (ZPPtr1),y - iny - bne .2 + dex + bne .1 - inc ZPPtr1 Blk 1 - inc ZPPtr1 - - inc ZPPtr1 Blk 2 + inc ZPPtr1+1 Skip Blk 2 (SOS boot code) + inc ZPPtr1+1 * Directory Blocks @@ -167,45 +166,45 @@ BuildProDOSCat >PULLW ZPPtr1 DstBuf .3 lda (ZPPtr2),y sta VolDirHdr.Name,y dey - bpl .3 + bne .3 - ldy #VolDirHdr.size + ldy #VolDirHdr.size-1 .4 lda VolDirHdr,y sta (ZPPtr1),y dey bpl .4 - inc ZPPtr1 - inc ZPPtr1 Blk 3 + inc ZPPtr1+1 + inc ZPPtr1+1 Blk 3 + + ldy #2 lda #2 sta (ZPPtr1) lda #4 - ldy #2 sta (ZPPtr1),y - inc ZPPtr1 - inc ZPPtr1 Blk 4 + inc ZPPtr1+1 + inc ZPPtr1+1 Blk 4 lda #3 sta (ZPPtr1) lda #5 - ldy #2 sta (ZPPtr1),y - inc ZPPtr1 - inc ZPPtr1 Blk 5 + inc ZPPtr1+1 + inc ZPPtr1+1 Blk 5 lda #4 sta (ZPPtr1) - inc ZPPtr1 - inc ZPPtr1 Blk 6 + inc ZPPtr1+1 + inc ZPPtr1+1 Blk 6 * BitMap Blocks : 0=Used 1=free - >LDAX VolDirHdr.TB+1 + >LDAX VolDirHdr.TB jsr GetProDOSCatSizeAX X=blk used for boot/dir/bitmap lda VolDirHdr.TB @@ -214,23 +213,22 @@ BuildProDOSCat >PULLW ZPPtr1 DstBuf lda VolDirHdr.TB+1 eor #$ff sta Count+1 - txa - clc - adc VolDirHdr.TB - sta VolDirHdr.TB - bcc .51 - inc Count+1 -.51 ldy #0 + ldy #0 -.5 lda #%10000000 -.6 dex +.50 lda #%10000000 + +.5 dex bmi .8 - asl + inc Count bne .6 - iny + inc Count+1 + +.6 lsr bne .5 + iny + bne .50 .7 lda #%10000000 @@ -243,7 +241,7 @@ BuildProDOSCat >PULLW ZPPtr1 DstBuf eor (ZPPtr1),y sta (ZPPtr1),y pla - asl + lsr bne .8 iny bne .7 @@ -352,7 +350,8 @@ LIB.UNLOAD clc DrvTrkSelect jsr DrvSelect - + clc + rts *-------------------------------------- * A=DSSS0000 *-------------------------------------- @@ -494,46 +493,46 @@ TrkWriter.Start lda D2ReadMode,x TrkWriter.Size .EQ *-TrkWriter.Start .EP *-------------------------------------- -ProDOS.Boot .HS 01 38 b0 03 4c 32 a1 86 43 c9 03 08 8a 29 70 4a - .HS 4a 4a 4a 09 c0 85 49 a0 ff 84 48 28 c8 b1 48 d0 - .HS 3a b0 0e a9 03 8d 00 08 e6 3d a5 49 48 a9 5b 48 - .HS 60 85 40 85 48 a0 63 b1 48 99 94 09 c8 c0 eb d0 - .HS f6 a2 06 bc 1d 09 bd 24 09 99 f2 09 bd 2b 09 9d - .HS 7f 0a ca 10 ee a9 09 85 49 a9 86 a0 00 c9 f9 b0 - .HS 2f 85 48 84 60 84 4a 84 4c 84 4e 84 47 c8 84 42 - .HS c8 84 46 a9 0c 85 61 85 4b 20 12 09 b0 68 e6 61 - .HS e6 61 e6 46 a5 46 c9 06 90 ef ad 00 0c 0d 01 0c - .HS d0 6d a9 04 d0 02 a5 4a 18 6d 23 0c a8 90 0d e6 - .HS 4b a5 4b 4a b0 06 c9 0a f0 55 a0 04 84 4a ad 02 - .HS 09 29 0f a8 b1 4a d9 02 09 d0 db 88 10 f6 29 f0 - .HS c9 20 d0 3b a0 10 b1 4a c9 ff d0 33 c8 b1 4a 85 - .HS 46 c8 b1 4a 85 47 a9 00 85 4a a0 1e 84 4b 84 61 - .HS c8 84 4d 20 12 09 b0 17 e6 61 e6 61 a4 4e e6 4e - .HS b1 4a 85 46 b1 4c 85 47 11 4a d0 e7 4c 00 20 4c - .HS 3f 09 26 50 52 4f 44 4f 53 20 20 20 20 20 20 20 - .HS 20 20 a5 60 85 44 a5 61 85 45 6c 48 00 08 1e 24 - .HS 3f 45 47 76 f4 d7 d1 b6 4b b4 ac a6 2b 18 60 4c - .HS bc 09 a9 9f 48 a9 ff 48 a9 01 a2 00 4c 79 f4 20 - .HS 58 fc a0 1c b9 50 09 99 ae 05 88 10 f7 4c 4d 09 - .HS aa aa aa a0 d5 ce c1 c2 cc c5 a0 d4 cf a0 cc cf - .HS c1 c4 a0 d0 d2 cf c4 cf d3 a0 aa aa aa a5 53 29 - .HS 03 2a 05 2b aa bd 80 c0 a9 2c a2 11 ca d0 fd e9 - .HS 01 d0 f7 a6 2b 60 a5 46 29 07 c9 04 29 03 08 0a - .HS 28 2a 85 3d a5 47 4a a5 46 6a 4a 4a 85 41 0a 85 - .HS 51 a5 45 85 27 a6 2b bd 89 c0 20 bc 09 e6 27 e6 - .HS 3d e6 3d b0 03 20 bc 09 bc 88 c0 60 a5 40 0a 85 - .HS 53 a9 00 85 54 a5 53 85 50 38 e5 51 f0 14 b0 04 - .HS e6 53 90 02 c6 53 38 20 6d 09 a5 50 18 20 6f 09 - .HS d0 e3 a0 7f 84 52 08 28 38 c6 52 f0 ce 18 08 88 - .HS f0 f5 bd 8c c0 10 fb 00 00 00 00 00 00 00 00 00 +ProDOS.Boot .HS 01.38.b0.03.4c.32.a1.86.43.c9.03.08.8a.29.70.4a + .HS 4a.4a.4a.09.c0.85.49.a0.ff.84.48.28.c8.b1.48.d0 + .HS 3a.b0.0e.a9.03.8d.00.08.e6.3d.a5.49.48.a9.5b.48 + .HS 60.85.40.85.48.a0.63.b1.48.99.94.09.c8.c0.eb.d0 + .HS f6.a2.06.bc.1d.09.bd.24.09.99.f2.09.bd.2b.09.9d + .HS 7f.0a.ca.10.ee.a9.09.85.49.a9.86.a0.00.c9.f9.b0 + .HS 2f.85.48.84.60.84.4a.84.4c.84.4e.84.47.c8.84.42 + .HS c8.84.46.a9.0c.85.61.85.4b.20.12.09.b0.68.e6.61 + .HS e6.61.e6.46.a5.46.c9.06.90.ef.ad.00.0c.0d.01.0c + .HS d0.6d.a9.04.d0.02.a5.4a.18.6d.23.0c.a8.90.0d.e6 + .HS 4b.a5.4b.4a.b0.06.c9.0a.f0.55.a0.04.84.4a.ad.02 + .HS 09.29.0f.a8.b1.4a.d9.02.09.d0.db.88.10.f6.29.f0 + .HS c9.20.d0.3b.a0.10.b1.4a.c9.ff.d0.33.c8.b1.4a.85 + .HS 46.c8.b1.4a.85.47.a9.00.85.4a.a0.1e.84.4b.84.61 + .HS c8.84.4d.20.12.09.b0.17.e6.61.e6.61.a4.4e.e6.4e + .HS b1.4a.85.46.b1.4c.85.47.11.4a.d0.e7.4c.00.20.4c + .HS 3f.09.26.50.52.4f.44.4f.53.20.20.20.20.20.20.20 + .HS 20.20.a5.60.85.44.a5.61.85.45.6c.48.00.08.1e.24 + .HS 3f.45.47.76.f4.d7.d1.b6.4b.b4.ac.a6.2b.18.60.4c + .HS bc.09.a9.9f.48.a9.ff.48.a9.01.a2.00.4c.79.f4.20 + .HS 58.fc.a0.1c.b9.50.09.99.ae.05.88.10.f7.4c.4d.09 + .HS aa.aa.aa.a0.d5.ce.c1.c2.cc.c5.a0.d4.cf.a0.cc.cf + .HS c1.c4.a0.d0.d2.cf.c4.cf.d3.a0.aa.aa.aa.a5.53.29 + .HS 03.2a.05.2b.aa.bd.80.c0.a9.2c.a2.11.ca.d0.fd.e9 + .HS 01.d0.f7.a6.2b.60.a5.46.29.07.c9.04.29.03.08.0a + .HS 28.2a.85.3d.a5.47.4a.a5.46.6a.4a.4a.85.41.0a.85 + .HS 51.a5.45.85.27.a6.2b.bd.89.c0.20.bc.09.e6.27.e6 + .HS 3d.e6.3d.b0.03.20.bc.09.bc.88.c0.60.a5.40.0a.85 + .HS 53.a9.00.85.54.a5.53.85.50.38.e5.51.f0.14.b0.04 + .HS e6.53.90.02.c6.53.38.20.6d.09.a5.50.18.20.6f.09 + .HS d0.e3.a0.7f.84.52.08.28.38.c6.52.f0.ce.18.08.88 + .HS f0.f5.bd.8c.c0.10.fb.00.00.00.00.00.00.00.00.00 *-------------------------------------- VolDirHdr .DA 0 pointer to previous block .DA 3 pointer to next block VolDirHdr.Name .BS 16 - .HS 0000000000000000 + .HS 00.00.00.00.00.00.00.00 VolDirHdr.CT .BS 4 Creation time - .HS 0100C3270D version/min version/access/EL/EPB - .DA 0 File Count + .HS 01.00.C3.27.0D version/min version/access/EL/EPB + .DA 0 File Count=0 (only VDH) .DA 6 bitmap pointer (Block 2..5 are Volume directory) VolDirHdr.TB .BS 2 Total Blocks VolDirHdr.size .EQ *-VolDirHdr diff --git a/SBIN/SHELL.S.CMD.txt b/SBIN/SHELL.S.CMD.txt index b454ef1a..d4ba932d 100644 --- a/SBIN/SHELL.S.CMD.txt +++ b/SBIN/SHELL.S.CMD.txt @@ -10,8 +10,14 @@ AUTO 6 Cmd.ExecYA stz Cmd.Exec.Mode Cmd.ExecYA.1 >SYSCALL ExpandPStrYA >STYA ZPPtr1 - phx + + lda #'(' + >SYSCALL PutCA + >LDYA ZPPtr1 + >SYSCALL PPRintFYA + lda #')' + >SYSCALL PutCA ldy #1 ldx #0 ARGS len diff --git a/SYS/KERNEL.S.ENV.txt b/SYS/KERNEL.S.ENV.txt index 247f4361..b7c73133 100644 --- a/SYS/KERNEL.S.ENV.txt +++ b/SYS/KERNEL.S.ENV.txt @@ -172,6 +172,7 @@ K.ExpandPStr.End .BS 1 K.ExpandPStr.bFound .BS 1 K.ExpandPStr.bNoExp .BS 1 K.ExpandPStr.hPStr .BS 1 +K.ExpandPStr.Name .BS 16 */-------------------------------------- * # PutEnvYA * ## In: diff --git a/SYS/KERNEL.S.GP.txt b/SYS/KERNEL.S.GP.txt index f2a68cca..4ec0549d 100644 --- a/SYS/KERNEL.S.GP.txt +++ b/SYS/KERNEL.S.GP.txt @@ -122,6 +122,7 @@ A2osX.DIIDrv.RW >STYA A2osX.Blk.GetParam.1+1 jsr A2osX.Blk.GetParam jsr $D000 + cli jsr GO.A2osX rts *-------------------------------------- @@ -232,9 +233,10 @@ A2osX.DRV.BadCall sec rts *-------------------------------------- -GO.ProDOS lda $D000 We re coming from AUXLC, saving bank... +GO.ProDOS pha + lda $D000 We re coming from AUXLC, saving bank... sta GO.A2osX.BNK+1 - + pla php clc .HS 2C bit abs