{ Turbo Pascal standard units. For use with p2c. } { Only partially complete! } {-------------------------------------------------------------------------} unit printer; interface var lst : text; end; {-------------------------------------------------------------------------} unit dos; interface const FCarry = $0001; { 8086 flags } FParity = $0004; FAuxiliary = $0010; FZero = $0040; FSign = $0080; FOverflow = $0100; fmClosed = $D7B0; { File modes } fmInput = $D7B1; fmOutput = $D7B2; fmInOut = $D7B3; ReadOnly = $01; { File attributes } Hidden = $02; SysFile = $04; VolumeID = $08; Directory = $10; Archive = $20; AnyFile = $3F; type PathStr = string[79]; DirStr = PathStr; NameStr = string[8]; ExtStr = string[3]; FileRec = record Handle: Word; Mode: Word; RecSize: Word; Private: array [1..26] of Byte; UserData: array [1..16] of Byte; Name: array [0..79] of char; end; TextBuf = array [0..127] of char; TextRec = record Handle: Word; Mode: Word; BufSize: Word; Private: Word; BufPos: Word; BufEnd: Word; BufPtr: ^TextBuf; OpenProc: Pointer; InOutProc: Pointer; FlushProc: Pointer; CloseProc: Pointer; UserData: array [1..16] of Byte; Name: array [0..79] of char; Buffer: TextBuf; end; Registers = record case integer of 0: (AX,BX,CX,DX,BP,SI,DI,ES,Flags: word); 1: (AL,AH,BL,BH,CL,CH,DL,DH: byte); end; DateTime = record Year, Month, Day, Hour, Min, Sec: word; end; SearchRec = record Fill: array [1..21] of byte; Attr: byte; Time: longint; Size: longint; Name: string[12]; end; var DosError: integer; procedure GetTime(var hour, minute, second, csec : word); procedure GetDate(var year, month, day, dow : word); procedure FSplit(fn : PathStr; var dir, name, ext : string); {WarnNames=1} procedure Exec(path, cmdLine : PathStr); {WarnNames} end; {-------------------------------------------------------------------------} unit crt; interface function KeyPressed : boolean; function ReadKey : char; procedure ClrScr; procedure TextBackground(i : integer); procedure Window(a, b, c, d : integer); var wherex, wherey : integer; end; {-------------------------------------------------------------------------} unit graph; interface const gr0k = 0; grNoInitGraph = -1; grNotDetected = -2; grFileNotFound = -3; grInvalidDriver = -4; grNoLoadMem = -5; grNoScanMem = -6; grNoFloodMem = -7; grFontNotFound = -8; grNoFontMem = -9; grInvalidMode = -10; grError = -11; grIOerror = -13; grInvalidFontNum = -14; Detect = 0; CGA = 1; MCGA = 2; EGA = 3; EGA64 = 4; EGAMono = 5; IBM8514 = 6; HercMono = 7; ATT400 = 8; VGA = 9; PC3270 = 10; CurrentDriver = -128; CGAC0 = 0; CGAC1 = 1; CGAC2 = 2; CGAC3 = 3; CGAHi = 4; MCGAC0 = 0; MCGAC1 = 1; MCGAC2 = 2; MCGAC3 = 3; MCGAMed = 4; MCGAHi = 5; EGALo = 0; EGAHi = 1; EGA64Lo = 0; EGA64Hi = 1; EGAMonoHi = 3; HercMonoHi = 0; ATT400C0 = 0; ATT400C1 = 1; ATT400C2 = 2; ATT400C3 = 3; ATT400Med = 4; ATT400Hi = 5; VGALo = 0; VGAMed = 1; VGAHi = 2; PC3270Hi = 0; IBM8514LO = 0; IBM8514HI = 1; Black = 0; Blue = 1; Green = 2; Cyan = 3; Red = 4; Magenta = 5; Brown = 6; LightGray = 7; DarkGray = 8; LightBlue = 9; LightGreen = 10; LightCyan = 11; LightRed = 12; LightMagenta = 13; Yellow = 14; White = 15; SolidLn = 0; DottedLn = 1; CenterLn = 2; DashedLn = 3; UserBitLn = 4; NormWidth = 1; ThickWidth = 3; type ArcCoordsType = record X, Y: integer; Xstart, Ystart: integer; Xend, Yend: integer; end; const MaxColors = 15; type PaletteType = record Size: byte; Colors: array[0..MaxColors] of shortint; end; FillPatternType = array[1..8] of byte; FillSettingsType = record Pattern: word; Color: word; end; LineSettingsType = record LineStyle: word; Pattern: word; Thickness: word; end; TextSettingsType = record Font: word; Direction: word; CharSize: word; Horiz: word; Vert: word; end; ViewPortType = record x1, y1, x2, y2: integer; Clip: boolean; end; const LeftText = 0; CenterText = 1; RightText = 2; BottomText = 0; TopText = 2; const ClipOn = true; ClipOff = false; const EmptyFill = 0; SolidFill = 1; LineFill = 2; LtSlashFill = 3; SlashFill = 4; BkSlashFill = 5; LtBkSlashFill = 6; HatchFill = 7; XHatchFill = 8; InterleaveFill = 9; WideDotFill = 10; CloseDotFill = 11; UserFill = 17; const NormalPut = 0; CopyPut = 0; XORPut = 1; OrPut = 2; AndPut = 3; NotPut = 4; procedure Arc(X, Y: integer; StAngle, EndAngle, Radius: word); procedure Bar(x1, y1, x2, y2: integer); procedure Bar3D(x1, y1, x2, y2: integer; Depth: word; Top: boolean); procedure Circle(X, Y: integer; Radius: word); procedure ClearDevice; procedure ClearViewPort; procedure CloseGraph; procedure DetectGraph(var GraphDriver, GraphMode: integer); procedure DrawPoly(NumPoints: word; var PolyPoints); procedure Ellipse(X, Y: integer; StAngle, EndAngle: word; XRadius, YRadius: word); procedure FillEllipse(X, Y: integer; XRadius, YRadius: word); procedure FillPoly(NumPoints: word; var PolyPoints); procedure FloodFill(x, y: integer; Border: word); procedure GetArcCoords(var ArcCoords: ArcCoordsType); procedure GetAspectRatio(var Xasp, Yasp: word); function GetBkColor: word; function GetColor: word; function GetDefaultPalette(var Palette: PaletteType): PaletteType; function GetDriverName: string; procedure GetFillPattern(var FillPattern: FillPatternType); procedure GetFillSettings(var FillInfo: FillSettingsType); function GetGraphMode: integer; procedure GetImage(x1, y1, x2, y2: integer; var BitMap); procedure GetLineSettings(var LineInfo: LineSettingsType); function GetMaxColor: word; function GetMaxMode: word; function GetMaxX: integer; function GetMaxY: integer; function GetModeName(ModeNumber: integer): string; procedure GetModeRange(GraphDriver: integer; var LoMode, HiMode: integer); procedure GetPalette(var Palette: PaletteType); function GetPaletteSize: integer; function GetPixel(X,Y: integer): word; procedure GetTextSettings(var TextInfo: TextSettingsType); procedure GetViewSettings(var ViewPort: ViewPortType); function GetX: integer; function GetY: integer; procedure GraphDefaults; function GraphErrorMsg(ErrorCode: integer): string; function GraphResult: integer; function ImageSize(x1, y1, x2, y2: integer): word; procedure InitGraph(var GraphDriver: integer; var GraphMode: integer; PathToDriver: string); function InstallUserDriver(Name: string; AutoDetectPtr: pointer): integer; function InstallUserFont(FontFileName: string): integer; procedure Line(x1, y1, x2, y2: integer); procedure LineRel(Dx, Dy: integer); procedure LineTo(x, y: integer); procedure MoveRel(Dx, Dy: integer); procedure MoveTo(x, y: integer); procedure OutText(TextString: string); procedure OutTextXY(X,Y: integer; TextString: string); procedure PieSlice(x, y: integer; StAngle, EndAngle, Radius: word); procedure PutImage(x, y: integer; var BitMap; BitBlt: word); procedure PutPixel(x, y: integer; Pixel: word); procedure Rectangle(x1, y1, x2, y2: integer); function RegisterBGIdriver(driver: pointer): integer; function RegisterBGIfont(font: pointer): integer; procedure RestoreCrtMode; procedure Sector(x, y: integer; StAngle, EndAngle, XRadius, YRadius: word); procedure SetActivePage(Page: word); procedure SetAllPalette(var Palette); procedure SetAspectRatio(Xasp, Yasp: word); procedure SetBkColor(ColorNum: word); procedure SetColor(Color: word); procedure SetFillPattern(Pattern: FillPatternType; Color: word); procedure SetFillStyle(Pattern: word; Color: word); procedure SetGraphBufSize(BufSize: word); procedure SetGraphMode(Mode: integer); procedure SetLineStyle(LineStyle: word; Pattern: word; Thickness: word); procedure SetPalette(ColorNum: word; Color: shortint); procedure SetRGBPalette(ColorNum, RedValue, GreenValue, BlueValue: integer); procedure SetTextJustify(Horiz, Vert: word); procedure SetTextStyle(Font: word; Direction: word; CharSize: word); procedure SetUserCharSize(MultX, DivX, MultY, DivY: word); procedure SetViewPort(x1, y1, x2, y2: integer; Clip: boolean); procedure SetVisualPage(Page: word); procedure SetWriteMode(WriteMode: integer); function TextHeight(TextString: string): word; function TextWidth(TextString: string): word; end;