Make a Continous Clock in Turbo C++
This code uses the Video Display Unit (VDU) Concept. this program can compiled and executed on DOS mode (I used Turbo c++ 2.0 compiler) On execution It gives a continue clock at Right-Below corner. After execution It gives promp again to you but clock continues untill you terminate the Dos screen.
AI
Resumen de IA: This codebase represents a historical implementation of the logic described in the metadata. Our preservation engine analyzes the structure to provide context for modern developers.
Código fuente
// Author : Shyam Sunder Verma // MLVT Institute Bhilwara // Rajasthan University Jaipur // " http://www.geocities.com/ssv445 " // [email protected] //[email protected] // The source code is copyright of author. it can be modified and used. but it should not be provided on web links. //you can have the link of this page on your web page. // This is the program by which you can have a paralle clock in Turbo C++2.0 editor // Follow the below guidelines to run programs // 1. Compile and Make this program under Turbo C++ // 2. Now go to dos shell and run Exe file of the same Program. // 3. Now type exit.(exit only from dos Shell) //Notes-- You have to each time run it manually. // for any comment or query mail me -- shyam #include <stdio.h> #include <dos.h> #include <conio.h> #include<string.h> #include<stdlib.h> char far *v; char far *vidmem=(char far*)0xB8000000; char str1[50]="Shyam Sunder Verma-->>",strt[10]="shyam"; //----------------------------------------------------------------- void putChar(int r,int c,char ch); void putString(int r,int c,char *ch); //----------------------------------------------------------------- #define INTR 0X1C /* The clock tick interrupt */ #ifdef __cplusplus #define __CPPARGS ... #else #define __CPPARGS #endif void interrupt ( *oldhandler)(__CPPARGS); struct time t; void interrupt handler(__CPPARGS); class Clock { public: unsigned int h,m,s; float hd; Clock() { gettime(&t); h= t.ti_hour; m=t.ti_min; s=t.ti_sec; hd=t.ti_hund; putString(24,1,"Shyam Sunder Verma"); oldhandler = getvect(INTR); setvect(INTR, handler); //Print(); } void Start() { } ~Clock() { // setvect(INTR, oldhandler); } void Next() { hd+=(100/19.2); if(hd>99) { hd=0; s++; if(s>59) { s=0; m++; if(m>59) { h++; m=0; if(h>23) { h=0; } } } Print(); } } void Print() { putString(24,60,"________________"); strcpy(str1,"SSV : ["); strcat(str1,itoa(h,strt,10)); strcat(str1,":"); strcat(str1,itoa(m,strt,10)); strcat(str1,":"); strcat(str1,itoa(s,strt,10)); strcat(str1,"]"); putString(24,60,str1); } }; Clock clk; void interrupt handler(__CPPARGS) { /* call the old routine */ clk.Next(); oldhandler(); } void main() { clrscr(); printf("Starting Continue Clock... "); delay(2000); clrscr(); delay(2000); } //--------------------------------------------------------------- inline void putChar(int r,int c,char ch) { r%=25; c%=80; v=vidmem+r*160+c*2; *v=ch; v++; *v=(char)78; } void putString(int r,int c,char *ch) { for(;*ch;ch++) putChar(r,c++,*ch); }
Comentarios originales (3)
Recuperado de Wayback Machine