Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
29
Task/Execute-Computer-Zero/J/execute-computer-zero-3.j
Normal file
29
Task/Execute-Computer-Zero/J/execute-computer-zero-3.j
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
opcode=: {{
|
||||
(m+{.y),}.y
|
||||
:
|
||||
x,m opcode y
|
||||
}}
|
||||
|
||||
({{((x)=: y opcode)0}}&>32*i.@#);:'NOP LDA STA ADD SUB BRZ JMP STP'
|
||||
|
||||
exec1=: {{
|
||||
'cod val'=. 0 32#:pc{mem
|
||||
pc=: 32|pc+1
|
||||
select. cod
|
||||
case. 0 do. NB. NOP
|
||||
case. 1 do. acc=: val{mem NB. LDA
|
||||
case. 2 do. mem=: acc val} mem NB. STA
|
||||
case. 3 do. acc=: 256|acc+val{mem NB. ADD
|
||||
case. 4 do. acc=: 256|acc-val{mem NB. SUB
|
||||
case. 5 do. pc=: 32|pc[^:(*acc) val NB. BRZ
|
||||
case. 6 do. pc=: 32|val NB. JMP
|
||||
case. 7 do. pc=: __ NB. STP
|
||||
end.
|
||||
}}
|
||||
|
||||
exec=: {{
|
||||
mem=: 32{.y
|
||||
pc=: acc=: 0
|
||||
while. 0<:pc do. exec1'' end.
|
||||
acc
|
||||
}}
|
||||
Loading…
Add table
Add a link
Reference in a new issue