diff options
| author | Julian Blake Kongslie | 2021-11-21 13:28:55 -0800 |
|---|---|---|
| committer | Julian Blake Kongslie | 2021-11-21 13:28:55 -0800 |
| commit | a9a3b8f7ab7f2067843a9a642447a9b7270440ce (patch) | |
| tree | fc7a5ba3dd7c5c0f5d77593c18a58f7fa376f2b5 /PLAN | |
| parent | Implement single-stepping the core. (diff) | |
| download | noncpu-a9a3b8f7ab7f2067843a9a642447a9b7270440ce.tar.xz | |
Implement switches Start and LoadAdd.
Diffstat (limited to 'PLAN')
| -rw-r--r-- | PLAN | 16 |
1 files changed, 11 insertions, 5 deletions
| @@ -1,15 +1,15 @@ | |||
| 1 | Turn on blinkenlights from the PDP core | 1 | Turn on blinkenlights from the PDP core |
| 2 | 2 | ||
| 3 | Implement switch features: | 3 | Implement switch features: |
| 4 | Start | 4 | Deposit - needs a state machine |
| 5 | Load_Add | 5 | [pc++] = switch_sr |
| 6 | Deposit | 6 | Examine - needs a state machine |
| 7 | Examine | 7 | led_memdata = [pc++] |
| 8 | The DF* IF* and SR* data switches | ||
| 9 | 8 | ||
| 10 | Don't ignore 6000 and 6001 | 9 | Don't ignore 6000 and 6001 |
| 11 | 10 | ||
| 12 | Add "interrupts enabled" flag | 11 | Add "interrupts enabled" flag |
| 12 | switch_start clears this | ||
| 13 | 6000, 6001, 6002 should properly handle it | 13 | 6000, 6001, 6002 should properly handle it |
| 14 | 6000 - skip next instruction if interrupts are enabled; disable interrupts (we should probably do this immediately) | 14 | 6000 - skip next instruction if interrupts are enabled; disable interrupts (we should probably do this immediately) |
| 15 | 6001 - enable interrupts (after next instruction) | 15 | 6001 - enable interrupts (after next instruction) |
| @@ -26,3 +26,9 @@ Sources of interrupts observed: | |||
| 26 | TTO ready for output interrupt - this looks like a very likely candidate | 26 | TTO ready for output interrupt - this looks like a very likely candidate |
| 27 | TTI input ready interrupt - this looks like a very likely candidate | 27 | TTI input ready interrupt - this looks like a very likely candidate |
| 28 | Looks like these happen even when there is no input available - might be caused by the program itself doing something a little funny | 28 | Looks like these happen even when there is no input available - might be caused by the program itself doing something a little funny |
| 29 | |||
| 30 | Implement IF/DF fields | ||
| 31 | Will need to update behaviour of switch_load_add | ||
| 32 | |||
| 33 | Add a macro for reversing polarity of switch_sing_step and switch_sing_inst and | ||
| 34 | making switch_dep happen on key lift instead of key press | ||
