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
|
tpu X0 Y0
## ${ADDR_CPU}
# read rip
mov ${ADDR_RIP}, RIGHT
mov ${ADDR_CPU}, RIGHT
mov ${MEM_OP_READ}, RIGHT
mov 0x00, RIGHT
mov ${OP_NIL}, RIGHT
# get ack
mov UP, NIL
mov UP, NIL
mov UP, ACC
mov UP, NIL
# read inst
sav
shr 6
add ${ADDR_MEMORY_BASE}
mov ACC, RIGHT
swp
mov ${ADDR_CPU}, RIGHT
mov ${MEM_OP_READ}, RIGHT
mov ACC, RIGHT
mov ${OP_NIL}, RIGHT
# get ack
swp
mov UP, NIL
mov UP, NIL
mov UP, ACC
mov UP, NIL
swp
# write rip+1
add 1
mov ${ADDR_RIP}, RIGHT
mov ${ADDR_CPU}, RIGHT
mov ${MEM_OP_WRITE}, RIGHT
mov 0x00, RIGHT
mov ACC, RIGHT
# get ack
mov UP, NIL
mov UP, NIL
mov UP, NIL
mov UP, NIL
swp
# run inst
mov ${ADDR_DECODER}, RIGHT
mov ${ADDR_CPU}, RIGHT
mov ACC, RIGHT
mov ${OP_NIL}, RIGHT
mov ${OP_NIL}, RIGHT
# get ack
mov UP, NIL
mov UP, NIL
mov UP, NIL
mov UP, NIL
end
tpu X1 Y0
mov LEFT, UP
end
|