MODULE genid2; (*--------------------------------------------------------- File name: genid2.pm Author: AG Date: 5/31/05 Problem: This program generates the identity matrix 2x2 on two lines. Example of Execution 1: L1: 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 L2: 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 Cycles: 1 ID + 1 MOD + 1 shift. *) (*---------------------------------------------------------- CONFIGURATION ----------------------------------------------------------*) CONST MAXCELLS=1024; (* MAXCELLS cells in one line *) CONFIGURATION chain[0..(MAXCELLS - 1)]; CONNECTION left: chain [i] -> chain[(i-1) MOD MAXCELLS]; right: chain[i] -> chain[(i+1) MOD MAXCELLS]; (*---------------------------------------------------------- VARIABLES ----------------------------------------------------------*) VAR L1, L2: chain OF INTEGER; (*---------------------------------------------------------- MAIN ----------------------------------------------------------*) BEGIN (*Initialize data *) L1:= 0; (*generate L1*) IF ID(chain) MOD 2 = 1 THEN L1:= 1; END; (* IF *) (*generate L2 *) L2 := RECEIVE.left(L1); (*printing *) IF ID(chain) < 16 THEN WriteString("L1: "); WriteInt(L1, 2); WriteLn; WriteString("L2: "); WriteInt(L2, 2); WriteLn; END; (* IF *) END genid2.