UNIT Port_Sys; INTERFACE USES Bios; VAR PortF:Boolean;{True, wenn Programm im Portfolio (Dosver<3) l„ft} PROCEDURE MakeSysWind;{Window ueber vollem bildschirm} PROCEDURE MakeErrWind(Text:String); PROCEDURE ClearErrWind; IMPLEMENTATION CONST Errxo=3; Erryo=3; Errxu=38; Erryu=7; VAR ErrBuff :ARRAY[ErrYo..ErrYu] OF ARRAY[ErrXo..ErrXu] OF Char; AltWind :WindowDef; PROCEDURE MakeErrWind(Text:String); VAR x,y :Byte; BEGIN AltWind:=ActWindow; MakeSysWind; For y:=ErrYo TO ErrYu DO For x:=Errxo To Errxu DO ErrBuff[y,x]:=Char(ScrGetChar(x,y)); Gotoxy(ErrXo,ErrYo); BWrite('Ú'+Copy('ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ',1,Errxu-Errxo-1)+'¿'); For y:=ErrYo+1 TO ErrYu-1 DO BEGIN Gotoxy(ErrXo,Y); BWrite('³'+Copy(' ',1,Errxu-Errxo-1)+'³'); END; Gotoxy(ErrXo,ErrYu); BWrite('À'+Copy('ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ',1,Errxu-Errxo-1)+'Ù'); Gotoxy((ErrXO+ErrXu-Length(Text)+1) DIV 2,Erryo); BWrite(Text); Window(Errxo+1,Erryo+1,Errxu-1,Erryu-1) END; PROCEDURE ClearErrWind; VAR y:Byte; BEGIN MakeSysWind; For y:=ErrYo TO ErrYu DO BEGIN Gotoxy(ErrXo,y); BWrite(ErrBuff[y]); END; ActWindow:=AltWind; GotoXY(WhereX,WhereY);{XY-Pos -> Bios} END; PROCEDURE MakeSysWind; BEGIN Window(1,1,ScrMaxX,ScrMaxY) END; VAR AltEx:Pointer; {$F+} PROCEDURE NeuEx; BEGIN IF GetVMode<>DefMode THEN SetVMode(DefMode); ExitProc:=AltEx; END; BEGIN PortF:=DosVerHi<3; IF Not PortF THEN BEGIN IF IstColor THEN SetVMode(1); SetTextColor(15); ClrScr; BWriteLn('ÍÍÍÍÍÍÍÍÍÍPortfolio-DisplayÍÍÍÍÍÍÍÍÍÍÍÍÍ'); GotoXY(1,10); BWriteLn('ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ'); IF IstColor THEN SetTextColor(7*16); ScrOrgY:=1; END; ScrMaxY:=8; ScrMaxX:=40; DefCur(0,7); MakeSysWind; AltEx:=ExitProc; ExitProc:=@NeuEx; END.