⍝ 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