Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!gem.mps.ohio-state.edu!samsung!uunet!munnari.oz.au!bruce!goanna!minyos!s872625 From: s872625@minyos.xx.rmit.oz (Chris Cogdon [Brataccas]) Newsgroups: comp.sys.nsc.32k Subject: 32000 Un-Nicities Keywords: problem yuck Message-ID: <1914@minyos.xx.rmit.oz> Date: 23 Nov 89 07:12:35 GMT Organization: RMIT Computer Centre, Melbourne Australia. Lines: 29 I've just been doing some theoretical playing around with the 32000 series, as a preliminary for building a small machine (32016 to be precise). I've discovered a number of things which I think could have been better done. 1) Displacements can only cover 1M of addressing space (512k if you only allow for forward displacements from a fixed base). 2) There is no unsigned multiply and divide. 3) CVTP has no parallel. ie. there is no single instruction which can undo the bit pointer, nor can anything directly use the result. Number 1) is not all that much of a problem, as it simply restricts the size of a particular segment (dare I use the word) in rare circumstances. But I believe that the absolute addressing more should have used a 32 bit immediate rather than the displacement, because, as is, it is difficult to access absolute address FFFFFFFF (for example) without loading a register first. 2) can be a bummer if an unsigned multiply is what you wanted (with no regard for overflows and such. And is especially so with the extended multiplys. 3) Seems a bit silly to be. Ok, the pointer could be undone with 2 instructions, but it would have been a lot better if there was an instruction to undo it, or, for example, extract field took the bit pointer supplied by CVTP. The purpose of this item is to see if anyone knows WHY these un-nicities were put there. Or is NSC not as infallible as we think it is. Chris Cogdon [Brataccas], s872625.xx.rmit.oz (ACSnet) All spelling mistakes are the fault of a malicious filter, honest.