<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>File protection problems might be a problem, and that is why I asked for the output produced when using his configuration file.  If the file can’t be opened for write there will be an error message and the behavior he’s seeing will be expected.<o:p></o:p></span></p><p class=MsoNormal><a name="_MailEndCompose"><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></a></p><div style='border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt'><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>From:</span></b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'> Simh [mailto:simh-bounces@trailing-edge.com] <b>On Behalf Of </b>Kevin Handy<br><b>Sent:</b> Monday, April 11, 2016 12:37 PM<br><b>To:</b> Bob Supnik <bob@supnik.org><br><b>Cc:</b> simh@trailing-edge.com<br><b>Subject:</b> Re: [Simh] Watch<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>His nvr file is in /opt/???. Could it be caused by some file protection problems? If the nvr isn't available because of protections, shouldn't it print an error message? Does the file even exist on his system?<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>On Mon, Apr 11, 2016 at 11:50 AM, Bob Supnik <<a href="mailto:bob@supnik.org" target="_blank">bob@supnik.org</a>> wrote:<o:p></o:p></p><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in'><p class=MsoNormal>Sigh... just looked through ka630_* modules.<br><br>Anyway, the byte access/word addressing is in the spec. So the code is allowing writes to bytes that don't exist. Further, it is trying to deal with lengths other than byte or word, and the access and control paths don't exist in the hardware.<br><br>VMS uses strictly byte reads and writes to access the watch registers. I don't know what the console ROM might be doing; sources are not available.<br><br>/Bob<br><br>/* NVR: non-volatile RAM - stored in a buffered file */<br><br>int32 nvr_rd (int32 pa)<br>{<br>int32 rg = (pa - NVRBASE) & ~01;      /* force even; ignore odd bytes */<br>int32 result;<br><br>if (rg < 14)                                             /* watch chip */<br>    result = wtc_rd (pa);<br>else<br>   result = nvr[rg];<br><br>sim_debug (DBG_REG, &nvr_dev, "nvr_rd(pa=0x%X) returns: 0x%X\n", pa, result);<br><br>return result;<br>}<br><br>void nvr_wr (int32 pa, int32 val, int32 lnt)<br>{<br>int32 rg = (pa - NVRBASE) & ~01;<br><br>if (rg < 14)                                             /* watch chip */<br>    wtc_wr (pa, val, lnt);<br>else<br>    nvr[rg] = (uint8) val;<br><br>//  sim_debug (DBG_REG, &nvr_dev, "nvr_wr(pa=0x%X,val=0x%04X,lnt=%d) nvr[%02X] was %04X now %04X\n", pa, val, lnt, rg, orig_nvr, nvr[rg] | (nvr[rg+1] << 8));<br>    }<br>}<br><br>/* NVR examine */<br><br>t_stat nvr_ex (t_value *vptr, t_addr exta, UNIT *uptr, int32 sw)<br>{<br>uint32 addr = (uint32) exta;<br><br>if ((vptr == NULL) || (addr & 01))<br>    return SCPE_ARG;<br>if (addr >= NVRBASE+NVRASIZE)<br>    return SCPE_NXM;<br>*vptr = nvr[addr];<br>return SCPE_OK;<br>}<br><br>/* NVR deposit */<br><br>t_stat nvr_dep (t_value val, t_addr exta, UNIT *uptr, int32 sw)<br>{<br>uint32 addr = (uint32) exta;<br><br>if (addr & 01)<br>    return SCPE_ARG;<br>if (addr >= NVRBASE+NVRASIZE)<br>    return SCPE_NXM;<br>nvr[addr] = (uint8) val;<br>return SCPE_OK;<br>}<br><br>Note also that the specification of NVR as "4, 16, 32" should be "2, 16, 16". It's a byte-wide memory, but because odd addresses don't work, it has to be specified this way for save/restore.<br><br>/Bob<br><br>On 4/11/2016 12:00 PM, <a href="mailto:simh-request@trailing-edge.com" target="_blank">simh-request@trailing-edge.com</a> wrote:<o:p></o:p></p><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in'><p class=MsoNormal><br>------------------------------<br><br>Message: 2<br>Date: Mon, 11 Apr 2016 08:51:08 -0700<br>From: Mark Pizzolato<<a href="mailto:Mark@infocomm.com" target="_blank">Mark@infocomm.com</a>><br>To:"<a href="mailto:simh@trailing-edge.com" target="_blank">simh@trailing-edge.com</a>"  <<a href="mailto:simh@trailing-edge.com" target="_blank">simh@trailing-edge.com</a>><br>Subject: Re: [Simh] MicroVAX II time<br>Message-ID:<br>        <<a href="mailto:03006E3FC39B5A48AB9DBCCC101090A82DD620F171@REDROOF2.alohasunset.com" target="_blank">03006E3FC39B5A48AB9DBCCC101090A82DD620F171@REDROOF2.alohasunset.com</a>><br>Content-Type: text/plain; charset="utf-8"<o:p></o:p></p></blockquote><p class=MsoNormal><o:p> </o:p></p><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in'><p class=MsoNormal style='margin-bottom:12.0pt'>Actually, the watch chip is implemented it is implemented as a separate module<br>and DEVICE in VAX/vax_watch.c.<br><br>The nvr initializes the valid bit in the watch check when the NVR is attached and<br>clears it when NVR is detached.<br><br>Well, I didn’t check the details about 16bit or byte access, but the watch chip<br>works correctly for me if I use Wilm's config and point it at my generic test disk.<br>I get prompted for time IF I don't attach the NVR and don't if I do.<o:p></o:p></p></blockquote><p class=MsoNormal><br>_______________________________________________<br>Simh mailing list<br><a href="mailto:Simh@trailing-edge.com" target="_blank">Simh@trailing-edge.com</a><br><a href="http://mailman.trailing-edge.com/mailman/listinfo/simh" target="_blank">http://mailman.trailing-edge.com/mailman/listinfo/simh</a><o:p></o:p></p></blockquote></div><p class=MsoNormal><o:p> </o:p></p></div></div></div></body></html>