⍝ Baby: The Manchester Small Scale Experimental Machine:
⍝
⍝ Test script:
asm←{⎕IO←0 ⍝ Assembler for Baby.
⍺←32 32 ⋄ lines bits←⍺ ⍝ memory size.
ops←↓8 3⍴'jmpjrpldnstosub cmphlt' ⍝ opcode mnemonics.
wds←{⍵~⊂''}∘{⍵~¨' '}∘{(1,1↓⍵=' ')⊂⍵} ⍝ blank-separated words.
raw←{(∧\⍵≠'⍝')/⍵} ⍝ without comments.
bin←{⌽(⍺/2)⊤⍵} ⍝ ssem-binary from decimal.
↑{ ⍝ bool store matrix.
↑(⍺⍳,¨⍳lines)⊃¨⊂lines↑⍵ ⍝ lines in line-number order.
}/↓⍉↑{ ⍝ line_numbers, lines.
0::11 ⎕SIGNAL⍨'bad line: ',⍵ ⍝ something wrong with line.
nn instr←{(⊃⍵)(1↓⍵)}wds raw ⍵ ⍝ line number and content.
line←(⍎nn,',⍬')∘{⍺ ⍵} ⍝ line_number, bool_vector pair.
0=⍴instr:line bits bin 0 ⍝ null instruction: 0 line.
~(1↑instr)∊ops:line bits bin⍎⍕instr ⍝ 1st wd not opcode: raw value.
oper rand←2↑instr,⊂'0' ⍝ opcode and operand address.
addr←5 bin⍎rand ⍝ operand address.
unit←8 bin 0 ⍝ (storage unit number).
opco←3 bin ops⍳⊂oper ⍝ operator code.
line bits↑addr,unit,opco ⍝ line number and bool vector.
}¨↓⎕FMT↑⍵ ⍝ char vecs from any format.
}
dis←{⎕IO←0 ⍝ Disassembler for Baby.
lines bits←⍴⍵ ⍝ no of lines and word size.
max←2*bits ⍝ miximum unsigned value.
ops←↓8 3⍴'jmpjrpldnstosubsubcmphlt' ⍝ opcode mnemonics.
arity←⍎' 1 1 1 1 1 1 0 0 ' ⍝ instruction arity.
decode←(0 5 13 16∊⍨⍳bits)∘⊂ ⍝ instruction decode.
lfmt←{¯2↑'0',⍕⍵} ⍝ line number format.
dec←(-max÷2){⍺⍺+⍵⍵|⍵-⍺⍺}max∘{2⊥⌽⍵} ⍝ signed decimal from ⌽binary.
{ ⍝ assembled lines:
nn num instr←⍵ ⍝ line, decimal value, instr.
(↑nn),' ',(⍕⍪num),↑instr ⍝ assembled to char matrix.
}↓⍉↑(lfmt¨⍳lines){ ⍝ label for each line.
addr _ opco _←dec¨decode ⍵ ⍝ instruction decode.
oper←opco⊃ops ⍝ instruction mnemonic.
rand←(opco⊃arity)/' ',lfmt addr ⍝ operand address.
⍺(dec ⍵)(' ⍝ ',oper,rand) ⍝ instruction ⍝ number.
}¨↓⍵ ⍝ ... for each line.
}
crt←{disp⊂↑,/2↑¨'·⍟'[⎕io+⍵]} ⍝ CRT display.
∆←{{1:}⍙,←⊂⍵} ⍝ accumulate into
⍙←⍬ ⍝ source buffer.
⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝
∆' 01 ldn 24 ' ⍝ first program 1948-06-21
∆' 02 sto 26 '
∆' 03 ldn 26 '
∆' 04 sto 27 '
∆' 05 ldn 23 '
∆' 06 sub 27 '
∆' 07 cmp '
∆' 08 jrp 20 '
∆' 09 sub 26 '
∆' 10 sto 25 '
∆' 11 ldn 25 '
∆' 12 cmp '
∆' 13 hlt '
∆' 14 ldn 26 '
∆' 15 sub 21 '
∆' 16 sto 27 '
∆' 17 ldn 27 '
∆' 18 sto 26 '
∆' 19 jmp 22 '
∆' 20 ¯3 '
∆' 21 1 '
∆' 22 4 '
∆' 23 -2*4 ' ⍝ NB: value of 2*18 (which took 52 minutes on the original
∆' 24 ¯1+2*4 ' ⍝ machine) would take too long for this test.
prog0 ⍙←⍙ ⍬
baby asm prog0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝
∆' 01 ldn 30 ' ⍝ hcf of number in lines 30 and 31
∆' 02 sto 29 ' ⍝ result appears in line 30
∆' 03 ldn 31 ' ⍝ http://www.computer50.org/mark1/prog98/intro.html
∆' 04 sto 31 '
∆' 05 ldn 31 '
∆' 06 sto 30 '
∆' 07 ldn 29 '
∆' 08 sub 30 '
∆' 09 cmp '
∆' 10 jrp 27 '
∆' 11 sub 31 '
∆' 12 sto 31 '
∆' 13 sub 28 '
∆' 14 cmp '
∆' 15 jmp 00 '
∆' 16 hlt '
∆' 27 -3 '
∆' 28 2 '
∆' 29 0 '
∆' 30 385 '
∆' 31 66 '
hcf ⍙ ← ⍙ ⍬ ⍝ highest common factor (→gcd←)
dis baby asm hcf
00 0 ⍝ jmp 00
01 16414 ⍝ ldn 30
02 24605 ⍝ sto 29
03 16415 ⍝ ldn 31
04 24607 ⍝ sto 31
05 16415 ⍝ ldn 31
06 24606 ⍝ sto 30
07 16413 ⍝ ldn 29
08 32798 ⍝ sub 30
09 49152 ⍝ cmp
10 8219 ⍝ jrp 27
11 32799 ⍝ sub 31
12 24607 ⍝ sto 31
13 32796 ⍝ sub 28
14 49152 ⍝ cmp
15 0 ⍝ jmp 00
16 57344 ⍝ hlt
17 0 ⍝ jmp 00
18 0 ⍝ jmp 00
19 0 ⍝ jmp 00
20 0 ⍝ jmp 00
21 0 ⍝ jmp 00
22 0 ⍝ jmp 00
23 0 ⍝ jmp 00
24 0 ⍝ jmp 00
25 0 ⍝ jmp 00
26 0 ⍝ jmp 00
27 ¯3 ⍝ hlt
28 2 ⍝ jmp 02
29 ¯55 ⍝ hlt
30 11 ⍝ jmp 11
31 0 ⍝ jmp 00
⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝
⍝ Simple count-down: 100 99 .. 0
∆' 00 1 ⍝ decrement / jmp addr. '
∆' 01 ldn 07 ⍝ load count from memory. '
∆' 02 sub 00 ⍝ decrement count. '
∆' 03 sto 07 ⍝ store count in memory. '
∆' 04 cmp ⍝ negative? '
∆' 05 jmp 00 ⍝ not yet: →02 '
∆' 06 hlt ⍝ yes: stop. '
∆' 07 ¯100 ⍝ (negative) loop count. '
bloop ⍙ ← ⍙ ⍬ ⍝ loop 1e3
dis baby asm bloop
00 1 ⍝ jmp 01
01 16391 ⍝ ldn 07
02 32768 ⍝ sub 00
03 24583 ⍝ sto 07
04 49152 ⍝ cmp
05 0 ⍝ jmp 00
06 57344 ⍝ hlt
07 ¯1 ⍝ hlt
08 0 ⍝ jmp 00
09 0 ⍝ jmp 00
10 0 ⍝ jmp 00
11 0 ⍝ jmp 00
12 0 ⍝ jmp 00
13 0 ⍝ jmp 00
14 0 ⍝ jmp 00
15 0 ⍝ jmp 00
16 0 ⍝ jmp 00
17 0 ⍝ jmp 00
18 0 ⍝ jmp 00
19 0 ⍝ jmp 00
20 0 ⍝ jmp 00
21 0 ⍝ jmp 00
22 0 ⍝ jmp 00
23 0 ⍝ jmp 00
24 0 ⍝ jmp 00
25 0 ⍝ jmp 00
26 0 ⍝ jmp 00
27 0 ⍝ jmp 00
28 0 ⍝ jmp 00
29 0 ⍝ jmp 00
30 0 ⍝ jmp 00
31 0 ⍝ jmp 00
⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝
∆' 00 jmp 24 ' ⍝ Prime numbers: Bas Wijnen
∆' 01 ldn 21 ' ⍝ http://www.computer50.org/mark1/prog98/prizewinners.html
∆' 02 sto 21 '
∆' 03 ldn 21 '
∆' 04 sub 15 '
∆' 05 sto 21 '
∆' 06 ldn 15 '
∆' 07 sto 22 '
∆' 08 ldn 22 '
∆' 09 sto 22 '
∆' 10 ldn 22 '
∆' 11 sub 15 '
∆' 12 sto 22 '
∆' 13 sub 21 '
∆' 14 cmp '
∆' 15 -1 '
∆' 16 ldn 21 '
∆' 17 sto 23 '
∆' 18 ldn 23 '
∆' 19 sub 22 '
∆' 20 jmp 0 '
∆' 21 1 ' ⍝ result: next prime.
∆' 22 ' ⍝ .. ..
∆' 23 '
∆' 24 7 '
∆' 25 cmp '
∆' 26 jrp 0 '
∆' 27 sto 23 '
∆' 28 ldn 23 '
∆' 29 sub 22 '
∆' 30 cmp '
∆' 31 jmp 20 '
primes ⍙ ← ⍙ ⍬ ⍝ next prime number.
dis¨↑{⍵,⊂baby⊃⌽⍵}/(⍳5),⊂⊂asm primes ⍝ first 5 primes in line[21].
┌──────────────────┬──────────────────┬──────────────────┬──────────────────┬──────────────────┬──────────────────┐
│00 24 ⍝ jmp 24│00 24 ⍝ jmp 24│00 24 ⍝ jmp 24│00 24 ⍝ jmp 24│00 24 ⍝ jmp 24│00 24 ⍝ jmp 24│
│01 16405 ⍝ ldn 21│01 16405 ⍝ ldn 21│01 16405 ⍝ ldn 21│01 16405 ⍝ ldn 21│01 16405 ⍝ ldn 21│01 16405 ⍝ ldn 21│
│02 24597 ⍝ sto 21│02 24597 ⍝ sto 21│02 24597 ⍝ sto 21│02 24597 ⍝ sto 21│02 24597 ⍝ sto 21│02 24597 ⍝ sto 21│
│03 16405 ⍝ ldn 21│03 16405 ⍝ ldn 21│03 16405 ⍝ ldn 21│03 16405 ⍝ ldn 21│03 16405 ⍝ ldn 21│03 16405 ⍝ ldn 21│
│04 32783 ⍝ sub 15│04 32783 ⍝ sub 15│04 32783 ⍝ sub 15│04 32783 ⍝ sub 15│04 32783 ⍝ sub 15│04 32783 ⍝ sub 15│
│05 24597 ⍝ sto 21│05 24597 ⍝ sto 21│05 24597 ⍝ sto 21│05 24597 ⍝ sto 21│05 24597 ⍝ sto 21│05 24597 ⍝ sto 21│
│06 16399 ⍝ ldn 15│06 16399 ⍝ ldn 15│06 16399 ⍝ ldn 15│06 16399 ⍝ ldn 15│06 16399 ⍝ ldn 15│06 16399 ⍝ ldn 15│
│07 24598 ⍝ sto 22│07 24598 ⍝ sto 22│07 24598 ⍝ sto 22│07 24598 ⍝ sto 22│07 24598 ⍝ sto 22│07 24598 ⍝ sto 22│
│08 16406 ⍝ ldn 22│08 16406 ⍝ ldn 22│08 16406 ⍝ ldn 22│08 16406 ⍝ ldn 22│08 16406 ⍝ ldn 22│08 16406 ⍝ ldn 22│
│09 24598 ⍝ sto 22│09 24598 ⍝ sto 22│09 24598 ⍝ sto 22│09 24598 ⍝ sto 22│09 24598 ⍝ sto 22│09 24598 ⍝ sto 22│
│10 16406 ⍝ ldn 22│10 16406 ⍝ ldn 22│10 16406 ⍝ ldn 22│10 16406 ⍝ ldn 22│10 16406 ⍝ ldn 22│10 16406 ⍝ ldn 22│
│11 32783 ⍝ sub 15│11 32783 ⍝ sub 15│11 32783 ⍝ sub 15│11 32783 ⍝ sub 15│11 32783 ⍝ sub 15│11 32783 ⍝ sub 15│
│12 24598 ⍝ sto 22│12 24598 ⍝ sto 22│12 24598 ⍝ sto 22│12 24598 ⍝ sto 22│12 24598 ⍝ sto 22│12 24598 ⍝ sto 22│
│13 32789 ⍝ sub 21│13 32789 ⍝ sub 21│13 32789 ⍝ sub 21│13 32789 ⍝ sub 21│13 32789 ⍝ sub 21│13 32789 ⍝ sub 21│
│14 49152 ⍝ cmp │14 49152 ⍝ cmp │14 49152 ⍝ cmp │14 49152 ⍝ cmp │14 49152 ⍝ cmp │14 49152 ⍝ cmp │
│15 ¯1 ⍝ hlt │15 ¯1 ⍝ hlt │15 ¯1 ⍝ hlt │15 ¯1 ⍝ hlt │15 ¯1 ⍝ hlt │15 ¯1 ⍝ hlt │
│16 16405 ⍝ ldn 21│16 16405 ⍝ ldn 21│16 16405 ⍝ ldn 21│16 16405 ⍝ ldn 21│16 16405 ⍝ ldn 21│16 16405 ⍝ ldn 21│
│17 24599 ⍝ sto 23│17 24599 ⍝ sto 23│17 24599 ⍝ sto 23│17 24599 ⍝ sto 23│17 24599 ⍝ sto 23│17 24599 ⍝ sto 23│
│18 16407 ⍝ ldn 23│18 16407 ⍝ ldn 23│18 16407 ⍝ ldn 23│18 16407 ⍝ ldn 23│18 16407 ⍝ ldn 23│18 16407 ⍝ ldn 23│
│19 32790 ⍝ sub 22│19 32790 ⍝ sub 22│19 32790 ⍝ sub 22│19 32790 ⍝ sub 22│19 32790 ⍝ sub 22│19 32790 ⍝ sub 22│
│20 0 ⍝ jmp 00│20 0 ⍝ jmp 00│20 0 ⍝ jmp 00│20 0 ⍝ jmp 00│20 0 ⍝ jmp 00│20 0 ⍝ jmp 00│
│21 1 ⍝ jmp 01│21 2 ⍝ jmp 02│21 3 ⍝ jmp 03│21 5 ⍝ jmp 05│21 7 ⍝ jmp 07│21 11 ⍝ jmp 11│
│22 0 ⍝ jmp 00│22 2 ⍝ jmp 02│22 3 ⍝ jmp 03│22 5 ⍝ jmp 05│22 7 ⍝ jmp 07│22 11 ⍝ jmp 11│
│23 0 ⍝ jmp 00│23 0 ⍝ jmp 00│23 ¯1 ⍝ hlt │23 ¯3 ⍝ hlt │23 ¯5 ⍝ hlt │23 ¯9 ⍝ hlt │
│24 7 ⍝ jmp 07│24 7 ⍝ jmp 07│24 7 ⍝ jmp 07│24 7 ⍝ jmp 07│24 7 ⍝ jmp 07│24 7 ⍝ jmp 07│
│25 49152 ⍝ cmp │25 49152 ⍝ cmp │25 49152 ⍝ cmp │25 49152 ⍝ cmp │25 49152 ⍝ cmp │25 49152 ⍝ cmp │
│26 8192 ⍝ jrp 00│26 8192 ⍝ jrp 00│26 8192 ⍝ jrp 00│26 8192 ⍝ jrp 00│26 8192 ⍝ jrp 00│26 8192 ⍝ jrp 00│
│27 24599 ⍝ sto 23│27 24599 ⍝ sto 23│27 24599 ⍝ sto 23│27 24599 ⍝ sto 23│27 24599 ⍝ sto 23│27 24599 ⍝ sto 23│
│28 16407 ⍝ ldn 23│28 16407 ⍝ ldn 23│28 16407 ⍝ ldn 23│28 16407 ⍝ ldn 23│28 16407 ⍝ ldn 23│28 16407 ⍝ ldn 23│
│29 32790 ⍝ sub 22│29 32790 ⍝ sub 22│29 32790 ⍝ sub 22│29 32790 ⍝ sub 22│29 32790 ⍝ sub 22│29 32790 ⍝ sub 22│
│30 49152 ⍝ cmp │30 49152 ⍝ cmp │30 49152 ⍝ cmp │30 49152 ⍝ cmp │30 49152 ⍝ cmp │30 49152 ⍝ cmp │
│31 20 ⍝ jmp 20│31 20 ⍝ jmp 20│31 20 ⍝ jmp 20│31 20 ⍝ jmp 20│31 20 ⍝ jmp 20│31 20 ⍝ jmp 20│
└──────────────────┴──────────────────┴──────────────────┴──────────────────┴──────────────────┴──────────────────┘
⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝
∆' 01 ldn 29 ' ⍝ Parabola: Magnus Olsson
∆' 02 sub 29 ' ⍝ http://www.computer50.org/mark1/prog98/prizewinners.html
∆' 03 sto 29 '
∆' 04 cmp '
∆' 05 hlt '
∆' 06 ldn 29 '
∆' 07 sto 29 '
∆' 08 ldn 22 '
∆' 09 sub 29 '
∆' 10 sto 30 '
∆' 11 ldn 30 '
∆' 12 sto 22 '
∆' 13 ldn 8 '
∆' 14 sub 28 '
∆' 15 sto 30 '
∆' 16 ldn 30 '
∆' 17 sto 8 '
∆' 18 sub 27 '
∆' 19 sto 12 '
∆' 20 ldn 28 '
∆' 21 sub 26 '
∆' 22 sto 28 '
∆' 23 ldn 28 '
∆' 24 sto 28 '
∆' 25 jmp 31 '
∆' 26 1 '
∆' 27 ¯8192 '
∆' 28 ¯6 '
∆' 29 131072 '
∆' 30 0 '
∆' 31 0 '
parabola ⍙ ← ⍙ ⍬ ⍝ graph of parabola.
crt baby asm parabola ⍝ show parabola.
┌────────────────────────────────────────────────────────────────┐
│· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · │
│⍟ · ⍟ ⍟ ⍟ · · · · · · · · · ⍟ · · · · · · · · · ⍟ ⍟ · · · · · · │
│⍟ · ⍟ ⍟ ⍟ · · · · · · · · · · ⍟ · · · · · · · ⍟ · · ⍟ · · · · · │
│⍟ · ⍟ ⍟ ⍟ · · · · · · · · ⍟ ⍟ · · · · · · · · · · · · · · · · · │
│· · · · · · · · · · · · · · ⍟ ⍟ · · · · · · ⍟ · · · · ⍟ · · · · │
│· · · · · · · · · · · · · ⍟ ⍟ ⍟ · · · · · · · · · · · · · · · · │
│⍟ · ⍟ ⍟ ⍟ · · · · · · · · · ⍟ · · · · · · · · · · · · · · · · · │
│⍟ · ⍟ ⍟ ⍟ · · · · · · · · ⍟ ⍟ · · · · · · ⍟ · · · · · · ⍟ · · · │
│⍟ · ⍟ ⍟ ⍟ · · · · · · · · · ⍟ · · · · · · · · · · · · · · · · · │
│⍟ · ⍟ ⍟ ⍟ · · · · · · · · · · ⍟ · · · · · · · · · · · · · · · · │
│· ⍟ ⍟ ⍟ ⍟ · · · · · · · · ⍟ ⍟ · · · · · · · · · · · · · · · · · │
│· ⍟ ⍟ ⍟ ⍟ · · · · · · · · · ⍟ · · · · · ⍟ · · · · · · · · ⍟ · · │
│⍟ · ⍟ ⍟ ⍟ · · · · · · · · ⍟ ⍟ · · · · · · · · · · · · · · · · · │
│· · · ⍟ · · · · · · · · · · ⍟ · · · · · · · · · · · · · · · · · │
│· · ⍟ ⍟ ⍟ · · · · · · · · · · ⍟ · · · · · · · · · · · · · · · · │
│· ⍟ ⍟ ⍟ ⍟ · · · · · · · · ⍟ ⍟ · · · · · · · · · · · · · · · · · │
│· ⍟ ⍟ ⍟ ⍟ · · · · · · · · · ⍟ · · · · ⍟ · · · · · · · · · · ⍟ · │
│· · · ⍟ · · · · · · · · · ⍟ ⍟ · · · · · · · · · · · · · · · · · │
│⍟ ⍟ · ⍟ ⍟ · · · · · · · · · · ⍟ · · · · · · · · · · · · · · · · │
│· · ⍟ ⍟ · · · · · · · · · ⍟ ⍟ · · · · · · · · · · · · · · · · · │
│· · ⍟ ⍟ ⍟ · · · · · · · · · ⍟ · · · · · · · · · · · · · · · · · │
│· ⍟ · ⍟ ⍟ · · · · · · · · · · ⍟ · · · · · · · · · · · · · · · · │
│· · ⍟ ⍟ ⍟ · · · · · · · · ⍟ ⍟ · · · ⍟ · · · · · · · · · · · · ⍟ │
│· · ⍟ ⍟ ⍟ · · · · · · · · · ⍟ · · · · · · · · · · · · · · · · · │
│· · ⍟ ⍟ ⍟ · · · · · · · · ⍟ ⍟ · · · · · · · · · · · · · · · · · │
│⍟ ⍟ ⍟ ⍟ ⍟ · · · · · · · · · · · · · · · · · · · · · · · · · · · │
│⍟ · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · │
│· · · · · · · · · · · · · ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ │
│· · · ⍟ · · · · · · · · · · · · · · · · · · · · · · · · · · · · │
│· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · │
│⍟ ⍟ · · · ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ · ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ │
│· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · │
└────────────────────────────────────────────────────────────────┘
⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝
∆' 00 jrp 00 ' ⍝ Tom Kilburn's Nightmare.
∆' 01 ldn 25 ' ⍝ Frank Hurley
∆' 02 sto 01 ' ⍝ http://www.computer50.org/mark1/prog98/prizewinners.html
∆' 03 cmp '
∆' 04 sub 23 '
∆' 05 sub 01 '
∆' 06 sub 01 '
∆' 07 sub 01 '
∆' 08 sto 25 '
∆' 09 ldn 21 '
∆' 10 cmp '
∆' 11 sub 22 '
∆' 12 sub 23 '
∆' 13 sto 21 '
∆' 14 sub 05 '
∆' 15 sto 08 '
∆' 16 sub 00 '
∆' 17 sto 01 '
∆' 18 ldn 21 '
∆' 19 sto 21 '
∆' 20 jmp 24 '
∆' 21 6 '
∆' 22 7 '
∆' 23 2⊥''⍟''=⌽''⍟⍟⍟⍟⍟⍟⍟⍟⍟⍟⍟⍟⍟⍟⍟⍟⍟⍟⍟⍟⍟⍟⍟⍟⍟⍟⍟⍟⍟⍟⍟⍟'''
∆' 24 2⊥''⍟''=⌽''································'''
∆' 25 2⊥''⍟''=⌽''···············⍟⍟⍟⍟⍟······⍟·····'''
∆' 26 2⊥''⍟''=⌽''··············⍟·····⍟····⍟·⍟····'''
∆' 27 2⊥''⍟''=⌽''··············⍟···⍟·⍟·····⍟·····'''
∆' 28 2⊥''⍟''=⌽''·······⍟⍟⍟⍟⍟⍟·⍟·····⍟·····⍟⍟⍟···'''
∆' 29 2⊥''⍟''=⌽''······⍟········⍟⍟⍟⍟⍟······⍟·····'''
∆' 30 2⊥''⍟''=⌽''···⍟⍟⍟⍟··⍟⍟⍟⍟···⍟·········⍟·····'''
∆' 31 2⊥''⍟''=⌽''··⍟⍟⍟⍟⍟⍟⍟⍟⍟⍟⍟⍟⍟⍟⍟⍟⍟······⍟·⍟····'''
tkn ⍙ ← ⍙ ⍬ ⍝ Tom Kilburn's Nightmare - Frank Hurley.
crt asm tkn
┌────────────────────────────────────────────────────────────────┐
│· · · · · · · · · · · · · ⍟ · · · · · · · · · · · · · · · · · · │
│⍟ · · ⍟ ⍟ · · · · · · · · · ⍟ · · · · · · · · · · · · · · · · · │
│⍟ · · · · · · · · · · · · ⍟ ⍟ · · · · · · · · · · · · · · · · · │
│· · · · · · · · · · · · · · ⍟ ⍟ · · · · · · · · · · · · · · · · │
│⍟ ⍟ ⍟ · ⍟ · · · · · · · · · · ⍟ · · · · · · · · · · · · · · · · │
│⍟ · · · · · · · · · · · · · · ⍟ · · · · · · · · · · · · · · · · │
│⍟ · · · · · · · · · · · · · · ⍟ · · · · · · · · · · · · · · · · │
│⍟ · · · · · · · · · · · · · · ⍟ · · · · · · · · · · · · · · · · │
│⍟ · · ⍟ ⍟ · · · · · · · · ⍟ ⍟ · · · · · · · · · · · · · · · · · │
│⍟ · ⍟ · ⍟ · · · · · · · · · ⍟ · · · · · · · · · · · · · · · · · │
│· · · · · · · · · · · · · · ⍟ ⍟ · · · · · · · · · · · · · · · · │
│· ⍟ ⍟ · ⍟ · · · · · · · · · · ⍟ · · · · · · · · · · · · · · · · │
│⍟ ⍟ ⍟ · ⍟ · · · · · · · · · · ⍟ · · · · · · · · · · · · · · · · │
│⍟ · ⍟ · ⍟ · · · · · · · · ⍟ ⍟ · · · · · · · · · · · · · · · · · │
│⍟ · ⍟ · · · · · · · · · · · · ⍟ · · · · · · · · · · · · · · · · │
│· · · ⍟ · · · · · · · · · ⍟ ⍟ · · · · · · · · · · · · · · · · · │
│· · · · · · · · · · · · · · · ⍟ · · · · · · · · · · · · · · · · │
│⍟ · · · · · · · · · · · · ⍟ ⍟ · · · · · · · · · · · · · · · · · │
│⍟ · ⍟ · ⍟ · · · · · · · · · ⍟ · · · · · · · · · · · · · · · · · │
│⍟ · ⍟ · ⍟ · · · · · · · · ⍟ ⍟ · · · · · · · · · · · · · · · · · │
│· · · ⍟ ⍟ · · · · · · · · · · · · · · · · · · · · · · · · · · · │
│· ⍟ ⍟ · · · · · · · · · · · · · · · · · · · · · · · · · · · · · │
│⍟ ⍟ ⍟ · · · · · · · · · · · · · · · · · · · · · · · · · · · · · │
│⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ │
│· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · │
│· · · · · · · · · · · · · · · ⍟ ⍟ ⍟ ⍟ ⍟ · · · · · · ⍟ · · · · · │
│· · · · · · · · · · · · · · ⍟ · · · · · ⍟ · · · · ⍟ · ⍟ · · · · │
│· · · · · · · · · · · · · · ⍟ · · · ⍟ · ⍟ · · · · · ⍟ · · · · · │
│· · · · · · · ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ · ⍟ · · · · · ⍟ · · · · · ⍟ ⍟ ⍟ · · · │
│· · · · · · ⍟ · · · · · · · · ⍟ ⍟ ⍟ ⍟ ⍟ · · · · · · ⍟ · · · · · │
│· · · ⍟ ⍟ ⍟ ⍟ · · ⍟ ⍟ ⍟ ⍟ · · · ⍟ · · · · · · · · · ⍟ · · · · · │
│· · ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ · · · · · · ⍟ · ⍟ · · · · │
└────────────────────────────────────────────────────────────────┘
⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝
∆' 00 0 ⍝ jmp 00 ' ⍝ Noodle Timer - Yasuaki Watanabe
∆' 01 ¯47168 ⍝ ldn 00 '
∆' 02 62939420 ⍝ sto 28 '
∆' 03 62931228 ⍝ ldn 28 '
∆' 04 62947613 ⍝ sub 29 '
∆' 05 267411456 ⍝ sto 00 '
∆' 06 62931871 ⍝ ldn 31 '
∆' 07 62947611 ⍝ sub 27 '
∆' 08 62963968 ⍝ cmp '
∆' 09 1073480602 ⍝ jmp 26 '
∆' 10 62930949 ⍝ ldn 05 '
∆' 11 62948443 ⍝ sub 27 '
∆' 12 62940892 ⍝ sto 28 '
∆' 13 267404636 ⍝ ldn 28 '
∆' 14 62940229 ⍝ sto 05 '
∆' 15 62930945 ⍝ ldn 01 '
∆' 16 62949339 ⍝ sub 27 '
∆' 17 1073505244 ⍝ sto 28 '
∆' 18 62932956 ⍝ ldn 28 '
∆' 19 62939137 ⍝ sto 01 '
∆' 20 62948318 ⍝ sub 30 '
∆' 21 267437120 ⍝ cmp '
∆' 22 62972864 ⍝ hlt '
∆' 23 62915136 ⍝ jmp 00 '
∆' 24 62915648 ⍝ jmp 00 '
∆' 25 ¯65536 ⍝ jmp 00 '
∆' 26 6 ⍝ jmp 06 '
∆' 27 ¯1 ⍝ hlt '
∆' 28 47168 ⍝ sub 00 '
∆' 29 ¯62914560 ⍝ jmp 00 '
∆' 30 ¯62961698 ⍝ ldn 30 '
∆' 31 ¯2147481904 ⍝ jmp 16 '
noodle ⍙ ← ⍙ ⍬ ⍝ Noodle Timer - Yasuaki Watanabe
⍝ http://www.computer50.org/mark1/prog98/prizewinners.html
asm noodle
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 1 1 1 1 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 1 1 1 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0
0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0
1 0 1 1 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0
1 1 1 1 1 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0
1 1 0 1 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0
0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0
1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0
1 1 0 1 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0
0 0 1 1 1 0 1 1 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0
0 0 1 1 1 0 1 0 1 0 1 0 0 0 1 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0
1 0 1 0 0 0 1 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0
1 1 0 1 1 0 1 1 1 1 1 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0
0 0 1 1 1 0 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0
0 0 1 1 1 0 1 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0
0 1 1 1 1 0 1 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0
0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 1 1
0 1 1 1 1 0 1 1 1 1 1 0 0 0 1 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1
0 0 0 0 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝
∆' 00 jmp 00 ' ⍝ Division - Brendan Campbell
∆' 01 ldn 29 ' ⍝ http://www.computer50.org/mark1/prog98/prizewinners.html
∆' 02 sto 27 '
∆' 03 ldn 28 '
∆' 04 sto 26 '
∆' 05 ldn 26 '
∆' 06 sub 29 '
∆' 07 sto 28 '
∆' 08 cmp '
∆' 09 jmp 25 '
∆' 10 sub 27 '
∆' 11 sto 31 '
∆' 12 hlt '
∆' 13 ldn 30 '
∆' 14 sub 24 '
∆' 15 sto 30 '
∆' 16 ldn 30 '
∆' 17 sto 30 '
∆' 18 jmp 23 '
∆' 19 0 '
∆' 20 0 '
∆' 21 0 '
∆' 22 0 '
∆' 23 2 '
∆' 24 1 '
∆' 25 12 '
∆' 26 0 '
∆' 27 0 '
∆' 28 666 ' ⍝ dividend
∆' 29 42 ' ⍝ divisor
∆' 30 0 ' ⍝ quotient (result)
∆' 31 0 ' ⍝ remainder (result)
div ⍙ ← ⍙ ⍬ ⍝ Division - Brendan Campbell
dis baby asm div
00 0 ⍝ jmp 00
01 16413 ⍝ ldn 29
02 24603 ⍝ sto 27
03 16412 ⍝ ldn 28
04 24602 ⍝ sto 26
05 16410 ⍝ ldn 26
06 32797 ⍝ sub 29
07 24604 ⍝ sto 28
08 49152 ⍝ cmp
09 25 ⍝ jmp 25
10 32795 ⍝ sub 27
11 24607 ⍝ sto 31
12 57344 ⍝ hlt
13 16414 ⍝ ldn 30
14 32792 ⍝ sub 24
15 24606 ⍝ sto 30
16 16414 ⍝ ldn 30
17 24606 ⍝ sto 30
18 23 ⍝ jmp 23
19 0 ⍝ jmp 00
20 0 ⍝ jmp 00
21 0 ⍝ jmp 00
22 0 ⍝ jmp 00
23 2 ⍝ jmp 02
24 1 ⍝ jmp 01
25 12 ⍝ jmp 12
26 ¯36 ⍝ hlt
27 ¯42 ⍝ hlt
28 ¯6 ⍝ hlt
29 42 ⍝ jmp 10
30 15 ⍝ jmp 15
31 36 ⍝ jmp 04
⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝
∆' 00 0 ⍝ jmp 00 ' ⍝ Medieval Analog Clock - John Deane
∆' 01 16793627 ⍝ ldn 27 '
∆' 02 41975836 ⍝ sub 28 '
∆' 03 71352320 ⍝ cmp '
∆' 04 153092124 ⍝ jmp 28 '
∆' 05 1343504415 ⍝ ldn 31 '
∆' 06 ¯1593155584 ⍝ sto 00 '
∆' 07 ¯447856640 ⍝ ldn 00 '
∆' 08 ¯1521844224 ⍝ sub 00 '
∆' 09 ¯1521852385 ⍝ sto 31 '
∆' 10 ¯1521827840 ⍝ cmp '
∆' 11 ¯122852 ⍝ jrp 28 '
∆' 12 ¯2147352547 ⍝ jmp 29 '
∆' 13 ¯2088615908 ⍝ ldn 28 '
∆' 14 ¯2076024801 ⍝ sto 31 '
∆' 15 ¯2011021282 ⍝ ldn 30 '
∆' 16 ¯1877843968 ⍝ sto 00 '
∆' 17 ¯266452992 ⍝ ldn 00 '
∆' 18 32768 ⍝ sub 00 '
∆' 19 ¯473538530 ⍝ sto 30 '
∆' 20 1430552602 ⍝ sub 26 '
∆' 21 1229242368 ⍝ cmp '
∆' 22 1229193245 ⍝ jmp 29 '
∆' 23 ¯482852836 ⍝ ldn 28 '
∆' 24 24606 ⍝ sto 30 '
∆' 25 29 ⍝ jmp 29 '
∆' 26 ¯2048 '
∆' 27 ¯26250 '
∆' 28 1 '
∆' 29 0 '
∆' 30 ¯1 '
∆' 31 ¯1 '
clock ⍙ ← ⍙ ⍬ ⍝ Medieval Analog Clock - John Deane
⍝ http://www.computer50.org/mark1/prog98/prizewinners.html
crt asm clock
┌────────────────────────────────────────────────────────────────┐
│· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · │
│⍟ ⍟ · ⍟ ⍟ · · · · · · · · · ⍟ · · · · · · · · · ⍟ · · · · · · · │
│· · ⍟ ⍟ ⍟ · · · · · · · · · · ⍟ · · · · · · · ⍟ · ⍟ · · · · · · │
│· · · · · · · · · · · · · · ⍟ ⍟ · · · · · · ⍟ · · · ⍟ · · · · · │
│· · ⍟ ⍟ ⍟ · · · · · · · · · · · · · · · · ⍟ · · ⍟ · · ⍟ · · · · │
│⍟ ⍟ ⍟ ⍟ ⍟ · · · · · · · · · ⍟ · · · ⍟ · ⍟ · · · · · · · ⍟ · ⍟ · │
│· · · · · · · · · · · · · ⍟ ⍟ · · ⍟ · ⍟ · · · · ⍟ · · · · ⍟ · ⍟ │
│· · · · · · · · · · · · · · ⍟ · · ⍟ ⍟ ⍟ · · ⍟ · ⍟ · ⍟ · · ⍟ ⍟ ⍟ │
│· · · · · · · · · · · · · · · ⍟ · ⍟ · ⍟ · · ⍟ · ⍟ · ⍟ · · ⍟ · ⍟ │
│⍟ ⍟ ⍟ ⍟ ⍟ · · · · · · · · ⍟ ⍟ · · ⍟ · ⍟ · · ⍟ · ⍟ · ⍟ · · ⍟ · ⍟ │
│· · · · · · · · · · · · · · ⍟ ⍟ · ⍟ · ⍟ · · ⍟ · ⍟ · ⍟ · · ⍟ · ⍟ │
│· · ⍟ ⍟ ⍟ · · · · · · · · ⍟ · · · ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ │
│⍟ · ⍟ ⍟ ⍟ · · · · · · · · · · · · ⍟ · · · · · · · · · · · · · ⍟ │
│· · ⍟ ⍟ ⍟ · · · · · · · · · ⍟ · · ⍟ · · · · · ⍟ ⍟ ⍟ · · · · · ⍟ │
│⍟ ⍟ ⍟ ⍟ ⍟ · · · · · · · · ⍟ ⍟ · · ⍟ · · · · ⍟ · · · ⍟ · · · · ⍟ │
│· ⍟ ⍟ ⍟ ⍟ · · · · · · · · · ⍟ · · ⍟ · · · ⍟ · · · · · ⍟ · · · ⍟ │
│· · · · · · · · · · · · · ⍟ ⍟ · · ⍟ · · ⍟ · · · · · · · ⍟ · · ⍟ │
│· · · · · · · · · · · · · · ⍟ · · ⍟ ⍟ ⍟ ⍟ · · · · · · · ⍟ ⍟ ⍟ ⍟ │
│· · · · · · · · · · · · · · · ⍟ · · · · · · · · · · · · · · · · │
│· ⍟ ⍟ ⍟ ⍟ · · · · · · · · ⍟ ⍟ · · ⍟ ⍟ · · · ⍟ ⍟ ⍟ ⍟ · · · ⍟ ⍟ ⍟ │
│· ⍟ · ⍟ ⍟ · · · · · · · · · · ⍟ · · ⍟ · · · ⍟ · ⍟ · ⍟ · ⍟ · ⍟ · │
│· · · · · · · · · · · · · · ⍟ ⍟ · · ⍟ · · · ⍟ · ⍟ · · ⍟ · · ⍟ · │
│⍟ · ⍟ ⍟ ⍟ · · · · · · · · · · · · · ⍟ · · · ⍟ · ⍟ · · ⍟ · · ⍟ · │
│· · ⍟ ⍟ ⍟ · · · · · · · · · ⍟ · · · · ⍟ ⍟ ⍟ · · ⍟ ⍟ · · · ⍟ ⍟ ⍟ │
│· ⍟ ⍟ ⍟ ⍟ · · · · · · · · ⍟ ⍟ · · · · · · · · · · · · · · · · · │
│⍟ · ⍟ ⍟ ⍟ · · · · · · · · · · · · · · · · · · · · · · · · · · · │
│· · · · · · · · · · · ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ │
│· ⍟ ⍟ · ⍟ ⍟ ⍟ · ⍟ · · ⍟ ⍟ · · ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ │
│⍟ · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · │
│· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · │
│⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ │
│⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ ⍟ │
└────────────────────────────────────────────────────────────────┘
⍝∇ baby
Back to: code
Back to: Workspaces