WIP implementing Pat80 IO device
TODO: allow to dynamically load io devices modules to not override the original one
This commit is contained in:
parent
159803f6c6
commit
3c1843ab4b
@ -17,7 +17,7 @@ class Interruptable(object):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
class Console(QTextEdit, IO):
|
class Console(QTextEdit, IO):
|
||||||
_addresses = [0x80, 0x81]
|
_addresses = [0x00, 0x01]
|
||||||
_wrt_sgnl = Signal(int, int)
|
_wrt_sgnl = Signal(int, int)
|
||||||
def __init__(self, interruptable):
|
def __init__(self, interruptable):
|
||||||
#assert isinstance(interruptable, Interruptable )
|
#assert isinstance(interruptable, Interruptable )
|
||||||
@ -37,17 +37,15 @@ class Console(QTextEdit, IO):
|
|||||||
|
|
||||||
def read(self, address):
|
def read(self, address):
|
||||||
print ("READ ", address)
|
print ("READ ", address)
|
||||||
if address == 0x80:
|
# Sono invertiti? Per colpa dell'emulatore?
|
||||||
v = ((1 << 1) | # RTS
|
if address == 0x01:
|
||||||
((self._send_queue is not None) << 0) | # interrupt?
|
pass
|
||||||
0 )
|
elif address == 0x00:
|
||||||
return v
|
|
||||||
elif address == 0x81:
|
|
||||||
if self._send_queue is not None:
|
if self._send_queue is not None:
|
||||||
val = self._send_queue
|
val = self._send_queue
|
||||||
self._send_queue = None
|
self._send_queue = None
|
||||||
return val
|
return val
|
||||||
return 0x13
|
return 0x0
|
||||||
|
|
||||||
|
|
||||||
@Slot(int, int)
|
@Slot(int, int)
|
||||||
@ -56,15 +54,10 @@ class Console(QTextEdit, IO):
|
|||||||
self._wrt_sgnl.emit(address, value)
|
self._wrt_sgnl.emit(address, value)
|
||||||
|
|
||||||
def _write(self, address, value):
|
def _write(self, address, value):
|
||||||
if address == 0x80:
|
if address == 0x01:
|
||||||
pass
|
pass
|
||||||
elif address == 0x81:
|
elif address == 0x0:
|
||||||
if value < 128 and value > 10:
|
self.setText(self.toPlainText()+chr(value))
|
||||||
self.setText(self.toPlainText()+chr(value))
|
|
||||||
else:
|
|
||||||
self.setText(self.toPlainText()+".")
|
|
||||||
else:
|
|
||||||
raise Exception("Trying Console IO with wrong address")
|
|
||||||
|
|
||||||
def keyPressEvent(self, event):
|
def keyPressEvent(self, event):
|
||||||
# print ("Event:", event)
|
# print ("Event:", event)
|
||||||
|
Loading…
Reference in New Issue
Block a user