program uinf(output); const userad=2359296;{str6} fsysad=2359343;{int} basefilead=2359420;{str31} scarcityad=2359484;{int} preemptad=2359488;{int} fundsad=2359504;{int} termad=2359564;{str63} secstocdad=-2134900564;{int} secsfrmnad=-2134900568;{int} datead=-2134900673;{int} timead=-2134900661;{int} usersad=-2134900648;{int} ocptypead=-2134900736;{int} tojdayad=-2134900680;{int} suplvnad=-2134900684;{int} rationad=-2134900604;{int} type str6=packed array[0..6]of char; str31=packed array[0..31]of char; str63=packed array[0..63]of char; var user:str6; basefile,supervisor:str31; term:str63; fsys,scarcity,preempt,funds:integer; users,secstocd,secsfrmn,ocptype,suplvn,ration:integer; procedure peek_str6(var s:str6;address:integer); type cheat=record dummyi:integer; case boolean of true:(addr:integer); false:(ptr:^str6) end; var peeker:cheat; begin peeker.addr:=address; s:=peeker.ptr^; end; procedure write_str6(s:str6); var i,j:integer; begin i:=ord(s[0]); for j:=1 to i do write(s[j]); end; procedure peek_str31(var s:str31;address:integer); type cheat=record dummyi:integer; case boolean of true:(addr:integer); false:(ptr:^str31) end; var peeker:cheat; begin peeker.addr:=address; s:=peeker.ptr^; end; procedure write_str31(s:str31); var i,j:integer; begin i:=ord(s[0]); for j:=1 to i do write(s[j]); end; procedure peek_str63(var s:str63;address:integer); type cheat=record dummyi:integer; case boolean of true:(addr:integer); false:(ptr:^str63) end; var peeker:cheat; begin peeker.addr:=address; s:=peeker.ptr^; end; procedure write_str63(s:str63); var i,j:integer; begin i:=ord(s[0]); for j:=1 to i do write(s[j]); end; procedure peek_integer(var s:integer;address:integer); type cheat=record dummyi:integer; case boolean of true:(addr:integer); false:(ptr:^integer) end; var peeker:cheat; begin peeker.addr:=address; s:=peeker.ptr^; end; begin peek_str6(user,userad); write('You are:'); write_str6(user); writeln; peek_str63(term,termad); write('You are at:'); write_str63(term); writeln; peek_str31(basefile,basefilead); write('Your basefile is '); write_str31(basefile); writeln; peek_integer(fsys,fsysad); write('You are on file system ',fsys:1); writeln; peek_integer(funds,fundsad); funds:=funds div 100; writeln('You have ',funds:4,' pence funds left'); peek_integer(users,usersad); writeln('There are ',users:1,' users at the moment'); peek_integer(secsfrmn,secsfrmnad); writeln('It is ',secsfrmn:1,' secs from midnight'); peek_integer(secstocd,secstocdad); if secstocd=0 then writeln('No closedown is planned at the moment') else writeln('Closedown in ',secstocd div 60,' minutes'); {peek_integer(suplvn,suplvnad);} {peek_str31(supervisor,suplvn);} {peek_str31(supervisor,suplvnad-1);} {supervisor[0]:=chr(4);} {write('EMAS Supervisor :');write_str31(supervisor);writeln} end.