<Índice> <1> <2> <3> <4> <5> <6> <7> <8> <Página Principal>

CAPÍTULO 5:
INTERRUPÇÕES E GERÊNCIA 
DE ARQUIVOS 
Conteúdo: 
5.1.Interrupções
5.2.Gerenciamento de arquivos

--------------- // ---------------

5.1. Interrupções. 

Conteúdo

5.1.1.Interrupções de hardware interno
5.1.2.Interrupções de hardware externo
5.1.3.Interrupções de software
5.1.4.Interrupções mais comuns
                                   
5.1.1.Interrupções de hardware interno
Interrupções internas são geradas por certos eventos que ocorrem durante a
execução de um programa. 
Este tipo de interrupções são gerenciadas, na sua totalidade, pelo hardware
e não é possível modificá-las. 
Um exemplo claro deste tipo de Interrupções ‚ a que atualiza o contador do
clock interno do computador, o hardware chama esta interrupção muitas vezes
durante um segundo. 
Não nos é permitido gerenciar diretamente esta interrupção, uma vez que não
se pode controlar a hora atualizada por software. Mas podemos usar seus
efeitos no computador para o nosso benefício, por exemplo para criar um
virtual clock atualizado continuamente pelo contador interno de clock. Para
tanto, precisamos apenas ler o valor atual do contador e o transformar num
formato compreensível pelo usuário.

			--------------- // ---------------
                              
5.1.2.Interrupções de hardware externo
Interrupções externas são geradas através de dispositivos periféricos, tais
como teclados, impressoras, placas de comunicação, entre outros.São também
geradas por co-processadores.Não é possível desativar interrupções externas.
Estas interrupções não são enviadas diretamente para a CPU, mas, de uma
forma melhor, são enviadas para um circuito integrado cuja função exclusiva
é manusear este tipo de interrupção. O circuito, chamado PIC8259A, é
controlado pela CPU através de uma série de comunicação chamada paths.
			--------------- // ---------------
                               
5.1.3.Interrupções de software
Interrupções de software podem ser ativadas diretamente por nossos programas
assembly, invocando o número da interrupção desejada com a instrução INT. 
O uso das interrupções facilita muito a criação dos programas, torna-os
menores. Além disso, é fácil compreendê-las e geram boa performance. 
Estes tipos de interrupções podem ser separadas em duas categorias:
Interrupções do Sistema Operacional DOS e Interrupções do BIOS. 
A diferença entre ambas é que as interrupções do sistema operacional são
mais fáceis de usar, mas também são mais lentas, uma vez que acessam os
serviços do BIOS. Por outro lado, Interrupções do BIOS são muito mais
rápidas, mas possuem a desvantagem de serem parte do hardware, o que
significa serem específicas à arquitetura do computador em questão.
A escolha sobre qual o tipo de interrupção usar irá depender somente das
características que você deseja dar ao seu programa: velocidade (use BIOS),
portabilidade (use DOS).
			--------------- // ---------------
                               
5.1.4.Interrupções mais comuns
                            
                                  
Conteúdo
5.1.4.1.Int 21H (interrupção do DOS)
		Múltiplas chamadas … funções DOS.
5.1.4.2.Int 10H (interrupção do BIOS)
		Entrada e Saída de Vídeo.
5.1.4.3.Int 16H (interrupção do BIOS)
		Entrada e Saída do Teclado.
5.1.4.4.Int 17H (interrupção do BIOS)
		Entrada e Saída da Impressora.
                                  
			--------------- // ---------------
5.1.4.1. Interrupção 21H     
Propósito: Chamar uma diversidade de funções DOS.
Sintaxe:
      Int 21H
Nota: Quando trabalhamos com o programa TASM é necessário especificar que o
valor que estamos usando está em hexadecimal.
Esta interrupção tem muitas funções, para acessar cada uma delas é
necess rio que o número correspondente da função esteja no registrador AH no
momento da chamada da interrupção.
Funções para mostrar informações no vídeo.
     02H Exibe um caracter
     09H Exibe uma cadeia de caracteres
     40H Escreve num dispositivo/arquivo
Funções para ler informações do teclado.
     01H Entrada do teclado
     0AH Entrada do teclado usando buffer
     3FH Leitura de um dispositivo/arquivo
Funções para trabalhar com arquivos.
Nesta seção são apenas especificadas as tarefas de cada função, para uma
referência acerca dos conceitos usados, veja introdução ao gerenciamento de
arquivos.
Método FCB
     0FH Abertura de arquivo
     14H Leitura seqüêncial
     15H Escrita seqüêncial
     16H Criação de arquivo
     21H Leitura randômica
     22H Escrita randômica
Handles
     3CH Criação de arquivo
     3DH Abertura de arquivo
     3EH Fechamento de arquivo
     3FH Leitura de arquivo/dispositivo
     40H Escrita de arquivo/dispositivo
     42H Move ponteiro de leitura/escrita num arquivo
                                   
 FUN�ÃO 02H
Uso: Mostra um caracter na tela.
Registradores de chamada:
AH = 02H
DL = Valor de caracter a ser mostrado.
Registradores de retorno:
Nenhum.
Esta função mostra o caracter cujo código hexadecimal corresponde ao valor
armazenado no registrador DL, e não modifica nenhum registrador.
O uso da função 40H é recomendado ao invés desta função.
                                   
  FUN�ÃO 09H
Uso: Mostra uma cadeia de caracteres na tela.
Registradores de chamada:
AH = 09H
DS:DX = Endereço de início da cadeia de caracteres.
Registradores de retorno:
Nenhum.
Esta função mostra os caracteres, um por um, a partir do endereço indicado
nos registradores DS:DX até encontrar um caracter $, que é interpretado como
fim da cadeia.
É recomendado usar a função 40H ao invés desta.
                                   
 FUN�ÃO 40H
Uso: Escrever num dispositivo ou num arquivo.
Registradores de chamada:
AH = 40H
BX = número do handle
CX = Quantidade de bytes a gravar
DS:DX = Área onde está o dado
Registradores de retorno:
CF = 0 se não houve erro 
AX = número de bytes escrito 
CF = 1 se houve erro 
AX = Código de erro
Para usar esta função para mostrar a informação na tela, faça o registrador
BX ser igual a 1, que é o valor default para o vídeo no DOS.
                                   
 FUN�ÃO 01H
Uso: Ler um caracter do teclado e mostrá-lo.
Registradores de chamada:
AH = 01H
Registradores de retorno:
AL = Caracter lido
É muito fácil ler um caracter do teclado com esta função, o código
hexadecimal do caracter lido é armazenado no registrador AL. Nos caso de
teclas especiais, como as de função F1, F2, além de outras, o registrador AL
conterá o valor 1, sendo necessário chamar a função novamente para obter o
código daquele caracter.
                                   
 FUN�ÃO 0AH
Uso: Ler caracteres do teclado e armazená-los num buffer.
Registradores de chamada:
AH = 0AH
DS:DX = Endereço inicial da área de armazenamento
BYTE 0 = Quantidade de bytes na área
BYTE 1 = Quantidade de bytes lidos
do BYTE 2 at‚ BYTE 0 + 2 = caracteres lidos
Registradores de retorno:
Nenhum.
Os caracteres são lidos e armazenados num espaço de memória que foi
definido. A estrutura deste espaço indica que o primeiro byte representar  a
quantidade máxima de caracteres que pode ser lida. O segundo, a quantidade
de caracteres lidos e, no terceiro byte, o inicio onde eles são armazenados.
Quando se atinge a quantidade máxima permitida, ouve-se o som do speaker e
qualquer caracter adicional é ignorado. Para finalizar a entrada, basta
digitar [ENTER].
                                   
 FUN�ÃO 3FH
Uso: Ler informação de um dispositivo ou de um arquivo.
Registradores de chamada:
AH = 3FH
BX = número do handle
CX = número de bytes a ler
DS:DX = Área para receber o dado
Registradores de retorno:
CF = 0 se não há erro e AX = número de bytes lidos.
CF = 1 se há erro e AX conterá o código de erro.
                                   
 FUN�ÃO 0FH
Uso: Abrir um arquivo FCB.
Registradores de chamada:
AH = 0FH
DS:DX = Ponteiro para um FCB
Registradores de retorno:
AL = 00H se não há problemas, de outra forma retorna 0FFH
                                   
 FUN�ÃO 14H
Uso: Leitura sequencial num arquivo FCB.
Registradores de chamada:
AH = 14H
DS:DX = Ponteiro para um FCB já aberto.
Registradores de retorno:
AL = 0 se não há erros, de outra forma o código correspondente de erro retornar :
1 erro no fim do arquivo, 2 erro na estrutura FCB e 3 erro de leitura parcial. 
O que esta função faz é ler o próximo bloco de informações do endereço dado
por DS:DX, e atualizar este registro.
                                   
 FUN�ÃO 15H
Uso: Escrita sequencial e arquivo FCB.
Registradores de chamada:
AH = 15H
DS:DX = Ponteiro para um FCB já aberto.
Registradores de retorno:
AL = 00H se não há erros, de outra forma conterá o código de erro:  1 disco cheio ou
arquivo somente de leitura, 2 erro na formação ou na especificação do FCB.
A função 15H atualiza o FCB ap�s a escrita do registro para o presente bloco.
                                   
 FUN�ÃO 16H
Uso: Criar um arquivo FCB. 


Registradores de chamada:
AH = 16H
DS:DX = Ponteiro para um FCB já aberto.
Registradores de retorno:
AL = 00H se não há erros, de outra forma conterá o valor 0FFH.
É baseada na informação advinda de um FCB para criar um arquivo num disco.
                                   
 FUN�ÃO 21H
Uso: Ler de modo randômico um arquivo FCB.
Registradores de chamada:
AH = 21H
DS:DX = Ponteiro para FCB aberto.
Registradores de retorno:
A = 00H se não há erro, de outra forma AH conterá o código de erro:
1 se é o fim do arquivo, 2 se há um erro de especificação no FCB e 3 se um registro foi
lido parcialmente ou o ponteiro de arquivo está no fim do mesmo.
Esta função lê o registro especificado pelos campos do bloco atual e
registro de um FCB aberto e coloca a informação na DTA, área de
Transferência do Disco.
                                   
 FUNÇÃO 22H
Uso: Escrita randômica num arquivo FCB.
Registradores de chamada:
AH = 22H
DS:DX = Ponteiro para um FCB aberto.
Registradores de retorno:
AL = 00H se não há erro, de outra forma conterá o código de erro:
1 se o disco está cheio ou o arquivo é apenas de leitura e 2 se há
um erro na especificação FCB.
Escreve o registro especificado pelos campos do bloco atual e registro de um
FCB aberto. Esta informação é do conteúdo da DTA.
                                   
 FUNÇÃO 3CH
Uso: Criar um arquivo se não existe ou deixá-lo com comprimento 0 se existe.
Registradores de chamada:
AH = 3CH
CH = Atributo do arquivo
DS:DX = Nome do arquivo, no formato ASCII.
Registradores de retorno:
CF = 0 e AX informa o número do handle se não há erro. Se caso houver erro,
CF será 1 e AX conterá o código de erro: 3 caminho não encontrado, 4 não há
handles disponíveis e 5 acesso negado. 
Esta função substitui a função 16H. O nome do arquivo é especificado numa
cadeia ASCII de bytes terminados pelo caracter 0.
O arquivo criado conterá os atributos definidos no registrador CX, do
seguinte modo:
        Valor           Atributos
         00H              Normal
         02H              Hidden
         04H              System
         06H              Hidden e System
O arquivo é criado com permissão de leitura e escrita.Não é possível a
criação de diretórios através desta função.
                                   
 FUNÇÃO 3DH
Uso: Abre um arquivo e retorna um handle.
Registradores de chamada:
AH = 3DH
AL = modo de acesso
DS:DX = Nome do arquivo, no formato ASCII.
Registradores de retorno:
CF = 0 e AX = número do handle se não há erros, de outra forma CF = 1 e AX = código de erro:
01H se a função não é válida, 02H se o arquivo não foi encontrado, 03H se o caminho não foi
encontrado, 04H se não há handles disponíveis, 05H acesso negado, e 0CH se o código de
acesso não é válido.
O handle retornado é de 16 bits.
O código de acesso é especificado da seguinte maneira:
        BITS
       7  6  5  4  3  2  1
       .  .  .  .  0  0  0      Apenas leitura
       .  .  .  .  0  0  1      Apenas escrita
       .  .  .  .  0  1  0      Leitura/Escrita
       .  .  .  x  .  .  .      RESERVADO
                                   
 FUNÇÃO 3EH
Uso: Fecha um arquivo (handle).
Registradores de chamada:
AH = 3EH
BX = número do handle associado
Registradores de retorno:
CF = 0 se não há erros, ou CF será 1 e AX conterá o código de erro:
06H se o handle é inválido. 
Esta função atualiza o arquivo e libera o handle que estava usando.

 

 FUNÇÃO 3FH
Uso: Ler uma quantidade específica de bytes de um arquivo aberto e armazená -los
num buffer específico.
			--------------- // ---------------
                                   
5.1.4.2.Interrupção 10h
Propósito: Chamar uma diversidade de funções do BIOS
Sintaxe:
        Int 10H
Esta interrupção tem várias funções, todas para entrada e saída de vídeo.
Para acessar cada uma delas é necessário colocar o número da função
correspondente no registrador AH.
Veremos apenas as funções mais comuns da interrupção 10H.
função 02H, seleciona a posição do cursor
função 09H, exibe um caracter e o atributo na posição do cursor
função 0AH, exibe um caracter na posição do cursor
função 0EH, modo alfanumérico de exibição de caracteres
                                   
 FUNÇÃO 02h
Uso: Move o cursor na tela do computador usando o modo texto.
Registradores de chamada:
AH = 02H 
BH = Página de vídeo onde o cursor está posicionado.
DH = linha
DL = coluna
Registradores de retorno:
Nenhum.
A posição do cursor é definida pelas suas coordenadas, iniciando-se na
posição 0,0 até a posição 79,24. Logo os valores possíveis para os
registradores DH e DL são: de 0 a 24 para linhas e de 0 a 79 para colunas.
                                   
 FUNÇÃO 09h
Uso: Mostra um determinado caracter várias vezes na tela do computador com um
atributo definido, iniciando pela posição atual do cursor.
Registradores de chamada:
AH = 09H
AL = Caracter a exibir
BH = Página de vídeo, onde o caracter será mostrado
BL = Atributo do caracter
CX = número de repetições.
Registradores de retorno:
Nenhum
Esta função mostra um caracter na tela v rias vezes, de acordo com o número
especificado no registrador CX, mas sem mudar a posição do cursor na tela.
                                   
 FUNÇÃO 0Ah
Uso: Exibe um caracter na posição atual do cursor.
Registradores de chamada:
AH = 0AH
AL = Caracter a exibir
BH = Página de vídeo onde o caracter será exibido
BL = Cor do caracter (apenas em modo gráfico)
CX = número de repetições
Registradores de retorno:
Nenhum.
A principal diferença entre esta função e a anterior é permitir mudança nos
atributos, bem como mudar a posição do cursor.
                                   
 FUNÇÃO 0EH
Uso: Exibir um caracter na tela do computador atualizando a posição do cursor.
Registradores de chamada:
AH = 0EH
AL = Caracter a exibir
BH = Página de vídeo onde o caracter será exibido
BL = Cor a usar (apenas em modo gráfico)
Registradores de retorno:
Nenhum
			--------------- // ---------------
                                  
5.1.4.3.Interrupção 16H
Veremos duas funções da interrupção 16H. A exemplo das demais interrupções,
usa-se o registrador AH para chamá-las.
                                   
Funções da interrupção 16h
função 00H, lê um caracter do teclado.
função 01H, lê o estado atual do teclado.

 

 FUNÇÃO 00H 

Uso: Ler um caracter do teclado.
Registradores de chamada:
AH = 00H
Registradores de retorno:
AH = Código da tecla pressionada
AL = Valor ASCII do caracter
Quando se usa esta interrupção, os programas executam até que uma tecla seja
pressionada. Se é um valor ASCII, é armazenado no registrador AH. Caso
contrário, o código é armazenado no registrador AL e AH=0. 
Este valor de AL pode ser utilizado quando queremos detectar teclas que não
estão diretamente representadas pelo seu valor ASCII, tais como
[ALT][CONTROL].
                                   
 FUNÇÃO 01h
Uso: Ler o estado do teclado
Registradores de chamada:
AH = 01H
Registradores de retorno:
Se o registrador de flag é zero, significa que há informação no buffer de
teclado na memória. Caso contrário, o buffer está vazio. Portanto o valor do
registrador AH será o valor da tecla armazenada no buffer.
			--------------- // ---------------
                                  
5.1.4.4.Interrupção 17H
Propósito: Manusear a entrada e saída da impressora.
Sintaxe:
        Int 17H
Esta interrupção é usada para enviar caracteres, setar ou ler o estado de
uma impressora.

Funções da interrupção 17h
função 00H, imprime um valor ASCII
função 01H, seta a impressora
função 02H, lê estado da impressora

 

 FUNÇÃO 00H
Uso: Imprimir um caracter numa impressora.
Registradores de chamada:
     AH = 00H
     AL = Caracter a imprimir
     DX = Porta de conexão
Registradores de retorno:
     AH = Estado da impressora
Os valores da porta a colocar no registrador DX são:
LPT1 = 0, LPT2 = 1, LPT3 = 2 ...
O estado da impressora é codificado bit a bit como segue:
     BIT 1/0 SIGNIFICADO
     ----------------------------------------
     0    1    Estado de time-out
     1    -
     2    -
     3    1    Erro de entrada e saída
     4    1    Impressora selecionada
     5    1    Fim de papel
     6    1    Reconhecimento de comunicação
     7    1    A impressora está pronta para o uso
Os bits 1 e 2 bits não são relevantes
A maioria dos BIOS suportam 3 portas paralelas, havendo alguns que 
suportam 4.

 

 FUNÇÃO 01h
Uso: Setar uma porta paralela.
Registradores de chamada:
     AH = 01H
     DX = Porta
Registradores de retorno:
     AH = Status da impressora
A porta definida no registrador DX pode ser: LPT1=0, LPT2=1, assim por
diante.
O estado da impressora é codificado bit a bit como segue:
     BIT 1/0 SIGNIFICADO
     ----------------------------------------
     0    1   Estado de time-out
     1    -
     2    -
     3    1   Erro de entrada e sa�da
     4    1   Impressora selecionada
     5    1   Fim de papel
     6    1   Reconhecimento de comunica‡�o
     7    1   A impressora est  pronta para o uso
Os bits 1 e 2 bits não são relevantes

 

 FUNÇÃO 02h
Uso: Obter o status da impressora.
Registradores de chamada:
     AH = 01H
     DX = Porta
Registradores de retorno
     AH = Status da impressora
A porta definida no registrador DX pode ser: LPT1=0, LPT2=1, assim por
diante.
O estado da impressora é codificado bit a bit como segue:
     BIT 1/0 SIGNIFICADO
     ----------------------------------------
     0    1  Estado de time-out
     1    -
     2    -
     3    1  Erro de entrada e sa�da
     4    1  Impressora selecionada
     5    1  Fim de papel
     6    1  Reconhecimento de comunica‡�o
     7    1  A impressora est  pronta para o uso
Os bits 1 e 2 bits não são relevantes

			--------------- // ---------------
                               
5.2. Gerenciamento de Arquivos
                                   
Conteúdo:
5.2.1.Modos de trabalhar com arquivos
5.2.2.Método FCB
5.2.3.Métodos de canais de comunicação
                                   
5.2.1.Modos de trabalhar com arquivos.
Há dois modos de trabalhar com arquivos. O primeiro é através de FCB (
blocos de controle de arquivo), o segundo é através de canais de
comunicação, também conhecidos como handles.
O primeiro modo de manusear arquivos tem sido usado desde o sistema
operacional CPM, predecessor do DOS, logo permite certas compatibilidades
com muitos arquivos velhos do CPM bem como com a versão 1.0 do DOS, além
deste método permitir-nos ter um número ilimitado de arquivos abertos ao
mesmo tempo. Se você quiser criar um volume para o disco, a única forma é
através deste método.
Depois de considerarmos as vantagens de FCB, o uso do método de Canais de
Comunicação é muito simples e permite-nos um melhor manuseio de erros.
Para uma melhor facilidade, daqui por diante nos referiremos aos Blocos de
Controle de Arquivo como FCBs e aos Canais de Comunicação como handles.
			--------------- // ---------------
                                 
5.2.2.Método FCB.
5.2.2.1.Introdução
5.2.2.2.Abertura de arquivo
5.2.2.3.Criar um novo arquivo
5.2.2.4.Escrita seqüêncial
5.2.2.5.Leitura seqüêncial
5.2.2.6.Leitura e escrita randômica
5.2.2.7.Fechar um arquivo
			--------------- // ---------------
5.2.2.1.INTRODU�ÃO
Há dois tipos de FCB, o normal, cujo comprimento é 37 bytes, e o extendido,
com 44 bytes. Neste tutorial iremos assumir o primeiro, ou seja, quando
falarmos em FCB, estaremos fazendo referência ao tipo normal (37 bytes). 
O FCB é composto de informações dadas pelo programador e por informações que
ele toma diretamente do sistema operacional. Quando estes tipos de arquivos
são usados, só é possível se trabalhar no diretório corrente, pois FCBs não
fornecem suporte ao sistema de organização de arquivos através de diretórios
do DOS.
FCB é composto pelos seguintes campos:
  POSIÇÃO    COMPRIMENTO   SIGNIFICADO
    00H         1 Byte       Drive
    01H         8 Bytes      Nome do arquivo
    09H         3 Bytes      Extensão
    0CH         2 Bytes      número do bloco
    0EH         2 Bytes      Tamanho do registro
    10H         4 Bytes      Tamanho do arquivo
    14H         2 Bytes      Data de criação
    16H         2 Bytes      Hora de criaçãoo
    18H         8 Bytes      Reservado
    20H         1 Bytes      Registro corrente
    21H         4 Bytes      Registro randômico
Para selecionar o drive de trabalho, assuma: drive A = 1; drive B = 2; etc.
Se for usado 0, o drive que está sendo usado no momento será tomado como
opção.
O nome do arquivo deve ser justificado à esquerda e é necessário preencher
com espaços os bytes remanescentes, a extensão é colocada do mesmo modo. 
O bloco corrente e o registro corrente dizem ao computador que registro ser 
acessado nas operações de leitura e escrita. Um bloco é um grupo de 128
registros. O primeiro bloco de arquivo é o bloco 0. O primeiro registro é o
registro 0, logo o último registro do primeiro bloco deve ser o 127, uma vez
que a numeração é iniciada com 0 e o bloco pode conter 128 registradores no
total.
			--------------- // ---------------
                                
5.2.2.2.ABERTURA DE ARQUIVO
Para abrir um arquivo FCB é usada a função 0FH da interrupção 21h.
A unidade, o nome e a extensão do arquivo devem ser inicializadas antes da
abertura. 
O registrador DX deve apontar para o bloco. Se o valor FFH é retornado no
registrador AH quando da chamada da interrupção, então o arquivo não foi
encontrado. Se tudo der certo, o valor 0 é retornado. 
Se o arquivo é aberto, então o DOS inicializa o bloco corrente em 0, o
tamanho do registro para 128 bytes. O tamanho do arquivo e a sua data são
preenchidos com as informações encontradas no diretório.
			--------------- // ---------------
                                  
5.2.2.3.CRIAR UM NOVO ARQUIVO
Para a criação de arquivos é usada a função 16H da interrupção 21h. 
O registrador DX deve apontar para uma estrutura de controle cujo os
requisitos são de que pelo menos a unidade lógica, o nome e a extensão do
arquivo sejam definidas. 
Caso ocorra problema, o valor FFH deve retornar em AL, de outra forma este
registrador conterá o valor 0.
			--------------- // ---------------
                                  
5.2.2.4.ESCRITA SEQÜENCIAL
Antes de conseguirmos realizar escrita para o disco, é necessário definir a
área de transferência de dados usando, para tanto, a função 1AH da
interrupção 21h. 
A função 1AH não retorna qualquer estado do disco nem da operação. Mas a
função 15H, que usaremos para escrever para o disco, faz isso no registrador
AL. Se este for igual a zero, então não há erro e os campos de registro
corrente e de bloco são atualizados.
                                   
			--------------- // ---------------
5.2.2.5.LEITURA SEQÜENCIAL
Antes de tudo, devemos definir a área de transferência de arquivo ou DTA.
Para a leitura seqüêncial usaremos a função 14H da interrupção 21h.
O registro a ser lido é definido pelos campos registro e bloco corrente. O
registrador AL retorna o estado da operação. Se AL contém o valor 1 ou 3,
significa que foi atingido o fim do arquivo. Um valor 2, por sua vez,
significa que o FCB está estruturado erroneamente. 
Caso não ocorra erro, AL conterá o valor 0 e os campos de registro e bloco
corrente são atualizados.
			--------------- // ---------------
                                   
5.2.2.6.LEITURA E ESCRITA RANDÔMICA
A função 21H e a função 22H da insterrupção 21h são usadas à realização,
respectivamente, da escrita e leitura randômica. 
O número de registro randômico e o bloco corrente são usados para calcular a
posição relativa do registro a ser lido ou escrito. 
O registrador AL retorna a mesma informação do que par a escrita e leitura
seqüêncial. A informação a ser lida será retornada na área de transferência
do disco, bem como a informação a ser escrita retorna na DTA.
			--------------- // ---------------
                                   
5.2.2.7.FECHAR UM ARQUIVO
Para fechar um arquivo usamos a função 10H da interrupção 21h.
Se após invocar esta função, o registrador AL conter o valor FFH, significa
que o arquivo foi mudado de posição, o disco foi mudado ou há erro de acesso
a disco.
			--------------- // ---------------
                                 
5.2.3.Canais de comunicação.
5.2.3.1.Trabalhando com handles
5.2.3.2.Funções para usar handles
                                   
5.2.3.1.TRABALHANDO COM HANDLES
O uso de handles para gerenciar arquivos traz grandes facilidades na criação
de arquivos e o programador pode concentrar-se em outros aspectos da
programação sem preocupar-se com detalhes que podem ser manuseados pelo
sistema operacional. 
A facilidade dos handles consiste em que para operarmos sobre um arquivo é
apenas necessário definirmos o nome do mesmo e o número de handle a usar,
todo o resto da informação é manuseada internamente pelo DOS. 
Quando usamos este método para trabalhar com arquivos, não há distinção
entre acesso seqüêncial ou randômico, o arquivo é simplesmente tomado como
uma rede de bytes.
			--------------- // ---------------
                                  
5.2.3.2.FUNÇÕES PARA USAR HANDLES
As funções usadas para o manuseio de arquivos através de handles são
descritas na página sobre: Interrupções, na seção dedicada à interrupção 21h.
        
*****************************************************************************