From bf11685aef690edead2603bc2aee27473adff416 Mon Sep 17 00:00:00 2001 From: Bobbi Webber-Manners Date: Fri, 13 Jan 2023 16:22:19 -0500 Subject: [PATCH] Enabled interrupts throughout SHR code --- applecorn.po | Bin 819200 -> 819200 bytes mainmem.shr.s | 66 +++++++++++++++++++++++++------------------------- 2 files changed, 33 insertions(+), 33 deletions(-) diff --git a/applecorn.po b/applecorn.po index 1a86fb361e5f8b15753512ff988736e7ee3d982d..e0332a90e6887be265bda6dd9d47425e9c631ad6 100644 GIT binary patch delta 5450 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 ENTMAIN - PHP ; Disable interrupts - SEI +* PHP ; Disable interrupts +* SEI CLC ; 65816 native mode XCE REP #$30 ; 16 bit M & X @@ -343,7 +343,7 @@ SHRVDU5CH >>> ENTMAIN :DONE SEC ; 65816 emulation mode XCE MX %11 ; Tell Merlin - PLP +* PLP >>> XF2AUX,SHRPRCH320RET * Zero page :COLCTR EQU TMPZP+0 @@ -405,8 +405,8 @@ SHRSHIFT MX %00 ; Tell merlin we are 16 bit M&X * Handle cursor left in VDU5 mode SHRVDU08 >>> ENTMAIN - PHP ; Disable interrupts - SEI +* PHP ; Disable interrupts +* SEI CLC ; 65816 native mode XCE REP #$30 ; 16 bit M & X @@ -436,14 +436,14 @@ SHRVDU08 >>> ENTMAIN :DONE SEC ; 65816 emulation mode XCE MX %11 ; Tell Merlin - PLP +* PLP >>> XF2AUX,VDU08RET * Handle cursor right in VDU5 mode SHRVDU09 >>> ENTMAIN - PHP ; Disable interrupts - SEI +* PHP ; Disable interrupts +* SEI CLC ; 65816 native mode XCE REP #$30 ; 16 bit M & X @@ -461,14 +461,14 @@ SHRVDU09 >>> ENTMAIN :DONE SEC ; 65816 emulation mode XCE MX %11 ; Tell Merlin - PLP +* PLP >>> XF2AUX,VDU09RET * Handle cursor down / linefeed in VDU5 mode SHRVDU10 >>> ENTMAIN - PHP ; Disable interrupts - SEI +* PHP ; Disable interrupts +* SEI CLC ; 65816 native mode XCE REP #$30 ; 16 bit M & X @@ -477,7 +477,7 @@ SHRVDU10 >>> ENTMAIN :DONE SEC ; 65816 emulation mode XCE MX %11 ; Tell Merlin - PLP +* PLP >>> XF2AUX,VDU10RET @@ -502,8 +502,8 @@ SHRVDU5LF MX %00 ; Tell Merlin * Handle carriage return in VDU5 mode SHRVDU13 >>> ENTMAIN - PHP ; Disable interrupts - SEI +* PHP ; Disable interrupts +* SEI CLC ; 65816 native mode XCE REP #$30 ; 16 bit M & X @@ -513,7 +513,7 @@ SHRVDU13 >>> ENTMAIN :DONE SEC ; 65816 emulation mode XCE MX %11 ; Tell Merlin - PLP +* PLP >>> XF2AUX,VDU13RET @@ -557,8 +557,8 @@ SHRPLOT >>> ENTMAIN :S1 CMP #$40 ; Plot point BNE :BAIL ; Other? Bail out - PHP ; Disable interrupts - SEI +* PHP ; Disable interrupts +* SEI CLC ; 65816 native mode XCE SEP #$30 ; 8 bit M & X @@ -567,7 +567,7 @@ SHRPLOT >>> ENTMAIN SEC ; 65816 emulation mode XCE MX %11 ; Tell Merlin - PLP ; Resume normal service +* PLP ; Resume normal service BRA :S2 :S2 PLA ; Store prev pt in screen coords @@ -777,8 +777,8 @@ SHRLINE LDA A2L ; y1 INC A :S1 STA TMPZP+0 ; abs(y1 - y0) STZ TMPZP+1 ; Pad to 16 bit - PHP ; Disable interrupts - SEI +* PHP ; Disable interrupts +* SEI CLC ; 65816 native mode XCE REP #$30 ; 16 bit M & X @@ -890,7 +890,7 @@ SHRLINELO MX %00 ; Tell merlin 16 bit M & X SEC ; 65816 emulation mode XCE MX %11 ; Tell Merlin - PLP ; Resume normal service +* PLP ; Resume normal service RTS * Zero page :DX EQU TMPZP+0 ; dx initially, then (2 * (dy - dx)) @@ -967,7 +967,7 @@ SHRLINEHI MX %00 ; Tell Merlin 16 bit M & X SEC ; 65816 emulation mode XCE MX %11 ; Tell Merlin - PLP ; Resume normal service +* PLP ; Resume normal service RTS * Zero page :X EQU TMPZP+0 @@ -982,8 +982,8 @@ SHRLINEHI MX %00 ; Tell Merlin 16 bit M & X * from 1280x1024 to 640x200 or 320x200 * On return: X-coordinate in A1L/H, Y-coordinate in A2L (A2H=0) SHRCOORD MAC - PHP ; Disable interrupts - SEI +* PHP ; Disable interrupts +* SEI CLC ; 65816 native mode XCE REP #$30 ; 16 bit M & X @@ -1031,7 +1031,7 @@ SHRCOORDM0 LDA SHRVDUQ+5 SEC ; Back to emulation mode XCE MX %11 ; Tell Merlin - PLP ; Normal service resumed +* PLP ; Normal service resumed BRA SHRCOORDEND SHRCOORDNEG MX %00 ; Tell Merlin we are 16 bit @@ -1063,7 +1063,7 @@ SHRCOORDNEG MX %00 ; Tell Merlin we are 16 bit SEC ; Back to emulation mode XCE MX %11 ; Tell Merlin - PLP ; Normal service resumed +* PLP ; Normal service resumed SHRCOORDEND EOM @@ -1106,8 +1106,8 @@ SHRCOORD2M0 LDA SHRVDUQ,X * Clear the graphics window SHRVDU16 >>> ENTMAIN - PHP ; Disable interrupts - SEI +* PHP ; Disable interrupts +* SEI CLC ; 816 native mode XCE REP #$30 ; 16 bit M & X @@ -1204,7 +1204,7 @@ SHRVDU16 >>> ENTMAIN SEC ; Back to 6502 emu mode XCE MX %11 ; Tell Merlin - PLP ; Normal service resumed +* PLP ; Normal service resumed >>> XF2AUX,SHRCLRRET :LEFT320 DB %11111111 DB %00001111 @@ -1257,8 +1257,8 @@ SHRVDU16V PHA * Validate graphics window parms & store if okay * First 8 bytes of SHRVDUQ: left, bottom, right, top SHRVDU24 >>> ENTMAIN - PHP ; Disable interrupts - SEI +* PHP ; Disable interrupts +* SEI CLC ; 65816 native mode XCE REP #$30 ; 16 bit M & X @@ -1289,11 +1289,11 @@ SHRVDU24 >>> ENTMAIN SEC ; 65816 emulation mode XCE - PLP +* PLP >>> XF2AUX,VDU24RET :BAD SEC ; 65816 emulation mode XCE - PLP +* PLP >>> XF2AUX,VDU24RETBAD