Я думаю, имеет смысл почитать литературу для начинающих, где все более-менее систематизировано. Например, Как написать игру на ассемблере http://vtrdos.ru/book/WGASM.ZIP
Я думаю, имеет смысл почитать литературу для начинающих, где все более-менее систематизировано. Например, Как написать игру на ассемблере http://vtrdos.ru/book/WGASM.ZIP
Я рекомендовал автору темы эту литературу в соседней ветке.
а как в ALASM`е вставить обычную картинку ?
ZX Evolution REV.B
ZX SPECTRUM 48k
Vitamin,Что у меня за ошибка.Пишу:
org 24576
ld hl,picture
ld de,16384
ld bc,6912
ldir
ret
picture:
incbin "BIO-UFO"
ORG 60000
ENT $
LD A,6 ;подготовка экрана
LD (23693),A
XOR A
CALL 8859
CALL 3435
LD A,2
CALL 5633
LD HL,TEXT ;адрес текстовой строки
MAIN1 LD DE,PR_AT ;позиционирование курсора, черный
LD BC,5 ; (совпадающий с фоном) цвет символов
CALL 8252
LD A,(HL) ;чтение очередного символа строки
AND A
JR Z,MAIN3 ;если 0, закончить вывод
RST 16
INC HL
PUSH HL
; Восьмикратное (по ширине символов в пикселях) скроллирование строки влево
LD B,8
MAIN2 PUSH BC
LD A,21
CALL SCRLIN
CALL PAUSE ;задержка для получения более
; плавного смещения строки
POP BC
DJNZ MAIN2
POP HL
JR MAIN1
; Скроллинг, пока вся строка не исчезнет за левым краем экрана (0 = 265 раз)
MAIN3 LD B,0
MAIN4 PUSH BC
LD A,21
CALL SCRLIN
CALL PAUSE
POP BC
DJNZ MAIN4
RET
PAUSE LD BC,1
JP 7997
SCRLIN CALL 3742 ;получаем ее адрес в HL
; Так как строка должна бежать слева направо, то раньше нужно сдвигать
; последние байты, поэтому определяем адрес конца строки
LD A,L
OR 31
LD L,A
LD C,8 ;высота строки 8 пикселей
SCRL1 LD B,32 ;длина строки 32 байта
AND A ;очистка флага CY
PUSH HL ;сохраняем адрес
SCRL2 RL (HL) ;последовательно сдвигаем все байты
DEC HL
DJNZ SCRL2
POP HL ;восстанавливаем адрес
INC H ;переходим к следующему ряду пикселей
DEC C ;повторяем
JR NZ,SCRL1
RET
R_AT DEFB 22,21,31,16,0
TEXT DEFM "Examine yourself how you know the assembler!"
DEFB 0
Запускаю идет только бегущая строка.Как сделать так чтобы картинка была и бегущая строка бежала ?
ZX Evolution REV.B
ZX SPECTRUM 48k
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Vitamin,Вот так ? :
org 24576
ld hl,picture
ld de,16384
ld bc,6912
ldir
ret
picture:
incbin "BIO-UFO"
ORG 60000
LD A,6 ;подготовка экрана
LD (23693),A
XOR A
CALL 8859
CALL 3435
LD A,2
CALL 5633
LD HL,TEXT ;адрес текстовой строки
MAIN1 LD DE,PR_AT ;позиционирование курсора, черный
LD BC,5 ; (совпадающий с фоном) цвет символов
CALL 8252
LD A,(HL) ;чтение очередного символа строки
AND A
JR Z,MAIN3 ;если 0, закончить вывод
RST 16
INC HL
PUSH HL
; Восьмикратное (по ширине символов в пикселях) скроллирование строки влево
LD B,8
MAIN2 PUSH BC
LD A,21
CALL SCRLIN
CALL PAUSE ;задержка для получения более
; плавного смещения строки
POP BC
DJNZ MAIN2
POP HL
JR MAIN1
; Скроллинг, пока вся строка не исчезнет за левым краем экрана (0 = 265 раз)
MAIN3 LD B,0
MAIN4 PUSH BC
LD A,21
CALL SCRLIN
CALL PAUSE
POP BC
DJNZ MAIN4
RET
PAUSE LD BC,1
JP 7997
SCRLIN CALL 3742 ;получаем ее адрес в HL
; Так как строка должна бежать слева направо, то раньше нужно сдвигать
; последние байты, поэтому определяем адрес конца строки
LD A,L
OR 31
LD L,A
LD C,8 ;высота строки 8 пикселей
SCRL1 LD B,32 ;длина строки 32 байта
AND A ;очистка флага CY
PUSH HL ;сохраняем адрес
SCRL2 RL (HL) ;последовательно сдвигаем все байты
DEC HL
DJNZ SCRL2
POP HL ;восстанавливаем адрес
INC H ;переходим к следующему ряду пикселей
DEC C ;повторяем
JR NZ,SCRL1
RET
R_AT DEFB 22,21,31,16,0
TEXT DEFM "Examine yourself how you know the assembler!"
DEFB 0
ZX Evolution REV.B
ZX SPECTRUM 48k
я что то не врублюсь
ZX Evolution REV.B
ZX SPECTRUM 48k
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)