From 49a5078bede547470ebc75a2497e330a0bf09596 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Thu, 30 Aug 2018 17:18:27 +0200 Subject: [PATCH] Kernel 0.9.2 --- .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes DRV/SSC.DRV.S.txt | 1 + DRV/SSC.I.DRV.S.txt | 1 + DRV/X.SSC.DRV.S.txt | 225 +++++++++++++++++++++++++-------------- INC/A2osX.I.txt | 5 +- INC/COM.I.txt | 26 +++++ 7 files changed, 179 insertions(+), 79 deletions(-) create mode 100644 INC/COM.I.txt diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index cb56ea7c9c91f6a165aa6359c79602ea963ac76e..f97b05110ca452659639c25ed8eeabec5ef9fb8c 100644 GIT binary patch delta 5001 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 U$71NQr1V(E^;pL5wxrJaFF}p7UjP6A delta 4445 zcmb_fdsv&*89ygLo0dWoZuxQ{Bq0Y~Z~$MRY$^+cGJ5&E(dcv`Wh=IyTT+eGF&q~Ip$0L&UktVmIgmb1q8hBj z39>mfD=^za`a;Y~LhTwYUQJ5UUQCRXUl9ti-CCUvq}xP3)?qQUC zUH#q2elw}lV;k-#U3#n$Hm8j&Z*1SoVs^TbW`OL|II*-&ftOgiug(%O)W56$t6A3_TDB5v;|}FP$bL>>8e3l-@=?f^CeeMTK|C zV1o>LP{FVaHiuU*K`+wml(9fO;$Oiw3c1yc$Z&iHcA=uX$tMO}i0>iui*bF)E*@;r zy<8YVgYX*ffsl7V3hyH~6k|=@ZrFJKXj+0Lq;?1?_ejcnITZ-SW-IR_6QEpm{|p&y zX1Sn$c=Od$aFE*wmv}JeLF3|+gWR1!Br4b@HYDSrzz9``Xb;Zd zkTD6bLB>O5l@UhoJ7gf}gTgE?_}kn&;fB=-@io+2a~DZk56?f1wf zBNlW=xgJZbNGEtF4WS0BA$3G4B5 zB-;#oKPAft+k)W)YoD@n^WdaK`qMHMNJ3rO?xqo2I2`k{OTk%#3eI!H z7hCRU{+w{CyiRVi;DW(lV*5dw8fba-lqAOe)*giV9BwlfDx9Qwf1qb0G{~wbzrbpd<_#GU{gHqq3Gka~ zIN(e8xB(9m{*;E}37>xjtFp_BgbQiBIpX&Hh|upXl1WVW@FS-;D$7 zHuVjK`npqF;gVLq$3@idW7s0?cHZk!a#`!G_TA z33<{Av-K}>-ioiqpOS@T_`1P=V>`Fd17|6(JIecyWTe3k2K$RSrwHnDTQTx%CTx6Cv_S88&*qWS?7tVn@&yV}j0MhbY$9Bg6k> zswEOmG_gz1HS82ccHTz!idxW{M!mAS=lX-Kvl`|Y%BsiZuSq_CSAm?GJFPtm7Ts8wIk)db~ z7fW+6`UVXtsQ@bixdxVNv~wksk`;IaBco0MJ(Uh$jK>qZ=&r2}7qBIIa(@M!^ak=2 zU5w;c)M^R&r~+zXB1#*8W>OBzpk=NdxS_e7TKdv9mCj|^qlmS;)y;V8T%KLxocB<^ zq--uvFJE@Ph6Srl&cO0efR)I@d7WJ*LgABkocr$J z&FB%+8>TBJtr?-w9P{o)=Hn{UgxYkp-GokeJI0^i>9j3A_Uz>|Q|hA`r-mSI$<cI1#qv5r~21*^_uA8e`$16|3CpktKkRY$}yEfv1EF|Xr%?L z91<-(yHwMK$Ez%_S6ilYp6#=MnS(mpb)!`l;lXVg_mD053IVU4#EN=6QlL0lkfAUQ z>P%f2Ap%Wbg};Ebzi(2S%W2y6=H0rlJni;$+HDq=cJ=JMr_=7sH&ujUt)^gK*P7l` zw@tjh|N1_%%$>1xkbZ)k{PFfG^O{+uX_QJ6hBa!w)x5*}g!x1B2@4db!93xYi(|8- zi<1MzIb3NuY_}Y)wj8daDNGlNiSe4*Ete`S)2h>=<%5gMrWCzL(H^^n*3f1Faoe(K z#kdaIOS$zJM|Lfns+y>_{G!S-rKSR^>G=nt4xj<(<4_G?rWcJ?TMi!Sqjs1!S5y7OYmzp*WatCs8U^`eJ+2(lDMxe*Msy2DblGFNMQi^L D>p}t% diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index bd5291e481e4482e7aa650c4600b1397e15c773d..682400739bd868b711d34df229ffb3ca22720424 100644 GIT binary patch delta 5258 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 X$~3DfvqV@2NlOK3pjW@GH-`KV{S*)G delta 5082 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 diff --git a/DRV/SSC.DRV.S.txt b/DRV/SSC.DRV.S.txt index 9374323a..f75edbf2 100644 --- a/DRV/SSC.DRV.S.txt +++ b/DRV/SSC.DRV.S.txt @@ -8,6 +8,7 @@ SSCIRQ .EQ 0 .INB INC/MACROS.I .INB INC/A2OSX.I .INB INC/MLI.ERR.I + .INB INC/COM.I .INB INC/COM.6551.I .INB /A2OSX.SRC/DRV/X.SSC.DRV.S *-------------------------------------- diff --git a/DRV/SSC.I.DRV.S.txt b/DRV/SSC.I.DRV.S.txt index 132d88a7..44573c60 100644 --- a/DRV/SSC.I.DRV.S.txt +++ b/DRV/SSC.I.DRV.S.txt @@ -8,6 +8,7 @@ SSCIRQ .EQ 1 .INB INC/MACROS.I .INB INC/A2OSX.I .INB INC/MLI.ERR.I + .INB INC/COM.I .INB INC/COM.6551.I .INB /A2OSX.SRC/DRV/X.SSC.DRV.S *-------------------------------------- diff --git a/DRV/X.SSC.DRV.S.txt b/DRV/X.SSC.DRV.S.txt index b44fe2c6..43f201c7 100644 --- a/DRV/X.SSC.DRV.S.txt +++ b/DRV/X.SSC.DRV.S.txt @@ -15,7 +15,7 @@ BUF.SIZE .EQ $40 BUF.MASK .EQ $3F .FIN *-------------------------------------- -ZPTmpPtr1 .EQ ZPDRV +ZPArgPtr .EQ ZPDRV *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -25,26 +25,28 @@ CS.START cld .DA #1 DRV Layout Version 1 .DA 0 .DA CS.END-CS.START Code Length - .DA DEV.HEADER-CS.START Device Header Offset - .DA DRV.CS.START-CS.START Driver Code Offset - .DA DRV.CS.END-DRV.CS.START Drv Code Length + .DA 0 + .DA 0 + .DA 0 *-------------------------------------- * Relocation Table *-------------------------------------- L.MSG.DETECT .DA MSG.DETECT L.MSG.DETECT.OK .DA MSG.DETECT.OK L.MSG.DETECT.KO .DA MSG.DETECT.KO -L.DEV.HEADER.NAME .DA DEV.HEADER.NAME +L.DRV.CS.START .DA DRV.CS.START +L.FD.DEV .DA FD.DEV +L.FD.DEV.NAME .DA FD.DEV.NAME .DA 0 End Of Reloc Table *-------------------------------------- Dev.Detect >STYA ARGS >LDYA L.MSG.DETECT - >SYSCALL printf + >SYSCALL puts - stz ZPTmpPtr1 + stz ZPArgPtr lda #$C1 - sta ZPTmpPtr1+1 + sta ZPArgPtr+1 .1 and #$0f tay @@ -54,34 +56,33 @@ Dev.Detect >STYA ARGS ldx #DEVSIG.Length-1 .2 ldy DEVSIG.Offset,x - lda (ZPTmpPtr1),y + lda (ZPArgPtr),y cmp DEVSIG.Value,x bne .3 dex bpl .2 bra .4 -.3 inc ZPTmpPtr1+1 no match, try next slot.... - lda ZPTmpPtr1+1 +.3 inc FD.DEV.NAME+3 + inc ZPArgPtr+1 no match, try next slot.... + lda ZPArgPtr+1 cmp #$C8 bne .1 >LDYA L.MSG.DETECT.KO - >SYSCALL printf + >SYSCALL puts lda #MLI.E.NODEV Not Found in any slot, exiting sec rts -.4 lda ZPTmpPtr1+1 +.4 lda ZPArgPtr+1 and #$0F pha tay lda #A2osX.S.COM sta A2osX.S,y pla - ora #$30 - sta DEV.HEADER.NAME+3 asl asl asl @@ -89,53 +90,66 @@ Dev.Detect >STYA ARGS clc adc #$8F sta DEVSLOTn08F - - >PUSHW L.DEV.HEADER.NAME + + jsr Dev.ParseArgs + bcs .9 + +.8 >PUSHW L.FD.DEV.NAME + >PUSHBI 2 >LDYA L.MSG.DETECT.OK >SYSCALL printf - clc + + >PUSHWI DRV.END + >PUSHWI DRV.CS.END + >PUSHWI DRV.CS.START + >LDYA L.DRV.CS.START + >SYSCALL InsDrv + bcs .9 + >STYA FD.DEV+S.FD.DEV.DRVPTR + + >LDYA L.FD.DEV + >SYSCALL MKDEV + +.9 rts +*-------------------------------------- +Dev.ParseArgs >LDYA ARGS + >STYA ZPArgPTR + lda (ZPArgPTR) + beq .8 + + +.8 clc rts *-------------------------------------- CS.END DEVSIG.Offset .HS 05070B0C DEVSIG.Value .HS 38180131 DEVSIG.Length .EQ DEVSIG.Value-DEVSIG.Offset - MSG.DETECT .DO SSCIRQ=1 - - .AZ "Apple SSC (Super Serial Card,//c Serial Port) Driver (IRQ Enabled).\r\n" - + .AZ "Apple SSC (Super Serial Card,//c Serial Port) Driver (IRQ Enabled)." .ELSE - - .AZ "Apple SSC (Super Serial Card,//c Serial Port) Driver.\r\n" - + .AZ "Apple SSC (Super Serial Card,//c Serial Port) Driver." .FIN - MSG.DETECT.OK .AZ "SSC Installed As Device : %s\r\n" -MSG.DETECT.KO .AZ "No SSC Found.\r\n" +MSG.DETECT.KO .AZ "No SSC Found." ARGS .BS 2 *-------------------------------------- -* Device Header (16 Bytes) -*-------------------------------------- -DEV.HEADER cld - jmp (DRV.CS.START,x) - - .DO SSCIRQ=1 - - .DA #S.DEV.S.WRITE+S.DEV.S.READ+S.DEV.S.IRQ - - .ELSE - - .DA #S.DEV.S.WRITE+S.DEV.S.READ - - .FIN - - .BS 6 -DEV.HEADER.NAME .AZ "COM1" NAME +FD.DEV .DA #S.FD.T.CDEV + .DA #0 HANDLER + .DA #0 BUSID + .DA #0 DEVID + .DA 0 BUSPTR + .BS 2 DRVPTR +FD.DEV.NAME .AZ "COM1" NAME + .HS 000000 *-------------------------------------- * Driver Code *-------------------------------------- -DRV.CS.START .DA STATUS +ZPIOCTL .EQ ZPDRV +*-------------------------------------- +DRV.CS.START cld + jmp (.1,x) +.1 .DA STATUS .DA A2osX.BADCALL .DA A2osX.BADCALL .DA A2osX.BADCALL @@ -145,22 +159,85 @@ DRV.CS.START .DA STATUS .DA CLOSE .DA READ .DA WRITE - .DO SSCIRQ=1 - .DA IRQ - + .ELSE + .DA A2osX.BADCALL .FIN - -L.STAT .DA STAT .DA 0 end or relocation *-------------------------------------- -STATUS >LDYA L.STAT +STATUS >STYA ZPIOCTL + + ldy #S.IOCTL.STATCODE + lda (ZPIOCTL),y + beq .1 + + cmp #S.IOCTL.STATCODE.GETDIB + bne STATUS.DCB + + ldx #S.DIB-1 + .HS 2C bit abs +.1 ldx #3 + + ldy #S.IOCTL.BUFPTR + lda (ZPIOCTL),y + sta .3+1 + iny + lda (ZPIOCTL),y + sta .3+2 + +.2 lda DIB,x +.3 sta $ffff,x SELF MODIFIED + dex + bpl .2 + clc rts -*-------------------------------------- -CONTROL clc + +STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB + bne STATUS.9 + + ldy #S.IOCTL.BUFPTR + lda (ZPIOCTL),y + sta .3+1 + iny + lda (ZPIOCTL),y + sta .3+2 + + ldx #S.DCB.COM-1 + +.2 lda DCB,x +.3 sta $ffff,x SELF MODIFIED + dex + bpl .2 + + clc rts + +STATUS.9 lda #MLI.E.BADCTL + sec + rts +*-------------------------------------- +CONTROL >STYA ZPIOCTL + + ldy #S.IOCTL.CTRLCODE + lda (ZPIOCTL),y + cmp #S.IOCTL.CTRLCODE.SETDCB + bne STATUS.9 + +.1 ldy #S.IOCTL.BUFPTR + lda (ZPIOCTL),y + sta .2+1 + iny + lda (ZPIOCTL),y + sta .2+2 + + ldx #S.DCB.COM-1 + +.2 lda $ffff,x SELF MODIFIED + sta DCB,x + dex + bpl .2 *-------------------------------------- OPEN php sei @@ -203,8 +280,9 @@ CLOSE php clc rts *-------------------------------------- -READ .DO SSCIRQ=1 - +READ >STYA ZPIOCTL + + .DO SSCIRQ=1 php sei ldx INBUF.TAIL @@ -234,9 +312,7 @@ READ .DO SSCIRQ=1 .90 plp sec rts - .ELSE - ldx DEVSLOTn08F lda SSC.STATUS-$8F,x @@ -250,11 +326,11 @@ READ .DO SSCIRQ=1 .9 lda #0 sec rts - .FIN *-------------------------------------- -WRITE .DO SSCIRQ=1 - +WRITE >STYA ZPIOCTL + + .DO SSCIRQ=1 php sei tay save char in Y @@ -302,9 +378,7 @@ WRITE .DO SSCIRQ=1 .9 plp sec rts - .ELSE - pha ldx DEVSLOTn08F @@ -326,14 +400,12 @@ WRITE .DO SSCIRQ=1 .9 pla sec rts - .FIN *-------------------------------------- * IRQ Handler * on exit, CC if handled *-------------------------------------- .DO SSCIRQ=1 - IRQ ldx DEVSLOTn08F lda SSC.STATUS-$8F,x @@ -385,40 +457,39 @@ IRQ ldx DEVSLOTn08F .9 sec rts - .FIN *-------------------------------------- DRV.CS.END DEVSLOTn08F .BS 1 - .DO SSCIRQ=1 - INBUF.TAIL .BS 1 INBUF.HEAD .BS 1 OUTBUF.TAIL .BS 1 OUTBUF.HEAD .BS 1 INBUF .BS BUF.SIZE OUTBUF .BS BUF.SIZE - .FIN *-------------------------------------- -STAT .DO SSCIRQ=1 - - .DA #S.DIB.S.WRITE+S.DIB.S.READ+S.DEV.S.IRQ - +DIB .DO SSCIRQ=1 + .DA #S.DIB.S.WRITE+S.DIB.S.READ+S.DIB.S.IRQ .ELSE - .DA #S.DIB.S.WRITE+S.DIB.S.READ - .FIN - .DA #0,#0,#0 >PSTR "Serial Card/Port" .DA #S.DIB.T.CHAR .DA #0 - .DA #0 - .DA #91 + .DA K.VER *-------------------------------------- +DCB .DA #S.DCB.T.COM + .DA #0 FLAGS + .DA >9600 BAUD (DWORD) + .DA #8 DATA + .DA #1 STOP + .DA #S.DCB.COM.P.NONE PARITY + .DA #S.DCB.COM.C.XONXOFF +*-------------------------------------- +DRV.END MAN SAVE /A2OSX.SRC/DRV/X.SSC.DRV.S LOAD /A2OSX.SRC/DRV/SSC.I.DRV.S diff --git a/INC/A2osX.I.txt b/INC/A2osX.I.txt index 6322c3ff..2699e5c6 100644 --- a/INC/A2osX.I.txt +++ b/INC/A2osX.I.txt @@ -333,7 +333,8 @@ S.IOCTL.ADDRPTR .EQ 6 3 BYTES S.IOCTL .EQ 9 *-------------------------------------- S.DCB.T .EQ 0 -S.DCB.T.NIC .EQ $12 +S.DCB.T.NIC .EQ $81 +S.DCB.T.COM .EQ $82 *-------------------------------------- S.DIB.S .EQ 0 S.DIB.S.BLOCK .EQ %10000000 @@ -365,7 +366,7 @@ S.DIB.T.CLOCK .EQ $0E Clock S.DIB.T.MODEM .EQ $0F Modem S.DIB.T.DISKII .EQ $10 S.DIB.T.PRODOS .EQ $11 -S.DIB.T.NIC .EQ $12 Network Iterface Card +S.DIB.T.NIC .EQ $12 Network Interface Card S.DIB.T.XY .EQ $13 X,Y Pointing Device S.DIB.T.CHAR .EQ $14 S.DIB.T.GFX .EQ $15 diff --git a/INC/COM.I.txt b/INC/COM.I.txt new file mode 100644 index 00000000..467ec5ae --- /dev/null +++ b/INC/COM.I.txt @@ -0,0 +1,26 @@ +NEW +PREFIX /A2OSX.BUILD +AUTO 4,1 + .LIST OFF +*-------------------------------------- +* COM Devices +*-------------------------------------- +S.DCB.COM.FLAGS .EQ 1 +S.DCB.COM.BAUD .EQ 2 +S.DCB.COM.DATA .EQ 6 +S.DCB.COM.STOP .EQ 10 +S.DCB.COM.P .EQ 11 +S.DCB.COM.P.NONE .EQ 0 +S.DCB.COM.P.ODD .EQ 1 +S.DCB.COM.P.EVEN .EQ 2 +S.DCB.COM.P.MARK .EQ 3 +S.DCB.COM.P.SPACE .EQ 4 +S.DCB.COM.C .EQ 12 +S.DCB.COM.C.NONE .EQ 0 +S.DCB.COM.C.HW .EQ 1 +S.DCB.COM.C.XONXOFF .EQ 2 +* +S.DCB.COM .EQ 13 +*-------------------------------------- +MAN +SAVE INC/COM.I