program uView;
uses
ObjGfx40, ogFont, DOS, CRT, Strings, UbixFS, DiskDrv;
type
PUbixFSViewer = ^TUbixFSViewer;
TUbixFSViewer = object(TUbixFS)
private
device:PDiskDrive;
sb:PDiskSuperBlock;
public
constructor init(const filename:string);
procedure abort(const reason:string);
procedure run;
destructor done; virtual;
end;
constructor TUbixFSViewer.init;
begin
new(device, init(filename));
inherited init(device);
if not (screen^.ogCreate(1024, 768, OG_PIXFMT_32BPP)) then abort('Could not initialize graphics mode');
end; // TUbixFSViewer.init
procedure TUbixFSViewer.abort;
begin
dispose(screen, ogDone);
screen := NIL;
writeln(reason);
done();
halt;
end;
procedure TUbixFSViewer.Visualize;
begin
if (screen = NIL) then new(screen, ogInit);
end;
destructor TUbixFSViewer.done;
begin
inherited done;
if (device <> NIL) then dispose(device, done);
end; // TUbixFSViewer.done
var
viewer:PUbixFSViewer;
procedure usage;
begin
writeln('Usage:');
writeln;
writeln('uView [filename]');
halt;
end; // usage
begin
if (paramcount <> 1) then usage;
new(viewer, init(paramstr(1)));
viewer^.run;
dispose(viewer, done);
end.