Untitled
unknown
plain_text
a year ago
1.9 kB
7
Indexable
#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;
}
Editor is loading...
Leave a Comment