Neil Webber 2024-04-07 08:56:00 -05:00
parent 974674e067
commit 94c72d28a6

25
kl11.py
View file

@ -123,14 +123,23 @@ class KL11:
self.ub.intmgr.simple_irq(pri=4, vector=0o64) self.ub.intmgr.simple_irq(pri=4, vector=0o64)
# transmit buffer # transmit buffer
case 6 if value is not None: # tbuf case 6:
# *** WRITING *** if value is None:
value &= 0o177 # *** READING ***
if (value != 0o177): # manual says this is load-only; however automatic
s = chr(value) # byte write support (byteme/mmio) requires this
self.tq.put(s) # be readable. Probably byteme should be fixed instead
if self.t_ienable: # to catch traps from unreadables and synthesize
self.ub.intmgr.simple_irq(pri=4, vector=0o64) # a zero there (?)
value = 0
else:
# *** WRITING ***
value &= 0o177
if (value != 0o177):
s = chr(value)
self.tq.put(s)
if self.t_ienable:
self.ub.intmgr.simple_irq(pri=4, vector=0o64)
case _: case _:
raise PDPTraps.AddressError raise PDPTraps.AddressError