From 51230784432c9b804e9231456ab1d0ff27bc80b2 Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Thu, 8 Aug 2019 18:49:22 +0200 Subject: [PATCH] disabled BRK handling, breaks at least one game --- STATUS.md | 1 + bin/kernal_generic.rom | Bin 8192 -> 8192 bytes bin/kernal_mega65.rom | Bin 8192 -> 8192 bytes bin/kernal_ultimate64.rom | Bin 8192 -> 8192 bytes c64/kernal/interrupts/irq_handler.s | 9 +++++---- 5 files changed, 6 insertions(+), 4 deletions(-) diff --git a/STATUS.md b/STATUS.md index 15d8e3d0..6c7cdc45 100644 --- a/STATUS.md +++ b/STATUS.md @@ -27,6 +27,7 @@ The following ROM features are currently missing: * tape support * RS-232 support * breaking Kernal routines with RUN/STOP key +* BRK handling * PAL/NTSC is detected, but for now only startup banner uses the result Features currently being worked on: diff --git a/bin/kernal_generic.rom b/bin/kernal_generic.rom index bafc66c82bd6122af7002b99c49fe20f529832fe..e78ac9f69bf340a21c9a5ea1bbe20e70fc43f490 100644 GIT binary patch delta 1013 zcmYjPVQ5=b6n@EVmbOsynkDIz>3W1tT8pms*Myc9{m}^b$E*zWhxEdV(s%DBcB|*Tt}u92@?={CrW4BFz-9)Tnt>v7@)5m86zdh0? z3oS4z3R>w^FZA%Z8jZT8v?#1Pr4CsrmyUb&MU9>^AAln)g3rlpE7EyN4Xhh?V8McI z0SRYp)}L3RIGb;)y@7`B8WPv%>V|J!6-SuH`&&=;PXCZx%e1GOOCfT0?X-HglYPCm z5F&0yS1Rzgl_K;FtI2fr7YLoJD#6HRoySzEn!qzBr!3eTfX2l_D>mZdT8 zRc7pi165kC``nB0RdM_bF9kcEn3E|D-jU9Oig%OUd`_a{kl^=&ZJrGt*+16UCsSUH zL7IQCKQrm@fB}K`<`PkT>&9JGMG}glpqlyE7qJWY^N`$oq2pH6X<81EmM}3%JVfZT z)p&$NbMuD(*1Q(eKV}+q+qdTFyEbZTf)8;;{&B(`3=B(MgXX_X=gG^{ZL5&9U}-B? z?%Fm8{j3IoTCR-TE{6_;M+Lf`tL2&Nx|_oZZiQZ)L=$+;0df$#{&IpdfK5b~HPZ4Z zF&koWjl}5CeRK{T#NKhMX;5FH{nc!6IcQu98s>j^t{Z~6796!uBOJ9*`NJ(hPl}ZP zt10i7?|a#qDeoCPQht6Z95^&A^CNrfaH8(WYEt*uFvQ3Y&<%@kh6e%+ldI}32b2EH z4@V9@*=@&MCtOSPi_@iKndvLj-zG0HbcFt5W`d{Hd;IOlcyTkbwa+ueZ$2Imy36EE zz|EZkp;M0Q#gT)(o@dTU+97F=q$`4+7j&jd(~`a^=_#9D5ws#`TF_BJ+a!Hm(lP#h X`{Ce6lD<&M{Fzmlq6~|d>m&C6aO~M6 delta 987 zcmYk4UuYav6vlV=Ce0?2W-{H~j8vN=<{@cmT?2v=LV|_5!g=T)`k*hlL<);+6Cy~` zmu4foYm;K#a3i?!!LVe(Ek>s7L%Q3FB%+W&%Rmb?VzCukVIb?wX799OY&PN zdy*EzH|kK88vI&==W}?Zeihc_4CG|-L3$DTO_-K2?C{dXmN*NJ*6_|I9ZS{Lul)X~ zm}$GaKkDeMFfMhi{9XXML_&$hyi`u=t8OY+*DK`@0_k}TKelFKU&ewH@V-OCA?4)T zNzP%VZQXbRIUBYmOt_VNQ_&ZrCb6ybwy8_1aZ5F&@t?YYUy(mU4*A z>X($K-Ta!K3o$RkqyrL3ZH=agah*X1&jkhi6+|u7BpYGK!!3n2)KCs4( zeGoUXQfu^BHkvekT9nnUS5i(^gFmJFlH=WAH%>XQK}qpU?eK4i$bs|0sFMw79CG6F zfdwGNbMbHDS1Hlw%J&X9V*irgnV*1zrr>JF&?yfuLEezA_*h}iXnH)S#nWGK4MuB^ z=kP+EEH=Yu^fUbBE>CFTYYI^tv70&Gv(qB8l3FEeu((yI^lTdpzpg@CwNN1;E1`qo zaY@aEYLR=0y%^32JM``(ITlsA-n+Et_q`cB=0aQwvDPrNSR%ymb#o%Nq_Nf)nbiMa977*dJ+3g5B*7-?7~Ug#r<3dU`l42zMBes`$>RbnF?H?O)Q7oUp?Uz zhxWexnHncG&5A3;Rl^t5OUl1oY=#Gzg||gtKTHI~g<=_T`*58~a6$e}v*Hh(8 zg{PNOH#0ZHWMpJk36?e^Tl@Td;^E5)_2G`raLPw7o!&H?xF0sSG4;>s6KXksP&Nz7d(ZX+eANTpr$>a6Y@;{kx%Ax=O diff --git a/bin/kernal_mega65.rom b/bin/kernal_mega65.rom index bafc66c82bd6122af7002b99c49fe20f529832fe..e78ac9f69bf340a21c9a5ea1bbe20e70fc43f490 100644 GIT binary patch delta 1013 zcmYjPVQ5=b6n@EVmbOsynkDIz>3W1tT8pms*Myc9{m}^b$E*zWhxEdV(s%DBcB|*Tt}u92@?={CrW4BFz-9)Tnt>v7@)5m86zdh0? z3oS4z3R>w^FZA%Z8jZT8v?#1Pr4CsrmyUb&MU9>^AAln)g3rlpE7EyN4Xhh?V8McI z0SRYp)}L3RIGb;)y@7`B8WPv%>V|J!6-SuH`&&=;PXCZx%e1GOOCfT0?X-HglYPCm z5F&0yS1Rzgl_K;FtI2fr7YLoJD#6HRoySzEn!qzBr!3eTfX2l_D>mZdT8 zRc7pi165kC``nB0RdM_bF9kcEn3E|D-jU9Oig%OUd`_a{kl^=&ZJrGt*+16UCsSUH zL7IQCKQrm@fB}K`<`PkT>&9JGMG}glpqlyE7qJWY^N`$oq2pH6X<81EmM}3%JVfZT z)p&$NbMuD(*1Q(eKV}+q+qdTFyEbZTf)8;;{&B(`3=B(MgXX_X=gG^{ZL5&9U}-B? z?%Fm8{j3IoTCR-TE{6_;M+Lf`tL2&Nx|_oZZiQZ)L=$+;0df$#{&IpdfK5b~HPZ4Z zF&koWjl}5CeRK{T#NKhMX;5FH{nc!6IcQu98s>j^t{Z~6796!uBOJ9*`NJ(hPl}ZP zt10i7?|a#qDeoCPQht6Z95^&A^CNrfaH8(WYEt*uFvQ3Y&<%@kh6e%+ldI}32b2EH z4@V9@*=@&MCtOSPi_@iKndvLj-zG0HbcFt5W`d{Hd;IOlcyTkbwa+ueZ$2Imy36EE zz|EZkp;M0Q#gT)(o@dTU+97F=q$`4+7j&jd(~`a^=_#9D5ws#`TF_BJ+a!Hm(lP#h X`{Ce6lD<&M{Fzmlq6~|d>m&C6aO~M6 delta 987 zcmYk4UuYav6vlV=Ce0?2W-{H~j8vN=<{@cmT?2v=LV|_5!g=T)`k*hlL<);+6Cy~` zmu4foYm;K#a3i?!!LVe(Ek>s7L%Q3FB%+W&%Rmb?VzCukVIb?wX799OY&PN zdy*EzH|kK88vI&==W}?Zeihc_4CG|-L3$DTO_-K2?C{dXmN*NJ*6_|I9ZS{Lul)X~ zm}$GaKkDeMFfMhi{9XXML_&$hyi`u=t8OY+*DK`@0_k}TKelFKU&ewH@V-OCA?4)T zNzP%VZQXbRIUBYmOt_VNQ_&ZrCb6ybwy8_1aZ5F&@t?YYUy(mU4*A z>X($K-Ta!K3o$RkqyrL3ZH=agah*X1&jkhi6+|u7BpYGK!!3n2)KCs4( zeGoUXQfu^BHkvekT9nnUS5i(^gFmJFlH=WAH%>XQK}qpU?eK4i$bs|0sFMw79CG6F zfdwGNbMbHDS1Hlw%J&X9V*irgnV*1zrr>JF&?yfuLEezA_*h}iXnH)S#nWGK4MuB^ z=kP+EEH=Yu^fUbBE>CFTYYI^tv70&Gv(qB8l3FEeu((yI^lTdpzpg@CwNN1;E1`qo zaY@aEYLR=0y%^32JM``(ITlsA-n+Et_q`cB=0aQwvDPrNSR%ymb#o%Nq_Nf)nbiMa977*dJ+3g5B*7-?7~Ug#r<3dU`l42zMBes`$>RbnF?H?O)Q7oUp?Uz zhxWexnHncG&5A3;Rl^t5OUl1oY=#Gzg||gtKTHI~g<=_T`*58~a6$e}v*Hh(8 zg{PNOH#0ZHWMpJk36?e^Tl@Td;^E5)_2G`raLPw7o!&H?xF0sSG4;>s6KXksP&Nz7d(ZX+eANTpr$>a6Y@;{kx%Ax=O diff --git a/bin/kernal_ultimate64.rom b/bin/kernal_ultimate64.rom index bafc66c82bd6122af7002b99c49fe20f529832fe..e78ac9f69bf340a21c9a5ea1bbe20e70fc43f490 100644 GIT binary patch delta 1013 zcmYjPVQ5=b6n@EVmbOsynkDIz>3W1tT8pms*Myc9{m}^b$E*zWhxEdV(s%DBcB|*Tt}u92@?={CrW4BFz-9)Tnt>v7@)5m86zdh0? z3oS4z3R>w^FZA%Z8jZT8v?#1Pr4CsrmyUb&MU9>^AAln)g3rlpE7EyN4Xhh?V8McI z0SRYp)}L3RIGb;)y@7`B8WPv%>V|J!6-SuH`&&=;PXCZx%e1GOOCfT0?X-HglYPCm z5F&0yS1Rzgl_K;FtI2fr7YLoJD#6HRoySzEn!qzBr!3eTfX2l_D>mZdT8 zRc7pi165kC``nB0RdM_bF9kcEn3E|D-jU9Oig%OUd`_a{kl^=&ZJrGt*+16UCsSUH zL7IQCKQrm@fB}K`<`PkT>&9JGMG}glpqlyE7qJWY^N`$oq2pH6X<81EmM}3%JVfZT z)p&$NbMuD(*1Q(eKV}+q+qdTFyEbZTf)8;;{&B(`3=B(MgXX_X=gG^{ZL5&9U}-B? z?%Fm8{j3IoTCR-TE{6_;M+Lf`tL2&Nx|_oZZiQZ)L=$+;0df$#{&IpdfK5b~HPZ4Z zF&koWjl}5CeRK{T#NKhMX;5FH{nc!6IcQu98s>j^t{Z~6796!uBOJ9*`NJ(hPl}ZP zt10i7?|a#qDeoCPQht6Z95^&A^CNrfaH8(WYEt*uFvQ3Y&<%@kh6e%+ldI}32b2EH z4@V9@*=@&MCtOSPi_@iKndvLj-zG0HbcFt5W`d{Hd;IOlcyTkbwa+ueZ$2Imy36EE zz|EZkp;M0Q#gT)(o@dTU+97F=q$`4+7j&jd(~`a^=_#9D5ws#`TF_BJ+a!Hm(lP#h X`{Ce6lD<&M{Fzmlq6~|d>m&C6aO~M6 delta 987 zcmYk4UuYav6vlV=Ce0?2W-{H~j8vN=<{@cmT?2v=LV|_5!g=T)`k*hlL<);+6Cy~` zmu4foYm;K#a3i?!!LVe(Ek>s7L%Q3FB%+W&%Rmb?VzCukVIb?wX799OY&PN zdy*EzH|kK88vI&==W}?Zeihc_4CG|-L3$DTO_-K2?C{dXmN*NJ*6_|I9ZS{Lul)X~ zm}$GaKkDeMFfMhi{9XXML_&$hyi`u=t8OY+*DK`@0_k}TKelFKU&ewH@V-OCA?4)T zNzP%VZQXbRIUBYmOt_VNQ_&ZrCb6ybwy8_1aZ5F&@t?YYUy(mU4*A z>X($K-Ta!K3o$RkqyrL3ZH=agah*X1&jkhi6+|u7BpYGK!!3n2)KCs4( zeGoUXQfu^BHkvekT9nnUS5i(^gFmJFlH=WAH%>XQK}qpU?eK4i$bs|0sFMw79CG6F zfdwGNbMbHDS1Hlw%J&X9V*irgnV*1zrr>JF&?yfuLEezA_*h}iXnH)S#nWGK4MuB^ z=kP+EEH=Yu^fUbBE>CFTYYI^tv70&Gv(qB8l3FEeu((yI^lTdpzpg@CwNN1;E1`qo zaY@aEYLR=0y%^32JM``(ITlsA-n+Et_q`cB=0aQwvDPrNSR%ymb#o%Nq_Nf)nbiMa977*dJ+3g5B*7-?7~Ug#r<3dU`l42zMBes`$>RbnF?H?O)Q7oUp?Uz zhxWexnHncG&5A3;Rl^t5OUl1oY=#Gzg||gtKTHI~g<=_T`*58~a6$e}v*Hh(8 zg{PNOH#0ZHWMpJk36?e^Tl@Td;^E5)_2G`raLPw7o!&H?xF0sSG4;>s6KXksP&Nz7d(ZX+eANTpr$>a6Y@;{kx%Ax=O diff --git a/c64/kernal/interrupts/irq_handler.s b/c64/kernal/interrupts/irq_handler.s index be0b40d3..99733333 100644 --- a/c64/kernal/interrupts/irq_handler.s +++ b/c64/kernal/interrupts/irq_handler.s @@ -17,10 +17,11 @@ irq_handler: ;; Check if caused by BRK - tsx - lda $0104, x ; get the pre-interrupt processor state - and #$10 - bne irq_handler_brk + ;; XXX disabled for now - resets Duotris game, unknown why + ; tsx + ; lda $0104, x ; get the pre-interrupt processor state + ; and #$10 + ; bne irq_handler_brk ;; Not caused by BRK - call interrupt routine (only if initialised) lda CINV