#include #include #include #include #include #include #include "vidlib.h" void L40set(void); int _select_scanline_count(int scans) { if ((scans != 200)&&(scans != 350)&&(scans != 400)) return(0); _AH=0x12; _AL=(unsigned char)scans; geninterrupt(0x10); return(_AL); } int _select_character_points(int points) { if ( points == 16 ) { _AX=0x1114; _BL=0; geninterrupt(0x10); return(1); } if ( points == 14 ) { _AX=0x1111; _BL=0; geninterrupt(0x10); return(1); } if ( points == 8 ) { _AX=0x1112; _BL=0; geninterrupt(0x10); return(1); } return(0); } int Textmode(int lines) { _select_scanline_count(400); VGAmode(3, NULL); /* default to 25 */ switch (lines) { case 25: break; /* already 25 */ case 28: _select_character_points(14); break; case 33: L33set(); BIOScrtbuflen=0x2000; /* allow 8k pages */ break; case 40: L40set(); BIOScrtbuflen=0x4000; /* allow 16k pages */ break; case 50: _select_character_points(8); break; } return(BIOScrtrows+1); }