Untitled
#include <dos.h> // Библиотека за работа с прекъсвания на BIOS #include <string.h> // Функция printetext за изпращане на текст към принтера void printetext(const char *text, const char *font_code, int lpt_port) { // Изпраща управляващия код за шрифта while (*font_code) { union REGS regs; regs.h.ah = 0x00; // Функция 00h: Изпраща байт към принтера regs.h.al = *font_code; // Символ за печат (управляващ код) regs.x.dx = lpt_port; // Номер на LPT порта (0 за LPT1, 1 за LPT2 и т.н.) int86(0x17, ®s, ®s); // Прекъсване 17h font_code++; } // Изпраща текста while (*text) { union REGS regs; regs.h.ah = 0x00; // Функция 00h: Изпраща байт към принтера regs.h.al = *text; // Символ за печат regs.x.dx = lpt_port; // Номер на LPT порта int86(0x17, ®s, ®s); // Прекъсване 17h text++; } } // Основна програма int main() { // Номер на LPT порта (0 за LPT1) int lpt_port = 0; // Управляващи кодове за шрифтове const char *large_font = "\x1B\x47"; // Уголемен шрифт (ESC G) const char *condensed_font = "\x1B\x4D"; // Кондензиран шрифт (ESC M) const char *normal_font = "\x1B\x50"; // Нормален шрифт (ESC P) // Данни за печат const char *student_name = "Иван Иванов\n"; const char *student_number = "123456789\n"; const char *date = "21.01.2025\n"; // Печат на редовете с различни шрифтови настройки printetext(student_name, large_font, lpt_port); // Име с уголемен шрифт printetext(student_number, condensed_font, lpt_port); // Факултетен номер с кондензиран шрифт printetext(date, normal_font, lpt_port); // Дата с нормален шрифт return 0; }
Leave a Comment