From 9233d19c2c829014e2cb68787a06e1bc64120925 Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Fri, 14 Nov 2025 14:26:21 -0800 Subject: [PATCH] Add NS MM58167B RTC Driver - This is currently specific to the S100 systems interface. --- Doc/RomWBW Applications.pdf | Bin 406391 -> 406390 bytes Doc/RomWBW Disk Catalog.pdf | Bin 257567 -> 257566 bytes Doc/RomWBW Hardware.pdf | Bin 383613 -> 383650 bytes Doc/RomWBW Introduction.pdf | Bin 96451 -> 96450 bytes Doc/RomWBW System Guide.pdf | Bin 632909 -> 632961 bytes Doc/RomWBW User Guide.pdf | Bin 572569 -> 572569 bytes ReadMe.md | 2 +- ReadMe.txt | 2 +- Source/Doc/Hardware.md | 1 + Source/Doc/SystemGuide.md | 1 + Source/HBIOS/Config/SZ180_std.asm | 1 + Source/HBIOS/Config/SZ80_std.asm | 2 ++ Source/HBIOS/cfg_DUO.asm | 2 ++ Source/HBIOS/cfg_DYNO.asm | 2 ++ Source/HBIOS/cfg_EPITX.asm | 2 ++ Source/HBIOS/cfg_EZZ80.asm | 2 ++ Source/HBIOS/cfg_GMZ180.asm | 2 ++ Source/HBIOS/cfg_HEATH.asm | 2 ++ Source/HBIOS/cfg_MASTER.asm | 2 ++ Source/HBIOS/cfg_MBC.asm | 2 ++ Source/HBIOS/cfg_MK4.asm | 2 ++ Source/HBIOS/cfg_MON.asm | 2 ++ Source/HBIOS/cfg_MSX.asm | 2 ++ Source/HBIOS/cfg_N8.asm | 2 ++ Source/HBIOS/cfg_NABU.asm | 2 ++ Source/HBIOS/cfg_RCEZ80.asm | 2 ++ Source/HBIOS/cfg_RCZ180.asm | 2 ++ Source/HBIOS/cfg_RCZ280.asm | 2 ++ Source/HBIOS/cfg_RCZ80.asm | 2 ++ Source/HBIOS/cfg_RPH.asm | 2 ++ Source/HBIOS/cfg_SBC.asm | 2 ++ Source/HBIOS/cfg_SCZ180.asm | 2 ++ Source/HBIOS/cfg_SZ180.asm | 2 ++ Source/HBIOS/cfg_SZ80.asm | 4 ++++ Source/HBIOS/cfg_Z80RETRO.asm | 2 ++ Source/HBIOS/cfg_ZETA.asm | 2 ++ Source/HBIOS/cfg_ZETA2.asm | 2 ++ Source/HBIOS/hbios.asm | 36 ++++++++++++++++++++---------- Source/HBIOS/hbios.inc | 1 + Source/HBIOS/romldr.asm | 34 ++++++++++++++-------------- 40 files changed, 101 insertions(+), 31 deletions(-) diff --git a/Doc/RomWBW Applications.pdf b/Doc/RomWBW Applications.pdf index 82deb94e2ab8d3c141641d2827c6709e6d2098bc..fee6cd0959ad3ce0e734a0b13b6a260f0f834dc3 100644 GIT binary patch delta 19139 zcmai+3(RImS;w=5uCT#yDVml>_)5C0t6(e3%& zS6*}cwKqKWd;j>cTOR(gC*Hd28{a#0@m){-=iSeJ;L~?p^qB*%f8;qYd)I&Ee|yi4 zXZEhG-FeH$x4!W=PX5P<14m!bKKbZfhkoV0uU-1xFMsu$w|@EY&!2eYo&WO4u^;*1 z4e$TVt1dWr?zW>_wqJY0x1N0IkG}k@pWb@Yi*7vk&NqGgo#US0ec#bP-GBVv%U>|u zciVX9TYm1Gf7o*Ai*COCf9;FbHsZNE@@5QsnqGmlZt{u! zpStSU>yAD8@Z-O<>&4qH{mzlgFFEUs@$7&9)lc7k^B2GWi9O>(ANu?!??3X{`%l|( z?q8h$@V@7VYhHZcmp<{gpr><^G%ga_@O3w_p9+|9!*VJOB5a|Mcev51je)*WLKD?>hSfmpyaw zXYc;P9~|t?`_6N|zUAPr?f%l`$G>;&$vdw5@OeM$gwbcHnt0J^sbBAAR{HhhFpdTW{KX+3$~U{>Wed)B}&c z_jh(aecF3=opNZ`DO>ob{_nH+=h+|Ib;_xCJb6wR+SJAVl}*2+X?C2mcK%OZ{np)A zT)%Jahj+g!HZg?|)|VXqfu~MAdO==m>VMX*TH7}Jm!>JPQ(EYAQCbW+96s^XsjnEj z!T-M|O=)cjeJ{M)978L6+th?2yxJ0D8>i=S*F5wy+PHH0)HSUxOeqQDrb(q)-@LlF z&yDWQO^^?PZzvPmSml=6Xb0x5x69<*`nt05B`cT7L$Y-x1Us+9GCHwqot6ftmE^R+ znezdT0G^*0XSVXH)xX`O|#n9UYV@YOxZQu2JnYK^e{OQKI>2_GjL^Bag8gfy_ zX(&-I2(1^hL#Ml}jB}gfobd+Vk%g&O`^;_blrgkH8RxbnXY5as`(oyq`#ub7Gy7Yb z4n$E9tg|0lWm4ME=%q^=W02?U(XOe&HBH|Rc_D>y!*li>yLEHl1U+zw&ET|@uNi)ulI~>*|xts-GFx16N3?Gb!NbRjeWPNktg&^R_OBY?8svn*_()nZmKv zpCp&TnGBsVDXy5I#AFgI-OO=S`7gzfHJP|dX^nBgOjJMm(3k{Uv|ZQL__?H=3I7I1 z-MIMMTf^4VMtqAL8`z-EG&Jrp2zW^~C$wFw4!df$UOnIr+bY{t`GjsL`Y<682K9m^ zfRvWsIQv4BSlt|7ZGk%UC9T4xnSF$zK_%qCp-busVht7Y(y{4+GLE4sv#;Z3^T&@E zq{do;%vh3q9dRNIO6xEIxnKlGXylJw395=QwYbFT$Hi(DGtJ@q7dI?1s4fsJTNQuo zOI#IU6@MJMKB)0k5Gv2q;5H`+awdOdV^}Bj;M(b}8{}n30%5J{d%a9$5>{+rorY_% z3wB{lMr;T3a|9k0YZJR>u)QUzsGC??RaW-K4XLi+<5(=BV@<6E>NZR?c=mNIK1g(? zX#w@>S@4i?BAF`xmN+8{!mYFUO%$`4Y_5BGWTO!lR5BnFb7`a#X|!9T|Gs$>Ch#!E zea^PGZ%qja$#Y#;;^P{B?J{H?dSDlmnqt$TAG)r^)93}e81po|jYzO<)v0hG*AeaK zdJ9;&K$W?ergs(H*b#TYH&Yt!9*C_gr**I#G{9KvNZREm9_~Je5*1c$Iwfs)F=oi56R{o$-H=` zng3h3U>IZa$|OZou9R9oF!2Jm7u@T#rQ@38WAbok(hVAjNLhNrM2TchU3E$&s`DY; zF(5Yr+DwB3t1jwSoOvC0&E&s$cR-+-Vg`7r_UAsC^T`9x zETYbU7r_f$W>`u3Ht;bClwx7-Ohrf!#GBcHy=MuzWQAswj`~h7NPQxj%@W=%^yVQb zLIUI9r{sbpZdok?#)=66nCq~v%6}pLg6C4DDWDuk!Ope!Xsg zq><*ONDkG*HDr;!eqG-dOXhlFs$QD3)Z#|pjer#qA!vCXofeYmI}o$2bNwKOnY2Iw zD+;%skCBD1=iGe%3KK$yG9jgvFUHFxb1LM+>RL&pDF^9!sKTle&g4(h-3pUt$c+L| z&^$#+IdF)rT^dB#t};Q#Y9^pa8`>}iQ4qog>A5l)1~WyR*{UK{9yN1PO$WD|X+!Ha z($^*aV{=p~urR5425PI$7;~2|u8dWW*h@~d`fpJ|5F)3CdTTDjBbgL7sjIZqMl?9Fx6I4p3;b7a=uF5rR0^}Ka#e)0 z%M6pOrs_d;-@Z4Bq{q6jwJ(XWQwI`ALKKp-mz-HH1H@m(_w}L-dja6O4!sP5{{l5m zbru23wkL_8U}Ic5Elt()H0DEFLiaiT!>MFNyf7XV$%eMES{JlNu_H{fDQin1MD&gN z9NCx1OL@8)@nWmQ4~r+i(0PYK%$9C0hLkDN=jqTIZ`aw7!8wTy1>WTfdo5~ z45^q#K+dz`1mP47k@{$@N}01D?b5ac>(Ww$8zu(Lp03N*8>7@QtYD3G{KtVsaX+=% z#%z|SGrs^$aX*zb>l8stimpOe@weJBs-^I%mgY1UfMy}J7JtoGfb=vMpqSjuXjT6g z+Mm2u&Vi&CqFkxX8p~N%ER;jD4@qT0o7o>g&wwWfdYDbcfM+dG`UQcvcIo05%yA_7 zm#@pj4SkYCxla9eCLs9UXr2(jt8ktQIQ`Gcm+xPQKZ9tLai&zI&WF9`XmGZgioqnQ zC&bP76O*m-XCbyDQYhrYD#FrGRo8W>q0t(Ug{;fyv^ptzwxe$jRxk<$#NbQ@lL9Yn z&xsGUxKY}9w_yeUfmzMbP;#)hLsuW%mGi>++nw4{bJ(SHRjNw~= zaEkwE$-1qx z6nx~sm3Hw)ET^1kc06>QX0znCAaG?uFGGC=eMHTo>G9xx6#qdqM>8;XUJ zZXN&86eBJ!h%@ICNjJ154HNK-uEPaOq~yGyP`mO_q#eUpYY}o_XsELYjbh*2WzO*e z-5|?;YKKS>G_+m=8#D@v@Tl@%InbtfXboD87aISS3u1|yMYG5Tzbb82KW6U_5&x(M z0{fi?ma=sWwHU2vLjoQWdO^V8Z_C+ea*|c*fz){Ii+dWoy3U&qoR>G*+pkNI?_Y|a zsRL&+xPH_!s4%AHFfXYr&O_ZaBcfYNj9%GWR z8V${fZXtiJ2RN3^ZS(_M>dhur@)8M7b%4QihNiA&M67Fr_J1qUl#t8#fdEvyG*wXj z;x;lqq#p+g-q^dqf0U68N&%{aw%=*{8`h(0V7VfnVWoZc5+x>=q5jWohrJUKT2T(` zJVr24D+ku|Y|a+>8Bl>%@%Q95bufXVxYB5BsS+}nV2a5jnRkR{-mzl_dVby<|8bkV z$${C-i6}d9Al0@>%Kg&J0|`)pN3VT>k(B;04`im6LtMi< z&f?F~1$Tu(IonL<$Y@q-r76Sb$+{GQw?d=5vz!*(z<+f}$P^A7Ysy9EM&&}ZnUc#(f1sa>tl z>BHozVRed|SVB)XZg2Cb{PsLrXO@P3~Ev@(H==1Mb&as>irUZ^!B(}N*KZvn_#pJVA0P0YR2CR|Nhz(9dvm}|#y%yx_ zIvvV_hODPL!(MktKry`IEdDHAFlwYeoz2#If{8U#pwZqn#$bsljdlHUXm5^nAZ~JN z$EgU=d^#l=H9IcNAiOeW8ce<8NK-_pyIbmqOps zVn45zPQ^L1cO?BV#`ZHa7TV9ppkdFpH>wwBVgePFb&Ra6<9NP*A%5!CI>XOq(@$t* z267;;q@KO5Q)`AcZM#?bGcPeHM5qh3CyCembq1TJ^*f0Lgr`mNl1qk z*TC3*gjO&37LW~(@|&_-aOG1jQcl_HH)~P>4R^Xc@9cTocY@%-MhnFz6j$g|Vx*I*cIP+BWcxL*`_b+s?_AYf{9iq|8uuf|OFm~qv$t1{d z(L|@K{Mk%pRK>;Uv3U$Uwyxusj;82TiA?;oOfB*>eKVTL0*MTuQ9ZRc<|o~TO!#T1 zAr4xSngCPsowvVM&_x~nQANW4&*R|YnV2&%Wu@_>#V8!l#N20!S^osd@R6{1T08EegS)CR>Xk>Iz%QbXb?2lH|d0p-Lvx;hzUWQ-&tl0MK zi)(aK3u8!gZV^j#!EfX2*0oNdZoVQNWkTaYi`4ucmCQE~HmGzu`PRLC{*L zsI%ZE>N?Lo9R6I~y6cJ*cklY~uDOVE#vbN^hn;EHuDEAUUv{_6&OJ?g;o7VJ|0Qo; iyYRwoZ@>PE>#l#tb^G>jqi|W8ylwmTi(bEH+y4RcGt$2R delta 19064 zcmai+ee7S=UB}aw7FJQ06(@+qx{YSmwcc|d&bfCMw4-GRX3NGN$aKzMW<}xz#QxE+ z=*<8vmJCM|{cbXG>qdxJ8mw!yj+{zW&!Q|I4e-4QJl}w{QK=)9=3a z%UjRhbm(Y($u+wkf9Ydqedxk-_J8v`hmZbV{ql47u6^mN5B}Tzul?=^&w26B?fBd? zAN|f5r`>eU#w!os`R89e@caiK`PL)hYbV#<{$oG$mLETK=>8Y)IrRs>apDv2IPdO% zS$pMucYo!f-+9wd9=Yg6Ke%@4-p#k%{LEQpm+W6z%W-S)3u_2iA${MOAc{M4>LIZv@wVM> zyYZe6H@2-cg`mQ%z``GRO^qJ?sv3Ao_`?@#&{Ny(e-}B}>{^2u!bJG_e{mK{a z`u5))xZ>_Bi}zl>?S|tAAN`&Oj(lqW?oXfpiQ8T{^2ygc|LXLvKYPcP_dm5~$M&ap zek~sTlY_T^4*OLA3yxubN_zww%Zt{=z$N`TVI5d~DwZFKgcareAsAp}+Y1Q_sBm)TW<) z=ked3eE#$e+a^c9v~l~5Ya0)*ZQQ`W`M;a^_q0#1ZQOk1i7jOaRaH-(KC$_{`Tw8w z z6d}o3RVvG>8t=zlW7kb-{owLVUDUd;X&O1WD4JBPGY@&&7?d{_K|X|YLmJWgEVo#d zwqdMWyG)FguS>Hp8C)iIjjc-|*nX)@y%X!oX-(&})Htp4Lt135l4;BN2lq?eX{**3 zHnr1|KU3TK7k5Q4-Y%puEz7^FT&!K~V(p^qLe~b>4@@PQ5p-SBbwyJ&u~*TQWh+{Z z!i83qs|>AOuuP3vU)9#FUZ!fBdj53%+;r=*Do2`$V45x_J-F#or5A+OirJylb<~4n z)s*vtXXo}TY+AL?SjAcoj#a|bWOG?+I<&?Q_9uyLGV_dWTNc}=_BYrNKQmSkth4PZ zJtS43&`YPPEK9jyi+1ULZPmqv6#ALxZ0oAj4coQ|x?xuqozp_2((1}GsI@moswOq?o87|Q<&w1 zrZi_3nxUWR*8^8*n%bm*pI5Plrfuwk_<38$cbH^w^CrPQ)~0X)KW~?bsq;g++73ys zm?4$XB$(={QLhe<%>g;%$h<9Wg{jF2K95Rjfcw)b8$vl)M4apv;6TCNxu$oRcq)a z=A=fxn5YptrPW2y5M9<4PDL(Lr_ifrmQ7VC@+mPA#Rg?6gX%(=2<3X27VQ^3D!aN3 z>!vuse_&E`w`ExcNt?EF^sxz;L z>sP53Wev>H%Md&b|CK1UXe-R6inS<{#rKLgwy<3VQ{V!do4fBN{;RS%IARmtEM z42+fu_b6Y7Viv}WWX3e~pBtKAMh52L$Szd-3q1M?UOj{}niU_?;^$wdw{9y_LL&6Y zX0t)#q~;==`wwVwvi3ilw~avUy-}t~v-3aRdk#hCA#ARgK zz^4^82+|G#-Z`@yU%etWqI70d(7NFn*{5-E)UP8ItW3ptRNJr#rTRX=I_&zzv31N` zw7vQ&n8_!Exgm0`psAAt{D*n6w0LP~E6zwW>@@Icd|jcpZXl_CG)+V5dXkIxRU3r(x@A^Ht>G<3sX(i!BaJz79-p z*fo;G3q;^Don?I_P>O}Qa%nkGZ1EME(~>}$_#+-$4^CxUt5`{@%w%&w*XN8~SYV<> zPD`e0ISXhuszq?HqQD~IXjHipj!ShWfonv8dzfp*CL|}WNYrl3izlLjN`^GjoD|8S zIyit+)s~vmwpFrht|jWptqahK#SNga#W!dcj@p_WZ?134oYobDu%+TE$a78M+C({M zzTqNACL$;;bqZIi9&}+&g@o8#YZp4RZ9s@dKr(Iuy&T*{g1XY0m@5F&__OfUT}d)x z3sa?<4lp!$K|T=V5TZsbA1y zEXhR{_C8BNNjug-IN!eze`xCwHp>bKsMq)o4U{X&#Z?r%1Zte>D+1wQWQxDMehBp- z+pyL`S>8}%J~Tt?fIniY?iahs)0?(z>#e+n<cT zYbfw+xN5niWeOL$AX&Oxup*~0-n#PrYKQ~gbF;t!hNj0=)lT-FhJdV#!g5+6gFU8O z5MBimPt8*0PLR`@6#FGD8^Bwwmz72W0%Z7xRyl_mhpZQDqt>Y?4N--bb);LPD3?6~ z8_tUkOY}7Z?lVE;8yG$&54TqF4Iz<$GNm6i6L6-bTzYdhVf~MG> z0@=JBw9H5#l4{t7pgg6~drr&s6*;8I#V@6KK^)%34sJ+d z^@0tZ$`!QK8!;vOx&}<(m+??ajdlg^iVFf^XXh?55(<=l! z@MygPe2oJg?bp)@jirKiXi?K*Xu)(LQh-vehE?$#yp5(?nbvlak>Jb$#iJWeFQ|Ar zB(iUPx>Tfk{B=Mo)X->PsCjIjXC&OlO^nX0GY2aJafnqQxL{{e;4=E0Jqv3K>=b>q zrx2+AnWI5t?CH=|i^J?^ZkZ&O#31{>0Vqh3Qn!ddfxlF_sFG{;K|8{7I%r@?-H&R> zf;P)YSP0Irg(!p2TAoBNNRndlASDtm=X10C7vk><%d^>V z&=Z~?TvJRDDRedc8>I!bRcUoIF+-#-_B?uxD0FfM%cY%qa!HgAw=+F5~? z=Lkk0hoA07ik{_9>x~B;FN9`AU^cWSXKvf64}eBf&GxHQs;sMe7i$g7ROVcOQyPO( z0!r8rB%teX!4fHHorM|FUgAH9rIx&yF0)z+scGYv&JjxvraGXAH}^Bg2pak4ZjeSc zXbc3|hBm50$It4x(CDcsFYa4(fpt~c+pUQkPNPkr8`h1+cQ%Y_cA2(fzcfcz3;f4I z3%!}@!6%j zsVl=K2$k@t7c8l#D~%?it)mp_v|9G-L3>{E%CBjfURQC&hCHZVhI8$Lz!jr0*rP+8 z9NcQTzhw3WP%?rI&=>`An!%Ntq{`Rv$TQw~x`{DaaTA)AoH&^Fsvb;%NIe|JY2J}m zi=u{}fv0X*5zn8=!BM9G^RSO89GzoRF3_xkaCmW3a%nEZe%b#G5FaHht)`c>Efhjh zI_ne*bBJa3@D|$k&$MM7cb0DA0myjdhO~`LtW8Tf-PYNhE&Ev~4_ag15&vs%f~@?F zBavD)J%Vf0&toGNh-h)H;3XhPy2-)BUi~_h!D-ZRbshZ(_472r4So`|2L+w=bd!R; z&B{V!+Q$#EcPGEI7?FVH_Doo|UOM$4S~aI!d00WSn9q!gnj-PQ8Ya09ViF_;no1$- z|03EkKxn2&gVfM}qJpT1k8DTNO-8M3-ZEci=#ZxN$1t9au|i|WPQ*{LKg?CL>9USJ zbsY}LX=t^r>#b_XhKy#)LORR_A?bB#j|N`KJjM%FlPBhU=vSNf|p<}?FN_`Dj6S=X>#j)Y3tLnuJcQG{3>OYUvW?tKmb!v+6l9>qpgV}yrmKW;VLBo>Ax&SY^ ziO~3Qfi_*3qTuI0i*@Vx59XkQ`gx(cQD~LAWq3)27aLB0B$U@NU6)FU3Lz_GBUTd^I}`wh0rGGb_D7 zvq%Z==;NmLmlxV02z6YUMSb(Ir1*Jw8L84s=VVN17=$+E;O!e%E`Habhh%F~5l*3} z9Fhwlx(*bkpoD{GK85dJia+bRYzR(Q7)IHid1hHxRFqGI2K?5v3tm9xU|p6!M7LQm zz7`_#Ix9f&`zenRjr{-+ULUf@ID2yz=;gpZXXeE374%6+j?FwtU>1>WhM@ECl6L-} zq3Kg8Eb$*jy+(@!EVN&QLu15aAi^v`W~1F?Yo=di9ksP_utWYZ6WnZ}~y577Lz;mb|Q~e+u=!QI!i9i4HLDw-B;o+EJnwgbcvebTJi5=Y7 zByL4)QuvKMRFivlZrOH$3zD|)ifwDnW7wjZZ1~YF+YVUinm>wez(h2Cv)qz2yQF%g z>*y*@kLnvm#vEk{4339cOHmIJELUnu`?@awTtKfxhPsaQa<;j!lKeYrIi%p1k&;^= z{c>{KtB|y{U%97szga$RH%zrD#>rl`=#!ZTK-_@>k;*@d5evC3I&)EpFDHi|GIhPsv|7o*E7TJwVg8-J*g^^w@Y<9$ zG}mdyizn~d#Uqg6iXa(ywr2;<7`S3E(83VEz%~aQunSc!`iSeP?C=q2ohs1g=YK9A zMwv%3EGrcQBbtKbeva1BSU0xY=_BO7GDKYuF?;N(IfP$`Yh?%;zfTbfQWiB-L1o`G zhhM?<1{Y}6n{%Q?Va}G`i1zPUMc+a%!-%Llc_PzH6$kN;4uIJJ4&81|#lc_&D8&w8 z&|S;TAT=hYhZjWtj54C4Lt>_Z{?zv{+h;T~B(niJmzKoQ2e+rARomzfz{o{8TrNYV zVo$>Kn|a_|vQ$x%d0N$gpRmty_OkwwXT0=_`K^(bo5?F2tWgp%H&0Q|f;L7hrbzvR zp;(LBEnrzKf*!12ka>E2I-r_~8v7c8x`WrPUG=U5*KOUiXYxe3W%t_N6!z||(#37F z|22#w75kW&jTfc;%|-FzeWc_UZr}6&FM0d+3oqRIYX{e^J9y~21HZVHAwlLZx1N9g K{?}i;_5T1UlE;bw diff --git a/Doc/RomWBW Disk Catalog.pdf b/Doc/RomWBW Disk Catalog.pdf index d7fbf1c59f80a8e6785bcef8c68987e6067d1d54..77aa166565b52bcb58dc3a533e58f31940ab80c9 100644 GIT binary patch delta 13582 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 diff --git a/Doc/RomWBW Hardware.pdf b/Doc/RomWBW Hardware.pdf index 0869a23fca8f7618dfc0bb87e40af1e10e856446..f340af685ae3959c60074460d2926066934aef53 100644 GIT binary patch delta 24411 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 Yt^eN;SHJT?<$^UOq;~BVomz(cALPZh_5c6? delta 24503 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 diff --git a/Doc/RomWBW Introduction.pdf b/Doc/RomWBW Introduction.pdf index ffefee80c691e6bfd1c2e4f45e3a482da9f3a765..f864e4ebf791d32befb87602e32927da4b30e140 100644 GIT binary patch delta 4234 zcmai%duY~G7{_^~iM^rImPA^#SwoD>bH6xUzSGSs>ax6`qh?K=m)WjqD6g}O3`u9= zu`wI{(Zx`O-S}?%DU_6H#<%&7#u&^_0Ktv#_RHCU%z&` zb>X0iTTX5MZEM@?PJ`#Sba+hcS(f>F)>+qo|AKwH$6W6`@W92-`mMP(;n>=mb>WOX zU)ngYd-wi^n(>pm{4ul3ay~LP{O+L# z-o5yF?`>-iXV({9seHR+#nj=S^c_^xt}Jcrxc#TqHU8{dwJ385Z zd%D{4&X^fBX%AnxT7Bc5flcQ#;w5D-R901#6o)Q67Jp@Ao2?_;#Lhq8R&lAN2v1Im zJ#_o`#7VIa`m#(G{biPA#{d4om{kg|apx>v6U_LKm>kQ9>F~_tSohA7oDklJIyli+ zqb=*X;%LoSuLW9jPJ+!RBLv=J%5jWk${U9eOmo2lp8^O&wv_N>O*`Vgw$g{%2tl?C zQzSA*Fk-EdT8Bdsf&|?clWR<3hg;17Qri{l3&aIQ791uxtAlJ%c%OL9- zTPCCtIF6DDhT{lp2461?SGVr%aHrmY$9U*872LuFB)uUOp{3H;Rc#H^p*TX|E#{5I zg~mK}i!%l(ZU96$TpH`xlQZe?|8b@*2@$i}huAc@8W$etT;fQ<633C^Tr(L8BLu#Y zd8P1iW*G?ptRv`Pd%0}#YO>lLxW zNk_2GFcE4a1ljUT6NDF*yfh!x#i0m+k4q*6Ic}i_aD2cpkc=`w-~>v>HOYwMhB)jY z`Jp^Q5G#c77y)*X0+&oN8=3%-B*#IVu@XU>BEk;hN%T-^ORv%pToi;zux^?DFV#^V z8cXraRFN^vQJa_{wtLHYXowIbGDa#AaIYm^Q&KAvVlM)M+~}dwkS9tihx6l{vN{w- z2yCE&_~3`AAR1Uvl$GGf>Ii`yfu2Cr9$F0%AO-!Lg_a0`4b;MM`~);qAHE8*?p;Wf z0|JLh3#IXz^1|UY2(VY7E+qo0g&sE~BU&0S!^xBg%ZcOxlnfji9-<7qB1Jg0bfhI{ zs}(L;sBFzbZG^x{)!tg1RBfq}Y7eR%4n+uDMj()+zzt)h-x-hy7P2Z+I09Rwv_S9( z!hy9sl&40h+rz+}S-?TJ#rOpgM8p3v0w)!=NS`+_ z)M1C6XD}-jMhI%4@z^;Brcuk_3n8qI5O~Wu$8eSm_Y6NhShF^?L~;gsTXP^1a`qW_}D;Q1qy=nHqRmrI}{;s0eKjovB#b>fdlS2 zBr;^pisd~gOg`8BeF9`WUk*rc&bUk@`se2l$nT#wz}ei)KL3BDC^I)VURhOKQ8lZg SWK!I7XngVP?EDc0@xK85yv&*a delta 4919 zcmai1Yiv|i5YB=H*&n7Lq8N~c@YI0k{fJP~!WN4H5)4X_M}rMumoG4cM|%+5J8^UcgRbH2Ki z)p#juU1>zFUpONB*z|)_Rwo}(yvOC>B?si@`aP^Jo=zcHfeehUq z)u)Rg4x3k4jWqbRPT4k6*UwtxOdhwU7zbQVfp?G#X}l@)!pRa ztJh}?Uwv@zqXiFt+P3*v^X9D;&AVS%wr|OU`_A-S&{VW-`a`G2yxpgyp?KrQo12Py zcfPCTjUBCf&raO>$s^-u9BLjkx+eZ&ecP_)Rfku%OkGi3z3k54@AK#TFI>NLPSen; zy+K9k=$S@kRrjbY7*R7^JzIG6o|2L+7pE`ndUfgCQ}chBaH*+dW!bI(JcdS#i;-c&CPVr^w|wT?FS+sG6L4 zk-o{_Me`!>Pv$WeezDS6H1UHmt2CBz=Ny&^W*L!5ZE7B$9~lxT`WG0_2hw6K=wDTxDNTDwfl0*F*wMHQXT zR0KW46am)=MxrwSE_TLfP7-L~3y7lQ)QGplh|*LhlqF6p86S}KiE(AF@V5|9}k z3-h1eRNh!@n0Xp8XN=SghlmMUOgelYhk{G#1?}C;8MugQfitgg^>bhc40T8tk7y765f7(wut%4kqwVaRAqnUg&^n@L^{N z&v9*J3f3g5A#>v`{$1n}jxjKO_EWu>xIM|wSN(`&%Umoch7>56W&6>O>U_H|qN5d?6xH#B|@Bjd! zB5eUyZ#@Xo`4tY6k~Ofk;p7|63BN-6QkW$n13fZP4Dfn-4ifwdhdHJtP;_|jf=!sL zz0NZ-_(6~CSSDQHQMtp}fJ_BYq@~CWSxp>xO`WE1P6Hbe)`M4Qd)m|Z)o@Q%Qjn4U zan6!S5xxho5hFNhdSiL!3nRqez(PfGER-Y#2k$`4BF4eGj$kzo#ypZ)$2rxrG9X6a z{e<&wouo1^2m7>3IZn_5pQ&MIl15UT>qD?J z?t22ZGe*hTgA`XQ$UH{ILwjNeJ#?q6iB(4OX7f0V92j?Fc|Oa}9XrN4m&@`MACn7_ mDZ_GNBmZAzMl2^Mx~ROUth}v diff --git a/Doc/RomWBW System Guide.pdf b/Doc/RomWBW System Guide.pdf index bbe15605259927d08165e99b287ef7d28a1a0fdb..fde93401b395953e40f0efbc60d72ebe19251ac5 100644 GIT binary patch delta 22039 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

+=#dB_N2Hz|FSHy&dk5NeETJDzpAUZ#@w#t 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 RYb$Ouqi+**|pfofYM;kN&zr!n?WS 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 VIUAZAIGWli*bq`Oy?PIa8~|(Yk|O{B delta 358 zcmbRFQ)%W;r44nA^&-#I&o8Zu-&PeF)Fb2B-5vJRp4az*p>>yFk=N{bA#*d0CVhx0 zop$d=@w{9KFJE1`<7q6RjI+W&U0tJEe8bsqrqRYVQ|#_bZ@=#^J&UL5;!Ksz-s!Wf z&aCENYI^jC?q23<%T3#V=)P}zbv?Y@t?Yj;XSeTmtEAa-k=9mUL{8a8N9_(_Yg;av zQ@4im^O diff --git a/ReadMe.md b/ReadMe.md index d29cd249..532d20d0 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -7,7 +7,7 @@ **RomWBW Introduction** \ Version 3.6 \ Wayne Warthen ([wwarthen@gmail.com](mailto:wwarthen@gmail.com)) \ -12 Nov 2025 +14 Nov 2025 # Overview diff --git a/ReadMe.txt b/ReadMe.txt index 838c1c23..afca823d 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -1,6 +1,6 @@ RomWBW Introduction Wayne Warthen (wwarthen@gmail.com) -12 Nov 2025 +14 Nov 2025 diff --git a/Source/Doc/Hardware.md b/Source/Doc/Hardware.md index 111716da..4a5e0c25 100644 --- a/Source/Doc/Hardware.md +++ b/Source/Doc/Hardware.md @@ -2492,6 +2492,7 @@ Note: | PCF | PCF8584-based I2C Real-Time Clock | | RP5C01 | Ricoh RPC01A Real-Time Clock w/ NVRAM | | SIMRTC | SIMH Simulator Real-Time Clock | +| MMRTC | NS MM58167B Real-Time Clock (no NVRAM) | ## DsKy (DiSplay KeYpad) diff --git a/Source/Doc/SystemGuide.md b/Source/Doc/SystemGuide.md index ee156f40..8ba0a02f 100644 --- a/Source/Doc/SystemGuide.md +++ b/Source/Doc/SystemGuide.md @@ -1430,6 +1430,7 @@ unit. The table below enumerates these values. | RTCDEV_RP5 | 0x05 | Ricoh RPC01A Real-Time Clock w/ NVRAM | rp5rtc.asm | | RTCDEV_EZ80 | 0x07 | eZ80 on-chip RTC | ez80rtc.asm | | RTCDEV_PC | 0x08 | MC146818/DS1285/DS12885 RTC w/ NVRAM | pcrtc.asm | +| RTCDEV_MM | 0x09 | NS MM58167B RTC (no NVRAM) | mmrtc.asm | The time functions to get and set the time (RTCGTM and RTCSTM) require a 6 byte date/time buffer in the following format. Each byte is BCD diff --git a/Source/HBIOS/Config/SZ180_std.asm b/Source/HBIOS/Config/SZ180_std.asm index 9756ecdb..5e4a42ed 100644 --- a/Source/HBIOS/Config/SZ180_std.asm +++ b/Source/HBIOS/Config/SZ180_std.asm @@ -58,6 +58,7 @@ Z180_MEMWAIT .SET 1 ; Z180: MEMORY WAIT STATES (0-3) Z180_IOWAIT .SET 3 ; Z180: I/O WAIT STATES TO ADD ABOVE 1 W/S BUILT-IN (0-3) ; INTRTCENABLE .SET TRUE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM) +MMRTCENABLE .SET TRUE ; MMRTC: ENABLE NS MM58167B RTC DRIVER (MMRTC.ASM) ; ASCIENABLE .SET TRUE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM) PLDSERENABLE .SET TRUE ; PLDSER: ENABLE PLD-USB SERIAL DRIVER (PLDSER.ASM) diff --git a/Source/HBIOS/Config/SZ80_std.asm b/Source/HBIOS/Config/SZ80_std.asm index 8cc33832..0dc552ce 100644 --- a/Source/HBIOS/Config/SZ80_std.asm +++ b/Source/HBIOS/Config/SZ80_std.asm @@ -55,6 +55,8 @@ MEMMGR .SET MM_SZ80 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH|MON|EZ51 FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS FPLED_IO .SET $05 ; FP: PORT ADDRESS FOR FP LEDS ; +MMRTCENABLE .SET TRUE ; MMRTC: ENABLE NS MM58167B RTC DRIVER (MMRTC.ASM) +; PLDSERENABLE .SET TRUE ; PLDSER: ENABLE PLD-USB SERIAL DRIVER (PLDSER.ASM) SCCENABLE .SET TRUE ; SCC: ENABLE ZILOG SCC SERIAL DRIVER (SCC.ASM) SCONENABLE .SET TRUE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM) diff --git a/Source/HBIOS/cfg_DUO.asm b/Source/HBIOS/cfg_DUO.asm index 34b781d1..080b6659 100644 --- a/Source/HBIOS/cfg_DUO.asm +++ b/Source/HBIOS/cfg_DUO.asm @@ -169,6 +169,8 @@ DS7RTCMODE .SET DS7RTCMODE_PCF ; DS7RTC: OPERATING MODE: DS7RTCMODE_[PCF] ; DS5RTCENABLE .SET FALSE ; DS5RTC: ENABLE DS-1305 SPI CLOCK DRIVER (DS5RTC.ASM) ; +MMRTCENABLE .SET FALSE ; MMRTC: ENABLE NS MM58167B RTC DRIVER (MMRTC.ASM) +; SSERENABLE .SET FALSE ; SSER: ENABLE SIMPLE SERIAL DRIVER (SSER.ASM) SSERCFG .SET SER_9600_8N1 ; SSER: SERIAL LINE CONFIG SSERSTATUS .SET $FF ; SSER: STATUS PORT diff --git a/Source/HBIOS/cfg_DYNO.asm b/Source/HBIOS/cfg_DYNO.asm index f1c8a60a..5958754f 100644 --- a/Source/HBIOS/cfg_DYNO.asm +++ b/Source/HBIOS/cfg_DYNO.asm @@ -168,6 +168,8 @@ DS7RTCMODE .SET DS7RTCMODE_PCF ; DS7RTC: OPERATING MODE: DS7RTCMODE_[PCF] ; DS5RTCENABLE .SET FALSE ; DS5RTC: ENABLE DS-1305 SPI CLOCK DRIVER (DS5RTC.ASM) ; +MMRTCENABLE .SET FALSE ; MMRTC: ENABLE NS MM58167B RTC DRIVER (MMRTC.ASM) +; SSERENABLE .SET FALSE ; SSER: ENABLE SIMPLE SERIAL DRIVER (SSER.ASM) SSERCFG .SET SER_9600_8N1 ; SSER: SERIAL LINE CONFIG SSERSTATUS .SET $FF ; SSER: STATUS PORT diff --git a/Source/HBIOS/cfg_EPITX.asm b/Source/HBIOS/cfg_EPITX.asm index f088e2cd..d52146de 100644 --- a/Source/HBIOS/cfg_EPITX.asm +++ b/Source/HBIOS/cfg_EPITX.asm @@ -164,6 +164,8 @@ DS7RTCMODE .SET DS7RTCMODE_PCF ; DS7RTC: OPERATING MODE: DS7RTCMODE_[PCF] ; DS5RTCENABLE .SET FALSE ; DS5RTC: ENABLE DS-1305 SPI CLOCK DRIVER (DS5RTC.ASM) ; +MMRTCENABLE .SET FALSE ; MMRTC: ENABLE NS MM58167B RTC DRIVER (MMRTC.ASM) +; SSERENABLE .SET FALSE ; SSER: ENABLE SIMPLE SERIAL DRIVER (SSER.ASM) SSERCFG .SET SER_9600_8N1 ; SSER: SERIAL LINE CONFIG SSERSTATUS .SET $FF ; SSER: STATUS PORT diff --git a/Source/HBIOS/cfg_EZZ80.asm b/Source/HBIOS/cfg_EZZ80.asm index 6d390851..812c7c27 100644 --- a/Source/HBIOS/cfg_EZZ80.asm +++ b/Source/HBIOS/cfg_EZZ80.asm @@ -168,6 +168,8 @@ DS7RTCMODE .SET DS7RTCMODE_PCF ; DS7RTC: OPERATING MODE: DS7RTCMODE_[PCF] ; DS5RTCENABLE .SET FALSE ; DS5RTC: ENABLE DS-1305 SPI CLOCK DRIVER (DS5RTC.ASM) ; +MMRTCENABLE .SET FALSE ; MMRTC: ENABLE NS MM58167B RTC DRIVER (MMRTC.ASM) +; SSERENABLE .SET FALSE ; SSER: ENABLE SIMPLE SERIAL DRIVER (SSER.ASM) SSERCFG .SET SER_9600_8N1 ; SSER: SERIAL LINE CONFIG SSERSTATUS .SET $FF ; SSER: STATUS PORT diff --git a/Source/HBIOS/cfg_GMZ180.asm b/Source/HBIOS/cfg_GMZ180.asm index f1522dfc..1b4c61b8 100644 --- a/Source/HBIOS/cfg_GMZ180.asm +++ b/Source/HBIOS/cfg_GMZ180.asm @@ -163,6 +163,8 @@ DS7RTCMODE .SET DS7RTCMODE_PCF ; DS7RTC: OPERATING MODE: DS7RTCMODE_[PCF] ; DS5RTCENABLE .SET FALSE ; DS5RTC: ENABLE DS-1305 SPI CLOCK DRIVER (DS5RTC.ASM) ; +MMRTCENABLE .SET FALSE ; MMRTC: ENABLE NS MM58167B RTC DRIVER (MMRTC.ASM) +; SSERENABLE .SET FALSE ; SSER: ENABLE SIMPLE SERIAL DRIVER (SSER.ASM) SSERCFG .SET SER_9600_8N1 ; SSER: SERIAL LINE CONFIG SSERSTATUS .SET $FF ; SSER: STATUS PORT diff --git a/Source/HBIOS/cfg_HEATH.asm b/Source/HBIOS/cfg_HEATH.asm index d1654feb..91800be5 100644 --- a/Source/HBIOS/cfg_HEATH.asm +++ b/Source/HBIOS/cfg_HEATH.asm @@ -168,6 +168,8 @@ DS7RTCMODE .SET DS7RTCMODE_PCF ; DS7RTC: OPERATING MODE: DS7RTCMODE_[PCF] ; DS5RTCENABLE .SET FALSE ; DS5RTC: ENABLE DS-1305 SPI CLOCK DRIVER (DS5RTC.ASM) ; +MMRTCENABLE .SET FALSE ; MMRTC: ENABLE NS MM58167B RTC DRIVER (MMRTC.ASM) +; SSERENABLE .SET FALSE ; SSER: ENABLE SIMPLE SERIAL DRIVER (SSER.ASM) SSERCFG .SET SER_9600_8N1 ; SSER: SERIAL LINE CONFIG SSERSTATUS .SET $FF ; SSER: STATUS PORT diff --git a/Source/HBIOS/cfg_MASTER.asm b/Source/HBIOS/cfg_MASTER.asm index abcc84f9..1235ad56 100644 --- a/Source/HBIOS/cfg_MASTER.asm +++ b/Source/HBIOS/cfg_MASTER.asm @@ -204,6 +204,8 @@ DS7RTCMODE .EQU DS7RTCMODE_PCF ; DS7RTC: OPERATING MODE: DS7RTCMODE_[PCF] ; DS5RTCENABLE .EQU FALSE ; DS5RTC: ENABLE DS-1305 SPI CLOCK DRIVER (DS5RTC.ASM) ; +MMRTCENABLE .EQU FALSE ; MMRTC: ENABLE NS MM58167B RTC DRIVER (MMRTC.ASM) +; PCRTCENABLE .EQU FALSE ; PCRTC: DISABLE DS12885 etc. RTC PCRTC_BASE .EQU $C0 ; Default port for PCRTC, like DSRTC. ; diff --git a/Source/HBIOS/cfg_MBC.asm b/Source/HBIOS/cfg_MBC.asm index 88142215..0341cc12 100644 --- a/Source/HBIOS/cfg_MBC.asm +++ b/Source/HBIOS/cfg_MBC.asm @@ -162,6 +162,8 @@ DS7RTCMODE .SET DS7RTCMODE_PCF ; DS7RTC: OPERATING MODE: DS7RTC_[PCF] ; DS5RTCENABLE .SET FALSE ; DS5RTC: ENABLE DS-1305 SPI CLOCK DRIVER (DS5RTC.ASM) ; +MMRTCENABLE .SET FALSE ; MMRTC: ENABLE NS MM58167B RTC DRIVER (MMRTC.ASM) +; SSERENABLE .SET FALSE ; SSER: ENABLE SIMPLE SERIAL DRIVER (SSER.ASM) SSERCFG .SET SER_9600_8N1 ; SSER: SERIAL LINE CONFIG SSERSTATUS .SET $FF ; SSER: STATUS PORT diff --git a/Source/HBIOS/cfg_MK4.asm b/Source/HBIOS/cfg_MK4.asm index 37cbb121..e0575cbc 100644 --- a/Source/HBIOS/cfg_MK4.asm +++ b/Source/HBIOS/cfg_MK4.asm @@ -168,6 +168,8 @@ DS7RTCMODE .SET DS7RTCMODE_PCF ; DS7RTC: OPERATING MODE: DS7RTCMODE_[PCF] ; DS5RTCENABLE .SET FALSE ; DS5RTC: ENABLE DS-1305 SPI CLOCK DRIVER (DS5RTC.ASM) ; +MMRTCENABLE .SET FALSE ; MMRTC: ENABLE NS MM58167B RTC DRIVER (MMRTC.ASM) +; SSERENABLE .SET FALSE ; SSER: ENABLE SIMPLE SERIAL DRIVER (SSER.ASM) SSERCFG .SET SER_9600_8N1 ; SSER: SERIAL LINE CONFIG SSERSTATUS .SET $FF ; SSER: STATUS PORT diff --git a/Source/HBIOS/cfg_MON.asm b/Source/HBIOS/cfg_MON.asm index 810264aa..6a04af30 100644 --- a/Source/HBIOS/cfg_MON.asm +++ b/Source/HBIOS/cfg_MON.asm @@ -165,6 +165,8 @@ DS7RTCMODE .SET DS7RTCMODE_PCF ; DS7RTC: OPERATING MODE: DS7RTCMODE_[PCF] ; DS5RTCENABLE .SET FALSE ; DS5RTC: ENABLE DS-1305 SPI CLOCK DRIVER (DS5RTC.ASM) ; +MMRTCENABLE .SET FALSE ; MMRTC: ENABLE NS MM58167B RTC DRIVER (MMRTC.ASM) +; SSERENABLE .SET FALSE ; SSER: ENABLE SIMPLE SERIAL DRIVER (SSER.ASM) SSERCFG .SET SER_9600_8N1 ; SSER: SERIAL LINE CONFIG SSERSTATUS .SET $FF ; SSER: STATUS PORT diff --git a/Source/HBIOS/cfg_MSX.asm b/Source/HBIOS/cfg_MSX.asm index a96a7d1f..d06b8dda 100644 --- a/Source/HBIOS/cfg_MSX.asm +++ b/Source/HBIOS/cfg_MSX.asm @@ -171,6 +171,8 @@ DS7RTCMODE .SET DS7RTCMODE_PCF ; DS7RTC: OPERATING MODE: DS7RTCMODE_[PCF] ; DS5RTCENABLE .SET FALSE ; DS5RTC: ENABLE DS-1305 SPI CLOCK DRIVER (DS5RTC.ASM) ; +MMRTCENABLE .SET FALSE ; MMRTC: ENABLE NS MM58167B RTC DRIVER (MMRTC.ASM) +; SSERENABLE .SET FALSE ; SSER: ENABLE SIMPLE SERIAL DRIVER (SSER.ASM) SSERCFG .SET SER_9600_8N1 ; SSER: SERIAL LINE CONFIG SSERSTATUS .SET $FF ; SSER: STATUS PORT diff --git a/Source/HBIOS/cfg_N8.asm b/Source/HBIOS/cfg_N8.asm index 97248512..b30ac4fa 100644 --- a/Source/HBIOS/cfg_N8.asm +++ b/Source/HBIOS/cfg_N8.asm @@ -170,6 +170,8 @@ DS7RTCMODE .SET DS7RTCMODE_PCF ; DS7RTC: OPERATING MODE: DS7RTCMODE_[PCF] ; DS5RTCENABLE .SET FALSE ; DS5RTC: ENABLE DS-1305 SPI CLOCK DRIVER (DS5RTC.ASM) ; +MMRTCENABLE .SET FALSE ; MMRTC: ENABLE NS MM58167B RTC DRIVER (MMRTC.ASM) +; SSERENABLE .SET FALSE ; SSER: ENABLE SIMPLE SERIAL DRIVER (SSER.ASM) SSERCFG .SET SER_9600_8N1 ; SSER: SERIAL LINE CONFIG SSERSTATUS .SET $FF ; SSER: STATUS PORT diff --git a/Source/HBIOS/cfg_NABU.asm b/Source/HBIOS/cfg_NABU.asm index 0684a188..28f79467 100644 --- a/Source/HBIOS/cfg_NABU.asm +++ b/Source/HBIOS/cfg_NABU.asm @@ -168,6 +168,8 @@ DS7RTCMODE .SET DS7RTCMODE_PCF ; DS7RTC: OPERATING MODE: DS7RTCMODE_[PCF] ; DS5RTCENABLE .SET FALSE ; DS5RTC: ENABLE DS-1305 SPI CLOCK DRIVER (DS5RTC.ASM) ; +MMRTCENABLE .SET FALSE ; MMRTC: ENABLE NS MM58167B RTC DRIVER (MMRTC.ASM) +; SSERENABLE .SET FALSE ; SSER: ENABLE SIMPLE SERIAL DRIVER (SSER.ASM) SSERCFG .SET SER_9600_8N1 ; SSER: SERIAL LINE CONFIG SSERSTATUS .SET $FF ; SSER: STATUS PORT diff --git a/Source/HBIOS/cfg_RCEZ80.asm b/Source/HBIOS/cfg_RCEZ80.asm index 9d2f16b6..2d2c57c5 100644 --- a/Source/HBIOS/cfg_RCEZ80.asm +++ b/Source/HBIOS/cfg_RCEZ80.asm @@ -166,6 +166,8 @@ DS7RTCMODE .SET DS7RTCMODE_PCF ; DS7RTC: OPERATING MODE: DS7RTCMODE_[PCF] ; DS5RTCENABLE .SET FALSE ; DS5RTC: ENABLE DS-1305 SPI CLOCK DRIVER (DS5RTC.ASM) ; +MMRTCENABLE .SET FALSE ; MMRTC: ENABLE NS MM58167B RTC DRIVER (MMRTC.ASM) +; SSERENABLE .SET FALSE ; SSER: ENABLE SIMPLE SERIAL DRIVER (SSER.ASM) SSERCFG .SET SER_9600_8N1 ; SSER: SERIAL LINE CONFIG SSERSTATUS .SET $FF ; SSER: STATUS PORT diff --git a/Source/HBIOS/cfg_RCZ180.asm b/Source/HBIOS/cfg_RCZ180.asm index 4b05b6a0..ec016b6e 100644 --- a/Source/HBIOS/cfg_RCZ180.asm +++ b/Source/HBIOS/cfg_RCZ180.asm @@ -168,6 +168,8 @@ DS7RTCMODE .SET DS7RTCMODE_PCF ; DS7RTC: OPERATING MODE: DS7RTCMODE_[PCF] ; DS5RTCENABLE .SET FALSE ; DS5RTC: ENABLE DS-1305 SPI CLOCK DRIVER (DS5RTC.ASM) ; +MMRTCENABLE .SET FALSE ; MMRTC: ENABLE NS MM58167B RTC DRIVER (MMRTC.ASM) +; SSERENABLE .SET FALSE ; SSER: ENABLE SIMPLE SERIAL DRIVER (SSER.ASM) SSERCFG .SET SER_9600_8N1 ; SSER: SERIAL LINE CONFIG SSERSTATUS .SET $FF ; SSER: STATUS PORT diff --git a/Source/HBIOS/cfg_RCZ280.asm b/Source/HBIOS/cfg_RCZ280.asm index 5da29efd..8e5bc2df 100644 --- a/Source/HBIOS/cfg_RCZ280.asm +++ b/Source/HBIOS/cfg_RCZ280.asm @@ -168,6 +168,8 @@ DS7RTCMODE .SET DS7RTCMODE_PCF ; DS7RTC: OPERATING MODE: DS7RTCMODE_[PCF] ; DS5RTCENABLE .SET FALSE ; DS5RTC: ENABLE DS-1305 SPI CLOCK DRIVER (DS5RTC.ASM) ; +MMRTCENABLE .SET FALSE ; MMRTC: ENABLE NS MM58167B RTC DRIVER (MMRTC.ASM) +; SSERENABLE .SET FALSE ; SSER: ENABLE SIMPLE SERIAL DRIVER (SSER.ASM) SSERCFG .SET SER_9600_8N1 ; SSER: SERIAL LINE CONFIG SSERSTATUS .SET $FF ; SSER: STATUS PORT diff --git a/Source/HBIOS/cfg_RCZ80.asm b/Source/HBIOS/cfg_RCZ80.asm index 4b92aa26..66f04201 100644 --- a/Source/HBIOS/cfg_RCZ80.asm +++ b/Source/HBIOS/cfg_RCZ80.asm @@ -171,6 +171,8 @@ DS7RTCMODE .SET DS7RTCMODE_PCF ; DS7RTC: OPERATING MODE: DS7RTCMODE_[PCF] ; DS5RTCENABLE .SET FALSE ; DS5RTC: ENABLE DS-1305 SPI CLOCK DRIVER (DS5RTC.ASM) ; +MMRTCENABLE .SET FALSE ; MMRTC: ENABLE NS MM58167B RTC DRIVER (MMRTC.ASM) +; SSERENABLE .SET FALSE ; SSER: ENABLE SIMPLE SERIAL DRIVER (SSER.ASM) SSERCFG .SET SER_9600_8N1 ; SSER: SERIAL LINE CONFIG SSERSTATUS .SET $FF ; SSER: STATUS PORT diff --git a/Source/HBIOS/cfg_RPH.asm b/Source/HBIOS/cfg_RPH.asm index 521ad9b2..d260bd44 100644 --- a/Source/HBIOS/cfg_RPH.asm +++ b/Source/HBIOS/cfg_RPH.asm @@ -168,6 +168,8 @@ DS7RTCMODE .SET DS7RTCMODE_PCF ; DS7RTC: OPERATING MODE: DS7RTCMODE_[PCF] ; DS5RTCENABLE .SET FALSE ; DS5RTC: ENABLE DS-1305 SPI CLOCK DRIVER (DS5RTC.ASM) ; +MMRTCENABLE .SET FALSE ; MMRTC: ENABLE NS MM58167B RTC DRIVER (MMRTC.ASM) +; SSERENABLE .SET FALSE ; SSER: ENABLE SIMPLE SERIAL DRIVER (SSER.ASM) SSERCFG .SET SER_9600_8N1 ; SSER: SERIAL LINE CONFIG SSERSTATUS .SET $FF ; SSER: STATUS PORT diff --git a/Source/HBIOS/cfg_SBC.asm b/Source/HBIOS/cfg_SBC.asm index a41e3c88..3b4d9d65 100644 --- a/Source/HBIOS/cfg_SBC.asm +++ b/Source/HBIOS/cfg_SBC.asm @@ -163,6 +163,8 @@ DS7RTCMODE .SET DS7RTCMODE_PCF ; DS7RTC: OPERATING MODE: DS7RTCMODE_[PCF] ; DS5RTCENABLE .SET FALSE ; DS5RTC: ENABLE DS-1305 SPI CLOCK DRIVER (DS5RTC.ASM) ; +MMRTCENABLE .SET FALSE ; MMRTC: ENABLE NS MM58167B RTC DRIVER (MMRTC.ASM) +; SSERENABLE .SET FALSE ; SSER: ENABLE SIMPLE SERIAL DRIVER (SSER.ASM) SSERCFG .SET SER_9600_8N1 ; SSER: SERIAL LINE CONFIG SSERSTATUS .SET $FF ; SSER: STATUS PORT diff --git a/Source/HBIOS/cfg_SCZ180.asm b/Source/HBIOS/cfg_SCZ180.asm index b1ef1195..01b0973d 100644 --- a/Source/HBIOS/cfg_SCZ180.asm +++ b/Source/HBIOS/cfg_SCZ180.asm @@ -168,6 +168,8 @@ DS7RTCMODE .SET DS7RTCMODE_PCF ; DS7RTC: OPERATING MODE: DS7RTCMODE_[PCF] ; DS5RTCENABLE .SET FALSE ; DS5RTC: ENABLE DS-1305 SPI CLOCK DRIVER (DS5RTC.ASM) ; +MMRTCENABLE .SET FALSE ; MMRTC: ENABLE NS MM58167B RTC DRIVER (MMRTC.ASM) +; SSERENABLE .SET FALSE ; SSER: ENABLE SIMPLE SERIAL DRIVER (SSER.ASM) SSERCFG .SET SER_9600_8N1 ; SSER: SERIAL LINE CONFIG SSERSTATUS .SET $FF ; SSER: STATUS PORT diff --git a/Source/HBIOS/cfg_SZ180.asm b/Source/HBIOS/cfg_SZ180.asm index aba96380..a355116c 100644 --- a/Source/HBIOS/cfg_SZ180.asm +++ b/Source/HBIOS/cfg_SZ180.asm @@ -165,6 +165,8 @@ DS7RTCMODE .SET DS7RTCMODE_PCF ; DS7RTC: OPERATING MODE: DS7RTCMODE_[PCF] ; DS5RTCENABLE .SET FALSE ; DS5RTC: ENABLE DS-1305 SPI CLOCK DRIVER (DS5RTC.ASM) ; +MMRTCENABLE .SET FALSE ; MMRTC: ENABLE NS MM58167B RTC DRIVER (MMRTC.ASM) +; SSERENABLE .SET FALSE ; SSER: ENABLE SIMPLE SERIAL DRIVER (SSER.ASM) ; PLDSERENABLE .SET FALSE ; PLDSER: ENABLE PLD-USB SERIAL DRIVER (PLDSER.ASM) diff --git a/Source/HBIOS/cfg_SZ80.asm b/Source/HBIOS/cfg_SZ80.asm index 4b4a813e..753122da 100644 --- a/Source/HBIOS/cfg_SZ80.asm +++ b/Source/HBIOS/cfg_SZ80.asm @@ -158,6 +158,10 @@ DS7RTCMODE .SET DS7RTCMODE_PCF ; DS7RTC: OPERATING MODE: DS7RTCMODE_[PCF] ; DS5RTCENABLE .SET FALSE ; DS5RTC: ENABLE DS-1305 SPI CLOCK DRIVER (DS5RTC.ASM) ; +MMRTCENABLE .SET FALSE ; MMRTC: ENABLE NS MM58167B RTC DRIVER (MMRTC.ASM) +; +MMRTCENABLE .SET FALSE ; MMRTC: ENABLE NS MM58167B RTC DRIVER (MMRTC.ASM) +; SSERENABLE .SET FALSE ; SSER: ENABLE SIMPLE SERIAL DRIVER (SSER.ASM) ; PLDSERENABLE .SET FALSE ; PLDSER: ENABLE PLD-USB SERIAL DRIVER (PLDSER.ASM) diff --git a/Source/HBIOS/cfg_Z80RETRO.asm b/Source/HBIOS/cfg_Z80RETRO.asm index 28d3a0fc..0de6f6de 100644 --- a/Source/HBIOS/cfg_Z80RETRO.asm +++ b/Source/HBIOS/cfg_Z80RETRO.asm @@ -166,6 +166,8 @@ DS7RTCMODE .SET DS7RTCMODE_PCF ; DS7RTC: OPERATING MODE: DS7RTCMODE_[PCF] ; DS5RTCENABLE .SET FALSE ; DS5RTC: ENABLE DS-1305 SPI CLOCK DRIVER (DS5RTC.ASM) ; +MMRTCENABLE .SET FALSE ; MMRTC: ENABLE NS MM58167B RTC DRIVER (MMRTC.ASM) +; SSERENABLE .SET FALSE ; SSER: ENABLE SIMPLE SERIAL DRIVER (SSER.ASM) SSERCFG .SET SER_9600_8N1 ; SSER: SERIAL LINE CONFIG SSERSTATUS .SET $FF ; SSER: STATUS PORT diff --git a/Source/HBIOS/cfg_ZETA.asm b/Source/HBIOS/cfg_ZETA.asm index 283da8b9..cb253639 100644 --- a/Source/HBIOS/cfg_ZETA.asm +++ b/Source/HBIOS/cfg_ZETA.asm @@ -155,6 +155,8 @@ DS7RTCMODE .SET DS7RTCMODE_PCF ; DS7RTC: OPERATING MODE: DS7RTCMODE_[PCF] ; DS5RTCENABLE .SET FALSE ; DS5RTC: ENABLE DS-1305 SPI CLOCK DRIVER (DS5RTC.ASM) ; +MMRTCENABLE .SET FALSE ; MMRTC: ENABLE NS MM58167B RTC DRIVER (MMRTC.ASM) +; SSERENABLE .SET FALSE ; SSER: ENABLE SIMPLE SERIAL DRIVER (SSER.ASM) SSERCFG .SET SER_9600_8N1 ; SSER: SERIAL LINE CONFIG SSERSTATUS .SET $FF ; SSER: STATUS PORT diff --git a/Source/HBIOS/cfg_ZETA2.asm b/Source/HBIOS/cfg_ZETA2.asm index f2e126b0..11501264 100644 --- a/Source/HBIOS/cfg_ZETA2.asm +++ b/Source/HBIOS/cfg_ZETA2.asm @@ -166,6 +166,8 @@ DS7RTCMODE .SET DS7RTCMODE_PCF ; DS7RTC: OPERATING MODE: DS7RTCMODE_[PCF] ; DS5RTCENABLE .SET FALSE ; DS5RTC: ENABLE DS-1305 SPI CLOCK DRIVER (DS5RTC.ASM) ; +MMRTCENABLE .SET FALSE ; MMRTC: ENABLE NS MM58167B RTC DRIVER (MMRTC.ASM) +; SSERENABLE .SET FALSE ; SSER: ENABLE SIMPLE SERIAL DRIVER (SSER.ASM) SSERCFG .SET SER_9600_8N1 ; SSER: SERIAL LINE CONFIG SSERSTATUS .SET $FF ; SSER: STATUS PORT diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index a5a90614..ea69ed34 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -4257,9 +4257,6 @@ HB_INITTBL: #IF (SIMRTCENABLE) .DW SIMRTC_INIT #ENDIF -#IF (INTRTCENABLE) - .DW INTRTC_INIT -#ENDIF #IF (DS7RTCENABLE) .DW DS7RTC_INIT #ENDIF @@ -4275,6 +4272,12 @@ HB_INITTBL: #IF (PCRTCENABLE) .DW PCRTC_INIT #ENDIF +#IF (MMRTCENABLE) + .DW MMRTC_INIT +#ENDIF +#IF (INTRTCENABLE) + .DW INTRTC_INIT +#ENDIF #IF (CPUFAM == CPU_EZ80) ; INITALISE ONE OF THE SUPPORTED SYSTEM TIMER TICKS DRIVERS .DW EZ80_TMR_INIT @@ -8865,15 +8868,6 @@ SIZ_PCRTC .EQU $ - ORG_PCRTC MEMECHO " bytes.\n" #ENDIF ; -#IF (INTRTCENABLE) -ORG_INTRTC .EQU $ - #INCLUDE "intrtc.asm" -SIZ_INTRTC .EQU $ - ORG_INTRTC - MEMECHO "INTRTC occupies " - MEMECHO SIZ_INTRTC - MEMECHO " bytes.\n" -#ENDIF -; #IF (DS7RTCENABLE) ORG_DS7RTC .EQU $ #INCLUDE "ds7rtc.asm" @@ -8892,6 +8886,24 @@ SIZ_RP5RTC .EQU $ - ORG_RP5RTC MEMECHO " bytes.\n" #ENDIF ; +#IF (MMRTCENABLE) +ORG_MMRTC .EQU $ + #INCLUDE "mmrtc.asm" +SIZ_MMRTC .EQU $ - ORG_MMRTC + MEMECHO "MMRTC occupies " + MEMECHO SIZ_MMRTC + MEMECHO " bytes.\n" +#ENDIF +; +#IF (INTRTCENABLE) +ORG_INTRTC .EQU $ + #INCLUDE "intrtc.asm" +SIZ_INTRTC .EQU $ - ORG_INTRTC + MEMECHO "INTRTC occupies " + MEMECHO SIZ_INTRTC + MEMECHO " bytes.\n" +#ENDIF +; #IF (SSERENABLE) ORG_SSER .EQU $ #INCLUDE "sser.asm" diff --git a/Source/HBIOS/hbios.inc b/Source/HBIOS/hbios.inc index 9032b151..e20bf0c1 100644 --- a/Source/HBIOS/hbios.inc +++ b/Source/HBIOS/hbios.inc @@ -438,6 +438,7 @@ RTCDEV_RP5 .EQU $05 ; RP5C01 RTCDEV_DS5 .EQU $06 ; DS1305 (SPI) RTCDEV_EZ80 .EQU $07 ; EZ80 ON-CHIP RTC RTCDEV_PC .EQU $08 ; PC style parallel RTC +RTCDEV_MM .EQU $09 ; NS MM58167B RTC (NO NVRAM) ; ; DSKY DEVICE IDS ; diff --git a/Source/HBIOS/romldr.asm b/Source/HBIOS/romldr.asm index dcdaf5a8..3d4f83f0 100644 --- a/Source/HBIOS/romldr.asm +++ b/Source/HBIOS/romldr.asm @@ -1230,26 +1230,26 @@ appload2: ; ;======================================================================= ; Routine - Copy chunk of data from Rom to a RAM location, source -; chunk may span banks. +; chunk may span banks. Source address must be <= 32768. ; param : HL=Source Adr, DE=Dest Adr, BC=Length, A=Source Bank ;======================================================================= ; -;;; loop: -;;; -;;; CPYLEN = (32768 - SRCADR) -;;; if (CPYLEN >= LEN) then CPYLEN = LEN -;;; LEN = (LEN - CPYLEN) ; do it here to avoid saving CPYLEN -;;; -;;; ; BnkCpy returns updated SRCADR, DSTADR -;;; call BnkCpy(SRCBNK:SRCADR, DSTBNK:DSTADR, CPYLEN) -;;; -;;; if (SRCADR == 32768) -;;; increment SRCBNK -;;; SRCADR = 0 -;;; -;;; if (LEN == 0) then done -;;; -;;; goto loop +; loop: +; +; CPYLEN = (32768 - SRCADR) +; if (CPYLEN >= LEN) then CPYLEN = LEN +; LEN = (LEN - CPYLEN) ; do it here to avoid saving CPYLEN +; +; ; BnkCpy returns updated SRCADR, DSTADR +; call BnkCpy(SRCBNK:SRCADR, DSTBNK:DSTADR, CPYLEN) +; +; if (SRCADR == 32768) +; increment SRCBNK +; SRCADR = 0 +; +; if (LEN == 0) then done +; +; goto loop ; #if (BIOS == BIOS_WBW) ;