From 42d6f9f9107abeae1995d64f1c924928a8e0efc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Mon, 3 Dec 2018 07:59:30 +0100 Subject: [PATCH] Kernel 0.92 : DEBUG CODE --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/FORMAT.S.txt | 4 +- BIN/PS.S.txt | 2 +- BIN/SHELL.S.CL.txt | 7 +- BIN/SHELL.S.txt | 45 +++++++++++-- DRV/CONSOLE.DRV.S.txt | 10 ++- INC/KERNEL.I.txt | 141 +-------------------------------------- SYS/KERNEL.S.DEF.txt | 27 +------- SYS/KERNEL.S.DRV.txt | 4 +- SYS/KERNEL.S.INIT.txt | 29 +++++--- SYS/KERNEL.S.IO.txt | 6 +- SYS/KERNEL.S.PS.txt | 5 +- SYS/KERNEL.S.STDIO.txt | 13 +++- SYS/KERNEL.S.txt | 1 + 14 files changed, 102 insertions(+), 192 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 7272aed06c9c09f136ec3f44ff41e208e3f37f27..e5ec8cac3702e035bf22368b9362dbed172d527e 100644 GIT binary patch delta 68604 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%0AGHe z4U~T_JbZD;=L7Z=W={k=N72?4PTcih`ET%ZJ5|}EJ_@D)Es$c0I<#(utJay_&}p)M z6wH^0)f+mbZnf*IBY<=DICC002bgM8l55A^G;(;z6Raiw1^#4Mi~PWq?!o+`2&byy zWWCOLUu!39nx@CMXq>9nle{XS#oL(!FsTbA7g-+)I`FxlhS!F4tD2;y*3PS_p%Z4# zugOJxT_Qg<0`Gc){dVy10vl>J$rtH>!L%?9r&(0=cb+`0oc~>x+CDWL)9JF z5$xtRWYz9<1=o6ajCRX5bo;nQL;ZG}`!r5^lC9E>53lzv;tS06%9q_L{)V}Q<1ga3 zo@7VpibGlkbl!3+oby^cBYy*#74bh{*#;`rk_k+3i z>)O9FXW{W1*g^Qv1~y&}B)CqX_x%ReIP{>oMb3X5$6tg%hwFH)#PtC$fd0G}6d4bd zhHYfC_iSP%__2-bjPT+J=S&`ci1fXhE`zP4q!(EsccjUrK9dM@qN)<aDiFTf&|2IG{mj8_#cGBSN7{KGbiqbQHLWl22*qtc~f&bC2zh+0wv< zkKy9#4>~7H=H*XX$O&gqZ8#?)HON+u;JcXc2YvWxT*})VWCO zykcqjQmi8*xX0ICsJnRJLdOH{b|=$%!TlDS`|YLXH=~OZYsG@ccET#`63Uno@1>S z8ZNv4*zTOx(CM7s&}jujeSJIoF84@S^_tmLv&#?d-@$&!&KhS;pP6FME3l+gEu4n@ z|I6$cS5OEL8rVVF4#qM<@Mj_@Bog@_XLeNA6x%5vArk37WOfMtQF2{I`TVl-h4$HT zDBxrKYO9}dlJW!;Ru$VVBarM9W(QKZ8A~!Iev|T323#fZoWM2uA0wQXsy}0*2rubN zD>KTMA@9$bsK>I(N1?zk@RPgPA-0q7oV&DU6bkr~iF!Q6KGt3eTOE5%g}uCFxjiFi z8d9Hvf*DYdRszy9fw@m++M5*dYO5F*_Ngl!@gng-#h(+&9ckzr2Uq$#NQ?2D|d+ar8EC!C3~9Spxw{M_t4c2_D5#V%d9Ux z^C26y=OimR*vY;pQS4>;V6f^((B4BQ&awAyZ-2`B;x*^lFy$+(5dI|LcHDfP%~F-IuAz>HSTHk^9S>pl0vj4$ z=3<5TDBJX&O93<;BiRt^?-n}jfa z=Jqmaoup1$T88S_IymTYNjB|g9j_jG?gBea!mPx}typz}dTbd8gQYc&b;zPbQp{`C|PQHdOC>&Gi>pPy3Y?rFG^ta%HV6an2PsEAj76 z=^6EzfHRHz*v4kIaX(wDZTdtQ*?L8hXN;rZ0E;!fxsP3m(2jlh_!V}zX&<|z?#y~{ zo<%+IbxHtXW*s(NWrLZ0c=T14&-&<$!1c#x;M5IvTimf7$hUoh`=?FFR~VIM76!fP z9ics{Hkq3ZXPdz3QgwS@xxl-BEp`1}wAueGegViy2|7M@l^w*)!rxqF(=+#+Z6T=y z$c0K^KpRleT1g%2QY7=Y&$jr^aw)xZE;i7C#ibzGI`j0Cg~*hfjaU z#xQ?juWM|XMAe0tTw}E=RoC%0_jUG{Js+`(m)^g@N^C2ddY*B3w{J$wW`=3fwp}vs zY$emo!L>UrLRNzFL09ZrRL6iw{fPjaX4fCQSFm%0D{1YRy0OlauCZ&!)s2T@pS7uV zY013*y8?_>X%njSxc-7F&`!+b3q(mywV)BKERtcOt z!4+u<6almGk<)CjGz-uUz5hMCOrl}BS`3@!oO3*QZr=kZo9CS5Zyd`0kv$<{%J86H z*dfsmooX>VN=|`bg1APc<^xW*a5sZE{;|$_MP_r!DZW7i>gnnM7@qYDo0??r+;D5B z(}yoS%c8=T$^uz!#F{>yIl7O9g1Y4~9GFYJS1!JREd&SkDn z9(bCvY3gamw9`#JSK4}db|SU=H<-D#>eG+l!e7}a#*S^jvU4HEdg)h~VG zQYq|z&@qzdytUwb3w;CVk8|H}E=ubO(?J{_U%pB#;69ieAyKkInJE#H6WeD`s;xnoUtDBpIu z-WQ(T0arF3I`4Sne60bVF8Fot-TB6O0;=7;9su3kt~buxX7NE?tE}iO0eArb9-E&( z+s*P{f4%?p^Sh`GCFAR}`T4U=J>9JJhcit*MVW%JnR8CKJV-C+&I(Um^ztpeT!A3g zjkB-?g3(64kkaG+t!aE4Vrg?bB>5}`{tZ$e()SmWVw0TxlQVG4!?7a%5$(J z2sT}LtYcKS*G}YnrM7!RchV*$*4<()%v79qi%pXnyZBnX;TE``yYSn$Kufmb3%6LK zZS46LDZlBw=>_SFvLZ4>JV03ff%7od6T9kfIp1)dC;IpUN#lafI(v>EyV5F!X57DR ze*JtA5gOwTZ3dx$T~-PU#G$^mI|iL_2yf9|rZ_HFm_3bab@q!!B`RL1RvNjMF#9sfuwjF-}R0lWjfO_+3}yk6lgN?+RFd7k}5~ z_^u1CKXy5O>?%F({_a%sk6kc;qh05lzw62*u}ye#oiBwBxS;QFY76}cAnXFO{(NE= z2np`wE}m%D_aL2G9Cw@5M{GI|CAHrq7ZC}r^{SJ@Bm5zYm9)VNobzsu-+G?kg%{su z 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 O5RZ@@5Uremtp5Qhl~K+B diff --git a/BIN/FORMAT.S.txt b/BIN/FORMAT.S.txt index 8a785fa3..422f82fe 100644 --- a/BIN/FORMAT.S.txt +++ b/BIN/FORMAT.S.txt @@ -23,7 +23,7 @@ CS.START cld .DA 0 .DA CS.END-CS.START CS .DA DS.END-DS.START DS - .DA #16 SS + .DA #32 SS .DA #6 ZP .DA 0 *-------------------------------------- @@ -343,5 +343,5 @@ DIB .BS S.DIB DS.END .ED *-------------------------------------- MAN -SAVE USR/SRC/BIN/BIN/FORMAT.S +SAVE USR/SRC/BIN/FORMAT.S ASM diff --git a/BIN/PS.S.txt b/BIN/PS.S.txt index c516c9c3..ed78f8e5 100644 --- a/BIN/PS.S.txt +++ b/BIN/PS.S.txt @@ -141,5 +141,5 @@ DS.END .ED *-------------------------------------- MAN -SAVE USR/SRC/BIN/BIN/PS.S +SAVE USR/SRC/BIN/PS.S ASM diff --git a/BIN/SHELL.S.CL.txt b/BIN/SHELL.S.CL.txt index 28ee2359..c78d08f8 100644 --- a/BIN/SHELL.S.CL.txt +++ b/BIN/SHELL.S.CL.txt @@ -264,8 +264,13 @@ CL.PrintCmdBuf >LDYA ZPCLBuf CL.GetLine >LDYA ZPFileBufPtr >STYA.G CMD.FileBufPtr + lda #"a" + sta $815 + lda (ZPFileBufPtr) beq .9 + + inc $815 ldx #0 not in " @@ -273,7 +278,7 @@ CL.GetLine >LDYA ZPFileBufPtr .1 lda (ZPFileBufPtr),y beq .7 - + inc $815 cmp #C.CR beq .6 diff --git a/BIN/SHELL.S.txt b/BIN/SHELL.S.txt index 20e4f194..06cad22a 100644 --- a/BIN/SHELL.S.txt +++ b/BIN/SHELL.S.txt @@ -166,24 +166,50 @@ J.CMD.Eval.TOKEN4 .DA M32.Add L.M32.Printf .DA M32.Printf L.ERR.Codes .DA ERR.Codes L.ERR.Messages .DA ERR.Messages +L.MSG.DEBUG .DA MSG.DEBUG .DO CSH=1 .INB USR/SRC/BIN/SHELL.R.CSH .FIN .DA 0 *-------------------------------------- +CS.DEBUG >PUSHWI K.VER + >PUSHBI 2 + >LDYA L.MSG.GREETINGS + >SYSCALL printf + + lda #0 + >SYSCALL ArgV + >PUSHYA + >PUSHBI 2 + >LDYA L.MSG.DEBUG + >SYSCALL printf + + lda #1 + >SYSCALL ArgV + >PUSHYA + >PUSHBI 2 + >LDYA L.MSG.DEBUG + >SYSCALL printf + rts +*-------------------------------------- CS.INIT clc CS.INIT.RTS rts *-------------------------------------- -CS.RUN jsr CMD.Init +CS.RUN lda #"I" + sta $819 + sta $817 + + jsr CMD.Init bcs CS.INIT.RTS ldy #S.PS.ARGC lda (pPS),y beq .1 no arg, continue starting interactive + jsr CS.DEBUG + lda #1 >SYSCALL ArgV - >SYSCALL LoadTxtFile bcs CS.INIT.RTS @@ -209,7 +235,7 @@ CS.RUN jsr CMD.Init >PUSHBI 2 >LDYA L.MSG.GREETINGS >SYSCALL printf - bcs CS.INIT.RTS +* bcs CS.INIT.RTS *-------------------------------------- CS.RUN.LOOP jsr CL.Reset jsr IO.Reset @@ -259,7 +285,7 @@ CS.RUN.LOOP jsr CL.Reset bne .7 .62 >LDA.G hFileBuf batch mode ? - beq CS.RUN.INTERCATIVE + beq CS.RUN.INTERACTIVE jmp CS.RUN.BATCH .7 jmp CS.RUN.READ @@ -267,7 +293,7 @@ CS.RUN.LOOP jsr CL.Reset .9 sec rts *-------------------------------------- -CS.RUN.INTERCATIVE +CS.RUN.INTERACTIVE jsr CL.PrintPrompt bcs .9 @@ -356,10 +382,13 @@ CS.RUN.BATCH >SYSCALL GetChar jsr CL.GetLine .FIN bcc .7 - + cmp #C.EOF bne .3 + lda #"\" + sta $819 + lda #$ff >STA.G bExit inc @@ -369,7 +398,8 @@ CS.RUN.BATCH >SYSCALL GetChar .3 sec bra CS.RUN.LOOP.END -.7 >LDA.G CL.bExec +.7 inc $817 + >LDA.G CL.bExec bpl CS.RUN.LOOP.80 lda (ZPCLBuf) @@ -564,6 +594,7 @@ ENV.PATH .AZ "PATH" ENV.PWD .AZ "PWD" ENV.PS1 .AZ "PS1" ENV.HOME .AZ "HOME" +MSG.DEBUG .AZ "{%s}\r\n" *-------------------------------------- * https://www.tldp.org/LDP/abs/html/io-redirection.html *-------------------------------------- diff --git a/DRV/CONSOLE.DRV.S.txt b/DRV/CONSOLE.DRV.S.txt index 81521fbe..557acfcf 100644 --- a/DRV/CONSOLE.DRV.S.txt +++ b/DRV/CONSOLE.DRV.S.txt @@ -149,7 +149,12 @@ STATUS >STYA ZPIOCTL OPEN sta A2osX.SCRNDEVS DEV.ID in A lda #S.DIB.S.OPENED - tsb DIB+S.DIB.S + ora DIB+S.DIB.S + sta DIB+S.DIB.S + + lda #"C" + sta $417 + sta $817 stz OutPtr stz OutCnt @@ -163,6 +168,9 @@ CONTROL sta SETTEXT sta CLRPAGE2 lda #1 sta A2osX.ASCREEN + lda #"c" + sta $417 + sta $817 clc rts *-------------------------------------- diff --git a/INC/KERNEL.I.txt b/INC/KERNEL.I.txt index 0f7b9018..e5ac81df 100644 --- a/INC/KERNEL.I.txt +++ b/INC/KERNEL.I.txt @@ -3,94 +3,6 @@ PREFIX AUTO 4,1 .LIST OFF *-------------------------------------- -ZPKERNEL .EQ $0 -ZPMEMMGR .EQ $10 -*-------------------------------------- -ZPPtr1 .EQ ZPKERNEL -ZPPtr2 .EQ ZPKERNEL+2 -ZPPtr3 .EQ ZPKERNEL+4 -ZPPtr4 .EQ ZPKERNEL+6 - -pFD .EQ ZPKERNEL+10 -pDRV .EQ ZPKERNEL+12 -pIOCTL .EQ ZPKERNEL+12 -pIOBuf .EQ ZPKERNEL+14 -*-------------------------------------- -SYS.BASL0 .EQ $800 -*-------------------------------------- -* AuxMove / XFer -*-------------------------------------- -A1L .EQ $3C -A2L .EQ $3E -A4L .EQ $42 - -XFer.JMP .EQ $3ED - -AuxMove .EQ $C311 -XFer .EQ $C314 CS:M->X, VS:Use Aux ZP -*-------------------------------------- -* $42-$47 ProDOS Block Device Drivers Main -*-------------------------------------- -DRV.BLK.Cmd .EQ $42 -DRV.BLK.UnitNum .EQ $43 -DRV.BLK.Buf .EQ $44 -DRV.BLK.BlkNum .EQ $47 -*-------------------------------------- -* $5E-$C8 RESERVED APPLESOFT Main/Aux (ROM Call, no need to switch back MainZP) -*-------------------------------------- -SIGNFLG .EQ $16 COS,SIN,TAN -INDEX .EQ $5E ->$5F -FORPNT .EQ $85 ->$86 -FAC .EQ $9D ->$A1 -FAC.SIGN .EQ $A2 -ARG .EQ $A5 -> $A9 (5 bytes) -ARG.SIGN .EQ $AA -*FAC.EXTENSION .EQ $AC -TXTPTR .EQ $B8 -*-------------------------------------- -* ROM Entry Point -*-------------------------------------- -ROM.FSUB .EQ 0 -ROM.FADD .EQ 2 -ROM.LTOF .EQ 4 -ROM.LOG .EQ 6 -ROM.FMULT .EQ 8 -ROM.SETARG .EQ 10 -ROM.FDIV .EQ 12 -ROM.SETFAC .EQ 14 - -ROM.GETFAC .EQ 16 Copy FAC to (FORPNT) -ROM.FCOMP .EQ 18 -ROM.QINT .EQ 20 -ROM.FIN .EQ 22 -ROM.FOUT .EQ 24 -ROM.SQR .EQ 26 -ROM.PWR .EQ 28 -ROM.EXP .EQ 30 - -ROM.COS .EQ 32 -ROM.SIN .EQ 34 -ROM.TAN .EQ 36 -ROM.ATAN .EQ 38 -*-------------------------------------- -* Memory Map -*-------------------------------------- -A2osX.SaveSM .EQ $100 Aux -A2osX.SaveSX .EQ $101 Aux -*-------------------------------------- -* Main $200 -> 2FF : (Used By ProDOS,Clock DRV....) -* Main $300 -> 3EF : -* Main $3F0 -> 3FF : SYS Vectors (reset,IRQ...) -* Aux $200 -> 3FD : /RAM Driver -* Aux $3FE -> 3FF : IRQ Vector -*-------------------------------------- -K.S.STAT .EQ $0300 S.STAT for internal kernel operations -K.S.IOCTL .EQ K.S.STAT+S.STAT 9 bytes -K.MLI.PATH .EQ K.S.IOCTL+S.IOCTL 64+1 -K.MLI.PARAMS .EQ K.MLI.PATH+MLI.MAXPATH+1 Main, 18 bytes min for GetFileInfo (ATLK needs MORE!!!...32 max for now) -*-------------------------------------- -K.STACKTOP .EQ $03ED XFer !!! down to $3E0 -*-------------------------------------- *** $3F0-$3FF IRQ Handler.... *** *-------------------------------------- * Main/Aux $400 -> $7FF : TXT PAGE1 Console Screen @@ -112,58 +24,9 @@ PS.Table.Stats .EQ $0CE0 K.PS.MAX OF.Table.hPath .EQ $0D00 K.OF.MAX OF.Table.hFD .EQ $0D20 K.OF.MAX *-------------------------------------- -Evt.Table .EQ $0D40 K.EVT.MAX*S.EVT.SIZE=4*8=32b +Evt.Table .EQ $0D40 K.EVT.MAX*S.EVT=4*8=32b *-------------------------------------- -Flt.Table .EQ $0D60 K.FLT.MAX*S.FLT.SIZE=4*32=128b -*-------------------------------------- -K.Buf256 .EQ $0E00 -*-------------------------------------- -K.IOBuf .EQ $0F00 -*-------------------------------------- -*** Z80 Reserved $1000-10FF*** -*-------------------------------------- -Z80CODE .EQ $1000 (00000h) Up To $10FF -Z80STACK .EQ $10FF (000FFh) Down to $1000 -*-------------------------------------- -* CORE $1100->$17FF = $700 Main -*-------------------------------------- -* MemMgr : $1800->$1FFF MAIN/AUX (2 kBytes) -*-------------------------------------- -Mem.Table .EQ $1800 Slot 0 is Reserved -Mem.LoMem .EQ $1800 -Mem.Free .EQ $1802 -Mem.HiMem .EQ $1804 -Mem.LastSlot .EQ $1806 -*-------------------------------------- -Mem.MLoMem .EQ $2000 -Mem.MHiMem .EQ $BD00 -Mem.XLoMem .EQ $2000 -Mem.XHiMem .EQ $C000 -*-------------------------------------- -DevMgr.HiMem .EQ $FFFA Protect IRQ vectors in Aux LC -*-------------------------------------- -H.BIN.T .EQ 0 -H.BIN.T.DRV65 .EQ $4CD8 6502:cld,jmp abs -H.BIN.T.LIB65 .EQ $7CD8 6502:cld,jmp (abs,x) -H.BIN.T.BIN65 .EQ $7CD8 6502:cld,jmp (abs,x) -*H.BIN.T.LIB80 .EQ $A28D Z80: -*H.BIN.T.BIN80 .EQ $A28D Z80: -H.BIN.JMP .EQ 2 -H.BIN.CPU .EQ 4 -H.BIN.CPU.6502 .EQ $60 -H.BIN.CPU.65C02 .EQ $61 -H.BIN.CPU.65R02 .EQ $62 -H.BIN.CPU.65816 .EQ $63 -H.BIN.V .EQ 5 -H.BIN.F .EQ 6 -H.BIN.CS.SIZE .EQ 8 -H.BIN.DS.SIZE .EQ 10 -H.BIN.SS.SIZE .EQ 12 -H.BIN.ZP.SIZE .EQ 13 -* -H.BIN.EXE.REL.TABLE .EQ 16 -* -H.BIN.DRV.REL.TABLE .EQ 2 Including main jmp +Flt.Table .EQ $0D60 K.FLT.MAX*S.FLT=4*32=128b *-------------------------------------- MAN SAVE INC/KERNEL.I diff --git a/SYS/KERNEL.S.DEF.txt b/SYS/KERNEL.S.DEF.txt index a4f99467..786c781b 100644 --- a/SYS/KERNEL.S.DEF.txt +++ b/SYS/KERNEL.S.DEF.txt @@ -91,31 +91,6 @@ K.MLI.PARAMS .EQ $03AA Main, 18 bytes min for GetFileInfo (ATLK needs MORE!!! *-------------------------------------- K.STACKTOP .EQ $03ED XFer !!! down to $3E0 *-------------------------------------- -*** $3F0-$3FF IRQ Handler.... *** -*-------------------------------------- -* Main/Aux $400 -> $7FF : TXT PAGE1 Console Screen -* Main/Aux $800 -> $BFF : TXT PAGE2 System Screen -*-------------------------------------- -* free $0C00->$17FF = $C00 (3072) Aux -*-------------------------------------- -Dev.Table.hPath .EQ $0C00 K.Dev.MAX -Dev.Table.hFD .EQ $0C20 K.Dev.MAX -*-------------------------------------- -Nod.Table.hPath .EQ $0C40 K.NOD.MAX -Nod.Table.hFD .EQ $0C60 K.NOD.MAX -*-------------------------------------- -PS.Table.PID .EQ $0C80 K.PS.MAX -PS.Table.hPS .EQ $0CA0 K.PS.MAX -PS.Table.Hits .EQ $0CC0 K.PS.MAX -PS.Table.Stats .EQ $0CE0 K.PS.MAX -*-------------------------------------- -OF.Table.hPath .EQ $0D00 K.OF.MAX -OF.Table.hFD .EQ $0D20 K.OF.MAX -*-------------------------------------- -Evt.Table .EQ $0D60 K.EVT.MAX*S.EVT.SIZE=4*8=32b -*-------------------------------------- -Flt.Table .EQ $0D80 K.FLT.MAX*S.FLT.SIZE=4*32=128b -*-------------------------------------- K.Buf256 .EQ $0E00 *-------------------------------------- K.IOBuf .EQ $0F00 @@ -166,6 +141,6 @@ H.BIN.EXE.REL.TABLE .EQ 16 H.BIN.DRV.REL.TABLE .EQ 2 Including main jmp *-------------------------------------- MAN -SAVE INC/KERNEL.I +SAVE USR/SRC/SYS/KERNEL.S.DEF LOAD USR/SRC/SYS/KERNEL.S ASM diff --git a/SYS/KERNEL.S.DRV.txt b/SYS/KERNEL.S.DRV.txt index 8b6c1199..eab41e27 100644 --- a/SYS/KERNEL.S.DRV.txt +++ b/SYS/KERNEL.S.DRV.txt @@ -244,7 +244,9 @@ DRV.SYS cld DRV.SYS.STATUS >LDYAI DRV.SYS.DIB jmp DRV.STATUS.YA *-------------------------------------- -DRV.SYS.Open lda #DEVID.SYS +DRV.SYS.Open lda #"S" + sta $423 + lda #DEVID.SYS sta A2osX.SCRNDEVS+1 jsr DRV.SYS.FF *-------------------------------------- diff --git a/SYS/KERNEL.S.INIT.txt b/SYS/KERNEL.S.INIT.txt index 8cbf0cd7..6c0845ab 100644 --- a/SYS/KERNEL.S.INIT.txt +++ b/SYS/KERNEL.S.INIT.txt @@ -102,7 +102,7 @@ Kernel.Init3 sta SETALTZP sta IRQ.InKernel jsr SysScrInit - lda #"1" + lda #"A" sta $427 jsr MemMgrInit >LDYAI FD.NULL @@ -118,20 +118,24 @@ Kernel.Init3 sta SETALTZP sta $427 bra * -.10 >LDYAI MSG.Init3 +.10 inc $427 + >LDYAI MSG.Init3 >SYSCALL puts - + inc $427 jsr CPU.Init.6502 + inc $427 jsr CPU.Init.Z80 + inc $427 jsr DevMgrInit - + inc $427 jsr IrqMgrInit bcs * - + inc $427 jsr EvtMgrInit - + inc $427 jsr TskMgrInit bcs * + inc $427 ldy #S.PS.hPREFIX lda (pPs),y @@ -142,6 +146,7 @@ Kernel.Init3 sta SETALTZP >PUSHBI 2 >LDYAI MSG.Prefix >SYSCALL printf + inc $427 lda KBD bpl .1 @@ -167,7 +172,7 @@ Kernel.Init3 sta SETALTZP .8 >SYSCALL ExecL - bcs .9 + bcs Kernel.Init3.Err >PUSHBI 0 >LDYAI MSG.Init3.OK @@ -177,7 +182,8 @@ Kernel.Init3 sta SETALTZP jmp CORE.Run -.9 >PUSHA +Kernel.Init3.Err + >PUSHA >PUSHBI 1 >LDYAI MSG.StartupErr >SYSCALL printf @@ -534,7 +540,12 @@ MemMgrInit >LDYAI Mem.MHiMem dex bpl .4 - stz Evt.Table + ldx #K.EVT.MAX*S.EVT-1 + +.5 stz Evt.Table,x + dex + bpl .5 + stz Flt.Table rts diff --git a/SYS/KERNEL.S.IO.txt b/SYS/KERNEL.S.IO.txt index eace7bc8..a2eab023 100644 --- a/SYS/KERNEL.S.IO.txt +++ b/SYS/KERNEL.S.IO.txt @@ -186,12 +186,16 @@ K.IO.OPEN.REG.E >LDYAI S.FD.REG IO.OPEN.CDEV sta .1+1 A=DEVID pha jsr K.IOCTL.GetPDrv + lda #"C" + sta $425 ldx #IOCTL.OPEN pla pass A=DEVID To Driver jsr K.IOCTL.pDrvJmp + inc $425 bcs .9 - + inc $425 + .1 ldx #$ff SELF MODIFIED lda Dev.Table.hFD,x .9 rts diff --git a/SYS/KERNEL.S.PS.txt b/SYS/KERNEL.S.PS.txt index cb1e590a..050ac079 100644 --- a/SYS/KERNEL.S.PS.txt +++ b/SYS/KERNEL.S.PS.txt @@ -60,10 +60,12 @@ K.ExecV >STYA PS.ArgV PS.Exec jsr PS.CreateChild A=PID,Child S.PS at ZPPtr3,PS.Load.hMem bcs .9 sta .8+1 - + lda #"A" + sta $821 stz K.IOBuf jsr PS.Load bcs .90 + inc $821 jsr PS.AddArgV bcc .8 @@ -76,6 +78,7 @@ PS.Exec jsr PS.CreateChild A=PID,Child S.PS at ZPPtr3,PS.Load.hMem rts .8 lda #$ff SELF MODIFIED + inc $821 .9 rts *-------------------------------------- * PS.CreateChild diff --git a/SYS/KERNEL.S.STDIO.txt b/SYS/KERNEL.S.STDIO.txt index 3759fec5..cc0eb810 100644 --- a/SYS/KERNEL.S.STDIO.txt +++ b/SYS/KERNEL.S.STDIO.txt @@ -989,16 +989,21 @@ K.SScanF.Fwd tya Y=char count parsed * CC : A = hFILE * CS : A = EC *\-------------------------------------- -K.FOpen jsr PFT.CheckPathYA +K.FOpen pha + lda #"O" + sta $426 + pla + jsr PFT.CheckPathYA + inc $426 bcs .99 - + inc $426 >PULLB K.Open.FLAGS >PULLB K.Open.TYPE >PULLW K.Open.AUXTYPE jsr IO.Open.I bcs .9 - + inc $426 tax stx .1+1 save hFD @@ -1006,7 +1011,9 @@ K.FOpen jsr PFT.CheckPathYA >LDYAI K.Buf256 jsr STDIO.NewHFileYAX + inc $426 bcc .9 + inc $426 pha save MLI error .1 lda #$ff SELF MODIFIED diff --git a/SYS/KERNEL.S.txt b/SYS/KERNEL.S.txt index d3b589a8..4f0a4231 100644 --- a/SYS/KERNEL.S.txt +++ b/SYS/KERNEL.S.txt @@ -16,6 +16,7 @@ AUTO 4,1 .INB INC/KERNEL.I + .INB USR/SRC/SYS/KERNEL.S.DEF .INB USR/SRC/SYS/KERNEL.S.INIT .INB USR/SRC/X.PRINTF.S