
APNDICE D - VARIVEIS E CONSTANTES DO TURBO PASCAL

  UNIT SYSTEM VAR
  Input : TEXT;  {arquivo padro de entrada}
  Output : TEXT;  {arquivo padro de sada} CONST
  ERRORADDR : POINTER = NIL   {endereo de erro de execuo}
  EXITCODE : INTEGER = 0  {cdigo de sada do programa}
  EXITPROC : POINTER = NIL  {endereo de procedimento}
  FILEMODE : BYTE = 2  {modo de abertura do arquivo}
  FREELIST : POINTER = NIL  {lista do "heap" disponvel}
  HEAPEND : POINTER = NIL  {endereo do final do "heap"}
  HEAPERROR : POINTER = NIL  { endereo da funo de erro}
  HEAPORG : POINTER = NIL  {"heap" original}
  HEAPPTR : POINTER = NIL  {ponteiro do "heap"}
  INOUTRES : INTEGER = 0  {resultado de operao de i/o}
  PREFIXSEG : WORD = 0  {prefixo do segmento do programa}
  RANDSEED : LONGINT = 0  {semente randmica}
  STACKLIMIT : WORD = 0  {mnimo ponteiro para "stack"}
  SEG0040 : WORD = $0040  {seletor para o segmento $0040}
  SEGA000 : WORD = $A000  {seletor para segmento $a000}
  SEGB000 : WORD = $B000  {seletor para segmento $b000}
  SEGB800 : WORD = $B800  {seletor para o segmento $b800]
  SELECTORINC : WORD = $1000  {seletor de incremento}
  TEST8086 : BYTE = 0  {resultado do teste 8086}
  TESTE8087 : BYTE = 0  {resultado do teste de 8087}
  OVRCODELIST : WORD = 0  {lista do segmento de cdigo}
  OVRDEBUGPTR : POINTER = NIL  {gancho de debug}
  OVRDOSHANDLE : WORD = 0  {"handle" do arquivo "overlay"}
  OVREMSHANDLE : WORD = 0  {"handle" da memria EMS}
  OVRHEAPEND : WORD = 0  {final do buffer de "overlay"}
  OVRHEAPORG : WORD = 0  {buffer original para "overlay"}
  OVRHEAPPTR : WORD = 0  {ponteiro do buffer de "overlay"}
  OVRHEAPSIZE : WORD = 0  {tamanho inicial de buffer}
  OVRLOADLIST : WORD = 0  {lista dos endereos de  "overlay"  carregada}
VAR {variveis para salvar as interrupes originais}

  SAVEINT00, SAVEINT02,SAVEINT1B,
  SAVEINT21,SAVEINT23,SAVEINT24,
  SAVEINT34,SAVEINT35,SAVEINT36,
  SAVEINT37,SAVEINT38,SAVEINT39,
  SAVEINT3A,SAVEINT3B,SAVEINT3C,
  SAVEINT3D,SAVEINT3E,SAVEINT3F,
  SAVEINT75         : POINTER;

UNIT PRINTER VAR
  lst : TEXT;

UNIT GRAPH CONST
  {cdigos de erro retornados por GRAPHRESULT} GRok =  0;  {no  ocorreu
erro} GRNOINITGRAPH =  -1;  {BGI  no  instalado}  GRNOTDETECTED  =  -2;
{hardware no  detectado}  GRFILENOTFOUND  =  -3;  {driver  grfico  no
encontrado} GRINVALIDDRIVER = -4; {driver grfico invlido}  GRNOLOADMEM
= -5; {memria insuficiente para o driver} GRNOSCANMEM  =  -6;  {memria
insuficiente na varredura} GRNOFLOODMEM = -7; {memria  insuficiente  no
preenchimento} GRFONTNOTFOUND = -8; {arquivo de fontes  no  encontrado}
GRNOFONTMEM = -9; {sem espao em  meria  para  carregar  o  arquivo  de
fontes} GRINVALIDMODE = -10; {modo invlido para o  driver  selecionado}
GRERROR = -11;  {erro  genrico}  GRIOERROR  =  -12;  {erro  grfico  de
entrada/sada}  GRINVALIDFONT  =  -13;  {arquivo  de  fontes   invlido}
GRINVALIDFONTNUM = -14; {nmero da fonte invlida}

    {drivers grficos definidos}

CURRENTDRIVER  =  128;  {para  GETMODERANGE}  DETECT  =  0;    {solicita
autodeteco} CGA - 1; MCGA = 2; EGA =  3;  EGA64  =  4;  EGAMONO  =  5;
IBM8514 = 6; HERCMONO = 7; ATT400 = 8; VGA = 9; PC3270 = 10;
      { modos grficos para cada driver} CGAC0 = 0; {320x200} CGAC1 = 1;
{320x200} CGAC2 = 2; {320x200} CGAC3 = 3; {320x200} CGAHI = 4; {640x200}

MCGAC0 = 0; {320x200} MCGAC1 = 1; {320x200} MCGAC2 = 2; {320x320} MCGAC3
= 3; {320x200} MCGAMed = 4; {640x200} MCGAHi = 5; {640x480}

EGAMONOHI = 3; {640x350} HERCMONOHI= 0; {720x348}

VGALO = 0; {640x200} VGAMED = 1; {640x350}

EGALO = 0; {640x200} EGAHI = 1; {640x350}

EGA64LO = 0; {640x200} EGA64HI = 1; {640x350}

ATT400CO = 0; {320x200} ATT400C1 = 1; {320x200} ATT400C2 = 2;  {320x200}
ATT400C3 = 3; {320x200} ATT400Med = 4; {640x200} ATT400Hi = 5; {640x400}

IBM8514Lo = 0; {640x480} IBM8514Hi = 1; {1024x678}

PC3270Hi = 0; {720x350} VGAHi = 1; {640x480}

  {Cores     usadas        para        SetPalette,        SetAllPalette,
TextColor,TextBackground:}
  {Fundo e Texto} Black = 0; Blue = 1; Green = 2; Cyan =  3;  Red  =  4;
Magenta = 5; Brown = 6; LightGray = 7; {texto} DarkGray = 8; LightBlue =
9; LightGreen = 10; LightCyan = 11; LightRed  =  12;  LightMagenta=  13;
Yellow = 14; White = 15; Blink = 128; {Piscante}
       {Cores para setar 8514} {cores escuras} EGABlack = 0;  EGABlue  =
1; EGAGreen = 2; EGACyan = 3; EGARed = 4; EGAMagenta = 5; EGABrown = 20;
EGALightGray = 7; {Cores claras} EGADarkGray = 56;  EGALightBlue  =  57;
EGALightGreen  =  58;  EGALightCyan  =    59;    EGALightRed    =    60;
EGALightMagenta= 61; EGAYellow = 62; EGAWhite = 63;
   {Estilo de linhas e tamanhos para  GET/SetLineStyle:}  SolidLn  =  0;
DottedLn = 1; CenterLn = 2; DashedLn = 4; {Estilo de linha definido pelo
usurio} NormWidth = 1; Thick Width = 3;

{Constantes para Set/GetTextStyle} DefaultFont = 0; {8x8 mapa  fonte  de
bits} TriplexFont = 1; {"Stroked" fontes} SmallFont = 2; SansSerifFont =
3; GothicFont = 4; HorizDir = 0; {esquerda para direita}  VertDir  =  1;
{baixo para cima} UserCharSize = 2;
        {constantes de clip:} ClipOn = TRUE; ClipOff = FALSE;
        {constantes para BAR3D:} TopOn = TRUE; TopOff = FALSE;
        {moldes para GET/SETFILLSTYLE:} EmptyFill = 0; {uso  da  cor  do
fundo} SolidFill = 1; {uso de  cores  de  desenho}  LimeFill  =  2;  {-}
LtSlashFill = 3; {///} SlashFill = 4; {/// grosso} BkslashFill = 5; {\\\
grosso}  LtbkslashFill  =  6;  {\\\}  HatchFill  =  7;    {quadriculado}
XhatchFill  =  8;  {cruzado  forte}  InterleaveFill   =    9;    {linhas
intercaladas} WideDotFill =  10;  {pontos  largos}  CloseDotFill  =  11;
{pontos fechados} UserFill = 12; {definido pelo usurio}
        {bitbit tabela de operadores  para  PutImage:}  NormalPut  =  0;
{MOVE} CopyPut = 0; {MOVE} XorPut = 1; {XOR} OrPut = 2; {OR} AndPut = 3;
{AND} NotPut = 4; {NOT}
        {horizontal e  vertical  e  justificao  para  SETTEXTJUSTIFY:}
LeftText = 0; CenterText = 1; RightText = 2; BottonText = 0;  TopText  =
2;
  {registro  utilizado  por  GetPalette,GetDefaultPalette,SetAllPalette}
CONST
  MAXCOLORS = 15; TYPE
  PALETTETYPE = RECORD
    SIZE : BYTE;
    COLORS : ARRAY[0..MAXCOLORS] OF SHORTINT;
  END;
    {registro utilizado para os desenhos de  linha}  LINESETTINGSTYPE  =
RECORD
  LINESTYLE : WORD;
    PATTERN : WORD;
    THICKNESS : WORD; END;
    {registro utilizado para GetTextSettings} TEXTSETTINGSTYPE = RECORD
    FONT : WORD;
    DIRECTION : WORD;
    CHARSIZE : WORD;
    HORIZ : WORD;
    VERT : WORD; END;

    {registro utilizado por GetFillSettings} FILLSETTINGSTYPE = RECORD
    PATTERN : WORD;
    COLOR : WORD; END;
    {registro  utilizado   por    GetFillPattern    e    SetFillPattern}
FILLPATTERNTYPE = ARRAY[1..8] OF Byte;
    {tipo utilizado para sua  convenincia}  PointType  =  RECORD  X,  Y
:INTERGER; END;
   {Registro  utilizado  por  GetViewSettings}  ViewPortType  =   RECORD
x1,y1,x2,y2 : INTEGER; CLIP : BOOLEAN; END;
    {registro utilizado por GetArCoords} Aarcoorstype = RECORD
  x, y,
  xstart, ystart,
  xend, yend : INTEGER; END;
    {ponteiros da memria grfica} VAR
  graphgetmemptr : POINTER;
  graphfreememptr : POINTER;


UNIT DOS
  {constantes para chamadas de interrupes do BIOS e DOS} CONST
  fcarry = $0001;
  fparity = $0004;
  fauxiliary = $0010;
  fzero = $0040;
  fsign = $0080;
  foverflow = $0800;
  {constantes para o handle dos arquivos} CONST
  fmclosed = $D7B0;
  fminput = $D7B1;
  fmouput = $D7B2;
  fminout = $D7B3;
  {registros para manipulao de arquivos} TYPE {para  arquivos  tipados
ou no}
  TFileRec = 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;
    {registro textfile} PtextBuf = TTextBuf; TtextBuf  =  ARRAY[0..127]
OF CHAR; TtextRec = RECORD
    Handle : WORD;
    mode : WORD;
    bufsize : WORD;
    private :WORD;
    bufpos : WORD;
    bufend : WORD;
    bufptr : TEXTBUF;
    openfunc : POINTER;
    inoutfunc : POINTER;
    flushfunc : POINTER;
    closefunc : POINTER;
    userdata : ARRAY[1..16] OF BYTE;
    name : ARRAY[0..79] OF CHAR;
    buffer : TEXTBUF;
  END;
    {constantes de test,set, e clear, bits de atributos de arquivos para
uso em GETFATTR, SETFATTR, FINDFIRST,e FINDNEXT PROCEDURES:} CONST
  ReadOnly = $01;   {somente para leitura}
  Hidden = $02;   {escondido}
  SysFile = $04;    {arquivo de sistema}
  Volumeld = $08; {nome de volume}
  Directory = $10;  {diretrio}
  Archive = $20;    {arquivo}
  AnyFile = $3F;    {sem tipo}
    {variveis e registros para uso em intr e msdos} TYPE
  registers = RECORD
    CASE INTEGER OF
    0 : (AX,BX,CX,DX,BP,SI,DI,DS,ES,Flags : WORD);
    1 : (AL,AH,BL,BH,CL,CH,DL,DH : BYTE);
  END;
    {variveis para o  uso  em  GETFTIME,SETFTIME,FINDFIRST,e  FINDNEXT}
TYPE
    {datetime registro usado  por  PackTime  e  UnpackTime}  DateTime  =
RECORD
    year, Month,
    Day, Hour,
    Min, Sec : WORD;
  END; TYPE
    {registro de busca usado por FindFirst e FindNext}
    searchrec = RECORD
    fill : ARRAY[1..21] OF BYTE;
    attr : BYTE;
    time : LONGINT;
    size : LONGINT;
    name : STRING[12];
  END;
    {constantes do tipo string definidas para uso  em  Handle  e  Paths}
COMSTR = STRING[127]; PATHSTR = STRING[79]; DIRSTR = STRING[67]; NAMESTR
= STRING[8]; EXTSTR = STRING[4];
    {esta varivel devolve o cdigo de erro de diversas rotinas da UHNIT
DOS}  VAR
  DOSERROR : INTEGER;   {ERROR status variable}
    {os valores de retorno dos cdigos de erro so} 0 = no houve erro 2
= arquivo no encontrado  3  =  path  no  encontrado  5  =  acesso  no
permitido 6 = handle invlido 8 =  no  existe  memria  10  =  ambiente
invlido 11 = formato invlido 18 = sem mais arquivos

UNIT CRT

    {constantes usadas como parmetros em textmode} CONST
  BW40 = 0;             {40x25 B/W em CGA}
  CO40 = 1;             {40x25 cor em CGA}
  BW80 = 2;             {80x25 B/W em CGA}
  CO80 = 3;             {80x25 cor em CGA}
  MONO = 7;             {80x25 B/W em MDA ou HGC}
  FONT8x8 = 256;        {43-/50- linhas para EGA/VGA}
    {constantes de modo para compatibilidade com 3.0} C40 = CO40; C80  =
CO80;
    {constantes predefinidas para cores} CONST BLACK = 0; {preto} BLUE =
1; {azul} GREEN = 2; {verde} CYAN =  3;  {ciano}  RED  =  4;  {vermelho}
MAGENTA = 5; {magenta} BRONW = 6; {marrom} LIGHTGRAY = 7; {cinza  claro}
DARKGRAY = 8; {cinza escuro} LIGHTBLUE = 9; {azul claro}  LIGHTGREEEN  =
10: {verde claro} LIGHTCYAN = 11; {ciano claro} LIGHTRED = 12; {vermelho
claro} LIGHTMAGENTA = 13; {magenta claro} YELLOW = 14; {amarelo} WHITE =
15; {branco} BLINK = 128; {piscante}
    {variveis de estado usadas na UNIT CRT} VAR
  Checkbreak : BOOLEAN;
  Checkeof : BOOLEAN;
  Directvideo : BOOLEAN;
  Checksnow : BOOLEAN;
  lastmode : WORD;
  textattr : BYTE;
  windmim : WORD;
  wlindmax : WORD;

UNIT OVERLAY

TYPE
  OvrReadFunc = FUNCTION(ovrseg : WORD) CONST {resultados}
  OVROK = 0;    {sem erro}
  OVRERROR = -1;    {erro de overlay}
  OVRNOTFOUND = -2;     {arquivo no encontrado}
  OVRNOMEMORY = -3; {no h espao em memria}
  OVRLOERROR = -4;  {erro de entrada ou sada}
  OVRNOEMSDRIVER = -5;  {erro do dispositivo EMS}
  OVRNOEMSMEMORY = -6;  {memria expandida EMS no disponvel}
    {variveis} VAR

    OVRRESULT : INTEGER;            {resultado da operao}
    OVRFILEMODE : BYTE;             {modo do arquivo}
    OVRLOADCOUNT : WORD;            {contador de arquivos carregados}
    OVRREADBUF : OVRREADFUNC;       {buffer de leitura}
    OVRTRAPCOUNT : WORD;            {contador de laos}
 
