program prsegfile(inseg,input,output); imports code from code; type chrblock=packed array[0..511] of char; var inseg:segfiletype; i,j,k,block:integer; byte:chrblock; ch:char; objname,outname:fnstring; { *auto-} begin writeln('enter name of file to dump'); reset(input); readln(objname); writeln('enter name of dump file'); readln(outname); reset(inseg,objname); rewrite(output,outname); write('modulename is ',inseg^.modulename); writeln(' filename is ',inseg^.filename); write('segblkfiller is ',inseg^.segblkfiller); writeln(' qversion is ',inseg^.qversion); write('numseg is ',inseg^.numseg); writeln(' import block is ',inseg^.importblock); write('gdbsize is ',inseg^.gdbsize); block:=0; while not eof(inseg) do begin writeln; write(' block '); write(block:2); block := block + 1; writeln; byte:=recast(inseg^.block,chrblock); for i:=0 to 63 do begin k:=i*8; write('('); write(k:3); write(') '); for j:=0 to 7 do begin write(ord(byte[k+j]):3); write(' '); end; write(' ['); {now put out ascii equivelant} for j:=0 to 7 do begin case byte[k+j] of 'a'..'z','A'..'Z','0'..'9': write(byte[k+j]); otherwise: write('.'); end; end; writeln(']'); end; get(inseg); end; close(output); end.