From 9b1f44f78731840e9ded27194dc62a3c1155a33b Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Sat, 9 Dec 2017 02:54:10 -0800 Subject: [PATCH] SCP: Remove optional write_callback in the REGister structure The REG structure exists to serve SCP's various activities. It is does not exist to provide capabilities to a VM. --- doc/simh.doc | Bin 292352 -> 277504 bytes scp.c | 6 -- sim_defs.h | 162 ++++++++++++++++++++------------------------------- 3 files changed, 62 insertions(+), 106 deletions(-) diff --git a/doc/simh.doc b/doc/simh.doc index 87369297ca17cba6878f26857d2d5875a0b670e5..eb35133762c0144ea04a132b537645b588395a5a 100644 GIT binary patch delta 35370 zcmbu|1zZ$s*zn<*SyWU~u?V}9R5>PgqUbTOI}y8Mtz#VMC$Hc_Q#59bj zg$vRlJxpHRY!;|fHFwP+Ls(`lhg~CsQoK})Cc;6FENPP^EJT}XEXi`#WKop!21V(X z*|LUvLlh-Hix`?iQD)e%xV)C>zxw-%_p_&96Fe2gj?ZQBRuo&7>(6o+RZ8$zevQuw@a}6_elQ40kHf@z#ZI=ZLZ8$2$E38~oW$Q3Ci} zp!H4u=3)a~_`8C?CHX5kEI*TC=L;EW8Glt)QQR4n@o+^kDAxzeh6I+g&S04>J|eP# zRhVc^ob|6Y0@m?7KC+zL+2hA8OR|nj4$DvTA?Eos`vCJ_f9v~+|5_7}czWD;m|KeZ z-qx*-o0_P2{5)OOTH5)i>6=T~zEhJGFI1sz>&-<|JxFHj=jrL^TfAuTu$)f0<45W^ z6^I}C%c)TO$WEuc))D`(Cr$<9M>0Em$B#60_KP2x?p!#2EdcSJ=mN)?^p+ z3iC}Lw`i}h4(ap9e`a?2BJm?<(pz(Z&)8&0u%16M#3jx>kkKdpo$nc~xxmtjWlHc)k4$mv@d;a#skHSo zK4Gsj#eK#ntbl9WdVIoqy86e@w#79de&k!ikxFiHq4EhE?p8B?wo7h7@gtt@aqIC7 z>*!v|`i^gy$-P4Sh`}Q+OMJtsc*HH*H*BOwTo8T3c6%gP+B=V8@eAf+IN997dDN6jm>(N58dF-pZmMII9m3p>nmnw=)D0;I4^hwu2rlyxy-L-_4H@UNA zxRr<2)BMTH9-3#cq^ueerfxIiTksBgHvWNAT1BaYF*uc0Nv&w?noFaHi{7HNR$ecgLvz*l zdTRE1*V3A=ZkI!Qo2(owY@(|@PN6{qzeK3@6? zgI5uaS4hof+rb_VaD*f+EnMIOUj(9-lfJj0mPbF6Q%j#zHvW_)de&T;V_cQ7dqn@n z8ftST%G)`?l*AeQQ=!nK{9>z|xdKMz(o!0esCPeSx{|*ZTVESNr~}Ekh6qM`bii_OXoyhK1sz+oK0KRAuYc!H;Rju((p@)qy#9Wls6DRG4x zJdhbul8V3+)$~2NwZQl=1}Fb9j9KE|%G*3y{9FH1JhP;XZ=R(77=I32!rGE(aYd@J zWz|swfv5#3`*rar+M*qXVi<;FB>sZbkH0YviN&NrM~Q;ejm3 z3TaGoBM&N|BATNGTB0@DKpLD*=#2gtfN7YH8JL+yX|K#;Kw72wSb()yhod-#<2Z>^ zke2Hl&f_Jbk%|^9HSFL3M@Z|I4(Z_q@3hinc+P8=xWDqXULx1V&;MMnjtKiI{{nSc@ZQ zdz6=BIDwO(jaSa$JZ|F-zTz9cLypW;$Zo(EDdB<4C=P%8fs!Z%*;NGSdkSi`E%7Xr zFrJ&}6j-BYiKkzJDgWzu7W&WeEE2$Gl|vBfAOu|yif-tR9_WjH7=e+Phxu55MOcg_ zScz2#-pR`@T);(K!WCS_HQc~WJjV;zrXz+(1v}Wo0cqia9LR~%`o_XqLvsvecVZ`f znIA*9jJ>{f%Ksd?F-2l`b5Qcz+f>6fI*W>>%UDx(S-qY3(;FZy8s212&qh@qH-$ykNeSc7#~4@u)zY{M}e$35In zr{q^2Fz^VEA%S>_Xeb0hg&W-Ap|AAT%EssGGCe%Avm!WMeM3qJ6LG(CTy1e%~J z`l28DV;}}Wny29yfw`E6?bv~x*o{3Il}hF|>;NMN@c<8@(vE2`AQ_TF+BrMeqX;}v z4b@RYUs*h1lkl7{{}430Za+-%|8E5`aR>T8H3@yFS=MzYZW3y+t%0ZoX|wC0J~|@= zqc9p{Fb;o1+Vv@ziU>sF8vey~+{7(N+y5XFr-dIfkcr0M6~6F8Q51(iWCu|arBDZT z(FLLCitgwE*@^VgH~yhjOR8okE^Wo)3vnAZz#0K_A=by2NV>@WpK5-=K5SrLEWkqS z!fx!rK14wFf(LO3&+r^6*elv1B~rrlMBokAnckvLcJc+wawy93 z9Jd zL@)F~U&z)D#t?UAdbO6lvBe2j!28FsEqnpP7Z9s^gQ$@ zu?zcf1Giz5mzsbAD1sm~F!ItDqY+t<(upUCM%F@{aYbkJ!#ncWR*7=uUUFmNQz| z*cj7|V$MZm<6`W@F5E*Vvac03;REuJWv#IcPw*7&$hP(v0wYdCt_atIj4zJI$wtY-H71X0+FjLIvQe^7vQM&ZyWYj!kV!9m zhXa>Fu3BdOW;@N+)U<}SSPhW(mtZNz7p3*ZMr^`4q$ozYL_>_k7Cc6Nia}#cG6e)` z`_xRI87VX z%n+ov_@w35T^eZ5j8dLEF@GN{#Wq-%bB)hGLFH2PJ}?-6;WBQ)w=@M8(*ihZL-U$c zOso%LHw8l-${ha26g>Qs_8w*H(Q4rDV8y7c3MQwT(rTb&Gnz1TZ$aV3Y|O{Odzl@gcccxx^N}{HeIQ8sM?KI0+YK_9PzLRtqscdqWg#QxQ$W0jg-UQ6sJB^ zOFY0!RPRd}#UY$V)_!zoaTsS&sy`cw7f=SUa5xX7SRf2D5RTVS261`;A7AqO)ck50 zddiqSI9MCuFBz4KfaXpR)T#t_MOm6}T);)Vge`&2hO*eMFKndcHZ^agEmZ5vgkW@o zHAmJkysHAG0RENO7osP6;T2vZe`Q)jjK>7*!yCMXT~%oz@|kEMhN+e8s?z5{UHplM zcm(%qOv9fTfst^l!E{*5L^sOCOw6h&OI$5&j;|i&V8|@h!^=`2XE)c{InQFIi+GJ3 zfxoQ9EvUu*@_uQQ!M0l5-vVplJ4^xmM4|hPhJO+ow8J8p<5pHDZXNWfsai72>g`%< zZ}ZFBi*XL;ah!5`0{7rtpVP>wftvNrkX!fQSZL|fdb4@0%#u|)kK=C#?x1*|h z{LQd^Lw30EfiD(eG0a=yW2)Uj+o1Z%1nPvjO04GZy~dp7z)-5jF!XLtJ%vLH_S~>< z$*{?hqB*)VeMEKICji(L;GO$54dBTC_qb zT3#|?E}FEbUZGM)8U<|W#9j}xsDrbyrwgZ-@Rb{lw9{((uc0*M2%s*O!x-w~*zS6k z5Y1gLbb`Q@>7hlc&SRN;lj?a3#e0zslXEY&-PxbvlQ;zCT(fW6pfavmVl_c5HYAA2n9LxjnB5Yy8|Fl?>CDmC~cKAF-D(VnUv zpBQ$h)_Oo2Ok0NOL#Wx7M#U`)n%v56}An1R6I~#{GsD?3^jPyI`T%h+(iWmOI z6uibq6yC)y4B=RaefSvtG5T5b-S}U9@LX+#M=CPFeib_?IHD#3aS^fmUvqv(b<-TB z575qZbDow>^^*5nk!h_HWZWP!YbSQ$1fIcp9p@9#&g8X#Ob>0x@Mx^ZCBz`-dRid# z!*ZO(7vv?g>!BCI5P>(yK_*v0cdS4ZY{|#eutR=GA?UKnbf%;st*VDS;;xLE*XULc zUPRfwwM(;;gC_mvVl7)IDJD`hq%=qgkldG?mt2<|m)w?|mRyz`mfV$`m0Xn^mE4q! zluVQil+2TilT4EgyB(Why?5$fi#d#A6Rzt^mTFBrB>P4|vTzq!v>Q`*lUBSic`V~- z$tYQO5V@IF06OMk8CK&pKH?j+J@m7&3Cs3U*s&dZv2q{#J7hmVeDDtHLGm00QS%V} z1}wx%9K)$YRFZ29+{6P!;{(2-^0Go0anBHAG#}g z)s>pb>ji;oPJmh@2+|e;Em1@^KkkGhtfCce4!oE+~VL8Vc38IcPLNTiCx%_ z!>D(cf`CX|K%IN++VBh?qfOtpXqxJ8O}UBG_acS8(KA8HMlw8vlo>IS4gCuz(P*BLnQtT2Wr`b|P#8rJi0;ra69;e*1&Dw| zq-$(6zVP=eBr2P50bh}g=+wqUi4rd1n-ce9GH&M()F@M}v3$U=^S@*OdSeMzV-1er zD@tA`x!8jklp_8^upcKO`4NRc@EQWWGxH*|l_w)Bpuv4=J%Z5z9q|uN<2sT* zNSI%)v6XZ$mDDI@AsPukx}J}0#u1!=&tvu{=z^Y@kL9?Gn{azVPM{&0U@jJ619spj zPT@JCQS>Pl4=tWj2|^ecj)|Cyt=NuTP@mB&M<8mW1zMp8`d}o+UeW=9T2Tkx7*5V@GBi%!~XlQ}IuoZU@1Gh)?zR(uqupSri1>X?^Z-OqF zA{io?arv=yEs~qN7WQ#ni#$JeEkY%`B&#HwB#R__Bx@vFBumH+bL1uJ5^;&PL|URO z5tismWV4|^(HwwN_y-^H3Hb@4M7PvSoh`blpDs?z5d9Awo)w39u?{s1D#c8a1wFA7 zk_(678qG$+4@J=#)3FQJ;rxn*A0rR}?KPpmTfNy~YRkOC90>G1tc_Jm%hXPohMm}j zG4D7kgEfD@lE=a1XCn-O5m%A>qx6pQSvJ3HHfmttcXnN<1lXE9_+soOa!7n+9L#$F&(op;~RgG z_d8A1cPi@&2G*gzrYcR)3~kU3A?S{Na5Sh&I?TsX6tqzlZ(PB3Bu}O))ewXRn24#k znp{+43A_Yd0xrRpKueG%z!F>utOQj8D#4tBTrrd>*efbuFCeX|s<&ujsHIc3 z0`yd;wLo>bd}An=`INu@G)l`hqqo*pvOatLG|a6864hFGh)1v`swvS8-7yoh@DkC; zMU-=6JSJclb|V>4mgt+0!Q1Q6BRQM7pbuE;g^W#pYLe@}vSfIjBl!EOS(q7${Dv z-o2qAuO89Ruu@)z%hi`+M&2=R4h@53r!z7jBixV+g;4|nC&7dkaIE}lglTlR~AryTu zHWMMoUL3>+d_`VYDgoM|3&vprreX#h+*BnkG9oi(x~WEGJ_Gjdqyob*1yfPigPMcR z=!!X+Rb?Sg;QjOWclf<}`s$IZ2d+N<>38SVok>o&&UwH(py>O9HFt+ZHDkyHEn{+~ zjmXc_hw!>m;5W8P%7B~_9)@Xx~_zU|HgNn{X1LJWTpOKer zYJ{oSiEk*MR#pCn`Px(_xxVSDf4itP)}t>{gn6+KYs$sQmst#{_0UUNa!pb7TkEvE z`s_0Z#$z+C;uCzy#CGVIN!25(XdUHx zL>}p&HC9*gEmBwg+Gd)I4l<p%brYZH;M}Tj_)`kfI^QLW+bG2Pq1}F#>mS53i7% zTu*^M=!>D4f~k0nCrC~yNP%W(j-ikeLVF$m^G%P~L}#34#&`NqL%8l#m579+Xl2p>~rO#lVL4jQz=woSctv24qFPB4_adqcH$21;{i5ip;f>g#9l+}CdUV| zS5sHXQDRwr-)@c&2viQe-wC#C_D!v&F|Cx^GmsB&!$n+!Ea)LzvQppC7_AVFg*c7# zh=Gz#Rchi-Oooo5IEio2vQwzg5=*cGyAYAx$eTH6PEi3>P#+D^GbcMVOvNl*!7aGv zQk5*Ii8>gJ;h2MkSdBF}iL#tNO$13`IcJDc+|07fjtQhY=V=H_K5PJ zrT9CVi<%~x%-Ib`@iG2W39j4UqyJ{TE1{$Q^uZ6?^DuUM=DpNf1oUR^Skx!HLYT04W$!D5OA0VUU6#g+Maia(zx;Kaz;t3gnWd`DH*GMt}KoA)kTv z<2K#ByAQO9?rCK?mvIFy6qIx*jb6D`JxevsFD~9q3VK^ABfd`^Ik73${v5 zaGEo}+dwU){`8qPDt$8fTq}fO8I~h{gNo=+`JnFfMQ$v4sC6_oeZdx#wUN2{QtGAT zkH;arL0U?`8>BX5fwe|#WOzKaU;<7QQuUUBh9>G`-MK2Qk2yO$s#4NMOYYF+C~et; zG&{n(^WKqonkpAP_>Gp)=qPpR9c&8GSilZW=!~wIh^bhJC17pJH8d;CE)G#RkDIuS zqD81(Sb`OJgO9l7Nm;`gFIsxM!W%DIDI0GJD*B)=YWk3qXo2?ViMg2SOLfJ4yg`wo z?Bq}#^)L=ok)@cbdQPsV}1xrZVhlH``YO2kTX^4}3!j{JXGbLL-ir#?B+0C|Xb zUP$zx!kh!T*ITWEoaC~cG?9~B9F;XQ_{!D){JP65En`><3MiE&KuV6I-tQgL?cQlk z|41eI_u8Cy@mV&GY&(Ewa3ibAp&G1N`GD+tsC&I7C1t9OxdN&8{G5hu3&u-=l> zIIeJJu&g%Y2UhFwkVU+X&H2LQvNiWBF+2hzWg5BbiL1DVE@W=(?MK$Tez?owEvtR; zIkr19}NZy5?eSxaHiyH}zoMt8~H za#NAH%9+m^QspY?FJtJr^|~o5`l7x3Bc-+Y%;nRCC?bVXyrio5;|WriqVi!2wqi_a zx>krkCuz;Dz3gtxEy&mJT8RF_-H_WdIx&WBhrJZP%{YsTc#ddfVjUi6inch4C|K9s zo^^J|FpR@)97ZO#Aq%RYCR(61dZRyvV-zN1R%t5qD+WFwQyEqW9~4Cu)IdE1V{lnI z&Bzd-Dp_$2H*pUSVJJuE3|Wx_B@uuYXoE92kCx?WtdY{5!A29!ZEB8y>b+;%&`rg;|KP3N`z+E;rd@Fy8KpIY;>hQeelTKuIg^8Cc&$2&XJi7VVYzvt zyQ=3;X1M6EoGB}?9{YJGxy-(wkpnn{BTTeqV#Onj9K|s~w2z|)(e8-}n22TAi>tVX zq2z+(#&)7DQJ<x%4n4U?@2>eyy{qOaS3g>R z<-Wa_v18U@cX`u#Tc2e{%S+_ zvWC!)Lmon&S3*xX8{%bbXcM-!?5pf`^Rb>>1vIh4ET`79#y>5w_a>}9IDwP!CcHjq zPe?n&hE^e*65c$GSs}h724PL8PPmFhE6rnBX})o+G&+sJNi|BIG({_Pz-UZB5f)Sy zBQO?IF%#b)E85dsRU+{ZcD10r$8&tZpjPZPF%#i9-kO#Y_HAe>Q4mGo(t(m)z5{)T zj`Z;G8E&0bB`3bXCWLkwJG*eGQNB7}=XrNKhXSn=u_(2v=v!$ASc*J44vMw^WsU zgeyPhV*xhd92CNr1(lQYQmwVBZ``E$nHHosv{0)vs#M2*9DpaG^}VFN0cSf z5kxo=5>;zNC3>%6(=~RnLo*tNsz&SNG@%?UAUh0Q&9f=x`1=|$@ajhKLt{ zf`qv|p5hrc63$KNM>zXqD#EZG(cMi&-3`apy3vey_n@iANF2d;`1T}>*aj0?6YDlu zO}y72iV&Yc8Nyl?Z{kBNr|%}~-7*;Ra8@k9d|RoUm~yi8cFjk=6SEk4bd}t2hmqVE ziWKCAEz+Y5+G8B{;SGumrisKL%tHhoA@2~*-lGp@VjmvB*2rhj5W|hCzA&?)i5`=e z4oJ;xoC2pm(p$fk!(gXh%Vx-BWDaEyULpNZ3McwtAx_{K(hZ~chY)PSOBANubisOT z#ul8#IebHU%18zD#v=TKJ9rN+Sy_Mdxg`x}<1UE}mkrBmlzFmJd>UZ@7T_@ch2byi zJ_67IoXCsJW9eoi z02MI^!?6qda1D3HQse86W4DP*xCZ5Knh(@QL(Io=+`c zOdvXFj&|6AJ z##7m=q6ON+d`dBcx!*2*_xmrdn_p$NO~IP-HaS_8|z8VHNzTwl3c`h zxDzZ7l*K^ogalAxCvlUQNxURh5+{j~#Agn|F&FbNA1)*{9R?yn$>rMgjKv(Yny*Gv zsRB*ZF;z9nY=iI*kvWYZqEH8q5=105sh@`Fh{h{4kBvm8Fq$pg#{-m|Mw!3{Y=rZ4 zI-uB$E$A}i$HE)Z#K1$Eq>{&*s7<=d{cUG7d6sG%RloY0d6Vjj_T4E>5IEun7qXfpYj2U>1 z_vpKT(u|o{gi|d4I=U|+%P|GhaSyhODN}GpdXz)}DlVqnRAZnzf)Iu`Ff8HB1}b9* z_FylL;yCgxWgmbp7>LJsj*s|^Z?IWL#|^8o9y_rcsh86c!%7@oZsd%_3Tgnlt)%~t ztE*^UF=sU;9U*I35hh^W21-8m;Q*{>DdgmXby)shKOgtYJG>WVZt*NLMV*K`%L zb+G)2dJ!e_Df&JygNHuei@lSjSL9`I=}fjMcVk1Df$01h8>wmhElf0upe-qGhp(}z zH;_6TEW{#=Ab}&%fdqEMSrT{-VI*)GdaR-OSflE%7I8SqJ;&zTjT_6|LBnTkX6#F0 zx*20;u)ghx{cjCOxT5UxQId~4h&EU4Y3OAa1Ix6 z2{-WqHMXIeKnNxy4AU_KbFmJ&c2EIO6#giOis*_-Qj;bJxF7@W;SD?@ zIYL8Iv_K~e#9r*jcc}Y0YD9Sq#<2ZHwwi%Sh{7e@#v4>Rz@89w(Gat+0B3Or?gv#R zEApW*I->^$VIpqhK3?DrJP%n~#e}D6@7FLlj`5Q$?O@_@YZGcYyPNbp9A4;=<=Jyu znn#9=jU@kDk?z(gK#~gL3a;WfNjQOCY+7%$Wb;~~=V7Md$PxAen0AaZh$Saza*+Qd z%fcJHh5sqaA@<_{%Ku|6bEcUk4Z*5jb}`p_o@X&Q7(FBe#n2H$a0~bF9IsJ?^%g}t z^uRz&g+1Hh3|C}96ST%u%*AQkLi?j+1A3t!{=zsM$AzQhwH*n`h$^U$5eP##)}z*O z@*7Ri0$tDpo3ICOp%4U5ltyO^#2W0veLRLYfhmts7>6%NX(T#6D24z8VH#%QI4;A1 z=%qn*G{!2dgX3vZj(P~jT&%};Xi;>MFbLbQ6MGR~iY!Cwd%Zh%D(HPiaD+ZQfNOD+ z0}QFSFYM=nBbitMDOkKMreg-$vDo&=d4|?joTcA|Wmt|*=ZFce;a_;2Cl(lv5pcLb zQqbfw6%_$jXr)p1smj%)n0U#W)f&6Gw0v&q>G^ z1dy28sDobUjoAptejLSB%(_ngVl~d#Wy$Rq1fxb8zQxw z@r_HH`jTgo)KS;y9by^I!tP(%O^n7?Ttr5aRSLZ@6O!~2BvXALN z&M!UH11lOf)w8Di3hykv&D!8f`rS|hCE-E(7h(}!k?z;1NZKml7H(tE1J;II59K7d z`9U9YzTL#VRh;#fNIb$P)MBo>=!XFqi5Yl-*T}*Wa-a~(A`CiqV=p3b6qnHH5mgie zF$Bx79viUS7c|VL%&0Qc|-fiLJv<6qpxOQd~CO+i8UA^6Gu zk@!dyKA|&-4Z**-j!Go7GOj@qFNrOL=8(j0iRN?CYMFoZuZw70%_m6cUiq3%S2K92 zMhU<^oW(`ve~3qLd_@qE8~qXdn$8xw!2cb40o?mYVMh2Tnm4S(OT0qY&lD*v{X#m? z;44KFWxvzGLM!z8PO<9Gz~2ao;e(2%yhe6SQ|jOuS{XDYxs9gS!Ug>?4zHjl)41JP zQ#`OKg{Cx0sVV310O1arvI3Dfihu{A-lKsKmcV35Ey% z9wk2<_;)JgtmXG1mjLg6{P$vl36?jGeLS`svD5Egw`MVP@k%c^|kA!&?%6K$hy*4*hO{A#` zG`$KmII0dzQ#{_#O+d>xCWqQwk@joJNI2%g`z_r86ep9dnO%e7(jPbgz<4r!0=DXt z>ln)Ff!tVb8eYdRMC~e5??Q@(wOB}zh>k55p%e)z8n5sg^(hikG{P_qJ0Zp74Kh+H zGNCgiLrTXKM8Sy?QVzWpP3}5zGmZPxz{M9vm1Ve$2e1~V^s1(~BR8sJ2sYv#oGD;# z$OdbntIKdVtiT0GA$*RO6htYEM(oE+NWtXhfB7-Zs&8n>4axNlu3U&u(VWgpm7ILl zRAxy5DZd8FsZD}1o0;KH+{gSG8!5k1hX28H*xPDKVH80-bi`OJ#}QjipHknD*JNyH z7^c=`R5^+_$U@QgMrAZWFr-?Xg|%utWcW&IO}UD7_L{ODXQ&QmQIV2Q4KN2*&bkM1 z);*8q@(H)}aIK;$jmWJ!hM(??YHD!yvsRr(ETjkjVW=kxQiTfPPYlE$*iohIAyvz~ zryC}BduNeL*RxEa%?)2PM?b}rUq8iHDXtV%iqGg{2u(aq4;X3)bxt&+Qe1!4+7R;7 zyk|Q6v;cqIGc<{b-TNgmF>3HntMXTTl3JC&-lAO+3s~6g=ZQ%q%0H<@`6rzyfBmOK z6;nKaPLxdiDN!=G^VO2ELQc2j$VR^1#y*ZhYx4D_<7$w>*kW9*`o> ze~_=u%eRK*%ZT!wEcxz++!-x5Q*v8bQS)6%M0m~UXIgujA!*aYL zol9xs?dZij=>BbN+|&$w?b49J$P$$-$d59pfjVf2W@v*BU?oal3 zwXy;7m@|1WndNz7i~i)>p7mLI1IrV-99r`IKgct%zJ?P2?!>JZUqtTBH>Ud#$G&_c zv>%rx2e6Stc&y3@@?#fZV??cjL?5)N-%0 z+;}WE1k3HaazCcrA1Sv(E{ELbcm#3_o7{9J_lC*+MRKo?+#Mn}dC1)sa*sn>^GyY0 zrd*$uD`|4ML@rXuX=ph$C}(-(C|-`O<*-S*!qRP(UaIslrL!kJE9v@3uR}_iJ&AKf zdUznKzIG{nmlbVnYU^Ly*sy18YvbZvmv{aITc^}V1HEZmzU$XqpR&x5*1j!M+Mzu< z>Km6Cng{*G;3$m7Sd7DXOaNQ2Ou}SP50o%WhmM(;jd0Av0+32&u|A=lO%CG+ZZuVr zQ!iF#@Bo0K2gd|KJIp<2zha5?T~Nbp)a6nSNIEIsWiPWjtQh1>zui zp90Ch-I0H}(;1^N4iV1e|Gx~}L?-qWekhJQ2t{|ue|g!BeRu|2_9pTlT;xBs)P(#K zlr9*H@mPvT9K;QLhWy_W4;Qin@;^x$peOpcxYC9*uofGz39?&DYd@ZJ>MVRYnd>G{-pTV8}sYP`2Qv{{(6UXhJ1;_?63SPB+_^PRYc^yUqwXT`&C4E zj~3|{DU%QW7?Svi$a}wvh`jf!h{$_CmKEcV3;k7Lkq`blGG4r!boOvO@SDhZDc;84 zeDK$i@%l|mOJs~m*6CstnO_$g z@86Ue@83kmJBi3p{^ewYtnk-`#``ys@%~L@ynj<>d@PYMCefl5BYnTFPCmbhjL&Z( z+0nDo5=Y7CNdnpCAl$1 z$$Q@Y>HgQ`m@tTI(H!Er zwBU+N8x9NTW@p0NZX5-8ETy}DiK`4;FYgqMN-0Xns5XVjvj;~BcTX@Yj=*S zh{h$N5kfSo5e;{uabM+fMMHBq_!0;|cavFqPMe8}{F}3qZ+K!Ds$f43!~QK#0YV_^ zBNRO`gNG!|M&9@2Io5tAvOM^wbPQc|Ou=*%RJekM;wX`om%bcGZm{8EBl2_R*okhN zK}n(5z@Ud-G-NT#sCyzZO~{WN`$&&(3s!j0sm2xDLdwi+FG@rHO-3ikf14kL@z~8t z^$2v$MWw)IY{$?%9D=|lFS(R4FNsAX%tScO;Sz4%xH_qbQ9Bjc2 zSy2pSAdjpaj02F`9)K?BiP@Ns{YGA->fgXUByIxQQ~g7*f@;4mw(4)7`ai}?Xy14Q zCNd!#JgD`#(80jPbF`uD>wrIK|0-etr<8_b0;a;ag_oVUhTHfIc@mJHGatfOOu$|o z#0PwZJQc_r?GS>nbex*PBCNnZ9KsFUMM_TfIG{Y_5kEc9D?JyLCo?b&yAXj*8Myxl z^8BBNaLLHIC^SYZgkvF2;~XluaU&Lba(=8I8q>$V(`Cq7wU|YA9KRHxcSdnDEq(796LGa_t|r{JBRNLoouA5r#!r zj(d2Btep9i=RlmndDJP%ehsq_j$Wn6{{g&wMGSTX5DCPv<5MdVx=QTKAm1Z@i7%Wk zjKSDyoR>s{8eGUm33iaB;8Tm+($KgzcL$+E5M=|?If*w1--9h*DP7Qrdsncz5&6HJ zfqQrWwJ|3?krlbHjq}U7qdV^QBs#F|Md3mQ$d>>+AOsOOh`0Cz z&)(b_h+s6s;NIl_a0cdM2_hli7<`Nu$k&IvGEp1#&=-R+3-b_xLwJa1NZFSSfftG* z7|pO32T-ja_rRbp24azsmt{DKD5URC3J{IASUiCHGH@Q3@g3SgQVKUzM0NDR04&C8 zoW?oa#Y23+7i1emWYHMSVI0WIP%OkU9KlIk#~s)VCRHc^Pn1JtbVLt~$0RJkVnpH~ z3JxKwPy%Jq7|qe1h4wIBsMZ=Yct+$)slJj4(BKcv}N=#XmO}8%EGSxCJ@5*%f(VQ%Q zIelgdEpD@0^BG&E$&u&djwTdV=VLaC!D+W4@zmX>rX_4@sTtDH zqfYpvl61&(3rq2+rwTS|a(2p9O4)4JzfF9A#rnq?uNme4U+@`&aY9sULwjFHTEkk)3$|uvlB_ShOkO}g>a5vrV zV3S3i(yiBwPBtMaZ|PlbNdn#U-kofW>N@=$f0FNGRknZW13ELQk^Z@}%>Y%?dxtQV zN`Dt()3x$sr`G0=ITh$={!0qteth`vtJjsfN}v*;1S=JkOFV?yQ#q*|QEn<#lyXXK z<&bhvsn2VWzPgKzzr%uJ2^VI1-NmL&vYbA?e%}6-iuo4u^zkfO$hT;PN`(T-`&TMd X$*a7VPeng}FF$`j(}12fqqP4AT|WH# delta 46846 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 + id) & \ ~((m) << (rp)->offset)) | ((v) << (rp)->offset)) -if (rptr->write_callback) - old_val = get_rval (rptr, idx); if (rptr == sim_PC) sim_brk_npc (0); sz = SZ_R (rptr); @@ -7733,9 +7730,6 @@ else PUT_RVAL (t_uint64, rptr, idx, val, mask); #else else PUT_RVAL (uint32, rptr, idx, val, mask); #endif -if ((rptr->write_callback) && (!(sim_switches & SIM_SW_REST))) - rptr->write_callback (old_val, rptr, idx); -return; } /* Examine address routine diff --git a/sim_defs.h b/sim_defs.h index 7e9dc836..e3d09f25 100644 --- a/sim_defs.h +++ b/sim_defs.h @@ -652,8 +652,6 @@ struct REG { BITFIELD *fields; /* bit fields */ uint32 qptr; /* circ q ptr */ size_t str_size; /* structure size */ - void (*write_callback)(t_value old_value, REG *rptr, int idx); - /* called during DEPOSIT */ /* NOTE: Flags MUST always be last since it is initialized outside of macro definitions */ uint32 flags; /* flags */ }; @@ -861,98 +859,80 @@ struct MEMFILE { #define UDATA(act,fl,cap) NULL,act,NULL,NULL,NULL,0,0,(fl),0,(cap),0,NULL,0,0 /* Internal use ONLY (see below) Generic Register declaration for all fields */ -#define _REGDATANF(nm,loc,rdx,wd,off,dep,desc,flds,qptr,siz,cbak) \ - nm, (loc), (rdx), (wd), (off), (dep), (desc), (flds), (qptr), (siz), (cbak) +#define _REGDATANF(nm,loc,rdx,wd,off,dep,desc,flds,qptr,siz) \ + nm, (loc), (rdx), (wd), (off), (dep), (desc), (flds), (qptr), (siz) #if defined (__STDC__) || defined (_WIN32) /* Variants which depend on how macro arguments are convered to strings */ /* Generic Register declaration for all fields. If the register structure is extended, this macro will be retained and a new internal macro will be provided that populates the new register structure */ #define REGDATA(nm,loc,rdx,wd,off,dep,desc,flds,fl,qptr,siz) \ - _REGDATANF(#nm,&(loc),rdx,wd,off,dep,desc,flds,qptr,siz,NULL),(fl) -#define REGDATAC(nm,loc,rdx,wd,off,dep,desc,flds,fl,qptr,siz,cbak) \ - _REGDATANF(#nm,&(loc),rdx,wd,off,dep,desc,flds,qptr,siz,cbak),(fl) + _REGDATANF(#nm,&(loc),rdx,wd,off,dep,desc,flds,qptr,siz),(fl) +#define REGDATAC(nm,loc,rdx,wd,off,dep,desc,flds,fl,qptr,siz) \ + _REGDATANF(#nm,&(loc),rdx,wd,off,dep,desc,flds,qptr,siz),(fl) /* Right Justified Octal Register Data */ #define ORDATA(nm,loc,wd) \ - _REGDATANF(#nm,&(loc),8,wd,0,1,NULL,NULL,0,0,NULL) + _REGDATANF(#nm,&(loc),8,wd,0,1,NULL,NULL,0,0) #define ORDATAD(nm,loc,wd,desc) \ - _REGDATANF(#nm,&(loc),8,wd,0,1,desc,NULL,0,0,NULL) + _REGDATANF(#nm,&(loc),8,wd,0,1,desc,NULL,0,0) #define ORDATADF(nm,loc,wd,desc,flds) \ - _REGDATANF(#nm,&(loc),8,wd,0,1,desc,flds,0,0,NULL) -#define ORDATADFC(nm,loc,wd,desc,flds,cbk) \ - _REGDATANF(#nm,&(loc),8,wd,0,1,desc,flds,0,0,cbk) + _REGDATANF(#nm,&(loc),8,wd,0,1,desc,flds,0,0) /* Right Justified Decimal Register Data */ #define DRDATA(nm,loc,wd) \ - _REGDATANF(#nm,&(loc),10,wd,0,1,NULL,NULL,0,0,NULL) + _REGDATANF(#nm,&(loc),10,wd,0,1,NULL,NULL,0,0) #define DRDATAD(nm,loc,wd,desc) \ - _REGDATANF(#nm,&(loc),10,wd,0,1,desc,NULL,0,0,NULL) + _REGDATANF(#nm,&(loc),10,wd,0,1,desc,NULL,0,0) #define DRDATADF(nm,loc,wd,desc,flds) \ - _REGDATANF(#nm,&(loc),10,wd,0,1,desc,flds,0,0,NULL) -#define DRDATADFC(nm,loc,wd,desc,flds,cbk) \ - _REGDATANF(#nm,&(loc),10,wd,0,1,desc,flds,0,0,cbk) + _REGDATANF(#nm,&(loc),10,wd,0,1,desc,flds,0,0) /* Right Justified Hexadecimal Register Data */ #define HRDATA(nm,loc,wd) \ - _REGDATANF(#nm,&(loc),16,wd,0,1,NULL,NULL,0,0,NULL) + _REGDATANF(#nm,&(loc),16,wd,0,1,NULL,NULL,0,0) #define HRDATAD(nm,loc,wd,desc) \ - _REGDATANF(#nm,&(loc),16,wd,0,1,desc,NULL,0,0,NULL) + _REGDATANF(#nm,&(loc),16,wd,0,1,desc,NULL,0,0) #define HRDATADF(nm,loc,wd,desc,flds) \ - _REGDATANF(#nm,&(loc),16,wd,0,1,desc,flds,0,0,NULL) -#define HRDATADFC(nm,loc,wd,desc,flds,cbk) \ - _REGDATANF(#nm,&(loc),16,wd,0,1,desc,flds,0,0,cbk) + _REGDATANF(#nm,&(loc),16,wd,0,1,desc,flds,0,0) /* Right Justified Binary Register Data */ #define BINRDATA(nm,loc,wd) \ - _REGDATANF(#nm,&(loc),2,wd,0,1,NULL,NULL,0,0,NULL) + _REGDATANF(#nm,&(loc),2,wd,0,1,NULL,NULL,0,0) #define BINRDATAD(nm,loc,wd,desc) \ - _REGDATANF(#nm,&(loc),2,wd,0,1,desc,NULL,0,0,NULL) + _REGDATANF(#nm,&(loc),2,wd,0,1,desc,NULL,0,0) #define BINRDATADF(nm,loc,wd,desc,flds) \ - _REGDATANF(#nm,&(loc),2,wd,0,1,desc,flds,0,0,NULL) -#define BINRDATADFC(nm,loc,wd,desc,flds,cbk) \ - _REGDATANF(#nm,&(loc),2,wd,0,1,desc,flds,0,0,cbk) + _REGDATANF(#nm,&(loc),2,wd,0,1,desc,flds,0,0) /* One-bit binary flag at an arbitrary offset in a 32-bit word Register */ #define FLDATA(nm,loc,pos) \ - _REGDATANF(#nm,&(loc),2,1,pos,1,NULL,NULL,0,0,NULL) + _REGDATANF(#nm,&(loc),2,1,pos,1,NULL,NULL,0,0) #define FLDATAD(nm,loc,pos,desc) \ - _REGDATANF(#nm,&(loc),2,1,pos,1,desc,NULL,0,0,NULL) + _REGDATANF(#nm,&(loc),2,1,pos,1,desc,NULL,0,0) #define FLDATADF(nm,loc,pos,desc,flds) \ - _REGDATANF(#nm,&(loc),2,1,pos,1,desc,flds,0,0,NULL) -#define FLDATADFC(nm,loc,pos,desc,flds,cbk) \ - _REGDATANF(#nm,&(loc),2,1,pos,1,desc,flds,0,0,cbk) + _REGDATANF(#nm,&(loc),2,1,pos,1,desc,flds,0,0) /* Arbitrary location and Radix Register */ #define GRDATA(nm,loc,rdx,wd,pos) \ - _REGDATANF(#nm,&(loc),rdx,wd,pos,1,NULL,NULL,0,0,NULL) + _REGDATANF(#nm,&(loc),rdx,wd,pos,1,NULL,NULL,0,0) #define GRDATAD(nm,loc,rdx,wd,pos,desc) \ - _REGDATANF(#nm,&(loc),rdx,wd,pos,1,desc,NULL,0,0,NULL) + _REGDATANF(#nm,&(loc),rdx,wd,pos,1,desc,NULL,0,0) #define GRDATADF(nm,loc,rdx,wd,pos,desc,flds) \ - _REGDATANF(#nm,&(loc),rdx,wd,pos,1,desc,flds,0,0,NULL) -#define GRDATADFC(nm,loc,rdx,wd,pos,desc,flds,cbk) \ - _REGDATANF(#nm,&(loc),rdx,wd,pos,1,desc,flds,0,0,cbk) + _REGDATANF(#nm,&(loc),rdx,wd,pos,1,desc,flds,0,0) /* Arrayed register whose data is kept in a standard C array Register */ #define BRDATA(nm,loc,rdx,wd,dep) \ - _REGDATANF(#nm,loc,rdx,wd,0,dep,NULL,NULL,0,0,NULL) + _REGDATANF(#nm,loc,rdx,wd,0,dep,NULL,NULL,0,0) #define BRDATAD(nm,loc,rdx,wd,dep,desc) \ - _REGDATANF(#nm,loc,rdx,wd,0,dep,desc,NULL,0,0,NULL) + _REGDATANF(#nm,loc,rdx,wd,0,dep,desc,NULL,0,0) #define BRDATADF(nm,loc,rdx,wd,dep,desc,flds) \ - _REGDATANF(#nm,loc,rdx,wd,0,dep,desc,flds,0,0,NULL) -#define BRDATADFC(nm,loc,rdx,wd,dep,desc,flds,cbk) \ - _REGDATANF(#nm,loc,rdx,wd,0,dep,desc,flds,0,0,cbk) + _REGDATANF(#nm,loc,rdx,wd,0,dep,desc,flds,0,0) /* Arrayed register whose data is part of the UNIT structure */ #define URDATA(nm,loc,rdx,wd,off,dep,fl) \ - _REGDATANF(#nm,&(loc),rdx,wd,off,dep,NULL,NULL,0,0,NULL),((fl) | REG_UNIT) + _REGDATANF(#nm,&(loc),rdx,wd,off,dep,NULL,NULL,0,0),((fl) | REG_UNIT) #define URDATAD(nm,loc,rdx,wd,off,dep,fl,desc) \ - _REGDATANF(#nm,&(loc),rdx,wd,off,dep,desc,NULL,0,0,NULL),((fl) | REG_UNIT) + _REGDATANF(#nm,&(loc),rdx,wd,off,dep,desc,NULL,0,0),((fl) | REG_UNIT) #define URDATADF(nm,loc,rdx,wd,off,dep,fl,desc,flds) \ - _REGDATANF(#nm,&(loc),rdx,wd,off,dep,desc,flds,0,0,NULL),((fl) | REG_UNIT) -#define URDATADFC(nm,loc,rdx,wd,off,dep,fl,desc,flds,cbk) \ - _REGDATANF(#nm,&(loc),rdx,wd,off,dep,desc,flds,0,0,cbk),((fl) | REG_UNIT) + _REGDATANF(#nm,&(loc),rdx,wd,off,dep,desc,flds,0,0),((fl) | REG_UNIT) /* Arrayed register whose data is part of an arbitrary structure */ #define STRDATA(nm,loc,rdx,wd,off,dep,siz,fl) \ - _REGDATANF(#nm,&(loc),rdx,wd,off,dep,NULL,NULL,0,siz,NULL),((fl) | REG_STRUCT) + _REGDATANF(#nm,&(loc),rdx,wd,off,dep,NULL,NULL,0,siz),((fl) | REG_STRUCT) #define STRDATAD(nm,loc,rdx,wd,off,dep,siz,fl,desc) \ - _REGDATANF(#nm,&(loc),rdx,wd,off,dep,desc,NULL,0,siz,NULL),((fl) | REG_STRUCT) + _REGDATANF(#nm,&(loc),rdx,wd,off,dep,desc,NULL,0,siz),((fl) | REG_STRUCT) #define STRDATADF(nm,loc,rdx,wd,off,dep,siz,fl,desc,flds) \ - _REGDATANF(#nm,&(loc),rdx,wd,off,dep,desc,flds,0,siz,NULL),((fl) | REG_STRUCT) -#define STRDATADFC(nm,loc,rdx,wd,off,dep,siz,fl,desc,flds,cbk) \ - _REGDATANF(#nm,&(loc),rdx,wd,off,dep,desc,flds,0,siz,cbk),((fl) | REG_STRUCT) + _REGDATANF(#nm,&(loc),rdx,wd,off,dep,desc,flds,0,siz),((fl) | REG_STRUCT) #define BIT(nm) {#nm, 0xffffffff, 1} /* Single Bit definition */ #define BITNC {"", 0xffffffff, 1} /* Don't care Bit definition */ #define BITF(nm,sz) {#nm, 0xffffffff, sz} /* Bit Field definition */ @@ -964,90 +944,72 @@ struct MEMFILE { If the register structure is extended, this macro will be retained and a new macro will be provided that populates the new register structure */ #define REGDATA(nm,loc,rdx,wd,off,dep,desc,flds,fl,qptr,siz) \ - _REGDATANF("nm",&(loc),rdx,wd,off,dep,desc,flds,qptr,siz,NULL),(fl) -#define REGDATAC(nm,loc,rdx,wd,off,dep,desc,flds,fl,qptr,siz,cbak) \ - _REGDATANF("nm",&(loc),rdx,wd,off,dep,desc,flds,qptr,siz,cbak),(fl) + _REGDATANF("nm",&(loc),rdx,wd,off,dep,desc,flds,qptr,siz),(fl) +#define REGDATAC(nm,loc,rdx,wd,off,dep,desc,flds,fl,qptr,siz) \ + _REGDATANF("nm",&(loc),rdx,wd,off,dep,desc,flds,qptr,siz),(fl) /* Right Justified Octal Register Data */ #define ORDATA(nm,loc,wd) \ - _REGDATANF("nm",&(loc),8,wd,0,1,NULL,NULL,0,0,NULL) + _REGDATANF("nm",&(loc),8,wd,0,1,NULL,NULL,0,0) #define ORDATAD(nm,loc,wd,desc) \ - _REGDATANF("nm",&(loc),8,wd,0,1,desc,NULL,0,0,NULL) + _REGDATANF("nm",&(loc),8,wd,0,1,desc,NULL,0,0) #define ORDATADF(nm,loc,wd,desc,flds) \ - _REGDATANF("nm",&(loc),8,wd,0,1,desc,flds,0,0,NULL) -#define ORDATADFC(nm,loc,wd,desc,flds,cbk) \ - _REGDATANF("nm",&(loc),8,wd,0,1,desc,flds,0,0,cbk) + _REGDATANF("nm",&(loc),8,wd,0,1,desc,flds,0,0) /* Right Justified Decimal Register Data */ #define DRDATA(nm,loc,wd) \ - _REGDATANF("nm",&(loc),10,wd,0,1,NULL,NULL,0,0,NULL) + _REGDATANF("nm",&(loc),10,wd,0,1,NULL,NULL,0,0) #define DRDATAD(nm,loc,wd,desc) \ - _REGDATANF("nm",&(loc),10,wd,0,1,desc,NULL,0,0,NULL) + _REGDATANF("nm",&(loc),10,wd,0,1,desc,NULL,0,0) #define DRDATADF(nm,loc,wd,desc,flds) \ - _REGDATANF("nm",&(loc),10,wd,0,1,desc,flds,0,0,NULL) -#define DRDATADFC(nm,loc,wd,desc,flds,cbk) \ - _REGDATANF("nm",&(loc),10,wd,0,1,desc,flds,0,0,cbk) + _REGDATANF("nm",&(loc),10,wd,0,1,desc,flds,0,0) /* Right Justified Hexadecimal Register Data */ #define HRDATA(nm,loc,wd) \ - _REGDATANF("nm",&(loc),16,wd,0,1,NULL,NULL,0,0,NULL) + _REGDATANF("nm",&(loc),16,wd,0,1,NULL,NULL,0,0) #define HRDATAD(nm,loc,wd,desc) \ - _REGDATANF("nm",&(loc),16,wd,0,1,desc,NULL,0,0,NULL) + _REGDATANF("nm",&(loc),16,wd,0,1,desc,NULL,0,0) #define HRDATADF(nm,loc,wd,desc,flds) \ - _REGDATANF("nm",&(loc),16,wd,0,1,desc,flds,0,0,NULL) -#define HRDATADFC(nm,loc,wd,desc,flds,cbk) \ - _REGDATANF("nm",&(loc),16,wd,0,1,desc,flds,0,0,cbk) + _REGDATANF("nm",&(loc),16,wd,0,1,desc,flds,0,0) /* Right Justified Binary Register Data */ #define BINRDATA(nm,loc,wd) \ - _REGDATANF("nm",&(loc),2,wd,0,1,NULL,NULL,0,0,NULL) + _REGDATANF("nm",&(loc),2,wd,0,1,NULL,NULL,0,0) #define BINRDATAD(nm,loc,wd,desc) \ - _REGDATANF("nm",&(loc),2,wd,0,1,desc,NULL,0,0,NULL) + _REGDATANF("nm",&(loc),2,wd,0,1,desc,NULL,0,0) #define BINRDATADF(nm,loc,wd,desc,flds) \ - _REGDATANF("nm",&(loc),2,wd,0,1,desc,flds,0,0,NULL) -#define BINRDATADFC(nm,loc,wd,desc,flds,cbk) \ - _REGDATANF("nm",&(loc),2,wd,0,1,desc,flds,0,0,cbk) + _REGDATANF("nm",&(loc),2,wd,0,1,desc,flds,0,0) /* One-bit binary flag at an arbitrary offset in a 32-bit word Register */ #define FLDATA(nm,loc,pos) \ - _REGDATANF("nm",&(loc),2,1,pos,1,NULL,NULL,0,0,NULL) + _REGDATANF("nm",&(loc),2,1,pos,1,NULL,NULL,0,0) #define FLDATAD(nm,loc,pos,desc) \ - _REGDATANF("nm",&(loc),2,1,pos,1,desc,NULL,0,0,NULL) + _REGDATANF("nm",&(loc),2,1,pos,1,desc,NULL,0,0) #define FLDATADF(nm,loc,pos,desc,flds) \ - _REGDATANF("nm",&(loc),2,1,pos,1,desc,flds,0,0,NULL) -#define FLDATADFC(nm,loc,pos,desc,flds,cbk) \ - _REGDATANF("nm",&(loc),2,1,pos,1,desc,flds,0,0,cbk) + _REGDATANF("nm",&(loc),2,1,pos,1,desc,flds,0,0) /* Arbitrary location and Radix Register */ #define GRDATA(nm,loc,rdx,wd,pos) \ - _REGDATANF("nm",&(loc),rdx,wd,pos,1,NULL,NULL,0,0,NULL) + _REGDATANF("nm",&(loc),rdx,wd,pos,1,NULL,NULL,0,0) #define GRDATAD(nm,loc,rdx,wd,pos,desc) \ - _REGDATANF("nm",&(loc),rdx,wd,pos,1,desc,NULL,0,0,NULL) + _REGDATANF("nm",&(loc),rdx,wd,pos,1,desc,NULL,0,0) #define GRDATADF(nm,loc,rdx,wd,pos,desc,flds) \ - _REGDATANF("nm",&(loc),rdx,wd,pos,1,desc,flds,0,0,NULL) -#define GRDATADFC(nm,loc,rdx,wd,pos,desc,flds,cbk) \ - _REGDATANF("nm",&(loc),rdx,wd,pos,1,desc,flds,0,0,cbk) + _REGDATANF("nm",&(loc),rdx,wd,pos,1,desc,flds,0,0) /* Arrayed register whose data is kept in a standard C array Register */ #define BRDATA(nm,loc,rdx,wd,dep) \ - _REGDATANF("nm",loc,rdx,wd,0,dep,NULL,NULL,0,0,NULL) + _REGDATANF("nm",loc,rdx,wd,0,dep,NULL,NULL,0,0) #define BRDATAD(nm,loc,rdx,wd,dep,desc) \ - _REGDATANF("nm",loc,rdx,wd,0,dep,desc,NULL,0,0,NULL) + _REGDATANF("nm",loc,rdx,wd,0,dep,desc,NULL,0,0) #define BRDATADF(nm,loc,rdx,wd,dep,desc,flds) \ - _REGDATANF("nm",loc,rdx,wd,0,dep,desc,flds,0,0,NULL) -#define BRDATADFC(nm,loc,rdx,wd,dep,desc,flds,cbk) \ - _REGDATANF("nm",loc,rdx,wd,0,dep,desc,flds,0,0,cbk) + _REGDATANF("nm",loc,rdx,wd,0,dep,desc,flds,0,0) /* Arrayed register whose data is part of the UNIT structure */ #define URDATA(nm,loc,rdx,wd,off,dep,fl) \ - _REGDATANF("nm",&(loc),rdx,wd,off,dep,NULL,NULL,0,0,NULL),((fl) | REG_UNIT) + _REGDATANF("nm",&(loc),rdx,wd,off,dep,NULL,NULL,0,0),((fl) | REG_UNIT) #define URDATAD(nm,loc,rdx,wd,off,dep,fl,desc) \ - _REGDATANF("nm",&(loc),rdx,wd,off,dep,desc,NULL,0,0,NULL),((fl) | REG_UNIT) + _REGDATANF("nm",&(loc),rdx,wd,off,dep,desc,NULL,0,0),((fl) | REG_UNIT) #define URDATADF(nm,loc,rdx,wd,off,dep,fl,desc,flds) \ - _REGDATANF("nm",&(loc),rdx,wd,off,dep,desc,flds,0,0,NULL),((fl) | REG_UNIT) -#define URDATADFC(nm,loc,rdx,wd,off,dep,fl,desc,flds,cbk) \ - _REGDATANF("nm",&(loc),rdx,wd,off,dep,desc,flds,0,0,cbk),((fl) | REG_UNIT) + _REGDATANF("nm",&(loc),rdx,wd,off,dep,desc,flds,0,0),((fl) | REG_UNIT) /* Arrayed register whose data is part of an arbitrary structure */ #define STRDATA(nm,loc,rdx,wd,off,dep,siz,fl) \ - _REGDATANF("nm",&(loc),rdx,wd,off,dep,NULL,NULL,0,siz,NULL),((fl) | REG_STRUCT) + _REGDATANF("nm",&(loc),rdx,wd,off,dep,NULL,NULL,0,siz),((fl) | REG_STRUCT) #define STRDATAD(nm,loc,rdx,wd,off,dep,siz,fl,desc) \ - _REGDATANF("nm",&(loc),rdx,wd,off,dep,desc,NULL,0,siz,NULL),((fl) | REG_STRUCT) + _REGDATANF("nm",&(loc),rdx,wd,off,dep,desc,NULL,0,siz),((fl) | REG_STRUCT) #define STRDATADF(nm,loc,rdx,wd,off,dep,siz,fl,desc,flds) \ - _REGDATANF("nm",&(loc),rdx,wd,off,dep,desc,flds,0,siz,NULL),((fl) | REG_STRUCT) -#define STRDATADFC(nm,loc,rdx,wd,off,dep,siz,fl,desc,flds,cbk) \ - _REGDATANF("nm",&(loc),rdx,wd,off,dep,desc,flds,0,siz,cbk),((fl) | REG_STRUCT) + _REGDATANF("nm",&(loc),rdx,wd,off,dep,desc,flds,0,siz),((fl) | REG_STRUCT) #define BIT(nm) {"nm", 0xffffffff, 1} /* Single Bit definition */ #define BITNC {"", 0xffffffff, 1} /* Don't care Bit definition */ #define BITF(nm,sz) {"nm", 0xffffffff, sz} /* Bit Field definition */