; Pointers: variables that hold an address PROC Swap(BYTE POINTER a, b) BYTE keep keep=a^ a^=b^ b^=keep RETURN PROC Main() BYTE x, y, i BYTE POINTER p BYTE ARRAY data=[5 8 13 21] x=10 y=20 p=@x ; p holds the address of x Print("p points at x: ") PrintBE(p^) p^=15 ; store through the pointer Print("x is now ") PrintBE(x) p=@y ; the same pointer, another variable Print("p points at y: ") PrintBE(p^) Swap(@x, @y) ; the routine changes our variables Print("After Swap: x=") PrintB(x) Print(" y=") PrintBE(y) p=data ; the name of an array is its address Print("The array: ") FOR i=1 TO 4 DO PrintB(p^) Put(' ) p==+1 ; move to the next byte OD PutE() RETURN