summaryrefslogtreecommitdiff
path: root/PLAN
blob: 562c8ab11df72d40442787f5b102a74efcbf9e88 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Turn on blinkenlights from the PDP core

Implement switch features:
    Deposit - needs a state machine
        [pc++] = switch_sr
    Examine - needs a state machine
        led_memdata = [pc++]

Don't ignore 6000 and 6001

Add "interrupts enabled" flag
    switch_start clears this
6000, 6001, 6002 should properly handle it
    6000 - skip next instruction if interrupts are enabled; disable interrupts (we should probably do this immediately)
    6001 - enable interrupts (after next instruction)
    6002 - disable interrupts (we should probably do this immediately)

Implement remaining TTY output instructions

Jules thinks clock is most likely interrupt source
    pdp8 source tries to map clock interrupts to "real time" - we might want to mangle that to make it deterministic

Sources of interrupts observed:
    PTR flag is set from loader, might be ignorable
    Memory management is poked from inside ISRs, might be ignorable (MMU should be optional)
    TTO ready for output interrupt - this looks like a very likely candidate
    TTI input ready interrupt - this looks like a very likely candidate
        Looks like these happen even when there is no input available - might be caused by the program itself doing something a little funny

Implement IF/DF fields
    Will need to update behaviour of switch_load_add

Add a macro for reversing polarity of switch_sing_step and switch_sing_inst and
making switch_dep happen on key lift instead of key press