home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a014 / 1.ddi / CDBINC.EXE / SYSTEM.C < prev    next >
Encoding:
C/C++ Source or Header  |  1992-11-09  |  1.9 KB  |  110 lines

  1. #include <dos.h>
  2. union REGS regs;
  3. int page,limline,step;
  4. clear()
  5. {
  6.  regs.x.ax=0x0600;
  7.  regs.x.bx=0x0700;
  8.  regs.x.cx=0;
  9.  regs.x.dx=24*256+79;
  10.  int86(0x10,®s,®s);
  11. }
  12. setcursor(y,x)
  13. int y,x;
  14. {
  15. regs.x.ax=0x0200;
  16. regs.x.dx=y*256+x;
  17. regs.x.bx=0;
  18. int86(0x10,®s,®s);
  19. }
  20. fetch()
  21. {int t;
  22.    for(;;) {
  23.    regs.x.ax=0;
  24.    int86(0x16,®s,®s);
  25.   t=regs.x.ax & 0x00ff;
  26.    if (t!=0) break; }
  27.   return(t);
  28. }
  29. putch(ch)
  30. int ch;
  31. {
  32.   regs.x.ax=ch;
  33.   regs.x.ax=regs.x.ax+256*9;
  34.   regs.x.bx=7;
  35.   regs.x.cx=1;
  36.   int86(0x10,®s,®s);
  37. }
  38. inputp(lm,ls)
  39. int lm,ls;
  40. { int ch,m1,m2,m3,p=0;
  41. int zm[3];
  42.     setcursor(lm,ls);
  43.     m1='0';  m2='9';
  44.         ch=fetch();
  45.     while ((ch!=13)&&(p<2))
  46.     {
  47.      if ((ch>=m1)&&(ch<=m2)) { printf("%c",ch); zm[p]=ch-m1;
  48.                                p++;  }
  49.                           else printf("\7");
  50.     ch=fetch();
  51.     }
  52.     if  ((ch==13)&&(p==0)) return(0);
  53.     m3=0;
  54.     for(m1=0; m1<=p-1; m1++) m3=10*m3+zm[m1];
  55.     return(m3);
  56. }
  57. upmove(y1,y2,m)
  58. int y1,y2,m;
  59. {
  60.  regs.x.ax=6*256+m;
  61.  regs.x.cx=y1*256;
  62.  regs.x.dx=y2*256+79;
  63.  regs.x.bx=0x0700;
  64.  int86(0x10,®s,®s);
  65.  regs.x.ax=0x0f00;
  66.  int86(0x10,®s,®s);
  67.  page=regs.x.bx & 0xff00;
  68. }
  69.  
  70. downmove(y1,y2,m)
  71. int y1,y2,m;
  72. {
  73.  regs.x.ax=7*256+m;
  74.  regs.x.cx=y1*256;
  75.  regs.x.dx=y2*256+79;
  76.  regs.x.bx=0x0700;
  77.  int86(0x10,®s,®s);
  78.  regs.x.ax=0x0f00;
  79.  int86(0x10,®s,®s);
  80.  page=regs.x.bx & 0xff00;
  81.  
  82. }
  83. /*getchb()
  84. { int t,m;
  85.  
  86.   regs.x.ax=0;
  87.   int86(0x16,®s,®s);
  88.   t=regs.x.ax & 0x00ff;
  89.   m=(regs.x.ax-t)/256;
  90.   if (t!=0) return(t);
  91.   return(m+200);
  92. } */
  93. judge()
  94. {
  95.   regs.x.ax=0xf00;
  96.   int86(0x10,®s,®s);
  97.   page=regs.x.bx & 0xff00;
  98.   step=regs.x.ax & 0x00ff;
  99.   if (step<=3) limline=25; else limline=10;
  100. }
  101. getcursor(x,y)
  102. int *x,*y;
  103. {
  104.    regs.h.ah=3;
  105.    regs.h.bh=0;
  106.    int86(0x10,®s,®s);
  107.    *x = regs.h.dh;
  108.    *y = regs.h.dl;
  109. }
  110.