From abe684f04cd0512d39ef6ce0cdad8d86a1d8754a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Sat, 27 Feb 2021 15:54:51 +0100 Subject: [PATCH] Kernel 0.94+ --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes .Floppies/A2OSX.TEST.po | Bin 819200 -> 819200 bytes DRV/SSC.I.DRV.S.txt | 1 + SBIN/GETTY.S.txt | 8 +- SHARED/X.SSC.DRV.S.txt | 255 ++++++++++++++++++++++++--------------- SYS/KM.RAMWORKS.S.txt | 16 +-- 6 files changed, 172 insertions(+), 108 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 4a9520573f33e630e55e9aef1db7cb28b7f3a8a3..9491d20868b7867f35c3f8b4bffaf7c4fbeba023 100644 GIT binary patch delta 11428 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 M{FgaE?=!>xAH`QAYXATM delta 11121 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 R?j!y}{LLJI-H&0s{trf4q0#^V diff --git a/.Floppies/A2OSX.TEST.po b/.Floppies/A2OSX.TEST.po index 116c8db5b54a86bd83b29bdfd2d89aee26503a35..b6ec649c1d487f22d60d2a00828d59dd40c7ea5c 100644 GIT binary patch delta 9622 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 F{y&Fhy)*y- delta 9448 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 O.RDWR >PUSHBI 0 type >PUSHWZ auxtype - + >SYSCALL FOpen bcs .99 @@ -125,7 +125,7 @@ CS.RUN ldy #S.PS.ARGC iny #S.PS.hStdErr sta (pPS),y sta hFILE - + CS.RUN.LOOP0 >SLEEP >PUSHW L.ENV.TERM @@ -177,8 +177,8 @@ CS.RUN.EXIT lda bExitOnClose bmi .8 ldy #S.PS.S - lda (ZPPtr1),y - cmp #S.PS.S.QUIT + lda (pPS),y + cmp #S.PS.S.QUIT I've been killed :-( beq .8 jmp CS.RUN.LOOP0 diff --git a/SHARED/X.SSC.DRV.S.txt b/SHARED/X.SSC.DRV.S.txt index 94564ac4..8a2cff43 100644 --- a/SHARED/X.SSC.DRV.S.txt +++ b/SHARED/X.SSC.DRV.S.txt @@ -8,11 +8,6 @@ NEW .ELSE .TF drv/ssc.drv .FIN -*-------------------------------------- - .DO SSCIRQ=1 -BUF.SIZE .EQ $40 -BUF.MASK .EQ $3F - .FIN *-------------------------------------- ZPArgPtr .EQ ZPBIN ZPParityPtr .EQ ZPBIN+2 @@ -77,13 +72,13 @@ Dev.Detect >STYA ARGS inc ZPArgPtr+1 no match, try next slot.... lda ZPArgPtr+1 cmp #$C8 - bne .1 + bne .1 >LDYA L.MSG.DETECT.KO >SYSCALL PutS lda #MLI.E.NODEV Not Found in any slot, exiting sec - rts + rts .4 lda ZPArgPtr+1 and #$0F @@ -101,7 +96,7 @@ Dev.Detect >STYA ARGS sta DEVSLOTn08F jsr Dev.ParseArgs bcs .9 - + .8 >PUSHW L.MSG.DETECT.OK >PUSHW L.FD.DEV.NAME >PUSHBI 2 @@ -147,10 +142,10 @@ Dev.ParseArgs >LDYA ARGS >STYA ZPControlPtr stx ZPhControl - + >PUSHW ZPArgPtr >PUSHW L.SSCANF.ARGS - + >PUSHW L.DCB.BAUD >PUSHW L.DCB.DATA >PUSHW L.DCB.STOP @@ -226,8 +221,10 @@ STATUS jsr STATUS.CONTROL.Init ldy #S.IOCTL.STATCODE lda (ZPIOCTL),y beq .1 + cmp #S.IOCTL.STATCODE.GETDIB bne STATUS.DCB + ldy #S.DIB-1 .HS 2C bit abs .1 ldy #3 @@ -258,6 +255,7 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB lda DIB+S.DIB.S and #S.DIB.S.OPENED beq OPEN.E + .DO SSCIRQ=1 lda INBUF.TAIL eor INBUF.HEAD @@ -301,25 +299,50 @@ OPEN.E lda #MLI.E.OPEN OPEN.1 php sei - ldx DEVSLOTn08F - stz SSC.RESET-$8F,x .DO SSCIRQ=1 - lda #SSC.CTL.CLKINT+SSC.CTL.B9600+SSC.CTL.8D+SSC.CTL.1S+SSC.CMD.NOP - sta SSC.CTL-$8F,x - lda #SSC.CMD.TEIRQ+SSC.CMD.DTR - sta SSC.CMD-$8F,x + + >LDYAI 256 + >SYSCALL2 NewStkObj + bcs .99 + + stx hINBUF + >STYA READ.INBUF+1 + >STYA IRQ.INBUF+1 + + >LDYAI 256 + >SYSCALL2 NewStkObj + bcs .90 + + stx hOUTBUF + >STYA WRITE.OUTBUF+1 + >STYA IRQ.OUTBUF+1 stz INBUF.HEAD stz INBUF.TAIL stz OUTBUF.HEAD stz OUTBUF.TAIL - + + ldx DEVSLOTn08F + stz SSC.RESET-$8F,x + + lda #SSC.CTL.CLKINT+SSC.CTL.B9600+SSC.CTL.8D+SSC.CTL.1S+SSC.CMD.NOP + sta SSC.CTL-$8F,x + + lda #SSC.CMD.TEIRQ+SSC.CMD.DTR + sta SSC.CMD-$8F,x + .ELSE + + ldx DEVSLOTn08F + stz SSC.RESET-$8F,x + lda #SSC.CTL.CLKINT+SSC.CTL.B115200+SSC.CTL.8D+SSC.CTL.1S+SSC.CMD.NOP sta SSC.CTL-$8F,x + lda #SSC.CMD.RIRQDIS+SSC.CMD.TE+SSC.CMD.DTR sta SSC.CMD-$8F,x + .FIN lda SSC.DATA-$8F,x discard any garbage byte @@ -331,11 +354,35 @@ OPEN.1 php plp clc rts + + .DO SSCIRQ=1 + +.90 pha + lda hINBUF + >SYSCALL FreeStkObj + pla + +.99 plp + sec + rts + + .FIN *-------------------------------------- -CLOSE php +CLOSE lda DIB+S.DIB.S + bit #S.DIB.S.OPENED + bne OPEN.E + + php sei ldx DEVSLOTn08F - stz SSC.RESET-$8F,x + stz SSC.RESET-$8F,x + + .DO SSCIRQ=1 + lda hINBUF + >SYSCALL FreeStkObj + lda hOUTBUF + >SYSCALL FreeStkObj + .FIN lda #S.DIB.S.OPENED trb DIB+S.DIB.S @@ -351,79 +398,85 @@ READ php stz ZPCount2 stz ZPCount2+1 -.10 inc ZPCount - bne .11 + .DO SSCIRQ=1 + sta SETREADAUX + .FIN + +READ.10 inc ZPCount + bne READ.11 inc ZPCount+1 - beq .8 + beq READ.8 -.11 .DO SSCIRQ=1 +READ.11 .DO SSCIRQ=1 ldy INBUF.TAIL cpy INBUF.HEAD - beq .2 + beq READ.2 - lda INBUF,y - iny - cpy #BUF.SIZE - bne .1 - - ldy #0 -.1 sty INBUF.TAIL +READ.INBUF lda $FFFF,y SELF MODIFIED + inc INBUF.TAIL sta (ZPBufPtr) inc ZPBufPtr - bne .12 + bne READ.12 inc ZPBufPtr+1 -.12 inc ZPCount2 - bne .10 +READ.12 inc ZPCount2 + bne READ.10 inc ZPCount2+1 - bra .10 + bra READ.10 .FIN -.2 lda SSC.STATUS-$8F,x + +READ.2 lda SSC.STATUS-$8F,x bit #SSC.STATUS.nDCD true when 0 - bne .9 + bne READ.9 bit #SSC.STATUS.RDRF incoming char? - beq .8 + beq READ.8 lda SSC.DATA-$8F,x sta (ZPBufPtr) inc ZPBufPtr - bne .13 + bne READ.13 inc ZPBufPtr+1 -.13 inc ZPCount2 - bne .2 +READ.13 inc ZPCount2 + bne READ.2 inc ZPCount2+1 - bra .2 + bra READ.2 -.8 lda ZPCount2 - bne .81 +READ.8 lda ZPCount2 + bne READ.81 ora ZPCount2+1 - beq .99 + beq READ.99 lda ZPCount2 -.81 ldy #S.IOCTL.BYTECNT +READ.81 ldy #S.IOCTL.BYTECNT sta (ZPIOCTL),y iny lda ZPCount2+1 sta (ZPIOCTL),y + .DO SSCIRQ=1 + sta CLRREADAUX + .FIN plp clc rts -.9 lda #MLI.E.IO +READ.9 lda #MLI.E.IO .HS 2C BIT ABS -.99 lda #E.NODATA +READ.99 lda #E.NODATA + .DO SSCIRQ=1 + sta CLRREADAUX + .FIN plp sec rts @@ -432,75 +485,83 @@ WRITE php sei jsr READ.WRITE.Init -.2 inc ZPCount - bne .3 + .DO SSCIRQ=1 + sta SETWRITEAUX + .FIN + +WRITE.2 inc ZPCount + bne WRITE.3 inc ZPCount+1 - beq .8 + beq WRITE.8 -.3 .DO SSCIRQ=1 +WRITE.3 .DO SSCIRQ=1 lda SSC.STATUS-$8F,x bit #SSC.STATUS.nDCD true when 0 - bne .9 + bne WRITE.9 lda OUTBUF.HEAD cmp OUTBUF.TAIL Buffer Empty? - bne .6 not empty, queue char + bne WRITE.6 not empty, queue char lda SSC.STATUS-$8F,x and #SSC.STATUS.TDRE Register Empty ? - beq .5 not empty, queue char + beq WRITE.5 not empty, queue char lda (ZPBufPtr) yes, write directly to ACIA sta SSC.DATA-$8F,x inc ZPBufPtr - bne .2 + bne WRITE.2 inc ZPBufPtr+1 - bra .2 - -.5 lda OUTBUF.HEAD -.6 tay + bra WRITE.2 + +WRITE.5 lda OUTBUF.HEAD +WRITE.6 tay inc - and #BUF.MASK - cmp OUTBUF.TAIL - beq .99 Buffer Full!! + cmp OUTBUF.TAIL + beq WRITE.99 Buffer Full!! sta OUTBUF.HEAD lda (ZPBufPtr) - sta OUTBUF,y +WRITE.OUTBUF sta $FFFF,y SELF MODIFIED inc ZPBufPtr - bne .2 + bne WRITE.2 inc ZPBufPtr+1 - bra .2 + bra WRITE.2 .ELSE -.4 lda SSC.STATUS-$8F,x +WRITE.4 lda SSC.STATUS-$8F,x bit #SSC.STATUS.nDCD true when 0 - bne .9 + bne WRITE.9 bit #SSC.STATUS.TDRE Outgoing char? - beq .4 + beq WRITE.4 lda (ZPBufPtr) sta SSC.DATA-$8F,x inc ZPBufPtr - bne .2 + bne WRITE.2 inc ZPBufPtr+1 - - bra .2 + bra WRITE.2 .FIN -.8 plp +WRITE.8 .DO SSCIRQ=1 + sta CLRWRITEAUX + .FIN + plp clc rts -.9 lda #MLI.E.IO +WRITE.9 lda #MLI.E.IO .HS 2C BIT ABS -.99 lda #E.NODATA +WRITE.99 lda #E.NODATA + .DO SSCIRQ=1 + sta CLRWRITEAUX + .FIN plp sec rts @@ -514,7 +575,7 @@ STATUS.CONTROL.Init lda (ZPIOCTL),y sta ZPBufPtr - iny + iny lda (ZPIOCTL),y sta ZPBufPtr+1 @@ -538,45 +599,47 @@ STATUS.CONTROL.Init IRQ ldx DEVSLOTn08F lda SSC.STATUS-$8F,x * and #SSC.STATUS.IRQ Useless - bpl .9 IRQ from this device ? no, exit !!!!Applewin bug #308!!!! + bpl IRQ.9 IRQ from this device ? no, exit !!!!Applewin bug #308!!!! + + sta SETREADAUX + sta SETWRITEAUX bit #SSC.STATUS.RDRF incoming char? - beq .2 + beq IRQ.2 *------------ IRQ In pha lda INBUF.HEAD tay save actual head for later inc - and #BUF.MASK cmp INBUF.TAIL - beq .1 buffer full, discard and exit + beq IRQ.1 buffer full, discard and exit sta INBUF.HEAD - lda SSC.DATA-$8F,x read data to clear IRQ - sta INBUF,y + lda SSC.DATA-$8F,x read data to clear IRQ +IRQ.INBUF sta $FFFF,y SELF MODIFIED -.1 pla +IRQ.1 pla *------------ IRQ Out -.2 bit #SSC.STATUS.TDRE - beq .8 no transmition possible.... +IRQ.2 bit #SSC.STATUS.TDRE + beq IRQ.8 no transmition possible.... ldy OUTBUF.TAIL something to transmit ? cpy OUTBUF.HEAD - beq .8 in that case, HOW TO CLEAR IRQ ???? + beq IRQ.8 in that case, HOW TO CLEAR IRQ ???? - lda OUTBUF,y - sta SSC.DATA-$8F,x write data to clear IRQ - tya - inc - and #BUF.MASK - sta OUTBUF.TAIL +IRQ.OUTBUF lda $FFFF,y SELF MODIFIED + sta SSC.DATA-$8F,x write data to clear IRQ + inc OUTBUF.TAIL -.8 clc +IRQ.8 sta CLRREADAUX + sta CLRWRITEAUX + + clc rts -.9 sec +IRQ.9 sec rts .FIN *-------------------------------------- @@ -587,8 +650,8 @@ INBUF.TAIL .BS 1 INBUF.HEAD .BS 1 OUTBUF.TAIL .BS 1 OUTBUF.HEAD .BS 1 -INBUF .BS BUF.SIZE -OUTBUF .BS BUF.SIZE +hINBUF .BS 1 +hOUTBUF .BS 1 .FIN *-------------------------------------- DIB .DO SSCIRQ=1 diff --git a/SYS/KM.RAMWORKS.S.txt b/SYS/KM.RAMWORKS.S.txt index 913e53eb..83ea1590 100644 --- a/SYS/KM.RAMWORKS.S.txt +++ b/SYS/KM.RAMWORKS.S.txt @@ -543,9 +543,13 @@ RWDRV.SIZE .EQ RWDRV.B.END-RWDRV.B.START RMDRVX.TMP .EQ $200 RWDRV.XM.RUN .EQ $300 *-------------------------------------- -RWDRVX.B.START - .PH $0300 +RWDRVX.B.START .PH $0300 RWDRVX.START sta RWDRVX.XM.BANK+1 setup BANK + + lda DRV.COMMAND DRV.COMMAND: 1=READ,2=WRITE + lsr + php + ldy #RRAMWRAMBNK1 txa @@ -563,7 +567,7 @@ RWDRVX.START sta RWDRVX.XM.BANK+1 setup BANK ldy DRV.BUFF ldx DRV.BUFF+1 - lsr DRV.COMMAND DRV.COMMAND: 1=READ,2=WRITE + plp bcc .2 CC=WRITE, CS=READ stz RWDRVX.XM.SRC+1 READ from src LO = 0 @@ -643,7 +647,6 @@ RWDRVX.XM.DST sta $FFFF,x stz RWBankSelect *-------------------------------------- RWDRVX.XM.MNLC bit RRAMWRAMBNK1 ProDOS always uses LCBANK1 -* bit RRAMWRAMBNK1 lda #0 @@ -655,10 +658,7 @@ RWDRVX.XM.SRCLC bcc RWDRVX.XM.MNLC CC=WRITE,CS=READ? .HS 2C BIT ABS RWDRVX.XM.DSTLC bcs RWDRVX.XM.MNLC CC=WRITE,CS=READ? *-------------------------------------- -RWDRVX.XM.RWLC ldx #$FF - -* bit $C000,x - bit $C000,x +RWDRVX.XM.RWLC bit $C000 RWDRVX.XM.BANK lda #$FF