home *** CD-ROM | disk | FTP | other *** search
-
- #include <h_graph.h>
- #include <conio.h>
- #include <dos.h>
-
- int h_isherc()
- {
- union REGS reg;
- char save_byte;
- extern char far *h_p;
- reg.h.ah=15;
- int86(16,®,®);
- if(reg.h.al!=7) return(-1);
- save_byte=*(h_p+65535);
- h_p=H_MEMLOC;
- *(h_p+65535)=170;
- if(*(h_p+65535)!=170) return(1);
- *(h_p+65535)=85;
- if(*(h_p+65535)!=85) return(1);
- *(h_p+65535)=save_byte;
- return(0);
- }
-
- int h_init(mode)
- int mode;
- {
- extern int h_vpage,h_apage,h_xpos,h_ypos;
- extern int h_pmode,h_vmode,h_color,h_start;
- extern int h_xmax,h_xmin,h_ymax,h_ymin;
- extern char far *h_p;
- char text[]={97,80,82,15,25,6,25,25,2,13,11,12,0,0,0,0};
- char graph[]={53,45,46,7,91,2,87,87,2,3,0,0,0,0,0,0};
- char *ptr;
- unsigned i;
- union REGS reg;
- outp(MODEPORT,((h_vmode==99)?2:0));
- ptr=((mode==99)?graph:text);
- reg.h.ah=0;
- reg.h.al=((mode==99)?6:7);
- int86(0x10,®,®);
- outp(MODEPORT,((mode==99)?2:0));
- for(i=0;i<16;i++)
- {
- outp(ADDRPORT,i);
- outp(DATAPORT,*(ptr+i));
- }
- h_vpage=h_apage=h_xmin=h_ymin=h_ypos=h_xpos=h_pmode=h_start=0;
- h_vmode=((mode==99)?99:7);
- h_xmax=719;
- h_ymax=347;
- if(mode==99)
- {
- for(i=0;i<65535;i++) *(h_p+i)=0;
- }
- h_color=1;
- outp(MODEPORT,((mode==99)?10:8));
- return(h_vmode);
- }
-
-
- int h_setvpage(page)
- int page;
- {
- extern int h_vpage;
- extern int h_vmode;
- int old_page;
- if(h_vmode==99)
- {
- outp(MODEPORT,10+((page==1)?128:0));
- }
- old_page=h_vpage;
- h_vpage=page;
- return(old_page);
- }
-
-
- void h_onoff(on)
- int on;
- {
- extern int h_vmode;
- extern int h_vpage;
- outp(MODEPORT,((on)?8:0)+((h_vpage==1)?128:0)+((h_vmode==99)?2:0));
- }
-
- int m_init(buttons)
- int *buttons;
- {
- union REGS reg;
- reg.x.ax=0;
- int86(0x33,®,®);
- *buttons=reg.x.bx;
- return(reg.x.ax);
- }
-
- void m_cursor(on)
- int on;
- {
- union REGS reg;
- reg.x.ax=((on)?1:2);
- int86(0x33,®,®);
- }
-
-