Скачиваний:
34
Добавлен:
15.09.2014
Размер:
1.75 Кб
Скачать
# include <stdio.h>
# include <conio.h>
# include <dos.h>
# include <bios.h>
# include <string.h>
#pragma inline

void CLRSCR(int number)
{
	gotoxy(1,number+1);
	for (int i=0; i<80; i++)
	cprintf(" ");

}

void print_BIOS (char symbol)
{
_asm{
	mov  ah,02
	mov  dx,00
	int  17h
	test ah,01101001B
	jnz  ERROR
	mov  ah,00
	mov  al,symbol
	mov  dx,00
	int  17h
	}
	return;
	ERROR:
	clrscr();
	gotoxy(1,1);
	cprintf("ERROR");
       }

void run_BIOS()
{
_asm{
	mov  ah,02
	mov  dx,00
	int  17h
	test ah,01101001B
	jnz  ERROR
	mov  ah,01
	mov  dx,00
	int  17h
	}
	return;
	ERROR:
	clrscr();
	gotoxy(1,1);
	cprintf("ERROR");

}

void print_DOS (char symbol)
{
_asm{
	mov  ah,05
	mov  dl,symbol
	int 21h
	}
}

void print_endl_DOS()
{
	print_DOS('\x0A');
}

void run_DOS()
{
print_DOS('\x0C');
}

void print_String(char*buffer, int flag)
{
	if (flag)
	{
		for (int i=0; i<strlen(buffer); i++)
		{
			print_DOS(buffer[i]);
		}
	}
	else
	{
		for (int i=0; i<strlen(buffer); i++)
		{
			print_BIOS(buffer[i]);
		}
	}
}

int main()
{
	char buffer[256];
	clrscr();
	while(1)
	{
	CLRSCR(0);
	gotoxy(1,1);
	cprintf("INPUT: ");
	gets(buffer);
	gotoxy(1,6);
	cprintf ("1.Exit\n\r2.Perevod stroki DOS\n\r");
	cprintf("3.Progon DOS\n\r4.Vivod str DOS\n\r");
	cprintf("5.Vivod str BIOS\n\r6.Progon BIOS");


		switch(getch())
		{

		case '1':
		return 0;

		case '2':
		{
		print_endl_DOS();
		break;
		}
		case '3':
		{
		run_DOS();
		break;
		}
		case '4':
		{
		print_String(buffer,1);
		break;
		}
		case '5':
		{
		print_String(buffer,0);
		break;
		}
		case '6':
		{
		run_BIOS();
		break;
		}
		}

    }
return 0;
}