![]() |
HP nut CPU and illegal instruction sequences - Printable Version +- HP Forums (https://archived.hpcalc.org/museumforum) +-- Forum: HP Museum Forums (https://archived.hpcalc.org/museumforum/forum-1.html) +--- Forum: Old HP Forum Archives (https://archived.hpcalc.org/museumforum/forum-2.html) +--- Thread: HP nut CPU and illegal instruction sequences (/thread-161219.html) |
HP nut CPU and illegal instruction sequences - Håkan Thörngren - 12-30-2009 Does anyone know how the 41 nut cpu behaves when it comes to instruction sequences that should be avoided? The David assembler manual basically says that AND and OR should not follow an arithmetic instruction that can have a carry out of the highest bit of the register.
The HP internal doc states that various instructions, most flag instructions (plus AND and OR) should not follow an arithmetic class 2 instruction. The HP description does not feel right, I have done things that should be avoided in the past without getting any ill effects I could see. I feel a little bit puzzled by this.
In short, what should I look out for? Should I trust David, HP or are there other interpretations on what should be avoided?
I have no answer but I am following... - Vieira, Luiz C. (Brazil) - 12-30-2009 Hi, Håkan; I am sorry not having an answer to your question, but I am surely following the thread. Cheers.
Luiz
Re: HP nut CPU and illegal instruction sequences - Eric Smith - 12-30-2009 Note that HP had three generations of Nut CPU chips, 1LA5, 1LE3, and 1LF5 (and more if you count some of the later Voyager variants), so it is remotely possible that bugs might have been fixed in the later ones. On the other hand, they probably didn't have any significant justification for investing the engineering effort to fix the bugs, so it is more likely that they kept the logic design of the core the same.
I think this clarifies some points... - Vieira, Luiz C. (Brazil) - 12-30-2009 Hi, Håkan;
A recent addition to T.O.S. (Doug Wilder´s QuinTable.pdf) brings the following relevant notes: Quote:No specific explanation about the reasons or internal structure, but it gives some extra info.3. NOT (C=-C-1) always sets carry. Cheers. Luiz (Brazil)
Edited: 30 Dec 2009, 9:49 p.m.
Re: HP nut CPU and illegal instruction sequences - Doug - 12-31-2009 Guess what, you get to test! get your head out of your ass and test your surmise, don't be stupid, test your premise:
It ain't that hard to test your code, don't be afraid, just try it, don't be afraid, i love 41c. Don't be afraid. Doug PS: JUST TRY IT
Edited: 31 Dec 2009, 10:56 a.m.
Re: HP nut CPU and illegal instruction sequences - Håkan Thörngren - 01-04-2010 I hoped there were some deeper insights available in this issue. In that case I will need to fire up my MLDL and HP41 and try some stuff out myself. I am not afraid, I had far fewer MEMORY LOST messages doing MCODEing than I did with synthetics... :)
It is just that I do not have my MLDL anywhere close to me at the moment, so it will have to wait. Anyway, I have some good starting points what to look at when I get around to it.
Re: HP nut CPU and illegal instruction sequences - Ángel Martin - 01-04-2010 I know nothing beats the real thing but V41 does an excelent job as surrogate of a HW MLDL. It supports the Hepax module quite flawlessly (others maybe too but I haven't tried them). Bad news if you're not using Windoze, though - but maybe you've got another system available fot these purposes.
Best wishes, Re: HP nut CPU and illegal instruction sequences - Monte Dalrymple - 01-04-2010 My paper "Inside the NUT CPU" over on the unmentionable site may
Monte
Re: HP nut CPU and illegal instruction sequences - Håkan Thörngren - 01-05-2010 I have so far studied old HP documentation, Doug Wilder´s QuinTable.pdf, David's assembler manual, the Monte Dalrymple's "Inside the NUT CPU" and "NEWT Microprocessor Technical Manual". The G register and pt=13 thing I have stumbled over myself by accident way back before I even saw it documented. It is well explained in the Newt paper as well as David's assembler manual.
David also explains the C=C|A and C=C&A bugs, but the description is
Non-BCD numbers in decimal mode arithmetics behavior is tested by the service module. I found this out when I tried the service module Anyway, I feel there is a reasonable complete understanding of many of the things going on. The darkest corner seems related to the class 2 (arithmetic) instructions being followed by certain other instructions mystery.
Many thanks, I will keep the information I have collected so far in mind when I can power up my MLDL later for some experiments.
Re: HP nut CPU and illegal instruction sequences - Eric Smith - 01-05-2010 On the Saturn CPU, decimal arithmetic with non-BCD digits is non-commutative. I haven't tested this with the Nut or earlier CPUs, but it's on my todo list.
|