; Application Note AN3101-10: S/Mux receiver for ADAT optical protocol ; By Shultz Wang ; Version 1.0 - Oct 16 2003 ; First quarter of 48kHz wordclock continued cm 1.0 $400 ; Read $Ch0L0 andc $0400000 ; AND out bit 22 of $Ch0L0 c !z $0100000 ; Set Out0 bit if not zero xcm 1.0 $404 ; B=Out0, read $Ch1L0 andc $0400000 ; AND out bit 22 of $Ch1L0 c !z $0200000 ; Set Out1 bit if not zero cab 1.0 ; Combine bits sca 1.0 $423 ; Write Out1 and Out0 cm 1.0 $400 andc $0200000 ; AND out bit 21 c !z $0100000 xcm 1.0 $404 andc $0200000 ; AND out bit 21 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $400 andc $0100000 ; AND out bit 20 c !z $0100000 xcm 1.0 $404 andc $0100000 ; AND out bit 20 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $400 andc $0080000 ; AND out bit 19 c !z $0100000 xcm 1.0 $404 andc $0080000 ; AND out bit 19 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $400 andc $0040000 ; AND out bit 18 c !z $0100000 xcm 1.0 $404 andc $0040000 ; AND out bit 18 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $400 andc $0020000 ; AND out bit 17 c !z $0100000 xcm 1.0 $404 andc $0020000 ; AND out bit 17 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $400 andc $0010000 ; AND out bit 16 c !z $0100000 xcm 1.0 $404 andc $0010000 ; AND out bit 16 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $400 andc $0008000 ; AND out bit 15 c !z $0100000 xcm 1.0 $404 andc $0008000 ; AND out bit 15 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $400 andc $0004000 ; AND out bit 14 c !z $0100000 xcm 1.0 $404 andc $0004000 ; AND out bit 14 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $400 andc $0002000 ; AND out bit 13 c !z $0100000 xcm 1.0 $404 andc $0002000 ; AND out bit 13 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $400 andc $0001000 ; AND out bit 12 c !z $0100000 xcm 1.0 $404 andc $0001000 ; AND out bit 12 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $400 andc $0000800 ; AND out bit 11 c !z $0100000 xcm 1.0 $404 andc $0000800 ; AND out bit 11 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $400 andc $0000400 ; AND out bit 10 c !z $0100000 xcm 1.0 $404 andc $0000400 ; AND out bit 10 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $400 andc $0000200 ; AND out bit 9 c !z $0100000 xcm 1.0 $404 andc $0000200 ; AND out bit 9 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $400 andc $0000100 ; AND out bit 8 c !z $0100000 xcm 1.0 $404 andc $0000100 ; AND out bit 8 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $400 andc $0000080 ; AND out bit 7 c !z $0100000 xcm 1.0 $404 andc $0000080 ; AND out bit 7 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $400 andc $0000040 ; AND out bit 6 c !z $0100000 xcm 1.0 $404 andc $0000040 ; AND out bit 6 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $400 andc $0000020 ; AND out bit 5 c !z $0100000 xcm 1.0 $404 andc $0000020 ; AND out bit 5 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $400 andc $0000010 ; AND out bit 4 c !z $0100000 xcm 1.0 $404 andc $0000010 ; AND out bit 4 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $400 andc $0000008 ; AND out bit 3 c !z $0100000 xcm 1.0 $404 andc $0000008 ; AND out bit 3 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $400 andc $0000004 ; AND out bit 2 c !z $0100000 xcm 1.0 $404 andc $0000004 ; AND out bit 2 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $400 andc $0000002 ; AND out bit 1 c !z $0100000 xcm 1.0 $404 andc $0000002 ; AND out bit 1 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $400 andc $0000001 ; AND out bit 0 c !z $0100000 xcm 1.0 $404 andc $0000001 ; AND out bit 0 c !z $0200000 cab 1.0 sca 1.0 $423 cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP sca 1.0 $423 ; Return output pins to 0 cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP ; Second quarter of 48kHz wordclock cm 1.0 $402 ; Read $Ch0R0 andc $0800000 ; AND out bit 23 of $Ch0R0 c !z $0100000 ; Set Out0 bit if not zero xcm 1.0 $406 ; B=Out0, read $Ch1R0 andc $0800000 ; AND out bit 23 of $Ch1R0 c !z $0200000 ; Set Out1 bit if not zero cab 1.0 ; Combine bits sca 1.0 $423 ; Write Out1 and Out0 cm 1.0 $402 andc $0400000 ; AND out bit 22 c !z $0100000 xcm 1.0 $406 andc $0400000 ; AND out bit 22 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $402 andc $0200000 ; AND out bit 21 c !z $0100000 xcm 1.0 $406 andc $0200000 ; AND out bit 21 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $402 andc $0100000 ; AND out bit 20 c !z $0100000 xcm 1.0 $406 andc $0100000 ; AND out bit 20 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $402 andc $0080000 ; AND out bit 19 c !z $0100000 xcm 1.0 $406 andc $0080000 ; AND out bit 19 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $402 andc $0040000 ; AND out bit 18 c !z $0100000 xcm 1.0 $406 andc $0040000 ; AND out bit 18 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $402 andc $0020000 ; AND out bit 17 c !z $0100000 xcm 1.0 $406 andc $0020000 ; AND out bit 17 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $402 andc $0010000 ; AND out bit 16 c !z $0100000 xcm 1.0 $406 andc $0010000 ; AND out bit 16 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $402 andc $0008000 ; AND out bit 15 c !z $0100000 xcm 1.0 $406 andc $0008000 ; AND out bit 15 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $402 andc $0004000 ; AND out bit 14 c !z $0100000 xcm 1.0 $406 andc $0004000 ; AND out bit 14 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $402 andc $0002000 ; AND out bit 13 c !z $0100000 xcm 1.0 $406 andc $0002000 ; AND out bit 13 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $402 andc $0001000 ; AND out bit 12 c !z $0100000 xcm 1.0 $406 andc $0001000 ; AND out bit 12 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $402 andc $0000800 ; AND out bit 11 c !z $0100000 xcm 1.0 $406 andc $0000800 ; AND out bit 11 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $402 andc $0000400 ; AND out bit 10 c !z $0100000 xcm 1.0 $406 andc $0000400 ; AND out bit 10 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $402 andc $0000200 ; AND out bit 9 c !z $0100000 xcm 1.0 $406 andc $0000200 ; AND out bit 9 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $402 andc $0000100 ; AND out bit 8 c !z $0100000 xcm 1.0 $406 andc $0000100 ; AND out bit 8 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $402 andc $0000080 ; AND out bit 7 c !z $0100000 xcm 1.0 $406 andc $0000080 ; AND out bit 7 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $402 andc $0000040 ; AND out bit 6 c !z $0100000 xcm 1.0 $406 andc $0000040 ; AND out bit 6 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $402 andc $0000020 ; AND out bit 5 c !z $0100000 xcm 1.0 $406 andc $0000020 ; AND out bit 5 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $402 andc $0000010 ; AND out bit 4 c !z $0100000 xcm 1.0 $406 andc $0000010 ; AND out bit 4 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $402 andc $0000008 ; AND out bit 3 c !z $0100000 xcm 1.0 $406 andc $0000008 ; AND out bit 3 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $402 andc $0000004 ; AND out bit 2 c !z $0100000 xcm 1.0 $406 andc $0000004 ; AND out bit 2 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $402 andc $0000002 ; AND out bit 1 c !z $0100000 xcm 1.0 $406 andc $0000002 ; AND out bit 1 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $402 andc $0000001 ; AND out bit 0 c !z $0100000 xcm 1.0 $406 andc $0000001 ; AND out bit 0 c !z $0200000 cab 1.0 sca 1.0 $423 cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP sca 1.0 $423 ; Return output pins to 0 cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP ; Third quarter of 48kHz wordclock cm 1.0 $401 ; Read $Ch0L1 andc $0800000 ; AND out bit 23 of $Ch0L1 c !z $0100000 ; Set Out0 bit if not zero xcm 1.0 $405 ; B=Out0, read $Ch1L1 andc $0800000 ; AND out bit 23 of $Ch1L1 c !z $0200000 ; Set Out1 bit if not zero cab 1.0 ; Combine bits sca 1.0 $423 ; Write Out1 and Out0 cm 1.0 $401 andc $0400000 ; AND out bit 22 c !z $0100000 xcm 1.0 $405 andc $0400000 ; AND out bit 22 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $401 andc $0200000 ; AND out bit 21 c !z $0100000 xcm 1.0 $405 andc $0200000 ; AND out bit 21 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $401 andc $0100000 ; AND out bit 20 c !z $0100000 xcm 1.0 $405 andc $0100000 ; AND out bit 20 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $401 andc $0080000 ; AND out bit 19 c !z $0100000 xcm 1.0 $405 andc $0080000 ; AND out bit 19 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $401 andc $0040000 ; AND out bit 18 c !z $0100000 xcm 1.0 $405 andc $0040000 ; AND out bit 18 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $401 andc $0020000 ; AND out bit 17 c !z $0100000 xcm 1.0 $405 andc $0020000 ; AND out bit 17 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $401 andc $0010000 ; AND out bit 16 c !z $0100000 xcm 1.0 $405 andc $0010000 ; AND out bit 16 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $401 andc $0008000 ; AND out bit 15 c !z $0100000 xcm 1.0 $405 andc $0008000 ; AND out bit 15 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $401 andc $0004000 ; AND out bit 14 c !z $0100000 xcm 1.0 $405 andc $0004000 ; AND out bit 14 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $401 andc $0002000 ; AND out bit 13 c !z $0100000 xcm 1.0 $405 andc $0002000 ; AND out bit 13 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $401 andc $0001000 ; AND out bit 12 c !z $0100000 xcm 1.0 $405 andc $0001000 ; AND out bit 12 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $401 andc $0000800 ; AND out bit 11 c !z $0100000 xcm 1.0 $405 andc $0000800 ; AND out bit 11 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $401 andc $0000400 ; AND out bit 10 c !z $0100000 xcm 1.0 $405 andc $0000400 ; AND out bit 10 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $401 andc $0000200 ; AND out bit 9 c !z $0100000 xcm 1.0 $405 andc $0000200 ; AND out bit 9 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $401 andc $0000100 ; AND out bit 8 c !z $0100000 xcm 1.0 $405 andc $0000100 ; AND out bit 8 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $401 andc $0000080 ; AND out bit 7 c !z $0100000 xcm 1.0 $405 andc $0000080 ; AND out bit 7 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $401 andc $0000040 ; AND out bit 6 c !z $0100000 xcm 1.0 $405 andc $0000040 ; AND out bit 6 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $401 andc $0000020 ; AND out bit 5 c !z $0100000 xcm 1.0 $405 andc $0000020 ; AND out bit 5 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $401 andc $0000010 ; AND out bit 4 c !z $0100000 xcm 1.0 $405 andc $0000010 ; AND out bit 4 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $401 andc $0000008 ; AND out bit 3 c !z $0100000 xcm 1.0 $405 andc $0000008 ; AND out bit 3 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $401 andc $0000004 ; AND out bit 2 c !z $0100000 xcm 1.0 $405 andc $0000004 ; AND out bit 2 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $401 andc $0000002 ; AND out bit 1 c !z $0100000 xcm 1.0 $405 andc $0000002 ; AND out bit 1 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $401 andc $0000001 ; AND out bit 0 c !z $0100000 xcm 1.0 $405 andc $0000001 ; AND out bit 0 c !z $0200000 cab 1.0 sca 1.0 $423 cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP sca 1.0 $423 ; Return output pins to 0 cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP ; Fourth quarter of 48kHz wordclock cm 1.0 $403 ; Read $Ch0R1 andc $0800000 ; AND out bit 23 of $Ch0R1 c !z $0100000 ; Set Out0 bit if not zero xcm 1.0 $407 ; B=Out0, read $Ch1R1 andc $0800000 ; AND out bit 23 of $Ch1R1 c !z $0200000 ; Set Out1 bit if not zero cab 1.0 ; Combine bits sca 1.0 $423 ; Write Out1 and Out0 cm 1.0 $403 andc $0400000 ; AND out bit 22 c !z $0100000 xcm 1.0 $407 andc $0400000 ; AND out bit 22 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $403 andc $0200000 ; AND out bit 21 c !z $0100000 xcm 1.0 $407 andc $0200000 ; AND out bit 21 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $403 andc $0100000 ; AND out bit 20 c !z $0100000 xcm 1.0 $407 andc $0100000 ; AND out bit 20 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $403 andc $0080000 ; AND out bit 19 c !z $0100000 xcm 1.0 $407 andc $0080000 ; AND out bit 19 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $403 andc $0040000 ; AND out bit 18 c !z $0100000 xcm 1.0 $407 andc $0040000 ; AND out bit 18 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $403 andc $0020000 ; AND out bit 17 c !z $0100000 xcm 1.0 $407 andc $0020000 ; AND out bit 17 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $403 andc $0010000 ; AND out bit 16 c !z $0100000 xcm 1.0 $407 andc $0010000 ; AND out bit 16 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $403 andc $0008000 ; AND out bit 15 c !z $0100000 xcm 1.0 $407 andc $0008000 ; AND out bit 15 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $403 andc $0004000 ; AND out bit 14 c !z $0100000 xcm 1.0 $407 andc $0004000 ; AND out bit 14 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $403 andc $0002000 ; AND out bit 13 c !z $0100000 xcm 1.0 $407 andc $0002000 ; AND out bit 13 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $403 andc $0001000 ; AND out bit 12 c !z $0100000 xcm 1.0 $407 andc $0001000 ; AND out bit 12 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $403 andc $0000800 ; AND out bit 11 c !z $0100000 xcm 1.0 $407 andc $0000800 ; AND out bit 11 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $403 andc $0000400 ; AND out bit 10 c !z $0100000 xcm 1.0 $407 andc $0000400 ; AND out bit 10 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $403 andc $0000200 ; AND out bit 9 c !z $0100000 xcm 1.0 $407 andc $0000200 ; AND out bit 9 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $403 andc $0000100 ; AND out bit 8 c !z $0100000 xcm 1.0 $407 andc $0000100 ; AND out bit 8 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $403 andc $0000080 ; AND out bit 7 c !z $0100000 xcm 1.0 $407 andc $0000080 ; AND out bit 7 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $403 andc $0000040 ; AND out bit 6 c !z $0100000 xcm 1.0 $407 andc $0000040 ; AND out bit 6 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $403 andc $0000020 ; AND out bit 5 c !z $0100000 xcm 1.0 $407 andc $0000020 ; AND out bit 5 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $403 andc $0000010 ; AND out bit 4 c !z $0100000 xcm 1.0 $407 andc $0000010 ; AND out bit 4 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $403 andc $0000008 ; AND out bit 3 c !z $0100000 xcm 1.0 $407 andc $0000008 ; AND out bit 3 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $403 andc $0000004 ; AND out bit 2 c !z $0100000 xcm 1.0 $407 andc $0000004 ; AND out bit 2 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $403 andc $0000002 ; AND out bit 1 c !z $0100000 xcm 1.0 $407 andc $0000002 ; AND out bit 1 c !z $0200000 cab 1.0 sca 1.0 $423 cm 1.0 $403 andc $0000001 ; AND out bit 0 c !z $0100000 xcm 1.0 $407 andc $0000001 ; AND out bit 0 c !z $0200000 cab 1.0 sca 1.0 $423 cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP sca 1.0 $423 ; Return output pins to 0 cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP cb 0.0 ; NOP ; Read Ch7-0 into registers cm 1.0 $410 sca 1.0 $400 cm 1.0 $411 sca 1.0 $401 cm 1.0 $412 sca 1.0 $402 cm 1.0 $413 sca 1.0 $403 cm 1.0 $414 sca 1.0 $404 cm 1.0 $415 sca 1.0 $405 cm 1.0 $416 sca 1.0 $406 cm 1.0 $417 sca 1.0 $407 ; First quarter of 48kHz wordclock cm 1.0 $400 ; Read $Ch0L0 andc $0800000 ; AND out bit 23 of $Ch0L0 c !z $0100000 ; Set Out0 bit if not zero xcm 1.0 $404 ; B=Out0, read $Ch1L0 andc $0800000 ; AND out bit 23 of $Ch1L0 c !z $0200000 ; Set Out1 bit if not zero cab 1.0 ; Combine bits sca 1.0 $423 ; Write Out1 and Out0