We're looking for your comments on how to best organize the wiki's content.
Talk:Suspension Chamber 2000
|Thread title||Replies||Last modified|
|Possible Error in Specification||4||02:49, 8 June 2012|
According to the description of GET_STATUS (A=0), the C register is set to 1 if the device is ready to trigger. However, in TRIGGER_DEVICE (A=2), it says that it triggers the device if register C is 0. Is this an error in the specification, or am I missing something?
Or, is it an intentional mistake, similar to the big-endianness of the device?
I don't think this is a mistake. In GET_STATUS, the C register is an output from the sleep cell to the DCPU. In TRIGGER_DEVICE, the C register is an input instead.
It just means that if you check the status of the sleep cell first, you have to clear C again before triggering it.
Oh, I had thought, from the wording "Performs GET_STATUS, and if C is zero..." that it meant it would trigger if C was zero based on the result of GET_STATUS. I think you're right though.
Actually, I was just working on an emulator, and, when reviewing the spec, it says that it performs GET_STATUS, which means C becomes 1. A CPU has no notion of input or output. Just because C was used in an output in GET_STATUS, doesn't mean the device can't use it as an input also. It's set as an output by GET_STATUS, and it's used as an input for TRIGGER_DEVIC.