Untitled
#include <dos.h> // Библиотека за работа с прекъсвания на BIOS #include <string.h> // Функция за изпращане на байт към принтера void send_byte_to_printer(char byte, int lpt_port) { union REGS regs; regs.h.ah = 0x00; // Функция 00h: Изпраща байт към принтера regs.h.al = byte; // Символ за печат regs.x.dx = lpt_port; // Номер на LPT порта (0 за LPT1, 1 за LPT2 и т.н.) int86(0x17, ®s, ®s); // Прекъсване 17h } // Функция за изпращане на ред текст void send_string_to_printer(const char *str, int lpt_port) { while (*str) { send_byte_to_printer(*str, lpt_port); str++; } } // Основна програма 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"; // Печат на редовете с различни шрифтови настройки send_string_to_printer(large_font, lpt_port); send_string_to_printer(student_name, lpt_port); send_string_to_printer(condensed_font, lpt_port); send_string_to_printer(student_number, lpt_port); send_string_to_printer(normal_font, lpt_port); send_string_to_printer(date, lpt_port); return 0; }
Leave a Comment