hola denuevo
bueno les comento que me meti en camisa de 11 baras me refiero esuqe tengo que hacer un programa pra ralentizar un equipo AT con el dma bueno eso es lo facil pero lo dificil es que tengo que programarlo de tal forma que pueda utilizar cualquier de las metodologias me refiero a
dma modo rafaga
dma modo robo de ciclo
por fa les suplico les imploro (y es enserio lo necesito urgente par arqui. del computador)bueno sin mas les mando parte del codigo que tengo.
#include <dos.h>
#include <string.h>
void
dmacnt(), dmako3(), dmako7(), dmaok3(), dmaok7();
void main(int argc, char **argv)
{
unsigned nivel;
printf ("\nDMAKO 1.1 + AT-Ralentizador por DMA © 1992 CiriSOFT");
if ((peekb(0xF000,0xFFFE)!=-4) && (peekb(0xF000,0xFFFE)!=-8)) {
printf("\n Este programa necesita máquina AT o superior\n");
exit (1);
}
if ((argc<2) || ((nivel=atoi(argv[1]))>3)) {
printf("\n ");
printf("Indicar nivel de freno (1, 2 ó 3) ó 0 para acelerar.\n");
exit (2);
}
dmacnt();
if (nivel==1) {
dmaok3(); dmaok7(); dmako7();
printf ("\n Ralentización moderada activa.\n");
}
else if (nivel==2) {
dmaok3(); dmaok7(); dmako3();
printf ("\n Ralentización elevada activa.\n");
}
else if (nivel==3) {
dmako3(); dmako7();
printf ("\n Ralentización máxima activa.\n");
}
else {
dmaok3(); dmaok7();
printf ("\n Ralentización desactivada.\n");
}
}
void dmacnt()
{
outportb(0x07, 0xFF); /* cuenta del canal 3 a 0xFFFF */
outportb(0x07, 0xFF);
outportb(0xCE, 0xFF); /* cuenta del canal 7 a 0xFFFF */
outportb(0xCE, 0xFF);
}
void dmako3 (void)
{
outportb (0x0B, 0x5B); /* canal 3: autoinic., read */
outportb (0x0A, 3); /* desenmascarar */
}
void dmaok3 (void)
{
outportb (0x0A, 7); /* enmascarar */
outportb (0x0B, 0x43); /* canal 3: modo normal */
}
void dmako7 (void)
{
outportb (0xD6, 0x5B); /* canal 7: autoinic., read */
outportb (0xD4, 3); /* desenmascarar */
}
void dmaok7 (void)
{
outportb (0xD4, 7); /* enmascarar */
outportb (0xD6, 0x43); /* canal 7: modo normal */
}
Velocidad estimada
tras la ejecución
de DMAKO.C en un
AT 386-25. Datos
calculados con el
test de LANDMARK
Les agradesco de antemano cualquier colaboracion
porfa ayudenme
jorge