From 01bd0d884d98ae4889ae95ed3b98ed040e297d71 Mon Sep 17 00:00:00 2001 From: David Schmenk Date: Sun, 2 Apr 2023 15:16:47 -0700 Subject: [PATCH] Wait for IRQ to clear --- client/BUILD/a2pi.wdc.s | 18 +++++++++++------- client/BUILD/a2pluspi.wdc.s | 18 +++++++++++------- share/A2PI-WDC.1.7.PO | Bin 143360 -> 143360 bytes 3 files changed, 22 insertions(+), 14 deletions(-) diff --git a/client/BUILD/a2pi.wdc.s b/client/BUILD/a2pi.wdc.s index 383cc85..2aa03f0 100755 --- a/client/BUILD/a2pi.wdc.s +++ b/client/BUILD/a2pi.wdc.s @@ -262,18 +262,22 @@ SENDACC PHP SEI ; Disable interrupts PHA LDA SSCSLOT - ORA #$88+1 + ORA #$89+1 TAY LDA #$07 - STA $C002-1,Y ; Enable transmit IRQ - LDA $C001-1,Y ; Clear any oustanding interrupts + STA $C002-2,Y ; Enable transmit IRQ + LDA $C001-2,Y ; Clear any oustanding interrupts PLA - STA $C000-1,Y ; AVOID PHANTOM READ FROM $C0XX -SENDWT LDA $C001-1,Y + STA $C000-2,Y ; AVOID PHANTOM READ FROM $C0XX + PHA +SENDWT LDA $C001-2,Y ; AND #$80 ; Check IRQ status BPL SENDWT LDA #$0B ; Disable transmit IRQ - STA $C002-1,Y + STA $C002-2,Y +IRQWT LDA $C001-2,Y ; Wait for IRQ to clear + BMI IRQWT + PLA PLP ; Restore interrupts RTS * @@ -282,7 +286,7 @@ SENDWT LDA $C001-1,Y RECVACC LDA SSCSLOT ORA #$89+1 TAY -RECVWT LDA $C000-1,Y +RECVWT LDA $C001-2,Y AND #$08 BEQ RECVWT LDA $C000-2,Y diff --git a/client/BUILD/a2pluspi.wdc.s b/client/BUILD/a2pluspi.wdc.s index c530e6d..4f280b8 100755 --- a/client/BUILD/a2pluspi.wdc.s +++ b/client/BUILD/a2pluspi.wdc.s @@ -231,18 +231,22 @@ SENDACC PHP SEI ; Disable interrupts PHA LDA SSCSLOT - ORA #$88+1 + ORA #$89+1 TAY LDA #$07 - STA $C002-1,Y ; Enable transmit IRQ - LDA $C001-1,Y ; Clear any oustanding interrupts + STA $C002-2,Y ; Enable transmit IRQ + LDA $C001-2,Y ; Clear any oustanding interrupts PLA - STA $C000-1,Y ; AVOID PHANTOM READ FROM $C0XX -SENDWT LDA $C001-1,Y + STA $C000-2,Y ; AVOID PHANTOM READ FROM $C0XX + PHA +SENDWT LDA $C001-2,Y ; AND #$80 ; Check IRQ status BPL SENDWT LDA #$0B ; Disable transmit IRQ - STA $C002-1,Y + STA $C002-2,Y +IRQWT LDA $C001-2,Y ; Wait for IRQ to clear + BMI IRQWT + PLA PLP ; Restore interrupts RTS * @@ -251,7 +255,7 @@ SENDWT LDA $C001-1,Y RECVACC LDA SSCSLOT ORA #$89+1 TAY -RECVWT LDA $C000-1,Y +RECVWT LDA $C001-2,Y AND #$08 BEQ RECVWT LDA $C000-2,Y diff --git a/share/A2PI-WDC.1.7.PO b/share/A2PI-WDC.1.7.PO index 2281852089ef8bf531d10beec7d25ba1e1d424f1..59fd712eb06792b870bda596aeec556edeff5452 100644 GIT binary patch delta 2191 zcmc(eZA=tr5P)~@mc0`=?l5OXF?2;u4oe9oDWYv!QQJUzDvB1+S`WWU8&gw1B0riO zYPmGlCF(Y}H`~U-rd&L8OO^Z4@S}3EZR|CXE=kkWR0Tm#zQn~31W%yz?x8^Yr~kTn zcW&O9*?H&You{VLT+?Yj{}SU|T9{W-oKv=DbxtWo9>z?iQso)c(VP_PBC4Cx6$6!n zVb0B^&qJAasoB(4Zf2Npn8~6kp@GRXq*#TYnE~81CuC-&SPfM6^aOYgdyrx%mcaxs zTF5!xqd7LKFqW_&b=Wx5Xb7d6|Da_vBdlaChKbIQHF=0`zI1>V4!l)oot2oBocWG( z?Yi|P8#b113ekxgEq`m4=P#9m2Knuh<|ea2_^W-Ea7dj)=Luh^i&36eUqu;J7tQ5L ziV7{IZ>?KXwuy7DDdZNf&dq)0h0TTCovn=D+3vrstP{;84V8gAbfx_3df%9jkOo6E{8wrqWG+xy#H zl{ zm3EZ}AA^=%KaXqh)z1#lT!Zj&N?HON|JcB|!5}fjcXnH1Y{jRgjUIjFN+A zBu*QvGfHxoCtvn@mdPtT1+wT_j!xGp2g#9v-oSQ_69b>4FqcQysfOr!lIW2Gqw1*> z36g7@vLl?RRE9sw3Y)8olwp{4{A|DkRJdiLwF<^ti}2SL3naxYxv?sTD;|XQEVDM+ zGT!RKT615YZe`KxWTEY;aA8hB4yimEjj6YPCC?grnAu zNc^M*v} zQ#JV;^*hBDmNgtEp|wAGAth-k`~zcgBmdB-OaOo1h!alX=;GWu8+?0N;eloOs%wOg zjyNCJXYg@D=c6ecQ!QLZEIgsHbsbQ54T2qUV!Ux;ygD(sA;frn!5hMT&7SV=hZ6&UO!)~@ zei4^)7yilAE#Nu`Q+J^%H~>xk;NS;S@k*PAmRM`|$ zmc)RzN)MXOlr4Ov8`SyAG>48=%-41cv=wRcpuyxiXIp|yoYw5_ z5a8|H0lo(UmI7B@Hw2E7fBv<2Jk9AB>+KlkC0KRnSas@H-JHV8>r*53Sm~LSF5*V4u7T#(x#|Vvst+rf;tFs4I^pUnIFw#MtolI5O1~A7 zr%lHyt{_&r!rw-$;#w32qllHCVATtVRUb@Z74dPm;#m2`s5{QpZNgP_23M0|c+PXI zrlO`}g@IR}VTFT(=aYA;=;v5P2v&ZARWBe`eSlc4#A^M|xY8@1!4*y|4(c?b@TMk- S((laaJ=Q+-eftpYc;jzXgzS$1 delta 5537 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