ZX Review #11-12
26 ноября 1997

Форум - Конверсия цветной спектрумовской картинки на IBM. Конверсия ч/б картинки с IBM на ZX Spectrum.

<b>Форум</b> - Конверсия цветной спектрумовской картинки на IBM. Конверсия ч/б картинки с IBM на ZX Spectrum.

           *   *   *

            HELLO!!!
   Пишут вам  Max  &  Alex  from
"CYBERAX Software" (г.Кемерово).
   После долгого перерыва мы по-
лучили 3-4 номера ZX-РЕВЮ. Приз-
наемся, нас не очень  обрадовала
электронная форма  журнала, хотя
мы и не владельцы кассетных Спе-
ктрумов: печатную версию  намно-
го легче читать (можно даже  чу-
ток всхрапнуть, прикрыв лицо лю-
бимым  журналом...)  и   намного
проще набирать из  нее  листинги
программ (кстати, раз уж вы  пе-
решли на  электронную  форму, то
почему бы  вам  не  прилагать  к
журналу текстовые  файлы  проце-
дур из статей  в  форматах  рас-
пространенных  ассемблеров, нап-
ример, MASM, ZEUS, XAS и др.???)

   За время отсутствия журнала у
нас накопилось большое  количес-
тво процедур, частью которых  мы


хотели бы поделиться с читателя-
ми ZX-РЕВЮ.
   Первая процедура предназначе-
на для конверсии  цветной  спек-
трумовской картинки на IBM.  Ре-
зультатом ее работы является 16-
цветная картинка 256*192 точки в
формате BMP, которую затем  мож-
но перенести в MS-DOS любым  со-
ответствующим копировщиком  (IS-
DOS Copy, IBMCOPY и т.д.)
   Полученную картинку можно за-
грузить в любой графический  ре-
дактор на IBM, распечатать  (на-
пример,  на  цветном  принтере),
преобразовать и т.п.
   Теперь сама процедура:
140.
        ORG 35000
        LD HL,HEADER
        LD DE,PIC
        LD BC,120
        LDIR
        LD HL,PIC+24566
        LD (LINE),HL
        LD A,192
        LD (YS),A
        LD HL,16384
        LD (SCADR),HL
MAIN    LD B,32
CYCLE   LD HL,(SCADR)
        LD C,(HL)
        LD A,H
        SRL A
        SRL A
        SRL A
        OR 88
        LD H,A
        LD A,(HL)
        LD (ATR),A
        LD D,4
LOOP    SLA C
        PUSH DE
        CALL PSET
        POP DE
        LD E,A
        SLA E
        SLA E
        SLA E
        SLA E
        SLA C
        PUSH DE
        CALL PSET
        POP DE
        OR E
        LD HL,(LINE)
        LD (HL),A
        INC HL
        LD (LINE),HL
        DEC D
        JR NZ,LOOP
        LD HL,(SCADR)
        INC HL
        LD (SCADR),HL
        DJNZ CYCLE
        LD HL,(LINE)
        LD DE,256
        OR A
        SBC HL,DE
        LD (LINE),HL
        LD HL,(SCADR)
        LD DE,32
        OR A
        SBC HL,DE
        INC H
        LD A,H
        AND 7
        JR NZ,DCONT
        LD A,L
        ADD A,32
        LD L,A
        JR C,DCONT
        LD A,H
        SUB 8
        LD H,A
DCONT   LD (SCADR),HL
        LD A,(YS)
        DEC A
        LD (YS),A
        JP NZ,MAIN
        RET
PSET    JR NC,PAPER
        LD A,(ATR)
        LD E,A
        AND 7
        LD D,A
        LD A,E
        AND 64
        RRCA
        RRCA
        RRCA
        OR D
        LD H,0
        LD L,A
        LD DE,TABLE
        ADD HL,DE
        LD A,(HL)
        RET
PAPER   LD A,(ATR)
        AND 120
        RRCA
        RRCA
        RRCA
        LD H,0
        LD L,A
        LD DE,TABLE
        ADD HL,DE
        LD A,(HL)
        RET
LINE    DW 0
SCADR   DW 0
YS      DB 0
ATR     DB 0
TABLE   DB 0,4,1,5,2,6,3,7,0
        DB 12,9,14,10,14,11,15
PIC     EQU 40704
HEADER  DW #4D42,#6076,#0000,#0000
        DW #0000,#0076,#0000,#0028
        DW #0000,#0100,#0000,#00C0
        DW #0000,#0001,#0004,#0000
        DW #0000,#6000,#0000,#0ECE
        DW #0000,#0EC4,#0000,#0000
        DW #0000,#0000,#0000,#0000
        DW #0000,#0000,#0080,#8000
        DW #0000,#8000,#0080,#0080
        DW #0000,#0080,#0080,#8080
        DW #0000,#C0C0,#00C0,#8080
        DW #0080,#0000,#00FF,#FF00
        DW #0000,#FF00,#00FF,#00FF
        DW #0000,#00FF,#00FF,#FFFF
        DW #0000,#FFFF,#00FF,#0000
2
   Теперь о том, как пользовать-
ся процедурой: ассемблируете ее,
загружаете  спектрумовскую  кар-
тинку на экран с адреса 16384  и
запускаете процедуру. После это-
го в памяти с адреса  40704  со-
держится блок длиной 24694 байт,
который нужно будет  скопировать
в MS-DOS с расширением BMP.

   Вторая  процедура   выполняет
обратную задачу  -  конвертирует
черно-белую картинку  с  IBM  на
SPECTRUM  (256*192  точки, длина
6206 байт, расширение  BMP), ес-
тественно, предварительно  пере-
несенную в TR-DOS.
   Вот ее листинг:
140.
        ORG     40000
        LD      C,192
        LD      HL,PIC+6174
        LD      DE,16384
LP1     PUSH    HL
        PUSH    DE
        LD      B,32
LP2     LD      A,(HL)
        LD      (DE),A
        INC     HL
        INC     DE
        DJNZ    LP2
        POP     DE
        POP     HL
        LD      A,L
        SUB     32
        LD      L,A
        LD      A,H
        SBC     A,0
        LD      H,A
        INC     D
        LD      A,D
        AND     7
        JR      NZ,C1
        LD      A,E
        ADD     A,32
        LD      E,A
        JR      C,C1
        LD      A,D
        SUB     8
        LD      D,A
C1      DEC     C
        JR      NZ,LP1
        RET
PIC     EQU     45000
2
   Ассемблируете ее, грузите ис-
ходную картинку с адреса  45000,
запускаете процедуру и  получае-
те  на  экране  конвертированное
изображение в формате  Спектрума
(увы, без атрибутов...)

          ────────────



Другие статьи номера:

Авторская разработка - С.Зонов, А.Ларченко. О контроллере SMUC (HDD и IBM периферия).

Компьютерная новелла - Воины Звезд (по игре Shadowfire).

Новые программы - Обзор Digital Studio v1.12, Digital Studio Compiler v1.01

Новые программы - Обзор Xas редактор-ассемблер 128К (v5.05).

Новые программы - Обзор Музыкального редактора Instrument v3.01

Новые программы - Обзор программ FASTzasm и @-zasm.

Новые программы - Обзор программы No Kempston.

Профессиональный подход - Алгоритмы построения и прохождения Лабиринтов.

Смех без причины... - Материалы из юмористического журнала SpectrofUn.

Советы экспертов - Игра FEUD.

Советы экспертов - Игра Killed Until Dead.

Советы экспертов - Игра War in Middle Earth.

Форум - Конверсия цветной спектрумовской картинки на IBM. Конверсия ч/б картинки с IBM на ZX Spectrum.

Форум - О русификации игровых программ.

Форум - Программа детекта эмулятора.

Форум - Процедура "цветные полосы на бордюре". Снижение шума FDD.

Форум - Процедура перевода числа в десятичный вид. Процедура - сканер пароля.

Форум - Снятие защиты Microprotector'а.

Форум - Эмуляторы, которые мы выбираем: 'UKV Spectrum Debugger', 'Z80TRDOS'.

Читатель-читателю - Драйвер ввода в режимах последовательного и прямого доступа из файлов системы TR-DOS.

Этюды - Графический эффект "плазма 2".

Этюды - Графический эффект "плазма 2".

Этюды - Графический эффект "плазма".

Этюды - Полезные советы. Быстрая переброска экрана.

Этюды - Ремейк процедур 93 года.

Этюды - Эффект "пламя".


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

Похожие статьи:
Электронное письмо - Письма читателей : Наблюдения по играм "LAST NINJA 2" и "LAST BATTLE". Опыт эксплуатации дисковода 3.5'.
Соб@CHATник - здравcтвуйте cоcеди, земляки ...
Marsms - Компиляции: Космополит, Земляне, Онанизм, О, Vel, любимый, Чистота.
Хит-Парад - Десятка самых популярных программ в Чайковском.
Поэзия - Стихи от Broom'а.

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