From 644992f28182ba3bb135bc32e19096fce9842879 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Thu, 12 Apr 2018 16:45:31 +0100 Subject: [PATCH] Kernel 0.9.1 : KERNEL, Preemtive mode, task switching (wip) --- .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes BIN/PS.S.txt | 12 ++++++++---- INC/A2osX.I.txt | 5 ++++- SYS/KERNEL.S.CORE.txt | 33 +++++++++++++++++++++++++-------- SYS/KERNEL.S.GP.txt | 18 ++++++++++++++---- SYS/KERNEL.S.INIT.txt | 2 ++ SYS/KERNEL.S.IRQ.txt | 24 ++++++++++++++---------- 8 files changed, 67 insertions(+), 27 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 3436eea794696a5de0a5517e158fa03974ca32b7..6c1f14df3e4982e85f4e8c600f348fbf9b512eab 100644 GIT binary patch delta 8740 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 delta 9178 zcmZu%3tSUdxgqH-Egzz5T1d_-@FuFcaKtT~G1go~)#@7~hEw*a+s<&NY7hH=O zR!rBCz3QE2SJz<)4Om6nCdTdB3*ObHyDp_Z)>aH|i)M47*<9#2N0NIp(xR;A$+J+QqpW*m&qHNSnDu+v8&o%jAq7IeNsEe1 zM`H->%}9+paXzR;#>(U6H79n3M;ugm5qc?2qY&uy-i+X|6Gwi_g+ynduPOk~o#Dsn zs1tR4=VYznwjBC@^7z?e!4>hkcB~C?h>vO~+Hg+C|D#>jM$%uU^2;O+89%Fie%n0m zX?}kD!nOs#8Qxyjw%9;Ny~95#u?QqdiBnYK*rw`coy0v@V+|$-`ZzQE2`4?2nKke7?k*H&i)%S)nvRCAyL(}*Vgqk(| zWM0FUe2#4ujhytoOvinCRR%m(X2WB%@OTLxTuA?jZ5%k>y|(|_LE*vuFRu}0_&lM> zn?>+LKggM_ubot3N!HUR6R}Y1Ur$z9Q%-%w`c~nQEcO%f@&uWH-_jsH6DuHaBdHSi`y&@z3Yl;6_nj@OI<*MxA&4=&0_}4|$#J?-D zpE}(*dqm;-3@yb{VkozH8^ame{^{IdTLWf!06$Ffd* zb0#u5c^02%lf!5oDlW8ZgvqD4FenNrE*y$NYwBoR>wV=~B>t;utVU?`#UhnSYB#KI zK!{86J3_v__rA~W^D%SAEQT>|Ie(M!`7HN++)UoZ*a=H7VJqcv`n=Pz&i;FXdBc@M zf0^M(;oo7hNFHZqySP7r$O|_u+ir5J{5sVp`svn8U>XsaVg;tZJz$#ikm+V7?*R^O z`vWM)VA_EAbL|+H(vLn|nCX%2QG9C-oy3k}!$Y1=4W^@*CbB0K{vEfRbji2#rQK%t z;qBz%yTN=ZlR`166d%UW6q80!my)feAL?31GyBo?>!9g^;_C;RJ`prAA7nCTT+G`p zO(b*5B`9SCo!Xb(TpT@=$wl)aP(b(!5ggNxnA0wfg5oU~eKYe?GL@q?fxVT0jAS4@QYKFBAF#dPEW>8?v02W- zvl?%x{Kw0dE$dmP31)J#or<$eZniV(ER&brj%`3WJZi=mO*S~f;|Zn@X7O%w`LNF; zqyIb0yh!66c6(*?u`F|m4S%~Z8-`q*?a759w{pS#$fG)nG?5o`vb{l5nr!%^-^$|u zV3yJLEdE?yPBz5pB{nOcs1C_en-DjTr>bvfafhVh8>#TYICHbPhb?t8!CcM)3_SVQ zEW0L~nUhWXe8`aPh_KJkX0o!mmw9CYeLKsnuuAfPhC~3ZGLYZGDoOQ+$n#Hwpf{~bT|a&)4eEs zh)47$>zS)s+90fR+nd7TNZ}U1Iyo&=Dei~~*VSENPul+u5jXV(Q?#LTit5GYho#Xg4!gYwvK|eeWI0(;d?4=mxEK>2Rh;tSlJL z_sClEbmp)2g$>Vj1Vb=sb>;~hd3~+c3qg0+e4!(>=fxjshoAI>fuyzI4>MbhS`RVR zs5NaUZ>nr~PP&(_2%F!Lt=nm!TY>K-xvUK`vot#5CXL58q za&+A}I{A>B@OX1Bc*aI;h?6;Ubd{RO5J$I8x2Fk$Xqi~OwMQ{&*Xq1Me30ReR(Jf2 zPB-lE1{qpf!Q2S9%p1aU+B}^in0Kt9?|i>=$Q|UlR{cp{6Mf}-;VV>`C>;~0Yhn~S zMy-Q=!W-GcVP|~45Hm;&UGRJZOwzvMf7&xBCY|yS)tym&>6FtK?%nE4iJ;d^w13bx zGBENA?TzGqK=hB$Uq$a*GccmLv44a<90LS}H%#*dG(L;jx6l#&N~t$kb9VoT4QXvS z{c7~SJm?psCas4i;#yyg=5T0qN1F+{C+1Q*Arxo=ACaY1g_HF?Qru%oy(97dm{>5yU9m^wOAW6eWlqN~E;O zlp@qV;PNiJG~hBv+T+|kE0QS1ybcDQC9OQVluCJ`?O9}%8+Nchab5GJX4$1Q%A=V2 z+y&En$JIwuooQ5vxyLKpe|ajAg1)`D+GH?EKJwQ49aJ&RK_*Y}D{^lEI7P4pWEhHq zfkfI!aDzh*L$SAlBK0MT@`m_FWxgS~!P93jsZEnhv2zD2}cG;z=G;7N8mjZ-C%v~ zc5&+g>R85HQ1&>#Q8Fe1;812QVIl|uBQOjjNlF#2{1-n*t6+}f ztv~)WNwriZjkpEMAHlax#i_Uz*2ABsV?VT>`*cD5xXK(q903Q@b(J|Pgw}?bd%4)Y z*JA0-vGhgN&UeLN_ofk)>4t!M_q$t$G>vo~= zx_zlacz-`pclTtPF@6))ps#DtFVR=kR2e(<6_4%8%r9^U<)egW1C+|z>T*8?NV0sC z)Dj>yR995g?UAJNfk*;zGy8l3mWVyac0$qmyu?~pS5>}O;447UTl`Q}xkW$kRx{~;l3>huj&YbwAn&_5f+Z1*!( z)T|VZFd)?qKU7y=v7~C1ID|P!wKJe`+lHzZam)qzDE2?umPAa|`r<=k#g;9iNI@Zr zeo2Ds%l3=oD?-%IBxF(j(lTkxvyigYFAQKqhsaorqIUTirJhPq)XNgEN&;r1sGm!~ zY5R$)2^4f}(6*b1)g3;jp{|exbHTt8x1j!Fc z+M^GH)gt$<24j6=nGwm4NECh4e}fMyRvPt7M4!Q;-~xc&Sdee56z$F|a0ln3#MjuU z6f6O=vAPs&0rneqQwp}Q^{Ah}sk~yPH0>z*m>*kQ;E(_4-vy9D5rObO?nfS%cp&`w z03z{}AXyL0K;-Ww_?N;!4M^TAS)O4B*jTlK&84xV*?m%@Lch9VQN73s`=)-*9F+Ka zfU=^t##qUSQ`}ad*F#*#JJ_GmSlpcc083?Uqa-{Fg!P3*C}|)-T2WQgXsi%zFBXW! zb5PO=)bE7HR|U;Qg-Gs{R7bdAZX5Ivz{Xuj zepUjNZeSK5{R#+ssY8@_?om*`s#feKBOi7(l=z2fw8tOP3Q;2V4jY*U^ZrLR4~jYG zr?V~%sDXVX@!e^(`UkW^p#2ZqDrgyE{|kyA3{U55^lK@|&qv7@u-r$?*Ecj6UlB%~ zkzWYZl>cSFOv93~Ke38*C@!%x(?RQd?DBM&3lG~QfbX-vfTH!!)Adx>ESL1mf-xid zFVm^z4YmF)Afs5MU!G2Hct|f1=qZ1lPG3^Bq*mNuGG+_pxDPP3e-N-R#3?9j6ZfsS zQFdMirjGwG;DM!8WQaWnn*f_6v{^2zq0eU`YW|c^@G9`iiCE z0g#VWUp_?3tLmlW1I2#z5G{kLkhTC6`}IS3aR4qts&80DHl~dG`$MW27}6+_`dfBE zHWq96?jc#2cTwkTB)==!t^P-V490uF_7dI{uBf1F1BHZsIL878sv}hJmW7FWe#eyZWUBxI7XLEC~gt-I` zrjU;?iKZC96d5j_c(Fkbh!rdK4_;`Jg4xy_EHOw9@>B@>S`HR7FI19HgyF)DBu*GC zIV2C4@PvqfCUGh0D;t&@r4tz?%wWAaSUeWVhH0<_gJL>keZ``3krB*}nofGWzRFl3 z9#JJIDVqJE226?plT;LI)?msIrGF4A_J{^kJsum77A8&Kps#&yW6Q=3;t^ValGXo0 zE!(tttDg#U7dMUCv|{74e%Hsxvtep^Tu4HIVK6lpdy3G+Ozyj9*&B1vTSSK|9eNJY zF_UlwgnHVL`D=RFWRFl+(aYH1>9Dk5<0O5RqK&LahsDocBs7NTMUxji-$Jd2_EVw# z9kkUBL*Hs;?<%Em`h$I?9Jh-KoCMU6W3 z6r_3F{{Ch0K=hGg~~&*Xy75oq1DPmDkK=`Ethyh#*?he3Mf4GfRvr`#e%fjIp|gp8$|(>5 zWnOSvwmIPr30YjtVyKM;C|CNBr}LLiZHN0F{cESqCutSLUOdd^7Gk-@?>m_uLJ~z# zf!k{(*uq4+n&fJ&+_0U=b#>;rELpCmdpmD=u%S+!%c5srDa1;i>~|gNcPVBWOpt>- zV|HsG%?8DpJ?^Oi7i41xT@H2MDVKA5utx5k(f76s*yuN1A`x=>Z+0TA55s;9^Esp4 z*LJ@zf#S&i`x@LEe1-016N<1#s{)_FK39b4z{N+3u!;pRcC*LQ>VZ5=sBrVQpYjL= z7t|lxBV1_#_GS;`-YmHIhYFsudn~;kPSzh9zvunXW3w5 z>^ysV9X1QH&HFGDM@sSbt&qX!y!}31J>vM0ZHOo6^KAHfENdpD{z}Zzw)ds! zR7tac`#uaaiuWFXw01olX=_;XdMq~byc6s~UP4GoKy zgs0=PvGarF>G&`4=$0`@7}G~s>_i7gbRk$S>_jF$2yBP5@Ry)S$i_1v@)u>}+K5eK zj_l5mQ7%YuA-gjhk1vHhjKM^I{x{*57Fsg`IcRY;FBHA|^e80PaBrsVk9?>wY}(#O z3`ct61fNrWpI^?#b4WaiSL5k?5QZ0E&6X$_(gJqCO+wu!xCz;nSQ^&I@Z zP7rAW&v3!c=SREHo(qca=z%LXUk4An@8#9!Lqq{3J$ZhejeV0 z?O^{j5C0F)S3V!#h;^_%^YN7js-gD<5RIwTxEAKo5e^gGN7&xsgTc2?R^#(Py1N?B zf}j&R9zfnGA^uk1u&lb#)MS6+281Wc48`by%EMYKt1zv%HpEuOt-x6}sPnGmD z?7DjJX9v5d9xsJrxE}uwigOKk5$OMW11^NF(g=fI!&;5_%&Z*~jzqil1Ns?%uOak) zB+e9oJ>pP-*uma1;)!9gl;KY2D6@amu4W?}@dRxwrGBvU-Zg{tGy(D(O}{ZYyqFH#1jWox8O7u*&Pj`0xkl6 z8~Qwht=o#LmSj*@rZOq-Kkb7hMSS~2nBw{o6b{1;r*{l$3yI6vfqg{k?)}8E z{iK3T-A8P|)(r06N9@E7*hn3{aI9l|&BQYko5q^Qc1(N%pK}uzCx}U6a{c77$y1Z; zV>a?dcGyOG<}qh)HdSgAo|aDMP0L$1kKV65>Z`Qh4X(7uxGNdlZKt3h-E_oQlY(Gm zZsAF|o0z-7%&Y9kZ^)eV!NWMl#~dcG9L^`4l@7Ahe)i_2e%B_$nEz}V^qnU${Md0) zQR|&8ol<7Ca75)kIHKrBk0|Y3S6zhtgezapf4w4;WHMpO|LsXNmwo=XWM-?9>WUUN z8L*6-K|eJHc5^|tASY5wxXD(kwV_VKI5T_v;46{dP>omJtk_3P%^qh;#zC{XJ*rJ% zL*}eo^v}iz6#2<^!#Er$L2xE2JW+7MDK3_bd*nk<&K~#Xd>*9s{8eI!vg7I%hC3zW zUiooY6?4WNrrwfq`|NR{+6X)$=KTsysaGecVj{*t1v6vZUNTs`*yBgZV(c0AZ%4_vyk{l`6pH(hNmtl|)ZTR1alpvLOHhvo zKx`_$6nnsry-Chkpcc9z)H~ItUQ%tBsiAJc)#fjD3U3$j6XGxWZurH7Zc#NEZsW(B zZa)&j>8$BASp{A9oFNHf*|}oVTqBgaMzai6XIPZ`7L5q#o~%GeZ%^-Ege7J zy5(g^`cxTf>-BZ@kWM>KbOW|4fK}B%mhQdjSVM);xXOr>A5MoWYgbet>JHJpX~WuG z=_?wR>MP++Qc;hn?^*?L`>vUffKeDJc2u{exn{3Zjz~HjlM&l+F@tB|tSkmUE zA=MMD|Bgqtkvxo|HcO(+08Q+_RrDJ0 z#r@uIzGQUGV|qwDmeG!-HD;Q6T^-rhHv diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index e4eee71dcc38e180691c1fc05ba3c176dab7cd8d..37ce132670a334dc24d8444a63d0883b282e7850 100644 GIT binary patch delta 17713 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 TvoSkU7Mq*Em;zLDYA pData >PUSHEA.G PS.FLAGS + ldy #S.PS.STATS + lda (ZPPtr),y + >PUSHA CPU% + ldy #S.PS.PID lda (ZPPtr),y >PUSHA PID @@ -95,7 +99,7 @@ CS.RUN >LDYA pData .8 * lda #0 tell Kernel that all done ok, but sec we do not want to stay in memory - rts + rts *-------------------------------------- CS.DOEVENT sec rts @@ -104,9 +108,9 @@ CS.QUIT clc rts *-------------------------------------- CS.END -MSG0 .AZ "ID Flags PID Command Line\r\n" -MSG1 .AZ "%03d %s %03d %s\r\n" -MSG.FLAGS .AS "-IHSED--" +MSG0 .AZ "ID CPU\% Flags PID Command Line\r\n" +MSG1 .AZ "%03d %03d\% %s %03d %s\r\n" +MSG.FLAGS .AS "IRHSED--" *-------------------------------------- .DUMMY .OR 0 diff --git a/INC/A2osX.I.txt b/INC/A2osX.I.txt index aa6a0998..ac308fd6 100644 --- a/INC/A2osX.I.txt +++ b/INC/A2osX.I.txt @@ -361,7 +361,8 @@ S.DSTAT .EQ 25 * PS STRUCT *-------------------------------------- S.PS.F .EQ 0 -S.PS.F.INIT .EQ %01000000 +S.PS.F.INIT .EQ %10000000 +S.PS.F.RUN .EQ %01000000 S.PS.F.HOLD .EQ %00100000 S.PS.F.SLEEP .EQ %00010000 S.PS.F.EVENT .EQ %00001000 @@ -389,6 +390,8 @@ S.PS.P .EQ 19 S.PS.PC .EQ 20 WORD S.PS.S .EQ 22 +S.PS.STATS .EQ 23 + S.PS.ZP .EQ 24 S.PS.ZP.CODE .EQ 24 diff --git a/SYS/KERNEL.S.CORE.txt b/SYS/KERNEL.S.CORE.txt index 9ed33980..c3816600 100644 --- a/SYS/KERNEL.S.CORE.txt +++ b/SYS/KERNEL.S.CORE.txt @@ -14,7 +14,7 @@ CORE.Run lda CORE.PSCount lda PS.Table.hMem-1,x jsr K.GetMemPtr.A - >STYA pPS + >STYA pPs lda (pPs) get S.PS.F bit #S.PS.F.HOLD Waiting for Another Task to Terminate? @@ -47,6 +47,7 @@ CORE.Run lda CORE.PSCount beq .4 and #$FF^S.PS.F.INIT unmark as INIT + ora #S.PS.F.RUN mark as RUN sta (pPS) ldx #TSKMGR.INIT @@ -54,6 +55,7 @@ CORE.Run lda CORE.PSCount .4 ldx #TSKMGR.RUN jsr pCodeJmp Call INIT/RUN function + dec IRQ.InKernel bcc .7 INIT/RUN/RESUME said CS=QUIT? .5 tax save RC @@ -76,7 +78,7 @@ CORE.Run lda CORE.PSCount .6 ldx #TSKMGR.QUIT Quit this process jsr pCodeJmp Call QUIT function - + dec IRQ.InKernel ldy #S.PS.PID lda (pPs),y jsr CORE.PSFree.A @@ -249,6 +251,7 @@ CORE.Dispatch lda CORE.PSCount ldx #TSKMGR.DOEVENT jsr pCodeJmp Call DOEVENT function + dec IRQ.InKernel bcs .3 not for this PS, try next event in list jsr CORE.DestroyEvent this PS handled the EVT, destroy it... @@ -275,7 +278,16 @@ CORE.Dispatch lda CORE.PSCount .8 clc rts *-------------------------------------- -pCodeJmp jmp (pCode) +pCodeJmp lda pCode+1 + pha + lda pCode + pha + php + sei + inc IRQ.InKernel + rti + + jmp (pCode) *-------------------------------------- CORE.Quit clc rts @@ -440,6 +452,8 @@ CORE.PSLeave ldy #S.PS.ZP+ZPBIN.SIZE-1 rts *-------------------------------------- CORE.Sleep php + dec IRQ.InKernel + phy ldy #S.PS.A sta (pPs),y @@ -457,10 +471,13 @@ CORE.Sleep php sta (pPs),y pla get PC LO + clc + adc #1 Advance one byte because of return by RTI iny #S.PS.PC sta (pPs),y pla get PC HI + adc #0 iny #S.PS.PC+1 sta (pPs),y @@ -483,8 +500,7 @@ CORE.Sleep php .8 lda (pPs) ora #S.PS.F.SLEEP sta (pPs) - - + clc exit to kernel with CC rts *-------------------------------------- @@ -523,8 +539,9 @@ CORE.Resume ldy #S.PS.S lda (pPs),y ply - plp - rts + sei + inc IRQ.InKernel + rti *-------------------------------------- TSKMGR.EVENTCNT .BS 1 *-------------------------------------- @@ -547,7 +564,7 @@ CORE.Tick10t .BS 1 CORE.Counter .BS 1 CORE.PSCount .DA #0 CORE.LastPSID .DA #0 -CORE.S.PS0 .BS S.PS.PC+2 +CORE.S.PS0 .BS S.PS.hARGS+1 *-------------------------------------- MAN SAVE /A2OSX.SRC/SYS/KERNEL.S.CORE diff --git a/SYS/KERNEL.S.GP.txt b/SYS/KERNEL.S.GP.txt index e04bf8a1..d0e81ccc 100644 --- a/SYS/KERNEL.S.GP.txt +++ b/SYS/KERNEL.S.GP.txt @@ -49,16 +49,26 @@ AUTO 4,1 GP.SysCall dec IRQ.InKernel bit K.SYSCALL.BANK,x - bpl .8 in $E000, no BNK change + bmi .1 - sta .7+1 save A (Func Arg) + jsr .8 in $E000, no BNK change + + inc IRQ.InKernel + rts + +.1 sta .7+1 save A (Func Arg) lda K.SYSCALL.BANK,x Get Target BNK cmp $D000 #RRAMWRAMBNK1 or #RRAMWRAMBNK2 - beq .7 same as actual BNK...go restore A and JMP + bne .2 - stx .6+1 save X (Func ID) + jsr .7 same as actual BNK...go restore A and JMP + + inc IRQ.InKernel + rts + +.2 stx .6+1 save X (Func ID) tax set Target BNK in x lda $D000 get source BNK diff --git a/SYS/KERNEL.S.INIT.txt b/SYS/KERNEL.S.INIT.txt index fa124ac5..cf2091c1 100644 --- a/SYS/KERNEL.S.INIT.txt +++ b/SYS/KERNEL.S.INIT.txt @@ -583,6 +583,8 @@ IrqMgrInit >LDYAI MSG.IRQ lda K.MLI.PARAMS+1 sta IRQ.INTNUM + lda #$ff + sta IRQ.InKernel plp jsr IrqMgrInit.TClock diff --git a/SYS/KERNEL.S.IRQ.txt b/SYS/KERNEL.S.IRQ.txt index 87d682f4..c775c9a6 100644 --- a/SYS/KERNEL.S.IRQ.txt +++ b/SYS/KERNEL.S.IRQ.txt @@ -14,12 +14,14 @@ AUTO 4,1 MSLOT .EQ $7f8 *-------------------------------------- K.IrqHAuxLC cld + + sec sta K.IrqHAuxLC.6+1 pla pha and #$10 BRK? - bne K.IrqHAuxLC.7 + bne K.IrqHAuxLC.6 stx K.IrqHAuxLC.5+1 sty K.IrqHAuxLC.4+1 @@ -66,7 +68,7 @@ K.IrqHAuxLC.3 pla pla sta $fe bvc K.IrqHAuxLC.4 no task switching - + php php make room for 2 additional bytes php keep track of C @@ -91,13 +93,11 @@ K.IrqHAuxLC.3 pla K.IrqHAuxLC.4 ldy #$ff Self Modified K.IrqHAuxLC.5 ldx #$ff Self Modified K.IrqHAuxLC.6 lda #$ff Self Modified - bcs K.IrqHAuxLC.8 not handled, pass to ProDOS - rti + bcc K.IrqHAuxLC.8 -K.IrqHAuxLC.7 lda K.IrqHAuxLC.6+1 - -K.IrqHAuxLC.8 dec IRQ.SkipA2osX Make regular ProDOS IRQ manager skip A2osX - jmp (K.IRQ.OldFFFE) + dec IRQ.SkipA2osX Make regular ProDOS IRQ manager skip A2osX + jmp (K.IRQ.OldFFFE) Not handled, pass to ProDOS +K.IrqHAuxLC.8 rti *-------------------------------------- * Called by : * - Kernel K.IrqHAuxLC @@ -130,9 +130,9 @@ K.IrqH.Switch inc IRQ.Tick bit A2osX.F A2osX.F.PMODE .EQ %01000000 bvc .8 - + lda IRQ.InKernel keep V flag set - bmi .8 + bmi .9 lda #$A0+'S eor SYS.BASL0+37 @@ -140,6 +140,10 @@ K.IrqH.Switch inc IRQ.Tick .8 clc exit with V flag set rts + +.9 clv + clc + rts *-------------------------------------- K.IrqH.DEV >LDYAI Dev.Table >STYA $fe