-
Notifications
You must be signed in to change notification settings - Fork 0
/
interface.py
96 lines (79 loc) · 2.05 KB
/
interface.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
HEX_BINARY = {
'0': "0000", '1': "0001", '2': "0010", '3': "0011", '4': "0100",
'5': "0101", '6': "0110", '7': "0111", '8': "1000", '9': "1001",
'A': "1010", 'B': "1011", 'C': "1100", 'D': "1101", 'E': "1110",
'F': "1111"
}
IR = []
TR = []
AR = []
PC = []
AR = []
DR = []
AC = []
M = []
for i in range(16):
DR.append(0)
AC.append(0)
IR.append(0)
TR.append(0)
for i in range(12):
AR.append(0)
PC.append(0)
for i in range(2**8):
M.append(0)
T = 0
PC_PTR = 0
def operationDecode(instruction):
I = instruction[0]
opcode = instruction[1:4]
memRef = instruction[4:]
decode(I, opcode, memRef)
return
def decode(I, Opcode, MemRef):
return # call for each unit within the PC
def hexToBinary(hex):
'''
Converts hex to decimal and returns a str
'''
binary = ""
for char in hex:
binary += HEX_BINARY[char]
return binary
def hexToDecimal(hex):
'''
converts hex to decimal and returns a int
'''
binary = hexToBinary(hex)
decimal = 0
index = 0
for i in binary:
if i == '0':
index +=1
if i == '1':
decimal += 2**index
return decimal
print("\n")
print("Input your instruction into the Memory in the format: TTT XYYYZZZ \n")
print("Where T refernces where to store the instuction in Memory in Hex \nX refernces I \nYYY references opcode \nZZZ references memory location in Hex")
print("The max size of the Memory is 100")
def start():
while (True):
print("Input your instruction into the Memory in the format: TTT 1111FFF")
print("Input X to cancel \n")
TBS = input()
if TBS == "X":
print("Adding Instructions to Memory has been cancelled")
return
else:
location = TBS[0:4]
instruction = TBS[5:12]
M[str(hexToDecimal(location))] = instruction
def run(PC_PTR):
while (PC_PTR != len(M)):
instruction = input()
operationDecode(instruction)
PC_PTR += 1
# 1 111 FFF
start()
run(PC_PTR)