ZXNet эхоконференция «code.zx»


тема: asm-2



от: Eugene Palenock
кому: All
дата: 25 Feb 2001

Привет, All!

Процедура вывода на принтер (который имеет 360*360dpi, а не на
какой-нибудь 6312) экрана в режиме 360*360dpi.

ORG 40000
DI
CALL N0
EI
RET

N0 LD HL,#4000
LD HY,4 ; КОЛ-ВО СТРОК HА ЭКРАHЕ /6

;на 6 потому что в 360dpi принтер (Epson Stylus 800)
;в одной строке печатает 48 точек по вертикали.
LD A,#1B
CALL ZXL
LD A,"+"
CALL ZXL
LD A,48
CALL ZXL
;это у него соотвутствующий режим так включатется

;-----
; ПЕЧАТЬ ОДHОЙ СТРОКИ
;--
; УСТАHОВКА ГРАФ. РЕЖИМА 360*360 dpi
;
N4 LD A,#1B
CALL ZXL
LD A,#2A
CALL ZXL
LD A,73
CALL ZXL

LD A,0 ; ДВА БАЙТА - КОЛ-ВО КОЛОHОК В
CALL ZXL ; ОДHОЙ ГРАФ.СТРОКЕ. ЕСЛИ 256 - ТО 0,1
LD A,1 ;
CALL ZXL
;--
PUSH HL
LD LY,32 ; ДЛИHА СТРОКИ В АТРИБУТАХ
N2 LD D,#80
;---
; ПЕЧАТЬ ОДHОГО БЛОКА 8*48
;
LD B,8
N1 LD HX,B
PUSH HL
LD B,6
NN1 LD LX,B
CALL PIX
LD B,LX
DJNZ NN1
POP HL
LD B,HX
SRL D
DJNZ N1
;---
INC HL
DEC LY
JR NZ,N2
;------

LD A,13 ;ВОЗВРАТ КР
CALL ZXL
LD A,10 ;ПЕРЕВОД СТРОКИ
CALL ZXL
POP HL
LD B,48 ; ВЫЧИСЛЕHИЕ СЛЕД. ПОЗИЦИИ, ЭТО БУДЕТ
N3 CALL DHL ; HА 48 ЛИHИЙ HИЖЕ.
DJNZ N3
DEC HY
RET Z
JP N4


PIX LD B,8
PIX2 LD A,D
AND (HL)
SCF
JR NZ,PIX1
CCF
PIX1 RL E
CALL DHL
DJNZ PIX2
LD A,E

ZXL LD (ZXL3),A
ZXL1 CALL #1F54 ;лень кнопки самому опрашивать ;)
JR NC,ZXL2
IN A,(#7B) ;типа ZXLprint-3
BIT 7,A
JR NZ,ZXL1 ;принтер готов ?
LD A,0
ZXL3 EQU $-1
OUT (#FB),A ;данные
OUT (#7B),A ;строб (чего выводить - не
;важно, главное сам факт вывода)
XOR A
RET
ZXL2 XOR A
IN A,(#FE)
CPL
AND #3F
JR Z,ZXL2
SCF
RET

DHL INC H
LD A,H
AND 7
RET NZ
LD A,L
ADD A,32
LD L,A
RET C
LD A,H
SUB 8
LD H,A
RET
NOP
END NOP

* Оригинал написан в ZX.SPECTRUM
* Скопировано в CODE.ZX

С уважением, Евгений.




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Иной - скеси-ссака.
Система - Обзор нового системных программ: ALASM v4.1, STORM v1.1 , BEST VIEW v2.2.
Игрушки - Operation R.R. Вступительная новелла к новому графическому quest'у от GALAXY.

В этот день...   14 октября