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.