Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
45
Task/Execute-Computer-Zero/J/execute-computer-zero-1.j
Normal file
45
Task/Execute-Computer-Zero/J/execute-computer-zero-1.j
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
OPS=: 'nop lda sta add sub brz jmp stp'
|
||||
|
||||
assemble1=: {{
|
||||
y=. tolower y
|
||||
ins=. {.;:y-.":i.10
|
||||
cod=. 8|(;:OPS) i. ins
|
||||
val=. {.0".y-.OPS
|
||||
if. *cod do.
|
||||
assert. 32>val
|
||||
val+32*cod
|
||||
else.
|
||||
assert. 256>val
|
||||
val
|
||||
end.
|
||||
}}
|
||||
|
||||
assemble=: {{
|
||||
if. 0=L. y do.
|
||||
delim=. {.((tolower y)-.(":i.10),;OPS),LF
|
||||
y=. delim cut y
|
||||
end.
|
||||
code=. assemble1@> y
|
||||
mem=: code (i.#code)} 32#0
|
||||
}}
|
||||
|
||||
exec1=: {{
|
||||
'cod val'=. 0 32#:pc{mem
|
||||
pc=: 32|pc+1
|
||||
select. cod
|
||||
case. 0 do.
|
||||
case. 1 do. acc=: val{mem
|
||||
case. 2 do. mem=: acc val} mem
|
||||
case. 3 do. acc=: 256|acc+val{mem
|
||||
case. 4 do. acc=: 256|acc-val{mem
|
||||
case. 5 do. pc=: 32|pc[^:(*acc) val
|
||||
case. 6 do. pc=: 32|val
|
||||
case. 7 do. pc=: __
|
||||
end.
|
||||
}}
|
||||
|
||||
exec=: {{
|
||||
pc=: acc=: 0
|
||||
while. 0<:pc do. exec1'' end.
|
||||
acc
|
||||
}}
|
||||
10
Task/Execute-Computer-Zero/J/execute-computer-zero-2.j
Normal file
10
Task/Execute-Computer-Zero/J/execute-computer-zero-2.j
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
exec assemble 'LDA 3; ADD 4; STP; 2; 2'
|
||||
4
|
||||
exec assemble 'LDA 12; ADD 10; STA 12; LDA 11; SUB 13; STA 11; BRZ 8; JMP; LDA 12; STP; 8; 7; 0; 1'
|
||||
56
|
||||
exec assemble 'LDA 14; STA 15; ADD 13; STA 14; LDA 15; STA 13; LDA 16; SUB 17; BRZ 11; STA 16; JMP; LDA 14; STP; 1; 1; 0; 8; 1'
|
||||
55
|
||||
exec assemble 'LDA 13; ADD 15; STA 5; ADD 16; STA 7; NOP; STA 14; NOP; BRZ 11; STA 15; JMP; LDA 14; STP; LDA; 0; 28; 1; 0; 0; 0; 6; 0; 2; 26; 5; 20; 3; 30; 1; 22; 4; 24'
|
||||
6
|
||||
exec assemble 'NOP; NOP; STP; NOP; LDA 3; SUB 29; BRZ 18; LDA 3; STA 29; BRZ 14; LDA 1; ADD 31; STA 1; JMP 2; LDA; ADD 31; STA; JMP 2; LDA 3; STA 29; LDA 1; ADD 30; ADD 3; STA 1; LDA; ADD 30; ADD 3; STA; JMP 2; 0; 1; 3'
|
||||
0
|
||||
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
|
||||
}}
|
||||
10
Task/Execute-Computer-Zero/J/execute-computer-zero-4.j
Normal file
10
Task/Execute-Computer-Zero/J/execute-computer-zero-4.j
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
exec LDA 3 ADD 4 STP 0 2 2
|
||||
4
|
||||
exec LDA 12 ADD 10 STA 12 LDA 11 SUB 13 STA 11 BRZ 8 JMP 0 LDA 12 STP 0 8 7 0 1
|
||||
56
|
||||
exec LDA 14 STA 15 ADD 13 STA 14 LDA 15 STA 13 LDA 16 SUB 17 BRZ 11 STA 16 JMP 0 LDA 14 STP 0 1 1 0 8 1
|
||||
55
|
||||
exec LDA 13 ADD 15 STA 5 ADD 16 STA 7 NOP 0 STA 14 NOP 0 BRZ 11 STA 15 JMP 0 LDA 14 STP 0 LDA 0 0 28 1 0 0 0 6 0 2 26 5 20 3 30 1 22 4 24
|
||||
6
|
||||
exec NOP 0 NOP 0 STP 0 NOP 0 LDA 3 SUB 29 BRZ 18 LDA 3 STA 29 BRZ 14 LDA 1 ADD 31 STA 1 JMP 2 LDA 0 ADD 31 STA 0 JMP 2 LDA 3 STA 29 LDA 1 ADD 30 ADD 3 STA 1 LDA 0 ADD 30 ADD 3 STA 0 JMP 2 0 1 3
|
||||
0
|
||||
Loading…
Add table
Add a link
Reference in a new issue