folkert van heusden
2333f4b92d
- make sure MMR1 is never updated when MMR0 is locked by moving the MMR0
...
bit 15...13-check into bus::addToMMR1
- cpu::double_operand_instructions could do a register-increment etc
even if it did not run any cases of the switch
2023-03-27 21:01:58 +02:00
folkert van heusden
4bdc5272b2
"int" is 16 bit on an ESP32
2023-03-26 22:38:13 +02:00
folkert van heusden
7e11eacd6f
int may be tool small on esp32
2023-03-26 22:06:08 +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
9d0bc9eea5
could not change msb of stack limit register
2023-03-26 15:24:21 +02:00
folkert van heusden
0f67490b13
word_mode is now a word_mode_t
2023-03-26 15:13:22 +02:00
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