Fórum Rotina em Assembler ... Alquém tem ??? #147932

20/03/2003

0

ALGUÉM POSSUI ALGUMA ROTINA EM ASSEMBLER QUE LEIA AS ENTRADAS E ENVIE DADOS PELA LPT1 .???


Alphablend

Alphablend

Responder

Posts

20/03/2003

Anderson Silva

{*
** Arquivo..: Impressao.Pas.
** Data.....: 16 de Outubro de 1999.
** Descrição: Funções Para impressão Semelhantes ao Clipper.
** Chamado..: Qualquer Módulo.
** Obs......: Substituir:
@ xx, yy Por Loc(xx,yy), Say String Por Say(String),
PROW() Por linatu e PCOL() Por colatu.
Todos os Comandos de Impressão Tipo CHR(15) Por #15.
*}
Unit Impressao;

Interface

Procedure Imprime(letra: Char);
Procedure Say(Texto: String);
Procedure Loc(lin, col: Integer);

Var
colatu, linatu: Integer;

Implementation

Procedure Imprime(letra: Char); assembler;
Asm
mov al, letra
mov ah, 02h
xor dx, dx
int 17h
and ah, 29h
xor ah, ah
int 17h
xor ax, ax
end;

Procedure Say(Texto: String);
Var
conta: Integer;
letra: Char;
Begin
For conta := 1 To Length(Texto) Do
Begin
letra := Texto[conta];
Case letra Of
´á´, ´à´, ´ã´, ´â´:
Imprime(´a´);
´Á´, ´À´, ´Ã´, ´Â´:
Imprime(´A´);
´ó´, ´õ´,´ô´:
Imprime(´o´);
´é´,´ê´:
Imprime(´e´);
´É´,´Ê´:
Imprime(´E´);
´Ó´, ´Õ´,´Ô´:
Imprime(´O´);
´í´:
Imprime(´i´);
´Í´:
Imprime(´I´);
´ú´:
Imprime(´u´);
´Ú´:
Imprime(´U´);
´ç´:
Imprime(´c´);
´Ç´:
Imprime(´C´);
´º´:
Imprime(´a´);
Else
Imprime(letra);
End;
Inc(colatu);
End;
End;

Procedure Loc(lin, col: Integer);
Var
conta: Integer;
Begin
If lin > linatu Then
Begin
For conta := 1 To (lin - linatu) Do
Imprime(#10);
linatu := lin;
colatu := 0;
End;
//*
If col > colatu Then
For conta := 1 To (col - colatu) Do
Imprime(´ ´)
Else
For conta := 1 To (colatu - col) Do
Imprime(#8);
colatu := col;
End;

End.


Loc( 01, 10 ); Say ( ´Teste de impressão´ )

Loc( Linha, Coluna ); Say ( Texto )


Está ai, espero ter ajudado

porem nao funciona em XP pq a interrupção int 17h nao funciona no XP, sei la deus pq e nao consegui resolver

espero ter te ajudado


pra usar


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar