(no title)
Dr_Jefyll | 6 years ago
One-bit creator here. I'm surprised by how often people make comments like this. Is it the dual jump destinations which seem so confusing? All you need is to ignore one of them, assuming you'll "fall through" instead. This is noted in the article. "instructions generally do tend to get stored in sequential order, and, as a matter of coding style, conditional branches very often do specify address+1 as one of the outcomes. The assembler makes it easy to use the familiar branch, else fall through to the instruction at address+1 arrangement. "
Thanks for posting, Tomte. This and other projects of mine have appeared on HN before.
Edit: but don't use HN's search to find Dr_Jefyll. That's an f there, not a k; but HN's search seemingly can't be convinced of this.
mbreese|6 years ago
Is the tradeoff here if you use a "simple" 1-bit processor, you have to have more complex data/instructions? Meaning, because you only have 1-bit, there is a lot of jumping around. This means that for everything that you'd want to compute, you'd have to have the instruction flow in memory, instead of relying on more OP codes/instructions for the microprocessor?
This all sounds really interesting, but I'm having trouble completely wrapping my head around it.
Dr_Jefyll|6 years ago
Apologies. The original source code from the early 1980's is stored on a non-DOS floppy. Maybe someday I'll retrieve and publish it. But meanwhile here's a taste:
One of the tasks is to activate a solenoid to ink up the lithographic plate after a certain number of revolutions of the press. That number, range 0 to 9, is read from a 4-bit, binary weighted thumbwheel switch which has been set by the press operator.
The code uses 1 instruction to test bit0 of the thumbwheel switch. If bit0 is true, we fall through to another test that waits (jumps to self) until the tachometer pulse goes high; this eventually falls through to another test that waits for the tachometer pulse to go low. So, that's one revolution. But if bit0 of the thumbwheel switch is false, we jump past all this (ie, don't wait for one revolution).
Bit1 of the thumbwheel switch is similarly tested, except the tach must go hi-lo twice (2 revolutions); and so on for bits 2 and 3 (4 revs and 8 revs). Then, with all the counting complete, the solenoid gets turned on.
I have simplified somewhat; actually the rev-counting portion is a subroutine, called from two different places in the code. The (very primitive!) subroutine calling convention is explained in the article. HTH.
kmill|6 years ago
howardcurry|6 years ago
quickthrower2|6 years ago
The search at the bottom and hn.algolia doesn't find anything with "Dr_Jefyll"