#include <dos.h>
#include <conio.h>
#include <stdio.h>
#include <time.h>
void interrupt (*oldTimer)(void);
void interrupt newTimer(void);
int running = 1;
void interrupt newTimer(void) {
if (kbhit()) { // Verifica si se ha presionado una tecla
char ch = getch();
if (ch == 27) { // Si se presiona la tecla ESC (código ASCII 27)
running = 0; // Cambia el estado para salir
}
}
}
void showTime() {
while (running) {
time_t now = time(NULL);
struct tm *local = localtime(&now);
printf("\rHora actual: %02d:%02d:%02d", local->tm_hour, local->tm_min, local->tm_sec);
delay(1000); // Espera 1 segundo
}
}
int main() {
oldTimer = getvect(0x1C); // Guarda el vector de interrupción anterior
setvect(0x1C, newTimer); // Establece el nuevo vector de interrupción
printf("Presiona ESC para cerrar el programa.\n");
showTime();
setvect(0x1C, oldTimer); // Restaura el vector de interrupción anterior
printf("\nPrograma cerrado.\n");
return 0;
}