46 lines
814 B
Swift
46 lines
814 B
Swift
import Foundation
|
|
|
|
/*
|
|
0 adv: A / 2^OP -> A
|
|
1 bxl: B xor LIT -> B
|
|
2 bst: OP % 8 -> B
|
|
3 jnz: jump LIT if A != 0
|
|
4 bxc: B xor C -> B (ignore op/lit)
|
|
5 out: OP % 8 -> screen
|
|
6 bdv: A / 2^OP -> B
|
|
7 cdv: A / 2^OP -> C
|
|
|
|
adv 1 // A = A / 2
|
|
out A // print(A % 8)
|
|
jnz 0 // loop while A != 0
|
|
|
|
|
|
2,4, 1,1, 7,5, 1,5, 4,0, 5,5, 0,3, 3,0
|
|
bst 4 // B = A % 8
|
|
bxl 1 // B = B xor 1
|
|
cdv 5 // C = A / 2^B
|
|
bxl 5 // B = B xor 5
|
|
bxc 0 // B = B xor C
|
|
out 5 // print(B % 8)
|
|
adv 3 // A = A / 2^3
|
|
jnz 0 // loop while A != 0
|
|
*/
|
|
|
|
// let prog = [2,4, 1,1, 7,5, 1,5, 4,0, 5,5, 0,3, 3,0]
|
|
//var A = 164279024971709
|
|
var A = 164279024971453
|
|
var B = 0
|
|
var C = 0
|
|
|
|
while true {
|
|
B = A % 8 // 1
|
|
B = B ^ 1 // 2
|
|
C = A >> B // 3
|
|
B = B ^ 5 // 4
|
|
B = B ^ C // 5
|
|
print(B % 8, terminator: ",")
|
|
A = A >> 3
|
|
if A == 0 { break }
|
|
}
|
|
|