Commit graph

68 commits

Author SHA1 Message Date
folkert van heusden
2563bbac57
locking and iterating through queues is expensive so added flag that indicates if there is any interrupt pending 2023-03-27 09:26:10 +02:00
Folkert van Heusden
4c7fcb4854 license 2023-03-26 21:47:42 +02:00
folkert van heusden
ebbcbee78f
initialize stack limit register with something saner 2023-03-26 15:28:31 +02:00
folkert van heusden
9bba033dbc
implemented real WAIT (really wait for interrupts) 2023-03-26 13:19:30 +02:00
folkert van heusden
b5f9d62f55
Methods for run-mode retrieval 2023-03-25 15:48:50 +01:00
folkert van heusden
d66650b5b2
prev_mode: rm_cur/rm_prev 2023-03-25 13:57:47 +01:00
folkert van heusden
b2f3fdb0e9
made word_mode into an enum 2023-03-25 09:56:52 +01:00
folkert van heusden
3dddae94c3
not sure if a union of an int and an std::opional is guaranteed to work 2023-03-24 21:23:11 +01:00
folkert van heusden
ba5916f750
SP is not selectable via bit 11 of PSW
R0...R5 are not selectable via run-mode
2023-03-24 19:59:52 +01:00
folkert van heusden
8a47015a93
replaced schedule_trap by trap() + throw 2023-03-22 13:48:55 +01:00
folkert van heusden
cfc819630e
Revert "MMR2 tracking"
This reverts commit 2afa705209.

=> breaks EKBA (from XXDP)
2023-03-22 13:08:23 +01:00
folkert van heusden
2afa705209
MMR2 tracking 2023-03-21 14:26:58 +01:00
folkert van heusden
ff40cdc82c
11/34 mode removed 2023-03-21 10:32:46 +01:00
folkert van heusden
5bc706d979
11/70 has no MFPT instruction 2023-03-20 19:07:52 +01:00
folkert van heusden
020764b22c
write-back in correct space 2023-03-18 14:48:17 +01:00
folkert van heusden
be68ad2357
code cleanup: unify getGAM/getGAMAddress/putGAM (first step) 2023-03-18 14:35:31 +01:00
folkert van heusden
57c7a23bd5
setPSW_flags_nzv 2023-03-18 12:50:14 +01:00
folkert van heusden
b88efb312f
getGAMAddress does not require the prev_mode flag 2023-03-18 12:32:58 +01:00
folkert van heusden
050b0f7ea5 clean-up 2023-03-13 13:33:57 +01:00
folkert van heusden
4618c86ffa Revert "RTI/RTT shall not change the PSW in user/supervisor mode"
This reverts commit 31edf022cc.

Seems to break at least XXDP EKBAD0.BIC
2023-03-13 10:10:13 +01:00
folkert van heusden
08d8c75d58 - readPhysical
- initialize psw to 0 to match pypdp (for diff)
- SUB instruction V-flag may have been incorrect
- MFPI/MTPI flags
- MFPI readPhysical
- bootloader from pypdp (for diff)
2023-03-12 22:32:53 +01:00
folkert van heusden
d68a5af55e writePhysical 2023-03-11 21:54:18 +01:00
folkert van heusden
42fc44b206 page written bit only when written
double trap: use stack from 000004
2022-06-24 20:03:32 +02:00
folkert van heusden
ad44232120 double trap handling (work in progress) 2022-06-19 15:31:26 +02:00
folkert van heusden
31edf022cc RTI/RTT shall not change the PSW in user/supervisor mode 2022-06-18 18:05:31 +02:00
folkert van heusden
4b788bb620 Set bit 12 to 1 if trap 2022-06-17 20:48:16 +02:00
folkert van heusden
a9090e0acd show instruction count together with the mips-count 2022-06-16 22:35:28 +02:00
folkert van heusden
6eeb65eeb3 PAR/PDR fixes
(FKTH??)
2022-06-13 15:19:28 +02:00
folkert van heusden
c20b9554d8 streamlined get/set_Register 2022-06-11 16:02:55 +02:00
folkert van heusden
dd3b1d9d66 Renamed 'FIXME' to 'TODO' for a few cases: they're really TODOs and
lgtm.com complains about them.
2022-06-11 08:59:07 +02:00
folkert van heusden
8d8af7153b Event handling (stop/interrupt) clean-up 2022-06-10 20:59:36 +02:00
folkert van heusden
94181e94bd KW11-L 2022-06-09 19:10:22 +02:00
folkert van heusden
1e748d3d37 All write-access to 0177776 should not affect the flag registers 2022-06-02 22:22:05 +02:00
folkert van heusden
3df8aea12c Split 'step()' into _a and _b so to prevent confusing disassembly of an
instruction that won't be executed anyway due to an interrupt/trap.
2022-04-30 12:16:19 +02:00
folkert van heusden
1673548c37 MMR1/2 2022-04-13 23:38:46 +02:00
folkert van heusden
a90547c3d1 micro-opt 2022-04-13 20:53:54 +02:00
folkert van heusden
841d0d9720 RESET clears the interrupt-queue 2022-04-13 17:48:49 +02:00
folkert van heusden
5390e54107 tracing: make sure a trap is logged 2022-04-12 12:31:22 +02:00
folkert van heusden
44ad6a5912 emulation speed 2022-04-12 11:17:30 +02:00
folkert van heusden
9462e2a72b debugger commands 2022-04-12 10:42:39 +02:00
folkert van heusden
9c7632fb1c breakpoints 2022-04-11 21:00:42 +02:00
folkert van heusden
9d367e02ae -d is now debugger and -t is now tracing to stderr 2022-04-11 20:55:59 +02:00
folkert van heusden
437ac02bce disassembler in ncurses mode 2022-04-11 15:20:22 +02:00
folkert van heusden
517f2afb9b changes to make it compile on ESP32 (does currently not support "std::optional") 2022-04-11 14:06:35 +02:00
folkert van heusden
f5bea4b5dc const 2022-04-11 13:31:22 +02:00
folkert van heusden
8920cb8313 extend debug logging with values worked with 2022-04-11 12:30:43 +02:00
folkert van heusden
9a18221229 RTI/RTT cannot set all PSW bits (the upper 5) 2022-03-31 23:46:43 +02:00
folkert van heusden
07cd3100d1 show (M)IPS in ncurses 2022-03-31 19:30:06 +02:00
folkert van heusden
ebaf6393c3 allow bus to trap for an invalid address 2022-03-26 12:20:18 +01:00
folkert van heusden
8612d99d36 code clean-up 2022-03-25 22:35:26 +01:00