From mboxrd@z Thu Jan 1 00:00:00 1970 From: erik quanstrom Date: Mon, 3 Jan 2011 12:56:02 -0500 To: 9fans@9fans.net Message-ID: <39e559fe272e780d9a7e5f5f51e3461f@plug.quanstro.net> In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Subject: Re: [9fans] pcc/8c dies compiling simh code Topicbox-Message-UUID: 90706902-ead6-11e9-9d60-3106f5b1d025 this function (here reorganized to avoid the register allocation problem) was the problem: if *buf were a d10 already, i don't think you'd have seen this problem. int32 Map_WriteB (uint32 ba, int32 bc, uint8 *buf) { uint32 lim; a10 pa10; d10 mask, shift; lim = ba + bc; for ( ; ba < lim; ba++) { /* by bytes */ pa10 = Map_Addr10 (ba, 1); /* map addr */ if ((pa10 < 0) || MEM_ADDR_NXM (pa10)) { /* inv map or NXM? */ ubcs[1] |= UBCS_TMO; /* UBA times out */ return lim - ba; /* return bc */ } mask = 0377; shift = ubashf[ba & 3]; M[pa10] = M[pa10] & ~(mask << shift); M[pa10] |= (d10)*buf++ << shift; } return 0; } - erik