folkert van heusden
|
ce1114a159
|
lf_csr can be altered from an other thread
|
2023-03-26 13:06:34 +02:00 |
|
folkert van heusden
|
3acf43acf7
|
sanity checks
|
2023-03-26 11:47:02 +02:00 |
|
folkert van heusden
|
0754aa692b
|
Relocate I/O to upper page of virtual address space
|
2023-03-26 00:22:12 +01:00 |
|
folkert van heusden
|
017339a768
|
abort should remember d/i-page in bit 4 of mmr0
|
2023-03-25 21:05:10 +01:00 |
|
folkert van heusden
|
7d5bec2197
|
apparenty all bits of the MMR3 could be set? even the unused bits?
|
2023-03-25 20:24:14 +01:00 |
|
folkert van heusden
|
28fa9afcca
|
clean-up of D-selection
|
2023-03-25 16:01:55 +01: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
|
6ad5802866
|
operator precedence warning from compiler
|
2023-03-25 10:33:32 +01:00 |
|
folkert van heusden
|
c708acead1
|
calculate_physical_address: d_i_space_t instead of a bool
|
2023-03-25 10:05:56 +01:00 |
|
folkert van heusden
|
b2f3fdb0e9
|
made word_mode into an enum
|
2023-03-25 09:56:52 +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
|
c66b79f1c7
|
typo
|
2023-03-24 16:35:22 +01:00 |
|
folkert van heusden
|
f0a199f7c1
|
i/o-read: value returned
|
2023-03-24 16:24:20 +01:00 |
|
folkert van heusden
|
875e7ff4dd
|
logging tweak (bus - write)
|
2023-03-24 16:06:28 +01:00 |
|
folkert van heusden
|
8f183c26ed
|
logging tweak (bus - read)
|
2023-03-24 15:54:51 +01:00 |
|
folkert van heusden
|
3618e27553
|
byte access to PIR register
|
2023-03-24 15:36:07 +01:00 |
|
folkert van heusden
|
b145bae3d0
|
const
|
2023-03-24 15:04:02 +01:00 |
|
folkert van heusden
|
d0359d510f
|
stack limit register fix (can only change upper 8 bits)
|
2023-03-24 14:01:53 +01:00 |
|
folkert van heusden
|
0d639fc65a
|
PIR register
|
2023-03-24 13:56:53 +01:00 |
|
folkert van heusden
|
19a733be0d
|
bus::read word-read from odd i/o did not throw
|
2023-03-24 09:32:30 +01:00 |
|
folkert van heusden
|
2f69f287ef
|
bus::calculate_physical_address did not handle non-mmu case
|
2023-03-24 09:12:37 +01:00 |
|
folkert van heusden
|
0fd4a70600
|
for some reason unixv5 wants to write a word to the system id i/o address
|
2023-03-23 22:09:19 +01:00 |
|
folkert van heusden
|
c096114c6b
|
EKBEE expects 18 bit address space with no RAM behind the last 8/16(?)kB
|
2023-03-23 20:18:36 +01:00 |
|
folkert van heusden
|
82da553c94
|
EKBE complains when unibus mapping-bit is masked off
|
2023-03-23 20:11:55 +01:00 |
|
folkert van heusden
|
9fc748e7e5
|
layout
|
2023-03-23 19:34:57 +01:00 |
|
folkert van heusden
|
283fc29c81
|
system size registers should not trap and also be r/o
|
2023-03-23 19:28:14 +01:00 |
|
folkert van heusden
|
4e6dff4ad9
|
SYSTEM_11_44 define in bus.h to aid KKTA/KKTB testing
|
2023-03-23 16:53:39 +01:00 |
|
folkert van heusden
|
921610643c
|
stack is in d-space
|
2023-03-23 16:12:17 +01:00 |
|
folkert van heusden
|
5a7c85b34b
|
log address-space (d/i)
|
2023-03-23 14:39:06 +01:00 |
|
folkert van heusden
|
f9eb348572
|
odd trap handling method
|
2023-03-23 14:19:35 +01:00 |
|
folkert van heusden
|
9ce5cb0bf6
|
lock bits / get instruction can trap
|
2023-03-23 12:44:06 +01:00 |
|
folkert van heusden
|
b184068789
|
always process ACF? not only when mmu enabled?! experiment!
|
2023-03-23 11:47:40 +01:00 |
|
folkert van heusden
|
45890daf75
|
MMR0 in byte mode
|
2023-03-23 09:14:50 +01:00 |
|
folkert van heusden
|
77997c3a63
|
gave each throw its own unique identifier
|
2023-03-22 13:51:13 +01:00 |
|
folkert van heusden
|
8a47015a93
|
replaced schedule_trap by trap() + throw
|
2023-03-22 13:48:55 +01:00 |
|
folkert van heusden
|
a820edea23
|
prevent memory leaks when re-adding devices
|
2023-03-22 13:44:27 +01:00 |
|
folkert van heusden
|
a672841865
|
clean-up
|
2023-03-21 21:16:41 +01:00 |
|
folkert van heusden
|
5bad90a820
|
lock MMR2 when upper 3 bits of MMR0 are set (any of them)
|
2023-03-21 19:40:32 +01:00 |
|
folkert van heusden
|
253d8437eb
|
throw exception when scheduling trap 004 for non existing pages
|
2023-03-21 19:34:58 +01:00 |
|
folkert van heusden
|
7ea2fa0033
|
only execute trap when MRR0_bit_9 AND MMR0_&_0xf000 == 0
|
2023-03-21 18:09:36 +01:00 |
|
folkert van heusden
|
06b5c027d3
|
do not run trap when 4 upper bits of MMR0 are set (any of them), also set bit 12 when there is a case for traping
|
2023-03-21 15:07:51 +01:00 |
|
folkert van heusden
|
69118435c4
|
A/W flags of PDR are reset when PAR is written to
|
2023-03-21 14:02:51 +01:00 |
|
folkert van heusden
|
406c2a5a09
|
i/o logging: handle peek_only-flag correct
|
2023-03-21 13:45:17 +01:00 |
|
folkert van heusden
|
470919e85d
|
If bit 9 of MMR0 is not set, abort an instruction but do not trap
|
2023-03-21 11:04:04 +01:00 |
|
folkert van heusden
|
49d16a72e6
|
ACF logic clean-up
|
2023-03-21 10:59:53 +01:00 |
|
folkert van heusden
|
ff40cdc82c
|
11/34 mode removed
|
2023-03-21 10:32:46 +01:00 |
|
folkert van heusden
|
fa9f57caa0
|
Bit 8 of MMR0 enables relocation only for 'destination'. Implemented by
checking for bit 8 when doing a write.
https://retrocomputing.stackexchange.com/questions/24664/pdp-11-34-bit-8-in-mmr0-maintenance-mode-what-does-it-do
|
2023-03-21 09:00:40 +01:00 |
|
folkert van heusden
|
6ac4a9ecb6
|
odd address check in i/o when in !word_mode
|
2023-03-21 08:49:49 +01:00 |
|
folkert van heusden
|
c77ae1d617
|
bus: trap(4) when reading from/writing to i/o or ram that does not exists/is not mapped
|
2023-03-20 22:27:04 +01:00 |
|