From 6de965e77d910a038897d9ff02aee8ec9879fa4c Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Mon, 21 Sep 2020 15:14:15 +0200 Subject: [PATCH] hw initialization for running under hypervisor --- bin/mega65.rom | Bin 131072 -> 131072 bytes bin/mega65_pxlfont.rom | Bin 131072 -> 131072 bytes .../fff8.mega65_vector_hyper_reset.s | 4 +++ .../board_m65/mega65_hypervisor_reset.s | 34 ++++++++++++++++++ src/kernal/init/fda3.ioinit.s | 6 ++++ 5 files changed, 44 insertions(+) create mode 100644 src/kernal/board_m65/fff8.mega65_vector_hyper_reset.s create mode 100644 src/kernal/board_m65/mega65_hypervisor_reset.s diff --git a/bin/mega65.rom b/bin/mega65.rom index c828dca15dc64d8a512b4d448efeafd84ddbf1c5..caea3c1fdf5199b5a1da5ec865ee2a15cb3df8d4 100644 GIT binary patch delta 6376 zcmYjW3tSUd)}KrW;i&;ZW9#FB%0or*`5_gJRZ8qmeY>UDt>bGyZ0)XFKev?HB~}Kh z6$G#Ds$2IMtFDs`^qg1DK2{H73vYCGCW#Yq8Jz9)KM9d z+#952V)2;`7grd*U{m1Lh7u%jU!c##GAX)cV=i^-HQcv)7k8V#Yd>}R2Q+z0aT8T? zlzx1&4ZX63zXNiZadhENH{K6bi0A_m={F`a*DWdNYm5F3u3Nv9>(MXadO?jShvCqs z-_eq**t%t-|1(`c_PB?-!`c21nFP#ijR5_@tp_C8hTg5w9^U7z=<^{>5BdOyCjCBO zqN65sTh>IOX7aYI1p@MS81zZOwB#d0?b|cxDY1^CA7ELqxRQ(?S9V{d8}1)N=ke$} ziIQ}~o7+z=p+DjAlT$k-(S~)WeIb}j zj3`7&X6Cb2CBJCT25wOf-L)7S@{^a6fn{wbO7t?tiXJyomF$hw7#1BZ&XK|+ezRIf z^&ojGAFSqs)OD2Dm$3sCw&9S%AbOG+|4(6plv!Pf%L|sIZK_`^c<>wR7qR?nrY+Eo zH*IFg*m>ec(_ifW@V=3X8jL2D5I|xz3M^wd_eu=%9@0!Ot!h#eZO$a3O@9THD6u#{ zw#VM}iXJoHf$b8D(I>o~LOCupt)MInTw+iL@UhVWd~kg%OcsPs7X-@t6ySp`m+&77 z^Fogn<5v~@Yid4T4WBX7FWN`%qt;VuokR#8`zX9dzg2$F%{rXw*lRV5g+l)hsrb}w^s-oy|u!cDF!=-8ijimiMO@ z)y4yG?ZzcV>*!?{@kr6KG-gdF36CixJh%-pd}`+gF13tq_?RW?aVpI?A{8o)Cy{~V zHRMTLZJ@`YCq{tu@pk>3{HVNn=)TL);Lq~&Ax@&*ak5bGf;d?q(BQ8l=B5)%l&oGd z7i{EVMCyF>wb4+u(4VVBUzYGb=53RWs+Z=XieNqS^5%`bv>Ue+ zZ^HHZIZ-m1r>7S!@o@j-()y@vwK+?uyZ=|TCjXBKFBMf*w^vphYii5$tJ;kPhV+a6 z68x8vZS=Qoc(_C*c@-}&jq^TeK8DEkD*m)|4nA8vO~&U=_+~NA<|n5G44KpLCzQFs zaLDJFPtl>Y8nZ-{n`tqa*>6NcttQI8%g5wnc*h4G{=0Tev(d-oVPJ^nVa=FkrH_d= z#1c*FB@!|5{rocS6+V_*j?y~#IN1vOqJA`^)gIN)$0_%E04P@M1yE??X=Zl2S!M6_ zHgC6gKyWfEFSE;eHZOtzEeiEPBBK0w6 zrKBk{UR#xvR(p{pw9miK?cw)vyZQIHUHrS;PX0ICulc>)4k!fnv&^CnCaxOZ(!Q=+ zi=GrSmYNszkvjr*Gh~hc`dgBqN#=r+xgdQIqbX*Js`#A`D%%AazvICgGfV#Ns5^^I zBxYlt6qC=xq17|TgUz5DYd_QnXzc03TdUvj=`1Ldu!0vV%*Pk2)#}gNkK`TVUn=M* z$S6Hg$ycF(8h8$=)W;OdnpWjVO^|?qc(~VKD0r9yNhXHn;)z{7YRY^-@9yE{HLKIU zYA-Msn)T))bFukl{YCT2%bN>V7yhlCEiN&anwRtE+Ao>Q%*Kkn#aAoJ&6mvv^EcPN zGJoEdSbW9YS$@@AVZLT|R2a?sjr)z2W@Z%+rcv%m;1VF;saZCIue}ynt(WLlX`eDR zuJjohp-?95$PE=k8~OKhL-A-06mXCbkiVJVOPa7=4Hs7C#fSG&Id`~lKD;Tx$%k<} z5M@^K`%(3EWV;Ashw*!U*5CcJ{;r?(ce?xdkJlTgESUG&>Uj$&3ZQ8E5sF7k-D$oS zr`Co7M9$Z)Req6wn1UaB-SV}iwESjqVR1_pU%a%~Fj`Bax4@`jTsRlOMRK!Q<(@Du z43-kk>ccomc>=em5t`kN`fyI-R%t1?-$9f+NwdrSfR*^{?osGxp#_x&^nedGx$L9& zS^P=yl!e>|B_9g4LTC=%Fyp5Y>f;3&{CWLr%zII-woar^6ytTRGw2m&e4zCLsp*t$2etx~wGua53Q{IL4-&(33e}YZ zYcttxqrdK4-3*-S1H4sa#wmG%I9r@GdsD z&7V(z9qb1Cgssi|4z2!za2OMI-!CHm<+P%d=ymjNxqdYLU9;2CK+@mb)?lN7qpn&U+#-C^JRH9^g1 z_LQ5Zf~K6mCnv)sFBY4?Z6Lwjm+ypB(WtP$7&J~zK4(QT7sr5!aYtyt3bW3+eiOYW{+IK{ zb|bi~VY>#(_n1%Sm&e`% zq9f%+HO&@$a(Gp!7k|Md5j-N8Jx?QmlD-&DL03j{Jkg*XBsx8ePU76|Aa(gLQ__v{ zhSBy;qTJqjOYuXZ&Q(G^Qh41G9MMw7r<^Y4o?V6$**UX!@8E z7ml(f^yVP`RnKydkYMx#pYNF?d4f$nQObk1Ou?b0j4jmJ2UKI7Qs{@R)>E_-kLz8Y zw$Y|jB3Exi^UMbd%)B#%{`L&zSn-qzuob(YU&$0XScZ2&hQ&ox#-EaSL7Y+FDENcz z1n&FP{68u6{%n^}SZ+e+twpKF^8W;zDX{Jb7QR9JuH-}7=z+&BIVqvl3+nc zWd{rFIDcQcTu##iR|l?k!Vei7hQE4yn~AqPLj7TJn{6SI{rI3QZVsq)e#{eRiBgE9 zvy=k!@i26~X~9mcH&z`&hg667k!`Z?tziSaj~y<^4Re(0zbHe_~( zH)0H;ZUVvCct8VMV?*VD91Bd#qLp^NG)wUhJ(U$LkUjTAi34+Dh%by#?F%CqR(s)c z@t4cIhgj__0w`aIXa0i1S5JvD0HI#OU0_?1yi!ojup4o+74locU<4p80-V6)W7X4_ z<_9}qDD39|M5RD#xB#Al&mM16^Ldfui)vg}(h=49rwFW{+VE#j*LlDn{1X50bY5D$ zmHGcZbrMq9j-jCe!=C5HU9?EnhU5HA(xx}aJ$E)WS;<033^-nZXsM4IMBCk_!Of%W ze@B?%9$^9*p+W{D__{|p$IS180fro>XXQ25Da-r;CJHZO%LFP~s$I`&!&#WUEDR0-ex(ZehraZL03s4vUoVNFF>mh2&mGkZS_O~09OV_&qC!~6~I zYyM{XU%`xgrAcC^hD~z&uoE4@b+u?XI0l%F)W*t|2D(eejx z(Sif+S?oO+{U+qS+z~Z@N|1M*QYLe!S%P~?rbNH(?mES+8PrlYE8ytmj-&Brg;J2j zK+OHNn|W)HN$O3xFV(ruA(^O)$et*mizDc$3mtQz!>&XYzcm;ZXm{{Nh!{6gA!wL% zJMI~ric1G$r$V6EH#teb#fyet48W~7izHTqYJl0-hh>iGsK|Q8TVB{$7m-72!_%9< zRG<<)GtWdiIC6*o*D)iMkkwYoTO^CVA|1m+&;V;vxYQAbk2z*7APg0# z(o7>VNTr!bbOQUP@iK zy+YcU-lS-Qb!93B;LZCD%}~QM2?CzrXxJ*^i)ydFW!DUoa#)DV7+j(b2j!K2uaHx zOlH-3S5}q`We=8Q%ebbJ6EdzDMLY(53c4@?)Jk@$DF{wjK62=SwBuk~ta}?(S(C*{ zY8|bm;XYXnd+B5-J7l_KcmfFk2|bDtohQi0f=DV7`)Nr_QVQX0U~XWnZK4hi{yfy6 z!FA5yxHYz9CTjSW;$J|t$y{Ellh0EovLuhUSV<=SM^PkeSJKB29BG1Kj>-O(dyoI= zD0ACzh%DU(*%nXjo=4vu#&2|oy0b#VAb0?>!>y-GtP?s+hlAX9j%sW~PI76wi8jtf z+STrMJ!z3Bj-3%yS;x)@;B3HsMljzFX9Nk(P()k}GL*O)BSkT2g1cZPtL5{u0)&h_rn(1eh;+L2 z2z@-A&OSmz2?JzZCWV~LpChy#`~=S9lgM|xF&a7%ya1?AccE>r#C^0@KQ-$Ft?$O% z=xoUYTs9gSRt2XAz#=}tBBW4fAY<|86~nsmJQiu)Boc{{s0uqq!~CnPjMN1WYjh!? znd6$g%v}&6Xk88-3m*EZLWh0|9PueTnGrki288T4eS}DKqCsXGBa*`wgVTyXaZQ>d zu`-7(%&bvHv@+j4V}|>g(>7-LAQRIE1jfXRj80@WK@zqwXK<|x(KZWibxrd6V6fHN S_B^GN{9B@Y!@8ecM*2T9RROL5 delta 6176 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 diff --git a/bin/mega65_pxlfont.rom b/bin/mega65_pxlfont.rom index a04ae20e0a3b8dceac0c5b35457def4a4baafda8..c2677815e967623425b8d8c2df4a7b5bbeea95f7 100644 GIT binary patch delta 6376 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 S_B^GN{9B@Y!@8ecM*2T9RROL5 delta 6176 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 diff --git a/src/kernal/board_m65/fff8.mega65_vector_hyper_reset.s b/src/kernal/board_m65/fff8.mega65_vector_hyper_reset.s new file mode 100644 index 00000000..8cb7c576 --- /dev/null +++ b/src/kernal/board_m65/fff8.mega65_vector_hyper_reset.s @@ -0,0 +1,4 @@ +;; #LAYOUT# M65 KERNAL_0 #TAKE +;; #LAYOUT# * * #IGNORE + +!word m65_hypervisor_reset diff --git a/src/kernal/board_m65/mega65_hypervisor_reset.s b/src/kernal/board_m65/mega65_hypervisor_reset.s new file mode 100644 index 00000000..433240dd --- /dev/null +++ b/src/kernal/board_m65/mega65_hypervisor_reset.s @@ -0,0 +1,34 @@ +;; #LAYOUT# M65 KERNAL_0 #TAKE +;; #LAYOUT# * * #IGNORE + +; Reset (hardware initialization) to be used when Open ROMs is used under hypervisor +; XXX for now this is just a proposal + + +m65_hypervisor_reset: + + ; Proceed like with normal reset, skip problematic parts + + sei ; disable the interrupts, as fast as possible + cld ; Kernal is not designed to operate in decimal mode + + see ; disable extended stack + ldx #$FF ; initial stack size + txs + + ; XXX size-optimize this; share code with regular reset + + jsr m65_reset_part ; initialize MEGA65 specific hardware + + ldx #$28 ; 40 columns, screen disabled for now + stx VIC_SCROLX + + jsr IOINIT_skip_DOS ; DOS needs to map memory over $8000 - not allowed under hypervisor + jsr JRAMTAS + jsr JRESTOR + jsr JCINT + + ; Finished + + cli + rts diff --git a/src/kernal/init/fda3.ioinit.s b/src/kernal/init/fda3.ioinit.s index 98f2cd8b..3acc96a4 100644 --- a/src/kernal/init/fda3.ioinit.s +++ b/src/kernal/init/fda3.ioinit.s @@ -22,6 +22,12 @@ IOINIT: jsr (VK1__IOINIT) jmp m65dos_init ; end by initializing the MEGA65 internal DOS +IOINIT_skip_DOS: + + jsr map_KERNAL_1 + jsr (VK1__IOINIT) + jmp map_NORMAL + } else { ;