From 5a4eb66c789b5c64f15375d2bd75f2e1f7630054 Mon Sep 17 00:00:00 2001 From: Kittycannon Date: Fri, 20 Mar 2026 16:53:02 -0600 Subject: [PATCH] ram, instr reel, runtime, etc --- docs/Spider Instructions.xlsx | Bin 107321 -> 107379 bytes src/spider/SpiderRuntime.hpp | 1 + src/spider/runtime/Runtime.cpp | 29 ++++++ src/spider/runtime/Runtime.hpp | 73 ++++++++++++++ src/spider/runtime/cpu/CPU.hpp | 13 +++ src/spider/runtime/cpu/InstrReel.cpp | 29 ++++++ src/spider/runtime/cpu/InstrReel.hpp | 59 +++++++++++ src/spider/runtime/instr/Instr_00-1F.cpp | 9 ++ src/spider/runtime/memory/RAM.cpp | 114 ++++++++++++++++++++++ src/spider/runtime/memory/RAM.hpp | 18 ++++ src/spider/runtime/native/distro.hpp | 25 +---- src/spider/runtime/native/distro_defs.hpp | 40 ++++++++ 12 files changed, 390 insertions(+), 20 deletions(-) create mode 100644 src/spider/runtime/Runtime.cpp create mode 100644 src/spider/runtime/Runtime.hpp create mode 100644 src/spider/runtime/cpu/InstrReel.cpp create mode 100644 src/spider/runtime/cpu/InstrReel.hpp create mode 100644 src/spider/runtime/instr/Instr_00-1F.cpp create mode 100644 src/spider/runtime/native/distro_defs.hpp diff --git a/docs/Spider Instructions.xlsx b/docs/Spider Instructions.xlsx index 1ff5ebad4f5e4844d0b36ed044f49790e2096740..e6643206690099ab862afcfc17f1561b75db77c5 100644 GIT binary patch delta 67909 zcmbSyby!qw`z_rm4I-k_&Cnf+K}t*K0Ma21n?@y-92yZ&=}t5@AHdSpHJ8c-n=NQ;?L-^RKs7OfkF_@V50360>BK5CN zWZ)V@`Jebk*B`%O#Y{0lxA`WZ`03~Q0gddV@4Z%WE4QB5obDgOU=|@O%GIUZ2Ct%H z%R26BMOqQXZ-Z>zxQ>Bn3HWp*q>G zFAC18CLXP9O-AOu4_=YswT1y4Y|;*l&NAxHh6`tR*KVjmzhGrnq6HQW@iFiyue{~{ z8Gxl~guZL8#5R%{x6I(cK%V@yRMkKespK8HhCTiVt5_@dlcvgsJd~aZ`pIGJ!@cRK zo0enijM^gApWc6*dRz39Olp*48FKQ*^zQCA^lE21y^y()fErcWW>mI*;No`PIdUF= zCi{&mi#}R2D~>4TK$`EOp_kvjaH#xtRDlb=o<_Rk$GaMda{k##Q1v(LyqMf`x=txb zdH3}rtaTbbiQcTNvzoj)=gnn=R6jt~t`QtcGc^=ag4%0h=ueG|d`#QEW-%%0EkGRBt zfW2dQ1{I6zCh?!yu{k8X(fV;e8sESQRWT2 zyZcH=d>96&c9m^>x@FFG$11wd2KNDGCYP{-EAe-lA$31z7jZPVL<}V|9|qi-=W@~a zlHASe?%u2jB5`LQuel4@q;uPKv2)vd2J(OGf8OezBK>%%LcrM125XOhMnLx0?*Y^b z1=gpi9L$AG7Bw*tySowVUq~sIYq?#9{0QI7Vt8VXd=&kdbSqY|k#$Zu%OA4KZt-h} zgNyR3=G2~^^-Syf4?2a}<>8^HLxu^P7avL#1A@mbl=&sI5MjEnKaE(l= z(65U7WucufL`w)as>2BuOZHFBcl!h+{PxhR9Gth^r`tLgM@(F&C#sicj##Q(b}R)V zA0}+j^)6=BlMfV)6OrxLiyAnM5;!6bF$yxy|u^Bpj)lL#nI6~jO6;QI^UX$ z?QOHov*pg1YOacddhgTimF}4Fy;irK7$!qH`?^ynU}yQfd%QcQe!VX3^nmbU2dFtb zIBS-yKX-LII7HJq+}@k-w2z9amjw1#SJv#^((UVffs2!I3g#n+i_N12;`5#9AqztQ zsH{H9&f7g2D4Skh-W^#?jxtp8#_gkf@~iSd!<%;&2|&^d6n zHoE~B5*GN>aagVI^fpUg?47t(9HaxGjOSZh1MThgU*(k3yz6|<7lybF2n8<=(Pqz` zx$CNYwii)PH;B&dT@I6!C?FF4-)PM{nltg1I9p#e5jnE+ z=7ISf%sPl1uD5GRDq3W<&gF(J=UupMH;1i@e7xoBzID=D61dKF(?^abr2wd16>^U2{> zRJE2{`t4(rV!!m1i}4q2K9Q*}Gze*xPh9%X-ZxMJRVNNRMaoe{>ykg|0FP7ry2FzZ z2N4)Srdpd z7`2H?kav8v(6>GboU~zXk^m<~MNtRo%@r?psM#92UXV>q$_6(c1df=9q&E(+lC@{v zIraJ=bmS{Wg+In!CviTXL)8^ae!KAG`JrGrH?6NEokDx=xH>a`ZYJZY*Wo%qV2W-i zf~zq-sU7D=vmkTibeK~(y19`#>e%3^SZVY%34G6}^dgbB7QG@-pJZLu#+3I~$R4XT znlHKc-A#JF0QuZ-Z->gSW1-q5maQ0}D?L8kK8w>LG*iJClEmIEaQcGTPX1+}N4loh;a$F` zA))+^bTU7i>~4`aNuzi;H-zx=H#hgyoH$ha?ecpsj0~SS2~~U498I@2pVg-~*c&J2 z71d8xiuZ0-Sr<019tuJIiwb|im~v0t{pk#6+vQIWF(m6+qvS6{@xKDZCn()}700}* zQl67rS35Q$wzTRPU3FGY+R)$kDhq^vg#)g}-)~D{T=q9JyD-IoB(E+ZhehdNp z0h3OK(?c6{lHp1Zxzf&%>(%V1FTN8r&mUBXh_w;SwhtX{-H@znjI!UFEj@X3Jmb4^ z77_M4E^pD-uzGTST%!#LcIMP`nC7S8tlDhbAk#a!`k!*hlK5t%M?MdiezQ^FTcewW zTfd;z>WX3vx!LB%8H<})v){$1)Mbw4@7QWj4Y&6sktLYi)nwiX+BRU;l6i(>&Jg>A z**eoEs1zUPlq8h@ee>5y`cUJwpi+t_9IRkye3Mc?re9-`DRkXDU0c%4`4*D z=7#1n!y2VMLAN2*=`9+JL5enU*v63ReR?~(K*^Ujc7i+$4xM&^Z#7K@d{VKEcWS$X zim@lVqv?}30TGfW#+pv>XL|^}O%t$Bzx+U`1)E9IVSRz&Y&=u-Aa@tjrekn1&ieQK zW2CNG)YJ3R&E}D#yyQGH7(p=3?f;lkeO{PF-(V6HNtloTVIK4MZUsxGW&vr*;H8q7eU zsrR9>SORO@oN(uOZoh2wQPZx-{KE9~LJ`S@8H&tocsqRqbKwMg{niEkER_;tF<$PZ zgiq6ao^-7p`+6UdQ^Uy`o!Uu# zX|_~gTmQ7ke*8izx$+aKZ1VOuS?0Ab;|6CoAv3R&IN3RA4J z0h`>|wYX9p7VFs3FWxfrKm00M!F%~_n|r^eDx0%ubjCxL=94JHjBS6IAn*OCio1kV zV_BN0lV2Us9n!2e2UcAT!zC;-c^fH4-=|ko&QXkB=$q*fA>s0*8J!B~uzBZ_)kOtk zs_SE$v&6=!ux93GsroU!WDrek{Ag-}0x%PW2T`X;gepCiL+4QKii0SWWRFnFO`D7` z+q`GpC=Fn<{ao~zeza|)ys1`G+d4QxbC^13sFk`HJqA0Kaitz#=e}0O`GeJfByOVb z)Zt$T?$l?bZ1fHHE%&)prWv{C%Gq&^H>=||>bbKt4l8avJJ26bmNX-+ekhhp=mw1J z|GqO2a4&IVhB$yF*j{#JBnkYc1D)wO&C2j#Ozy%URcv$GxEo82zT3s}t|wiMezNvP zArnX$f=2KiY8k>VmR$^r)xiPo*Z3`^Pbo9C#?0|OyM8(saO^0tjaditvzW2lmNyM@ z*K!V`)FMko6<)Yb@du^pUhppABLNQO{FE

31WtM+Q_?-v*wO|;n8h#rXYDE1m&ymD8HS#SnZDH`DA(&eoVZ?!ar%vUsT>?&VGN1 zwr(jy{SFiX8J~(XQ6+vjDdVPA!m0?AfY6n2}(B zy4qFC*v;+=VlNxwjMlOK(vPFt{9wj}15SgoyL4=Ce3lvlcV02XsHI1W{DP6S&KESH zBDFzwMs^ILwZp9CnGgbTYaNQiceqA7M+0_^Z&qoUS3oSjb)vT1gPT@2I#UF~XE(NZ zIUX$?*>}EMv9+86u!drjHa;h5=}hyI-x(q>4APtJ5*cKjrVbCaS&&Pyz6%+WYxqn& zn=}+{t@5qX^_!q`sAHUiVt7->=NV3GJ+(rAYg?F`&a?qr{^QKyo@`o^;DYHpjwR%U z5q`!lXBDVL^h0CE368dCcv%IFA4Ku11b$EUyvgfy#;2F90@_j~#Pyt~v)zhU_ZDDY z6}?q$hW>94CQZ)?_yz*zk}l%!>Z##O1`n2jF%JF%vsS9m(VW&g&cU{)QeZ)kCb>!g zqcDPMs3t@&a9g5~woRjnp9kme(Cg}aN5v|s!q4UtR>58c#f-rL)>fftLtVKQ!S*E% zws?SE)=E9CJAT!|V12l?sS%|uzTCJ~$7e^$p$-S}p-p;maFH`=y>}dGK{8e+4<(HdP7m zINPG=C36>g;8$VH`{;>==LK1t0Hkt-WNy!9lS+Gre(_%QSd2{L=W^Kq>-mAvrV8y! z0p!B|y-5P_*1+Vqea7YvzfAtzulMQJW|g!4{&31!5KhF^8Fu%5jprQB`$JzO$Jv7ac|N za`i4CTfd|S5PIuwyR<`zx98~Yo#lge{G5gdU(dM(Q$zGzK=iFF+|gI)XUfyVK=c4b zXqc&B={M5VMxozMQJw4$~ zg`5x=>Ctl9crIL~Y=>NZVXzG#&Dz(zGD z5GbNgI)>maIh>u%mDt9Vtx$K&jn|r+9lwg{)Kc2OV469SY`G0<*||`_4N&-ak>tOj z?^fOcbjP?1xL~y_l4!-h8+^hXr!x4Ig`T9WkFfHH4lS>OTx>58eU#4wzY}fV$BeZi z-`=PtRsr`e4D75okGCcb+xeIEW_FLqF57Dmho+#IU+*60pbTRNlF?;nb(9nxl`n|*v7|D-{J!}Vb%o>xn%2~n{?Q0t_dCqlBlr6r$~yW z6Z8xmO5B0qQ2N@7qZ33Gd%)oIeL6(6;qI%YbxL~NUUnFYg-!ZTABw#wMUPK8VbV!k zdc6v`B+_L+zV#kF%S2wQIy<2xaWnXJ2dBX|<+wJlw2_o-n@!Yu7Hb0}J^ zDTYhfd~>e(B};C2+9_Q8tz7g*>6eeHoWa&>s>9dpcv|um9PgYrD6FSR4>v}@p~IUR zlES(_C)*qH88LF^Vt40u?%xv`i`IVWVxtzEbNbfJcU`Q_1cJ6Q^z4H|KHkmywphP! zaS@M(i1zi%sN1`+dG@sR)rx@kVS90CDnJo9DtVsBF@ypLQkg`K^}MqxIfTZG8cnv_ zORaAwX1|PKxy=f!6NZ7*t+g}wcIDN0!RnRvNU+Kx`x3JJqJ(@sAS(W<13Jb{>^Xh} z`4^voH(7l)p(8RDSv_#q9#ZZ6p?i|bWja`S0ps*XriyUu&+xNjF*hD!C?pLj$;z13 zC?}DaOBOZKrIma3%g{jyaS&D1v)73TkpzG$2?YXuKb&RhhSp0M8$A!w)IjBNUut=9`8)a+O^ssO@7p?VqN*@my72~EmiR#+-l$Kn>ALM zi7ZF?VDX^QkJJ$E6~P}N(>WVAEFRtv9q0KOp9*VK5uFMpdNKLH4MaD*444o>#Y!Lp z0YR{t+ckLjiAHU;pEgYIVnJ?|k@B!*s>?ikn2iSQkrbKZ)F#U3MwMTVt}+TWkWIv< z$Pa=wqT}Ap;ZCMD)&yw;y3Ek5U);$M;}27HF8T>hX+PLP0NACrBDLt;sO@aJ7aaNZ z14PhPPVEmPR|rM8SKJ!EPrHhijSvgA!=V9dP4aHgQ?Yj{u+^RxTgF{XV@5kjc7$e= zg5ynt5Y9v+M!hmHfG~&N7_2*jfIK5ABzwUi?^%otGNhN^I&lI)t%?4!h^#RVTY=#i zV*g>IZO#2#Nj7n>8oKNt-V;eBWs@_K*~lk4wTKtog$8XxdYc4YY(lzYTX6&WdT)!@ zr4g-6*2@xUx=X`mpQwzq>$>9oshmF$RP~XgvGp{RimTw9yV+=zvx5qCfiyzDhzXDNI@fOgjkLD}&!Pu_UP5HwXxcoGO z2t7*#{cgcFp>cBoMNoL>u1B(La^DwRu5sAbPN2*@DbzU)dCFwwo6R=}5-6+^StPo< z;ea1DbjC<^=BfM-)_b5_CK2*!;}*Eti~tP}Xujk-xe z#~HonW&dcsySTUvPT8B@>2OctH8 zKo9N;f}VbaA=on)3M0SQt7^~L$A^Wly$>zH`M$b|?`Y3x5-;-%JNrhL2rC1h>6am5 z!Hoc;Y$_q+hdni-+tl9`lH5k_+2dt7l*D$T-t7ekOTU6>s%VwjoEoISp@?koee_1} zHNVTm^xvZb2C9}FPK# zyFYx?ZL(c18rn3&_D3sV_a+Lvws6$l*0#cMoggkdjI0Uaiy=3Zh6J`!$SGJs%MU}= z``66AbW`{8h1olGnpx)1Ru>?8Cj;h$2G&bhj4cBvP$H4(^rQ^^AgL6Sj)Dk7GF9VFfJga{k{D_>Gz?wQHRE(h;L@niW)W^y<0@z+hRQ0lx9rXiUGQ= zaIZ2@SMv=Jj4E-$@OopDyb7R-IOx6Q&0p{bMso&6FXTuDsYQC%`D$fD_}CKhdj6Nd| zy;qq{0)LW~6_O(#>~5dywU`HQ^|~`^V+t8Lkw;?287Z*J1xY-RN{Gi|P8mgjDl=ZM zKaDO8;UH|_u0^nl7i9CaY;Up&O%&fsGX)drx|5=zXC6o{mHyB}snk03Vg{6O_E$)! zHJK_fxIzv3BNF76tr7&n^80>pzgN&Z#J2?k_()zM-GL&uIV&Gx;o;Ag9*Pkop|SNg zXh@p80+0~VJ0?NKLv&C!jEDHPOVoGvQS%6>&K;@Cv@xJq@>{DiTjnsJQ07!9=2rMY zjgBp@y8L^-5HZqofh%ExxXcowtP(9Aeo^q_tZ}h#>!ZPm!|rX-_2VNkqMtw^HA4xq z7oLGjg}o?|l{G_Y0qmucUMV0EmtBiH%QmsyyJ^@+0dY{HOu7;Uzc)kRJ;RVfp4!}w z|K5{`P4xAl71-c%5DpSQJ!P?JJ%mI3>F78`hr{8pZ^OjPap`sXBm7Sd`62i0|Yt0COym+1vW@jWzC@c!o4;;a+QZ<dKs-M8_TZR0wROy|NxPSV#q_5CCFulO8o+C!Wh4S6SukoWh$&_gH7y9!^ zwZpW#ClEdzijBVe5>lrabFdCfqCeCL;(jbSb99MY?wGh6^Ab0ZPWT7-(LcbqkvsP8 z?OQzQt<@|WazX(MwBzY;3iZ6c=1VzFsx*>}zqI;C)L^`8 zG?U5wsCL)#jpg_;#XOpnA|)1s4*X7kMhzE}A3?=vCcaWs4L;?l6AD-W8C#HVz$HGU zUUUYjS!H;sEmnq=6>=teH-|-jfE0-p@*U{koev5h^aI^aITBI66l&C2Vm5ksZHUy0 zGA?(x32F&xcU!q1T)gx_x7#z+qKnjwX5yPTt&)taUxT{M=A!p+DruBUo(Xq z%sOy2AT7_VkX8ky603Zs2kDQNky`1)%V@@z65W1?)Apt33SK@4 z4@GgzDd!_{pnv83ZkpBCZW5`1x2Q5)3Q{DU$R)&RNskErmLHmBkEY~8C-QA=e+;D) z9(e*vFMR*Obl~Py`N8GdbiaYDjko~VG^l(W!k}XVwGa5_x@V*U?<0LV*VP7c>EW+q zP&2OQHcEk{upfaS(%Q>Z*HxR2dDmZ;(W^ngi!e`0ug)+FZCiiD15UhsTlV z=W0o4FI?qBmMjjm{9`Qr+EVsR)98=_$SjTW>B>(1N`{Cm&yJ8Uxd){;kq+b@H%qXy zrR2G&w(t}$HINv?BgEPUDd`W>>ne4igT4)+flvyBB>%D_{CEenZK&|bN`ba7r&lrT zDFaksL}B&9LT=Jn<@9|MJ)i0QbF#65$iWb@pnx+X^A#!bUvl(o>j44YK>(a8perNw zzXZsF@(17@5THLo{qS)-xD5^#QSkLo6dzniQIziy=0ETr0RO_LhPLDoXgk}{Pi?CE zT8hE|htGEvG$j6Qwlti~$kY|KbHAdc21?Ona2YdRvHK5Wp(vVRzr0lY2(iz%P(-)G zj*Mszud_sR?92A(yK&VXmTm0*aB-Y+a7t!aJwpMtG;&frL&i_wGIsF{MpybaLs|~$ zioA&|Tc4q*lo?-c4!}ZTkP4;obG=9BW7Bx0-J{+dj&$f}v!hlfduiNZFwIGxDO}|KlW) zsdt8>JaUk*G&B5LeS3J(+YDqg_AGEH>wqc=UasIj_qG#Bv6~eB zeDJ*r;tjWgeX^20GW<3hVp+i$uCn%P}XA=y+>z8gs8ARa2P-K12 z5y@iow!Ek2SK;`^S{6l7*!7IJ+z2J<5!uU#+wl9J{Ql}FDO1K19%VA5MjXD);izYy z8iuX0%For2FXg^JRDld@JWHzE6~Se!AeT{PSbap%=}jV)$H`zBa=4td9xO;!$k#$T zgDe+E>e}F<=>VUQXzh@Gy=mFS?j&78*P$@*?Cy+`!i~d*%h}NP=@YHPm7z<}j51AoGQi^i2h104&$Qd_U}N(nNOz zAF*7~QG5iLP%pF4_zgrese#QjN1%Ak=AwMyh6Z6Iknl@UhOZ316x%ltBEB_Z^$EsN z0U6vvl;3Upg}8srqyw%5aoJhS%omfb{vfc*3^Ysd_6zZ``8WWz+lT~pkiLv)(N+4_ zmdmeAY@Z~J<&um_(u)=RUm?f{_P5tr{^@lDJYJ~*Ui9l~qpCkN|I4;Dme|hMcI>lDGvYoCJL5s^GAen&m=w`hV56vintC zulY9dqBH*g)pd*$7nSjzlssPkTzSObXdy??g%0{qp#O4c^xNk|W60gdoqxhCpP7$1 z%HW8NQ28QLMc$>v?3MXL#wzH04vs#939xR+VBf{A%do#l(8pNkbo?Gt_N3|g%}>)` z^<%zC-vl!A?u(_K<;|r+ALO;r@uw?#n;(lM)f+iWcP{wR?M7Rh_B0%epwW8Vihx$l zEcQ1IP}L&~Vm1x@vmjmYtDe*XLx{-GdZFBFgpe%3^p39))v>^Ercm9Ec? zArQ17h&;7je^nOQ%GczZ;gS1{3VzthKkimioyvnNf|wILUV1)nY-N!Yx0>}s$Q9f~ zL-#j5__PX5%6KAFnE$LcEPL>Ur_+=WbPSmb@(=--5E=3kxwOjYN&N#<*TbS5w8~t= zu}%6;;+=dlhz@6p=k(hJ&&6%kdD2k!RdFl-qH6j<6z#f4FpVx|@d>F*ba+fK~M5 z-T`4Acaevub4e<&F{j88nsR3fP!x%eS9N@$M|?sS99!7R76^j={|AA}*E{eL;bM`J z7MA(0`MCl3zX$0%R<3}u1%<)V^3AOnYlPzTb&5cclyYI`mqvf`fbBl`+otapmL*SW z=1IHaRQ}q1bg4k?fB=>QmjENQU!-EGY75JFI%r938(S{aawTuFiakWStMie72tD3Y zgxtK^A^%nE_!TMKFu2uk#D{diZEl(pxGc@=g9niNg9j*SN|!7Z>Ho2JU?eyJB_dsq zgjFr0B=>xg6U$$~IRES4$X!!tniBCpD2ijY z*zCH5tiPevsRL&lpR$EhCn&!z_qeJZZkB)b@Kq~-D^e-8eHWR(6XdcJkk%dZvFJkj(AxAgA0Ivkpa&9qB^~OZmz%zICs9uNG*`gqGeqlv@NCjiJMw>;Ed-4Uq%FmW3qI1!Yb)!ZEII{t;7ppsc&pq@pv}K#Ol5myTgo=7gmkeJp;B8)DXK)Sf$aJo-KN#0 zmpur_^ai(n>)_VU5pfZ4%2Yi5g`AGi0k22zt@$Z8?|xa{-IweDLORDlJBxu|rRCkg z^k>i@uJkyRrqb_|4V!*e3$r;I9}|Ru+3lU6z;$_IU>s@Jl4N! zCU|0mQ&(>W!ZmPqu|NWq5S~jg5G;O#e9EHYyEHWb=xUOv_z+|8kJ*+|E1bSOu`Yds zI?MD|Q$kh#F*SmL-={q@7&M)~%9g>TbIBphk}08q1{k4JR|3qrJ$NE}px~dxdwv-^csTgEKYAAmzf^V~tA?(W9VC$Y za*<*biqWPFTAD;7gr(`t_($&AV`PJV%TyU_>Koq?_WSU%BiUSXfLXHWwmM^Ya_MJr zH|dT_7RjfqLv8oDm3Dwoa1Ml%oWqB)c$E%i|DIzQ-*nbgs*)r{W1DTz7B)YJe;kT- zJUdsp>`*F;-B2*SZD4wNly*WH6BI%mlO)vSI;u9z049J{vQFlK&Z$Wb1ouqOJQT2Wk2l%EP`r6WRZl zbb3I=wn6o=jo95;{Cbl<=Q#sl2>ekW*Wx4C!eQ>Z8KNy(ANtCG3zE?caDkOWd-V9$ zL7z?h5~rT@&*t&a1g0Wr)?yLH-GjGBv)wUfp9J!blkMx1C4G30_gl-rhoBB;L)Coi zdY>I)G?h^SOj7~T7LaqL+XEqUFxMFiOR3d9;On%0(&N>hA6@u?* z+$nrap^YVWwP6J_*5X1)7`P;3HOA_VJjFuf>EEo!bb| zgRPvY?-X6ATvl+moN)~k$9idq*qRD_?o*e|bh)hb<)%$nXbt=?yTBzonFW5HxFn}H zTHefm3wX{dG(dGu*zm>C8v}@avu4yTby`DIc@~w|AVAKlmb68I!pWRT1<*%Z%TCzk zKppMmaXHNF1*;WE9EIz`G@>=`)Jy$qd7#~zas){;1Q(YYMm^~zrvb2`Xh7ra2>r64 zOS=*cLBU>u*bC-=-^K-39L=oP$2*Oz^VD{i`?XO>2g9{DFa0D`|JR!5m7k(?vFa){ z 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 delta 69411 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 W+nNQ_gq7hCS+HI738~;Nn*RfaMT?05 diff --git a/src/spider/SpiderRuntime.hpp b/src/spider/SpiderRuntime.hpp index 99afe03..6f87fd0 100644 --- a/src/spider/SpiderRuntime.hpp +++ b/src/spider/SpiderRuntime.hpp @@ -7,5 +7,6 @@ namespace spider { class Runtime; class CPU; class RAM; + class InstrReel; } diff --git a/src/spider/runtime/Runtime.cpp b/src/spider/runtime/Runtime.cpp new file mode 100644 index 0000000..461f093 --- /dev/null +++ b/src/spider/runtime/Runtime.cpp @@ -0,0 +1,29 @@ +#include "Runtime.hpp" + +namespace spider { + + // Constructors & Destructors // + + Runtime::Runtime() : ram(0) {} + + Runtime::Runtime(u64 ramSize) : ram(ramSize) {} + + Runtime::~Runtime() {} + + // Stepping/Running the Machine // + + void Runtime::step() {} + + void Runtime::step(u64 n) {} + + void Runtime::run() {} + + void Runtime::run(u64 n) {} + + // Misc // + + void Runtime::resizeRAM(u64 length) { + ram.resize(length); + } + +} diff --git a/src/spider/runtime/Runtime.hpp b/src/spider/runtime/Runtime.hpp new file mode 100644 index 0000000..c4dc9c8 --- /dev/null +++ b/src/spider/runtime/Runtime.hpp @@ -0,0 +1,73 @@ +#pragma once + +#include +#include + +namespace spider { + + /** + * The main runtime class. + * This is where the Spider VM (Runtime) lives + */ + class Runtime { + private: + + CPU cpu; + RAM ram; + + public: + + /** + * Creates a new runtime, with no memory. + */ + Runtime(); + + /** + * Creates a new runtime, with a specific + * amount of memory. + */ + Runtime(u64 ramSize); + + /** + * Runtime Destructor. + */ + ~Runtime(); + + public: + + /** + * Steps the clock of the VM once. + */ + void step(); + + /** + * Steps n-times the clock of the VM. + */ + void step(u64 n); + + public: + + /** + * Sets the machine to run continously. + * If interrupts occur, they will be handled + * automatically. + */ + void run(); + + /** + * Runs this machine for a set amount of + * milliseconds. + */ + void run(u64 ms); + + public: + + /** + * Resizes the ram, which will preserve + * data inside the next length. + */ + void resizeRAM(u64 length); + + }; + +} diff --git a/src/spider/runtime/cpu/CPU.hpp b/src/spider/runtime/cpu/CPU.hpp index 2bcb302..0431c1f 100644 --- a/src/spider/runtime/cpu/CPU.hpp +++ b/src/spider/runtime/cpu/CPU.hpp @@ -22,6 +22,7 @@ namespace spider { u64 RM; public: + /** * These are private registers, which are only used * whenever constant things are used. @@ -31,9 +32,21 @@ namespace spider { register_t ALU0, ALU1; public: + CPU(); + + CPU(const CPU& other) = default; + + CPU(CPU&& other) noexcept = default; + ~CPU(); + public: + + CPU& operator=(const CPU& other) = default; + + CPU& operator=(CPU&& other) noexcept = default; + public: // // diff --git a/src/spider/runtime/cpu/InstrReel.cpp b/src/spider/runtime/cpu/InstrReel.cpp new file mode 100644 index 0000000..3a6cfaa --- /dev/null +++ b/src/spider/runtime/cpu/InstrReel.cpp @@ -0,0 +1,29 @@ +#include "InstrReel.hpp" + +namespace spider { + + InstrReel::InstrReel() {} + + InstrReel::~InstrReel() {} + + u16 InstrReel::instrAt(u64 ip) const {} + + u8 InstrReel::dataAt(u64 ip) const {} + + u8 InstrReel::feedNext(CPU& cpu) {} + + // Static Utils // + + u16 InstrReel::unpackInstr(u16 bcode) { + return (bcode >> 5) & 0x1FF; + } + + u8 InstrReel::unpackAddrMode(u16 bcode) { + return (bcode >> 2) & 0x1F; + } + + u8 InstrReel::unpackTypeSize(u16 bcode) { + return bcode & 0x3; + } + +} diff --git a/src/spider/runtime/cpu/InstrReel.hpp b/src/spider/runtime/cpu/InstrReel.hpp new file mode 100644 index 0000000..5e2175f --- /dev/null +++ b/src/spider/runtime/cpu/InstrReel.hpp @@ -0,0 +1,59 @@ +#pragma once + +#include + +namespace spider { + + /** + * Implements an instruction reel. + */ + class InstrReel { + private: + + public: + + InstrReel(); + + ~InstrReel(); + + public: + + + + public: + + /** + * Returns the two-byte instruction at the + * specific byte location. + */ + u16 instrAt(u64 ip) const; + + /** + * Obtains a byte of data at + * the specific location. + */ + u8 dataAt(u64 ip) const; + + public: + + /** + * Fetches the data, and then + * feeds the instruction into the + * CPU. + * + * Returns how many steps it should + * move after. + */ + u8 feedNext(CPU& cpu); + + public: // Static Utils // + + static u16 unpackInstr(u16 bcode); + + static u8 unpackAddrMode(u16 bcode); + + static u8 unpackTypeSize(u16 bcode); + + }; + +} diff --git a/src/spider/runtime/instr/Instr_00-1F.cpp b/src/spider/runtime/instr/Instr_00-1F.cpp new file mode 100644 index 0000000..0d40cc9 --- /dev/null +++ b/src/spider/runtime/instr/Instr_00-1F.cpp @@ -0,0 +1,9 @@ +#include + +namespace spider { + + void CPU::NOP() { + // No Operation // + } + +} diff --git a/src/spider/runtime/memory/RAM.cpp b/src/spider/runtime/memory/RAM.cpp index e69de29..c47d7f2 100644 --- a/src/spider/runtime/memory/RAM.cpp +++ b/src/spider/runtime/memory/RAM.cpp @@ -0,0 +1,114 @@ +#include "RAM.hpp" + +#include + +namespace spider { + + // Constructors & Destructors // + + RAM::RAM(u64 length) : _mem(nullptr), _size(length), _oob(0) { + if (_size > 0) { + _mem = new u8[_size]; + std::memset(_mem, 0, _size); + } + } + + RAM::RAM(const RAM& other) : _size(other._size), _oob(0) { + _mem = new u8[_size]; + std::copy(other._mem, other._mem + _size, _mem); + } + + RAM::RAM(RAM&& other) noexcept : _mem(other._mem), _size(other._size), _oob(0) { + other._mem = nullptr; + other._size = 0; + } + + RAM::~RAM() { + delete[] _mem; + } + + // Assign Operators // + + RAM& RAM::operator=(const RAM& other) { + if (this == &other) return *this; // lock self + + u8* new_mem = new u8[other._size]; + std::copy(other._mem, other._mem + other._size, new_mem); + + delete[] _mem; + _mem = new_mem; + _size = other._size; + + return *this; + } + + RAM& RAM::operator=(RAM&& other) noexcept { + if (this == &other) return *this; // lock self + + delete[] _mem; + + _mem = other._mem; // time to steal! + _size = other._size; + + other._mem = nullptr; // leave as a husk + other._size = 0; + + return *this; + } + + // Unsafe Access // + + u8& RAM::operator[](u64 i) { return _mem[i]; } + + u8 RAM::operator[](u64 i) const { return _mem[i]; } + + // Managed Access // + + u8& RAM::at(u64 i) { + return (i < _size) ? _mem[i] : _oob; + } + + u8 RAM::at(u64 i) const { + return (i < _size) ? _mem[i] : _oob; + } + + // Misc // + + void RAM::resize(u64 new_size) { + // Special case 1 + if (new_size == _size) return; + + // Special case 2 + if (new_size == 0) { + delete[] _mem; + _mem = nullptr; + _size = 0; + return; + } + + // 1. Allocate the new block + u8* new_mem = new u8[new_size]; + + // 2. Zero-initialize + std::memset(new_mem, 0, new_size); + + // 3. Preserve data + // If shrinking, copy 'new_size' bytes. If growing, copy 'old_size' bytes. + u64 bytes_to_copy = (new_size < _size) ? new_size : _size; + + // 3.1 Previous size could be zero, where _mem would be null + if (_mem != nullptr) { + std::copy(_mem, _mem + bytes_to_copy, new_mem); + } + + // 4. Swap and Clean up + delete[] _mem; + _mem = new_mem; + _size = new_size; + } + + u64 RAM::size() const { + return _size; + } + +} diff --git a/src/spider/runtime/memory/RAM.hpp b/src/spider/runtime/memory/RAM.hpp index 9d07316..6df9cdc 100644 --- a/src/spider/runtime/memory/RAM.hpp +++ b/src/spider/runtime/memory/RAM.hpp @@ -12,13 +12,25 @@ namespace spider { class RAM { private: u8* _mem; + u64 _size; + u8 _oob; // Out of bounds reference public: RAM(u64 length); + RAM(const RAM& other); + + RAM(RAM&& other) noexcept; + ~RAM(); + public: + + RAM& operator=(const RAM& other); + + RAM& operator=(RAM&& other) noexcept; + public: // Unsafe access u8& operator[](u64 i); @@ -31,6 +43,12 @@ namespace spider { u8 at(u64 i) const; + public: + + void resize(u64 new_size); + + u64 size() const; + }; } \ No newline at end of file diff --git a/src/spider/runtime/native/distro.hpp b/src/spider/runtime/native/distro.hpp index 3c490ed..1e691a2 100644 --- a/src/spider/runtime/native/distro.hpp +++ b/src/spider/runtime/native/distro.hpp @@ -1,17 +1,5 @@ #pragma once -// ========================================================== // -// Compiling or Writing? // -// ========================================================== // - -#ifdef SPIDER_WRITING - #error "[Spider Distro] Please do not set this macro." -#endif - -#ifndef SPIDER_COMPILING - #define SPIDER_WRITING -#endif - // ========================================================== // // Distro // // ========================================================== // @@ -43,11 +31,9 @@ #define SPIDER_DISTRO_DESKTOP #define SPIDER_OS_LINUX #else - // ========================================================== // - // MUST be a microcontroller! // - // ========================================================== // - #include - #ifdef SPIDER_DISTRO_MICRO + // === MUST be a microcontroller! === // + #include + #ifndef SPIDER_DISTRO_MICRO #error "[Spider Distro] Could not autodetect. Please select a distro and OS manually." #endif #endif @@ -107,8 +93,6 @@ #elif defined(SPIDER_DISTRO_MICRO) - #include - #define SPIDER_DISTRO_NAME "Micro" #if !defined(SPIDER_USE_ICU) && !defined(SPIDER_NO_ICU) @@ -127,4 +111,5 @@ #endif - +// === Include Distro Defaults === // +#include diff --git a/src/spider/runtime/native/distro_defs.hpp b/src/spider/runtime/native/distro_defs.hpp new file mode 100644 index 0000000..8e7544d --- /dev/null +++ b/src/spider/runtime/native/distro_defs.hpp @@ -0,0 +1,40 @@ +#pragma once + +// ========================================================== // +// SPIDER DEFAULT SETTINGS, PER DISTRO // +// ========================================================== // + + +// ================== MEMORY FOOTPRINT ================== // + +/** + * Use a normal amount of memory, assuming there + * is like 100KB free of it. + */ +#define SPIDER_MEMFOOTPRINT_NORMAL 0 +/** + * Attempt to reduce the memory footprint + * where possible, but without doing + * extreme adaptations. + */ +#define SPIDER_MEMFOOTPRINT_REDUCED 1 +/** + * Will deliverately convert things from memory + * to functions in order to free as much memory + * as possible, even if it slows things down. + */ +#define SPIDER_MEMFOOTPRINT_MINIMAL 2 + +#ifndef SPIDER_MEMFOOTPRINT + #if defined(SPIDER_DISTRO_MOBILE) || defined(SPIDER_DISTRO_BROWSER) + #define SPIDER_MEMFOOTPRINT SPIDER_MEMFOOTPRINT_REDUCED + #elif defined(SPIDER_DISTRO_MICRO) + #define SPIDER_MEMFOOTPRINT SPIDER_MEMFOOTPRINT_MINIMAL + #else + #define SPIDER_MEMFOOTPRINT SPIDER_MEMFOOTPRINT_NORMAL + #endif +#endif + +// ================== MISC ================== // + +