Nickolay.info. Программы. Assembler. Утилитка инициализации принтера ESC-кодами |
Утилитка инициализировала принтер ESC-кодами, была нужна во времена DOS и матричных принтеров вроде LQ-100 :)
; Посылает байты на принтер: Bytes[KolBytes] ; ESC,N,0 - установить нижний край 0 для непр. листа cseg segment para public 'code' assume cs:cseg,ds:cseg org 100h main: jmp begin BadMess db 'Printer not ready!',13,10,36 OkMess db 'Bytes sended!',13,10,36 KolBytes dw 3 Bytes db 27,'N',0 Printer dw 0 TestPrn proc near ;Возвращает -1 в AX случае ошибки или номер принтера в случае успеха mov ah,1; mov dx,0; mov cx,2; TEST_PORT: int 17h; cmp ah,010h; je OK; cmp ah,090h; je OK; inc dx; loop TEST_PORT; mov ax,-1; ret OK: mov ax,dx; ret TestPrn endp; SendByte proc near ;байт AL на принтер mov ah,0; mov dx,Printer; int 17h; ret SendByte endp; begin: call TestPrn; cmp ax,-1; je OUT_PROGRAM; mov Printer,ax; mov cx,KolBytes; mov si, Bytes; SEND: lodsb call SendByte; loop SEND lea dx,OkMess mov ah,9 int 21h retn OUT_PROGRAM: lea dx,BadMess mov ah,9 int 21h retn cseg ends end main
гостевая; E-mail |