작은 램상주 프로그램입니다.
개발환경은 DOS의 TURBO-C v2.0 또는 Borland-C v3.x 입니다.
Interrupt vector 0x1c(Timer) 를 가로채어 주기적으로 화면에 표시하며
램에 상주시키기 위해서 keep function 으로 해당 Vector function 영역을 reserve 시키는 것이 이 소스의 구성입니다.
| 코드: |
| #include<dos.h> #include<string.h> #include<conio.h> #include<stdlib.h> #define INTERRUPT 0x1C void interrupt far (*old_handler)(void); void interrupt Interrupt(void); void PutLogoDisplay(void); char logomunja[80]; char munjax; char count; void main(char argc,char *argv[]) { if(argc>1) { strcpy(logomunja,"[ "); strcat(logomunja,argv[1]); strcat(logomunja," ]"); } else strcpy(logomunja,"[ code by minzkn ]"); munjax=80-strlen(logomunja); old_handler=getvect(INTERRUPT); setvect(INTERRUPT,Interrupt); keep(NULL,_SS+(_SP/16)-_psp); } void interrupt Interrupt(void) { old_handler(); PutLogoDisplay(); } void PutLogoDisplay(void) { long xcount=(long)munjax; count=NULL; while(count<strlen(logomunja)) { *((unsigned char far *)0xB8000000L+(xcount*2L) )=logomunja[count++]; *((unsigned char far *)0xB8000000L+(xcount*2L)+1L)=YELLOW+(BLUE*0x10); xcount++; } } |



글
댓글을 달아 주세요
댓글 RSS 주소 : http://blog.minzkn.com/rss/comment/166댓글 ATOM 주소 : http://blog.minzkn.com/atom/comment/166