Как написать игру для ZX Spectrum на ассемблере


         

измененная процедура GTBL LD


; измененная процедура GTBL LD (IX),A INC IX LD A,(ROW) LD L,A LD H,0 ADD HL,HL ADD HL,HL ADD HL,HL ADD HL,HL ADD HL,HL LD A,#58 ADD A,H LD H,A LD A,(COL) ADD A,L LD L,A LD DE,(LEN) LD BC, 0 GTBL1 PUSH BC PUSH DE PUSH HL GTBL2 LD A,B LD (IX),A INC IX LD A,C LD (IX),A INC IX LD A,(HL) LD (IX),A INC IX INC HL INC C DEC E JR NZ,GTBL2 POP HL LD DE,32 ADD HL,DE POP DE POP BC INC B DEC D JR NZ,GTBL1 LD A,(HGT) LD B,A LD A,(ROW) GTBL3 PUSH AF PUSH BC CALL 3742 LD A,(COL) ADD A,L LD L,A LD A,(LEN) LD B,A GTBL4 PUSH BC PUSH HL LD B,8 GTBL5 LD A,(HL) LD (IX),A INC IX INC H DJNZ GTBL5 POP HL INC HL POP BC DJNZ GTBL4 POP BC POP AF INC A DJNZ GTBL3 RET ; Рисование пейзажа. Еще раз хотим напомнить вам о необходимости ; сохранения HL' при использовании подпрограммы 9402 и аналогичных ; ей. При вызове программы из GENS это не критично, а вот в Бейсик ; будет уже не вернуться. GRUNT EXX PUSH HL LD BC,#4700 ;B = 71, C = 0 CALL 8933 ; Рисование «дорожки» LD DE,#101 LD BC,250 CALL 9402 ; Установка «камня» LD BC,#C15 ;B = 12, C = 21 LD A,SPRPUT LD HL,KAM CALL PTBL ; Вывод двух «кустов» LD BC,#B05 ;B = 11, C = 5 LD A,SPRPUT LD HL,KUST CALL PTBL LD BC,#B10 ;B = 11, C = 16 LD A,SPRPUT LD HL,KUST CALL PTBL POP HL EXX RET ; Графические переменные COL DEFB 0 ROW DEFB 0 LEN DEFB 0 HGT DEFB 0 ; Буфер для сохранения окна экрана BUFFER DEFS N_SYM*11+1 ; Заголовок спрайта «бегущий человечек» MAN1 DEFB 6,0,0, 6,0,1, 6,1,0, 7,1,1,7 DEFB 2,0,3, 2,1,3 ; Данные спрайта «бегущий человечек» DEFB 83,111,255,127,255,255,127,255 DEFB 127,252,254,249,254,243,249,48 DEFB 190,31,31,15,15,7,3,3 DEFB 208,220,248,112,128,224,192,80 DEFB 27,123,231,7,15,14,12,30 DEFB 40,172,230,224,240,112,56,60 ; Заголовок спрайта «упавший человечек» MAN2 DEFB 6,0,0, 3,0,1, 7,0,2,6 DEFB 1,0,3, 1,1,7, 1,2,6 ; Данные спрайта «упавший человечек» DEFB 0,0,0,0,0,7,22,59 DEFB 3,1,7,31,63,127,255,255 DEFB 164,127,254,253,254,254,255,255 DEFB 123,124,124,63,79,112,63,15 DEFB 63,31,10,13,6,2,0,0 DEFB 127,127,255,255,255,47,237,89 ; Заголовок и данные спрайта «камень» KAM DEFB 1, 0,0,7 DEFB 0,0,0,30,103,159,254,124 ; Заголовок спрайта «куст» KUST DEFB 4, 0,0,6, 0,1,4, 1,0,6, 1,1,4 ; Данные спрайта «куст» DEFB 33,12,102,242,185,13,53,121 DEFB 56,100,192,218,160,134,157,56 DEFB 29,204,110,38,54,182,87,91 DEFB 50,112,119,238,236,234,90,84


Содержание  Назад  Вперед