Sounds like one of the switches is wired (or positioned if one
prefers) the 'wrong way round'. Doublecheck the switch positions
against the measured state on the mode pins:
MODE RUN LOAD nCLEAR nWAIT
switch switch pin 3 pin 2
----- --------------------------------
RESET down down 0 +V
PROGRAM down up 0 0
RUN up down +V +V
PAUSE up up +V 0
The design is not the way one might expect it to be (RESET is not 0 &
0 at the 1802).
On 2012 Mar 22, at 1:57 PM, Gergely L?rincz wrote:
Again, as opposed to what I expected the display
changes only if in
RESET
mode (both run and load low). When in LOAD mode (LOAD up, RUN down)
nothing
seems to happen before/after flipping data switches and pushing the
input
button. Isn't it supposed to be the other way?
On 22 March 2012 15:20, Gergely L?rincz <alkopop79 at gmail.com> wrote:
> The display only updates after the input button is pressed if in
> RESET
> mode (RUN down, LOAD down). If RUN down, LOAD up, can't see the
> display
> changing.
>
> On 18 March 2012 00:38, Brent Hilpert <hilpert at cs.ubc.ca> wrote:
>
>> Idle state for RAM-R/W (20) should HIGH (read).
>> I expect idle state for RAM-OD (18) is also HIGH (RAM outputs
>> disabled).
>>
>> I would suggest before trying to run a program you confirm that
>> you are
>> able to load and examine memory.
>>
>> One of the subtle points here is that when loading/examining/
>> running you
>> generally need to go 'through' the RESET state with the mode
>> switches to
>> reset the internal address pointer to zero.
>>
>> Here's a load/examine test sequence:
>>
>> Load:
>> L1 - set 2 mode switches for RESET (*RUN down, *LOAD down) (set 1802
>> address pointer=0)
>> L2 - set MEM-RD/WR switch for WRITE/LOAD (*MP down)
>> L3 - set mode for PROGRAM (flip *LOAD up)
>> L4 - set data switches to 0001 0000, press STEP/*INPUT (load $10
>> into
>> mem-0)
>> L5 - set data switches to 0001 0001, press STEP/*INPUT (load $11
>> into
>> mem-1)
>> L6 - set data switches to 0001 0010, press STEP/*INPUT (load $12
>> into
>> mem-2)
>>
>> Examine:
>> E1 - set 2 mode switches for RESET (*RUN down, *LOAD down) (set 1802
>> address pointer=0)
>> E2 - set MEM-RD/WR switch for READ/EXAMINE (*MP up)
>> E3 - set mode for PROGRAM (flip *LOAD up)
>> E4 - press STEP/*INPUT, display should be 0001 0000 ($10)
>> E5 - press STEP/*INPUT, display should be 0001 0001 ($11)
>> E6 - press STEP/*INPUT, display should be 0001 0010 ($12)
>>
>> If you miss step L1, you won't know where you are actually
>> loading into
>> memory. If you miss step E1, the examine steps (E4,E5,E6) will
>> display
>> addresses 3,4,5 rather than displaying addresses 0,1,2. The same
>> issue
>> applies when running a program, you normally have to reset state
>> with the
>> mode switches so the program starts running at 0.
>>
>> I don't like the switch labels of the original Elf, they can be
>> misleading, but that's history. I relabelled/disambiguated them
>> in my
>> schematic and unit, the * labels above are the original switch
>> labels,
>> others are mine.
>>
>>
>>
>> On 2012 Mar 17, at 8:48 AM, Gergely L?rincz wrote:
>>
>> Getting there: finally I can see the hex result on the display
>> after I
>>> press the input button. Seems to me that the control circuit
>>> work fine.
>>> However I tried to test the machine by entering 7b (SEQ) and
>>> pressed
>>> INPUT
>>> and set to RUN mode, expecting the Q output change it's state.
>>> It didn't
>>> happen:( The 1802the input and output section and the whole control
>>> circuit
>>> seem to work fine so I checked the RAMs. It seems that the read/
>>> write
>>> enable and output disable pins (18 and 20) show different logic
>>> state in
>>> the two memory ICs. I assume this stops the instruction to be
>>> entered to
>>> the memory. Can you guys tell me what should be the state of
>>> pins 18 and
>>> 20
>>> (output disable and write enable) in run and load mode and when
>>> pressing
>>> the input button? The datasheet doesn't have much info on this.
>>>
>>>
>>> On 16 March 2012 18:15, Gergely L?rincz <alkopop79 at gmail.com>
>>> wrote:
>>>
>>> Problem (partially) solved: the LOAD switch stops the fliflop
>>> letting
>>>> anything pass through until it's set on ( RESET mode). As if
>>>> someone
>>>> mentioned it that particular bit is wrong on the schematics. I
>>>> assume i
>>>> just have to rewire the thing.
>>>>
>>>> On 16 Mar 2012 00:51, "Gergely L?rincz" <alkopop79 at
gmail.com>
>>>> wrote:
>>>>
>>>> All of these test are done. Conclusion: if I remove the wire
>>>> to SC1 and
>>>>> reset the 4013, it works fine, just as you described. In fact,
>>>>> I spent
>>>>> a
>>>>> few hours sending pulses from an Arduino (microsecond ones) to
>>>>> simulate
>>>>> SC1. I even managed to see the pulse from *Q* on the
>>>>> oscilloscope. But
>>>>>
>>>>> once the wire between the 4013 and the SC1 pin is used,
>>>>> nothing works.
>>>>> I
>>>>> even tried two different 1802s and they work fine (when the
>>>>> DMA IN pin
>>>>> is
>>>>> set low, SC1 instantly goes high). The only possible reason I can
>>>>> think of
>>>>> (since both the 1802 and 4013 works perfectly) is that one of the
>>>>> diodes
>>>>> are either broken or placed the wrong way around. An other
>>>>> thing is
>>>>> that I
>>>>> use a SPST button (input) instead of the SPDT. It still works
>>>>> (for some
>>>>> weird reason no SPDT buttons are rare and expensive in the
>>>>> UK). I'll
>>>>> check
>>>>> this tomorrow. The other mystery is that why the 4023 never
>>>>> sets the HP
>>>>> displays to enable mode. The displays are stuck (latched) and
>>>>> even
>>>>> though
>>>>> they work perfectly, the NAND gate (4023) never sets the
>>>>> enable pins
>>>>> low. I
>>>>> wonder if that has to anything with the previous problem?
>>>>> Anyway, at
>>>>> least
>>>>> I know where the problem is, even though I don't know what it
>>>>> is. It's
>>>>> certainly a good start! Thanks for all of your effort and
>>>>> indispensable
>>>>> help!
>>>>>
>>>>> Greg
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> Debugging trial: remove the connection from SC1 to the diode
>>>>>> at the
>>>>>> 4013
>>>>>> reset (10).
>>>>>> Now, when the input switch is released, nQ & nDMAIN should go
>>>>>> low and
>>>>>> STAY low as there is nothing to reset the 4013 (until you
>>>>>> flip the
>>>>>> load
>>>>>> mode switch).
>>>>>> It follows SC1 should go high and stay high or repeatedly
>>>>>> pulse high
>>>>>> as
>>>>>> the 1802 is being held in the DMA state (which I think you
>>>>>> already
>>>>>> tested
>>>>>> by forcing nDMAIN low).
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>
>>
>