rendered paste bodyN@TV Packet Decoder v1.0
I@TVPacket
O@X Y Pixel
# TV Packet Decoder
# Decodes packets for the TV.
# INPUTS:
# See OUTPUTS in tvpacketizer
# OUTPUTS:
# See INPUTS in tvpacketizer
# MODE OF OPERATION:
# Every time it receives a packet (every 125ms basically), it decodes whatever packet is
# on the line and "replays" it to the TV.
# It uses the internal clock to spread the writes out.
# PACKET FORMAT:
# See PACKET FORMAT in tvpacketizer
# END OF USER SERVICABLE PARTS.
###############################
# Initialize the clock.
interval(20)
# 0th mode.
Mode == 0 -> Mode += 1;
# Final frame.
clk() & Mode == 4 -> X = recv(Packet, 10);
clk() & Mode == 4 -> Y = recv(Packet, 11);
clk() & Mode == 4 -> Pixel = recv(Packet, 12);
clk() & Mode == 4 -> Mode = 0;
clk() & Mode == 4 -> interval(44);
# Third frame.
clk() & Mode == 3 -> X = recv(Packet, 7);
clk() & Mode == 3 -> Y = recv(Packet, 8);
clk() & Mode == 3 -> Pixel = recv(Packet, 9);
clk() & Mode == 3 -> Mode += 1
# Second frame.
clk() & Mode == 2 -> X = recv(Packet, 4);
clk() & Mode == 2 -> Y = recv(Packet, 5);
clk() & Mode == 2 -> Pixel = recv(Packet, 6);
clk() & Mode == 2 -> += 1
# First frame.
clk() & Mode == 1 -> X = recv(Packet, 1);
clk() & Mode == 1 -> Y = recv(Packet, 2);
clk() & Mode == 1 -> Pixel = recv(Packet, 3);
clk() & Mode == 1 -> Mode += 1;