All pastes #825595 Raw Edit

ccfreak2k

public text v1 · immutable
#825595 ·published 2007-12-20 18:12 UTC
rendered paste body
N@TV Packet Encoder v2.0
I@Clock X Y Pixel
O@TVPacket

# TV Packet Encoder
# Encodes packets for the TV.
# Based on TV Packet Encoder v1.0 NOT v1.1.

# INPUTS:
#  Clock: The clock pulse. This must ONLY change every 20 or 25ms (clock).
#  X: The X value for the screen.
#  Y: The Y value for the screen.
#  Pixel: The Pixel value for the screen.

# OUTPUTS:
#  TVPacket: Packets outbound to the satellite relay.

# MODUS OPERANDI:
#  On every clock (
#  On every fourth clock change, it gets X, Y, Pixel AND the previous three frames (from 9
#   variables) and puts them into a packet.

#  How do I do this? If blocks!

# PACKET FORMAT:
#  Packets contain four pixels/frames worth of data in the following format:
#	X1, Y1, P1, X2, Y2, P2, X3, Y3, P3, X, Y, Pixel

# END OF USER SERVICEABLE PARTS.
################################

# Do not change if the following values change.
~X -> end;
~Y -> end;
~Pixel -> end;

# Otherwise...continue!

# 0th stage.
Mode == 0 -> Mode = 1;

# Final stage!
~Clock & Mode == 6 ->
TVPacket = send(X1, Y1, P1, X2, Y2, P2, X3, Y3, P3, X4, Y4, P4, X5, Y5, P5, X, Y, Pixel);
~Clock & Mode == 6 -> Mode = 0;

# Fifth stage.
~Clock & Mode == 5 -> X5 = X;
~Clock & Mode == 5 -> Y5 = Y;
~Clock & Mode == 5 -> P5 = Pixel;
~Clock & Mode == 5 -> Mode = 6;

# Fourth stage.
~Clock & Mode == 4 -> X4 = X;
~Clock & Mode == 4 -> Y4 = Y;
~Clock & Mode == 4 -> P4 = Pixel;
~Clock & Mode == 4 -> Mode = 5;

# Third stage.
~Clock & Mode == 3 -> X3 = X;
~Clock & Mode == 3 -> Y3 = Y;
~Clock & Mode == 3 -> P3 = Pixel;
~Clock & Mode == 3 -> Mode = 4;

# Second stage.
~Clock & Mode == 2 -> X2 = X;
~Clock & Mode == 2 -> Y2 = Y;
~Clock & Mode == 2 -> P2 = Pixel;
~Clock & Mode == 2 -> Mode = 3;

# First stage.
~Clock & Mode == 1 -> X1 = X;
~Clock & Mode == 1 -> Y1 = Y;
~Clock & Mode == 1 -> P1 = Pixel;
~Clock & Mode == 1 -> Mode = 2;