ZX Review
#11-12
26 ноября 1997 |
|
Форум - Конверсия цветной спектрумовской картинки на 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, запускаете процедуру и получае- те на экране конвертированное изображение в формате Спектрума (увы, без атрибутов...) ────────────
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября