|
Pers.narod.ru. Программы. 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
|
|