- fures = (fu const inputs (addrs!(0 :: Index D3)) (fuss!(0 :: Index D3))) +> (
- (fu (+) inputs (addrs!(1 :: Index D3)) (fuss!(1 :: Index D3))) +> (
- (fu (-) inputs (addrs!(2 :: Index D3)) (fuss!(2 :: Index D3))) +> ( singleton
- (fu (*) inputs (addrs!(3 :: Index D3)) (fuss!(3 :: Index D3))))))
- (fuss', outputs) = unzip fures
- inputs = 0 +> (1 +> (input +> outputs))
- out = head outputs
-
-cpuState :: Vector D4 Word
-cpuState = copy 0
\ No newline at end of file
+ inputs = x +> (0 +> (1 +> s))
+ s' = (fu0 opc inputs (addrs!(0 :: Index D3))) +> (
+ (fu1 inputs (addrs!(1 :: Index D3))) +> (
+ (fu2 inputs (addrs!(2 :: Index D3))) +> (
+ (fu3 inputs (addrs!(3 :: Index D3))) +> empty)))
+ out = last s
+
+-- Some minor details
+cpuState :: Vector D4 (Signed D16)
+cpuState = copy 0
+
+type Index = RangedWord
+type Signed = SizedInt
+
+const a b = a
+xor = const
+shift = const