Ayuda para un programa

Laurita
14 de Octubre del 2004
Hola, necesito ayuda, pq kiero empezar un programilla pero no se muy bien como, lo que kiero hacer es un programa que cada 10 seg por ejemplo me saque una frase q yo kiera durante un periodo de tiempo y vuelva a desaparecer, pero q la saque sobre la aplicacion sobre la q estes funcionando en ese momento.

Gracias por ayudarme y un saludo a tod@s

-zeros Metalium
14 de Octubre del 2004
Tenes nombre de chica linda asi que te voy a alludar.
Tenes que hacer un residente en memoria. Esto es, un programa que al terminar deje en memoria parte de su codigo.
USando Turbo C++ es relativamente facil. Solamente tenes que acerte mano de la instruccion KEEP que te termina el programa y te lo deja residente en memoria.
Su prototipo es:
void keep(unsigned char estado,unsigned tamaño_mem_en_párrafos)
Y la forma mas facil de usarla es:
keep(0, (_SS + (_SP/16) - _psp));
Que termina el programa y lo eja ENTERO residente en memoria. Te aconsejo usar el modelo Tiny o sSmall de memoria.
Para ejecutar este programa o una parte de el, tenes que interceptar una interrucpion del timer que es la int 8 que se produce cada tick de reloj (algo asi como 18 veces por segundo)
Para esto tenes que salvar el vector de interrucion 8 con getvec(8) asi
interrup void (*viejaint)();
...
viejaint = getvect(8);
y Registrar el nuevo asi:
interrupt miint8 () {
/*
Mi programa va aqui...
*/
viejaint(); /* Llamamos a la vieja int 8 INDISPESABLE */
}
...
setvect(8, miint8);
Asi que te quedaria algo asi:
...
viejaint = getvect(8´);
setvect(8, miint8);
keep(0, (_SS + (_SP/16) - _psp);
...
Hay muchisima mas informacion y un tutorial para bajar en:
http://www.arrakis.es/~ppriego/softpaco/tsr.htm
Si no entedes algo pregunta aca y estaremos encantados de contestarte... (bueno siempre que podamos...)

Suerte.