program rectest; type irec=record e2,e1:integer; e3:integer; e4:integer end; irecptr=^irec; crec=packed record b,a:char; c:char; d:char; d2,c2,b2,a2:char; end; crecptr=^crec; iptr=^integer; carr8=packed array[1..8] of char; carr8ptr=^carr8; var rec1:irecptr; rec2:crecptr; abcd:carr8ptr; one,two,three,four:iptr; ab,cd:iptr; off,ss,i:integer; begin rewrite(output,'rectest.dat'); new(rec1); rec1^.e1:=1; rec1^.e2:=2; rec1^.e3:=3; rec1^.e4:=4; loadadr(rec1^); storexpr(off); storexpr(ss); one:=makeptr(ss,off,iptr); writeln('one =',one^); two:=makeptr(ss,off+1,iptr); writeln('two =',two^); three:=makeptr(ss,off+2,iptr); writeln('three =',three^); four:=makeptr(ss,off+3,iptr); writeln('four =',four^); new(rec2); rec2^.a:='a'; rec2^.a2:='a'; rec2^.b:='b'; rec2^.b2:='b'; rec2^.c:='c'; rec2^.c2:='c'; rec2^.d:='d'; rec2^.d2:='d'; loadadr(rec2^); storexpr(off); storexpr(ss); for i:=0 to 1 do begin ab:=makeptr(ss,off+i*2,iptr); writeln('ab =',ab^:4:-16); cd:=makeptr(ss,off+1+i*2,iptr); writeln('cd =',cd^:4:-16); end; abcd:=makeptr(ss,off,carr8ptr); writeln(abcd^[1],abcd^[2],abcd^[3],abcd^[4]); writeln(abcd^[5],abcd^[6],abcd^[7],abcd^[8]); close(output); end. rectest.dat:- one = 1 two = 2 three = 3 four = 4 ab =6261 cd =6463 ab =6261 cd =6463 abcd abcd