Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.09.2010, 00:07   #1
Absolut
Новичок
Джуниор
 
Регистрация: 12.09.2010
Сообщений: 1
По умолчанию Программа проверки вывода символов и цвета на принтер

Доброго времени суток .
вот хотел запрограмировать на ассемблере програмку которая будет тестировать принтер ( выводить разные символы и цвета)на принтер. Помогите пожалуйста если кто знает как . Вот в книге нашол текст програмы, вот только ничего не получается

Код:
 .MODEL SMALL
             .STACK 100h
             .DATA
          Message  DB 'Привет!',13,10,'$'
          Message_Length EQO $ - Message
             .CODE
             mov    ax,@Data
             mov    ds,ax                
                                         
             mov    ah,40h               
                                         
             mov    bx,4                 
             mov    cx,Message_Length    
             mov    dx,OFFSET Message    
             int    21h                  
             mov    ah,4ch               
                                         
             int    21h                  
             END

Последний раз редактировалось Stilet; 13.09.2010 в 10:49.
Absolut вне форума Ответить с цитированием
Старый 13.09.2010, 10:36   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

не компилируется или что?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.09.2010, 11:08   #3
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию

Не работает она. И не должна, потому как не понятно что за хендл такой - 4 передается. Если уж и пользоваться 40h функцией для вывода строки на девайс (CON), то надо этот девайс (CON) сперва открыть на чтение/запись.
Если выводить что-то на принтер, нужно открывать LPT.

UPD: Нашел ссылку на первоисточник: http://www.codenet.ru/progr/asm/tasm/4.php . Странно, действительно там афтор прям заявляет что 4 - это хендл принтера, 1 - стандартного вывода. И код как выше. Но имхо, автор все равно гонит, ибо Ральф Браун ничо про стандартные хендлы-константы не знает, да и сомневаюсь что можно вот так вот взять и писать что-то в какое-то устройство без его (устройства) открытия. Ща еще кое-где посмотрю конечно, но...

UPD2: Хм, был не прав. Действительно:
Код:
0000H  Standard Input Device  (usually the keyboard)
0001H  Standard Output Device (usually the screen)
0002H  Standard Error Device  (always CON--the screen.  Use for messages)
0003H  Standard AUX Device    (AUX first serial port--COM1)
0004H  Standard Printer       (PRN first parallel printer port--LPT1)
При этом:
Код:
Standard handles are automatically opened when your program starts
Тоесть они автоматически открыты когда программа запускается.

Тогда, в принципе, вышеуказанная программа должна работать, то-есть печатать строку на принтер. При условии наличия поддержки печати из доса у принтерных драйверов.
Чтобы понять рекурсию, сперва нужно понять рекурсию.

Последний раз редактировалось Tronix; 13.09.2010 в 11:30.
Tronix вне форума Ответить с цитированием
Старый 13.09.2010, 12:43   #4
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

А принтер у вас матричный, Epson-совместимый на уровне команд?
Я думаю что нет. Скорее всего у вас струйник, если пытаетесь тестировать цвета. Так вот. 99% всех струйников и лазерников не поддерживают вывод на печать в старом ДОС-виде. Так что вывести на печать, на таком принтере, вы сможете только при помощи Windows API либо специального драйвера печати типа Dosprint.
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа проверки на битые пиксели Hunter557 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 30.01.2011 19:12
Изменение цвета символов по умолчанию bud-dy Microsoft Office Excel 2 11.02.2010 14:57
программа нахождения и проверки символов/строк MixanMM Общие вопросы Delphi 14 09.07.2009 08:44
Ограничение вывода символов на 1 строку *serzh* PHP 3 23.06.2009 13:32
Программа ввода и вывода последовательности символов(Assembler) WST Помощь студентам 1 01.04.2008 12:33