home *** CD-ROM | disk | FTP | other *** search
- #include <dos.h>
- union REGS regs;
- int page,limline,step;
- clear()
- {
- regs.x.ax=0x0600;
- regs.x.bx=0x0700;
- regs.x.cx=0;
- regs.x.dx=24*256+79;
- int86(0x10,®s,®s);
- }
- setcursor(y,x)
- int y,x;
- {
- regs.x.ax=0x0200;
- regs.x.dx=y*256+x;
- regs.x.bx=0;
- int86(0x10,®s,®s);
- }
- fetch()
- {int t;
- for(;;) {
- regs.x.ax=0;
- int86(0x16,®s,®s);
- t=regs.x.ax & 0x00ff;
- if (t!=0) break; }
- return(t);
- }
- putch(ch)
- int ch;
- {
- regs.x.ax=ch;
- regs.x.ax=regs.x.ax+256*9;
- regs.x.bx=7;
- regs.x.cx=1;
- int86(0x10,®s,®s);
- }
- inputp(lm,ls)
- int lm,ls;
- { int ch,m1,m2,m3,p=0;
- int zm[3];
- setcursor(lm,ls);
- m1='0'; m2='9';
- ch=fetch();
- while ((ch!=13)&&(p<2))
- {
- if ((ch>=m1)&&(ch<=m2)) { printf("%c",ch); zm[p]=ch-m1;
- p++; }
- else printf("\7");
- ch=fetch();
- }
- if ((ch==13)&&(p==0)) return(0);
- m3=0;
- for(m1=0; m1<=p-1; m1++) m3=10*m3+zm[m1];
- return(m3);
- }
- upmove(y1,y2,m)
- int y1,y2,m;
- {
- regs.x.ax=6*256+m;
- regs.x.cx=y1*256;
- regs.x.dx=y2*256+79;
- regs.x.bx=0x0700;
- int86(0x10,®s,®s);
- regs.x.ax=0x0f00;
- int86(0x10,®s,®s);
- page=regs.x.bx & 0xff00;
- }
-
- downmove(y1,y2,m)
- int y1,y2,m;
- {
- regs.x.ax=7*256+m;
- regs.x.cx=y1*256;
- regs.x.dx=y2*256+79;
- regs.x.bx=0x0700;
- int86(0x10,®s,®s);
- regs.x.ax=0x0f00;
- int86(0x10,®s,®s);
- page=regs.x.bx & 0xff00;
-
- }
- /*getchb()
- { int t,m;
-
- regs.x.ax=0;
- int86(0x16,®s,®s);
- t=regs.x.ax & 0x00ff;
- m=(regs.x.ax-t)/256;
- if (t!=0) return(t);
- return(m+200);
- } */
- judge()
- {
- regs.x.ax=0xf00;
- int86(0x10,®s,®s);
- page=regs.x.bx & 0xff00;
- step=regs.x.ax & 0x00ff;
- if (step<=3) limline=25; else limline=10;
- }
- getcursor(x,y)
- int *x,*y;
- {
- regs.h.ah=3;
- regs.h.bh=0;
- int86(0x10,®s,®s);
- *x = regs.h.dh;
- *y = regs.h.dl;
- }