From 4219fe9e0de54a4ec83b1a1eadc5978d152c7897 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Fri, 30 Sep 2016 08:24:52 +0200 Subject: [PATCH] Kernel version 0.8 : Fixed bug in LOADBIN called from BNK1 --- A2OSX.BOOT.po | Bin 143360 -> 143360 bytes A2OSX.SRC.po | Bin 819200 -> 819200 bytes INC/A2osX.I.txt | 2 +- SYS/KERNEL.S.BIN.txt | 37 +++++++++++++++++++------------------ SYS/KERNEL.S.DRV.txt | 2 +- SYS/KERNEL.S.JMP.txt | 2 +- SYS/KERNEL.S.LIB.txt | 2 +- SYS/KERNEL.S.PS.txt | 2 +- 8 files changed, 24 insertions(+), 23 deletions(-) diff --git a/A2OSX.BOOT.po b/A2OSX.BOOT.po index 5b56aab04f8217b53266cf053d2dcea5d079abec..d8586d6b90e48850eab4eb125b014d08b7535874 100644 GIT binary patch delta 1519 zcmY*ZeQZ-z6u-A?_kmS9TE?UMx;O(&HZviELLA~B8d?Dfi6jydYSncn zXG*h2+TO8se5GmDb{%`;wM#^^IMD>ws+n)ot?gcSMHpln*1Rbh2!?rE_ygY`=id7} z=lt$D=brPd*K@7cbA>}HMM=TXyQ<#~Xg=Qn(q9?42~f=%itaU6=j0Cut6A6%JRm5t zS?vl>HSVgff{l2z9zk|!uD(?TNAU-i%VpgXFOP6;iFbcn9*NpS5X@&w8S^=yrGiZc zA=f(e`bV1;aCE5o&no%-O8imFLjxkB&K2isRDT}o=pnE6eU0~;q1`>XKUft_|wj#GK0 z$-5tc5!`z0&-Ip=7leVFjT&Qf;-Z}~a|dI{65|iXWKBk+xxSRv;?B=rYB9#$6H2)z z5>gHt!!DEyHS%^(A=CC3P#WfxnQbem9dC_e`LHY7sCTwle6<{ zXafB{>p6>Ck2`C6B!2ak{@q=YW|N(xvNCmNM9fOfkBqq`5e>>Cr`%G|I@T?TIo@Tb zx~04wu97EYsUEzy`FYrbKW$#8?2))L_(Jpgf*#47=~RyU}|d6uzs60VEzTV^e%3D-@8LwpyBKH$6Y`+@Sc z{b@yH0nl(VoOKKfC}Z7f7NQ>sT1ohBGSG#;4y@Dn6DL&x%SF2KTW8TPH`(I$BKoGl z+qWm%Swu5;x)#^woF>MloqQ**Tr8^}Aa>&t$CJnH^th)KA;4IkCi7@2z!l9yPIINg z184~&`9Rj%?Eg24SZ}!vb$|u5pI~Z$h^iD%i@=sFDF7(VCH^5Hsd74=#Kj>D*+PNo4nGtm85sEcmK?9ccibs16Px|l2j1q>HU zm)dYm+oKexTdqYuO1S2>{h?$Lw;5QwEaZZNw%l^&ur6$odfg1N&B#vCAMXBm&pFR? z&hx(aIq$vP-E8h|wp62Kw&_EMwZByBKidq_PZ78WP{lfm9U83z1icGwC8;Fs+g zt&H$CZa-2A8}ScE5UdZ)966(fL-@G$deH?%R0sKXMeMj$9F90-;5XO{S<7Xxf(Bc{ z4|y*1&Zp%J911m^xS@qMTvk^ETkwZ<6_CT;x>6d$b@?l}M9P*>{}pWsR5tGVOMs#c z&)02*0B@+@{Dv*zHv0E$DIHfe%Z(nRzje9BqoI3Qi@0OFfBQJH|19mUHamqZx8`UA zs!QP3`ad=ukNQ9msF|ofIwQ|HSqonsMaQFJbyU?aGWxpcOC#k(wPGX;)-)O&vVf zuK2l;3yPfOTXOD#lC#HC@Iox*#Rr>SgI@f3(?*R~;XAO%WP-Uq zArmv*rP-FLwwfu_GKSykE^4++d2)wy#Tq)GSXA0BmgxG6b$lmj^O50PPi{v#4CneY z7b9HU{PLM;SvtvIA#DOVcX-N)YVIw5&p83m=Li6Fo`^oeS_Q&iC1NMBULkxJ=>n!% zAK|-67o2VGBzzA+eMBk|EmQrpE`C%hoD>gFp-&d2f*=QZz)>N?4Jg=06R;L@n*MY8 zs40Cn!m~DHNC{ScY*hl=e_m3 z!I%JGtuKoS`Yi&WK86iIUEy&4pA2*NJ505}4ro)sR4$1dbQw;>UB}Z7PqNqqZmjdt;YkhWN%fl-uNK*)_UY5)F?= z>&GU>0KijEDj8`KubZ#HrSqE5p?P1%(gX4wYPe5-z0-sA3-mp0^DcG3JSbf+ali?P L^~}<4C+z+Yj3C#j diff --git a/A2OSX.SRC.po b/A2OSX.SRC.po index 4cbb1ad2202853d87101b20463fa54c7a9068b38..1feb7c1ebf24a1aa002174f914d2607fb8af773c 100644 GIT binary patch delta 2078 zcmZuxdu&rx7(d_bW4-stD0`H(Tib0N0%Kg)&P`mxq#J|5=2qxF_D>wK|-RLp4-cyQ=2sBp5Ohx z-*@i!`+cXc&(YWCIB{0ZROZG$S4S9&VYFJ)I#a)@49Pzm`tkVk#YL65qX%-n(CF>9 zDfDaC;v$P7_PD7=|Eqcm%nmIsx{vah2K8f_De!@y42}x<2R|ESu1vz{e*|aksWP#WaLp<`4LSLbnf<>d7p(CYyX?0-l|pg`{>*L~JCP`S4wq z&797{+jrN*3xEOFum$pQ8XLLW0^`#F)(ZY~Ao-*ft}*Ed=`Dr=rmBVPxvI(|?-WDB zw6}j2!})2zxD5&uC2+WiEh|9MBatvYMGpzGq`!zvQ~bnv(=fH zR9%ORK)@H~d7k|Jx5}OVJ$pB)+otWu)Y<9#55HF%VfduhyxYvE>0gsHGun60&oYi7 zcbi+0w#V1z987+BK|6o;z=U>SA|o-OgEuhmZgsZuwM{K`jfp|_x+=bhtPwtsZ_bEcX19~EbzCl)v6kCep;-YE!Ye_lSz2GaW;xO{(tUOlNPL4^bky~?`=g@J z9zpDbPh5g9XOpdPQj2SI7uEGVxb&;J-%$avqFgIFVSTyDVLXR#C3@)X2UeV76JZVa?sCMa&Z)-KqNeHj|1r*O?4TSJw}dQ z;udg^%k&YEuk4S1%ayL}42g0xsRluRdwal#bUmq5Waw2Wx1-&n;DNDdvs};V7~`f168ZH4oBWw@;~`9!G_(c!9Vy*kO8+^5(pxcx-u^$BcW( zJ`K);m+uhH${+d{VO)!=&2((|`k%Ydtho+2)3~$RNJ?Xxsg-mf8AWuU@ zf6&(x6+>G+A+Ikb{9#&^dk6SLEk3KWIMnp|pf^*Uv#Cj(c0-A6Wll0y4>`%-R$|P? zTk#@J9#31zqH<(N4B{J_1&fG0?YehC3P&SI_g-r5Q1%fh6{{-i${k{htFC2fy&KJW zpJWc<5;#gKhHx=^ObMKGoNSiS6Xcm8>>vwc^j5wQ!&&6q5S|Gq$(12I7e>js7|u&U zs#745Jwtd7`6`BuBpAapRf#FcJVGHkk<^c1L;Mw-spjpxgKQbWa}|8A91)kPKf1$7 ge!7i*te`S2d?G*3g-;b|a)d%>VsP}E_#u4xA7y!(Qvd(} delta 2032 zcmZWqYj6`)6uxJZ4V%3!-M)aPP1}&xmOhpyg@Oo$w3KJ1p{=}R95xS1AWcdVpaq03 zlGX<*Ho$eo0Yr_WBG78$jN=TC;fLdlKTs4LP#AyUIGu4sbew?!?`|lzLv}K|``zz; z=iGC?d$+gO-rH+GeL>H#LhPbG%uE%AX0h!VLQ@q|e^&JCmkZ}uSYhZ$&eyDvV;w<< zopUTtrpLCK>V-e_BVcCmDN9yn?4oI(aDg2G=LBY3jKYwVfAl<)-7xs`eHgrPc-Hi) z4AiiAnb;hZJWZ>bRy+FZ+uBz<OfLOvd)Ny-Z0${2tz0^evLxvL2NWJV)o`(!9EPHh>< zAwC&e$BgT&aA^#1!wSWm-|r2HqKFbD@PP%31*z$3&ZnDTS$qL7Oi)TJg8PtI0w+6g z^(aQ-3@nNd0t21N2Se~c7ykn6N&a{E2Y67#`3~9I+UiIQ!?gloM;1C&oW;{dMWxx6 zi2@nsn4g4r9{RVK8BftQYvx$Wh5jFmO!5b#uHtr*zo+{LVgkb_)9&l;s84AJIsKRw z9rWr~PZ?FUN1cd@4Q;X=nF9aUyW9KuEqxwvtzLi7Ek(SC1`XzZGoz<}Hfd%ICoZw+ z=TL=`{PBCkl!<9=Vq3eTU2JG>XYSTcQ|@h@H4Eoc*+3)<-l+a2-! z#`+}pt?}P<&hL@r@-@!o@oUEIgj>PCUZ1^~)?pFNr7`OAMP$hpM#d#jarTMoC^9Vt zHTRK(=C`hh`aM0ewFa@xprG2PffSeHiNxH&I*xVI z+{-;Aa)mE5c_$4LcoRv# zO1FxiRMVTT6BLqpmCs}8BCG+@d6l1R3{sl43&d&UsE;Yk#hXF#heLf+?T8C$HAYoo z^37GgvMizo3CrU2Xh%?1t4NC<@VQ)mFXFanv(SXCpu~UTD|V|Aox!bMdC_9Ix?U^w zwiJcyPThqb5T_F<;E}B*HS6~xb~{bPyo1J|#;}&mj8b#RlE)MBhQq!<$6Og@?xcg> z&9XQn8VH`%i->)mPOD7*ktIZmgwpxT^7h;ie6Nyh42z_vbX?VCY>y{*SS~$v0d9P|ywZm}4#$r>zgNj~LWz1s!>$G<+_hSUw4%_~R)vb%FipD1TB_)4Svs2hJ;fkE-(TgE*6@+m4Ha5{iTo_kp$nQ1*vVA=gb$G~f%|glau# zUynxzn)STYA BIN.LoadExe.Filename - jsr K.PStrUprYA Y,A unmodified +K.LoadEXEYA >STYA K.LoadEXEYA.Filename + >SYSCALL SYS.PStrUprYA Y,A unmodified jsr K.GetMemByNameYA - bcs BIN.LoadEXEYA.1 not already loaded + bcs K.LoadEXEYA.1 not already loaded >STYA ZPQuickPtr1 Save base address ldy #S.MEM.REFCNT @@ -26,8 +26,8 @@ BIN.LoadEXEYA >STYA BIN.LoadExe.Filename txa jmp K.GetMemPtrA X=hMem from K.GetMemByNameA *-------------------------------------- -BIN.LoadEXEYA.1 >PUSHWI KrnBuf256 - >PUSHW BIN.LoadExe.Filename +K.LoadEXEYA.1 >PUSHWI KrnBuf256 + >PUSHW K.LoadEXEYA.Filename jsr K.STAT Look for AUXTYPE bcs .9 @@ -37,12 +37,12 @@ BIN.LoadEXEYA.1 >PUSHWI KrnBuf256 >PUSHYA Push AUXTYPE >PUSHBI 6 S.FILEINFO.TYPE.BIN >PUSHBI SYS.FOPEN.R - >PUSHW BIN.LoadExe.Filename + >PUSHW K.LoadEXEYA.Filename jsr K.LoadFile .9 bcs .99 Error Loading file >STYA BIN.Relocate.SegLen - stx BIN.LoadExe.hMem save hMem + stx K.LoadEXEYA.hMem save hMem txa jsr K.GetMemPtrA >STYA ZPQuickPtr1 @@ -57,7 +57,7 @@ BIN.LoadEXEYA.1 >PUSHWI KrnBuf256 lda BIN.Relocate.Start Get AUXTYPE for actual Base Address clc adc BIN.Relocate.SegLen - sta BIN.Relocate.End compute Range End=AUXTYPE+FILELEN + sta BIN.Relocate.End compute Range End=AUXTYPE+FILELEN lda BIN.Relocate.Start+1 adc BIN.Relocate.SegLen+1 @@ -73,14 +73,13 @@ BIN.LoadEXEYA.1 >PUSHWI KrnBuf256 sta BIN.Relocate.Offset+1 jsr Bin.RelocateEXE - bcs .98 relocation error, dicard Code segment - >LDYA BIN.LoadExe.Filename get back bin path - jsr K.NewPStrYA make a copy of this string + >LDYA K.LoadEXEYA.Filename get back bin path + >SYSCALL SYS.NewPStrYA make a copy of this string bcs .98 phx save copy - lda BIN.LoadExe.hMem + lda K.LoadEXEYA.hMem jsr K.GetMemByIDA >STYA ZPQuickPtr1 @@ -92,22 +91,22 @@ BIN.LoadEXEYA.1 >PUSHWI KrnBuf256 ldy #S.MEM.BIN sta (ZPQuickPtr1),y - lda BIN.LoadExe.hMem + lda K.LoadEXEYA.hMem tax return hMEM to Caller... jsr K.GetMemPtrA clc ...and Y,A=PTR to CS rts .98 pha - lda BIN.LoadExe.hMem + lda K.LoadEXEYA.hMem jsr K.FreeMemA Discard Loaded Code pla sec .99 rts *-------------------------------------- -BIN.LoadExe.Filename .BS 2 -BIN.LoadExe.hMem .BS 1 +K.LoadEXEYA.Filename .BS 2 +K.LoadEXEYA.hMem .BS 1 *-------------------------------------- * BIN.InstallDRV * pDrv = .DRV File Loaded Address @@ -326,6 +325,9 @@ BIN.RelocateEXE ldy #H.BIN.JMP relocate Main JMP ldy #H.BIN.RELOC.TABLE skip Header, CS.SIZE & DS.SIZE... (16 bytes) + + >DEBUG + .HS 2C bit abs *-------------------------------------- BIN.RelocateDRV ldy #0 @@ -418,8 +420,7 @@ BIN.RelocateDRV ldy #0 inc ZPQuickPtr1+1 bra .3 next opcode.... -.8 clc - rts +.8 rts *-------------------------------------- * 65C02 OPCODES * Bit 3 : 1 = absolute addressing diff --git a/SYS/KERNEL.S.DRV.txt b/SYS/KERNEL.S.DRV.txt index 9360c673..f3b0aac6 100644 --- a/SYS/KERNEL.S.DRV.txt +++ b/SYS/KERNEL.S.DRV.txt @@ -25,7 +25,7 @@ K.LoadDrvYA >STYA K.LoadDrv.CmdArray bcs .99 stx K.LoadDrv.hFullName - jsr BIN.LoadExeYA Y,A =filename full path + jsr K.LoadExeYA Y,A =filename full path bcs .98 >STYA pDrv diff --git a/SYS/KERNEL.S.JMP.txt b/SYS/KERNEL.S.JMP.txt index 75125a3c..3dfa452c 100644 --- a/SYS/KERNEL.S.JMP.txt +++ b/SYS/KERNEL.S.JMP.txt @@ -61,7 +61,7 @@ KERNEL.SYSCALL .DA K.LoadDrvYA $50 .DA K.LoadLibYA .DA K.UnloadLibA - .DA 0 + .DA K.LoadExeYA .DA K.TimeYA .DA K.CTime2Time .DA K.PTime2Time diff --git a/SYS/KERNEL.S.LIB.txt b/SYS/KERNEL.S.LIB.txt index f93d70f4..b05bab4f 100644 --- a/SYS/KERNEL.S.LIB.txt +++ b/SYS/KERNEL.S.LIB.txt @@ -25,7 +25,7 @@ K.LoadLibYA >STYA K.LoadLib.Name save libname for K.FileSearch stx K.LoadLib.hFullName - jsr BIN.LoadExeYA Y,A=filename full path + jsr K.LoadExeYA Y,A=filename full path bcs .98 stx K.LoadLib.hMem diff --git a/SYS/KERNEL.S.PS.txt b/SYS/KERNEL.S.PS.txt index 185f0734..86fdb3a8 100644 --- a/SYS/KERNEL.S.PS.txt +++ b/SYS/KERNEL.S.PS.txt @@ -257,7 +257,7 @@ PS.Init >LDYA K.CreateProcess.CmdLine pla Restore PTR... ply - jsr BIN.LoadEXEYA Y,A=filename full path + >SYSCALL SYS.LoadExeYA Y,A=filename full path bcs .9 >STYA ZPQuickPtr4 save PTR to Code Segment