Vitamin, не совсем
Vitamin, не совсем
ZX Evolution REV.B
ZX SPECTRUM 48k
Vitamin,так ? :
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
org 24576
ld hl,picture
ld de,16384
ld bc,6912
ldir
ret
picture:
incbin "BIO-UFO"
ZX Evolution REV.B
ZX SPECTRUM 48k
Vitamin, Она устанавливает начало адресов файла
ZX Evolution REV.B
ZX SPECTRUM 48k
Ares,
Замени наR_AT DEFB 22,21,31,16,0
TEXT DEFM "Examine yourself how you know the assembler!"
DEFB 0
org 24576
ld hl,picture
ld de,16384
ld bc,6912
ldir
ret
picture:
incbin "BIO-UFO"
А ORG 60000 в начале замени 24576
ld hl,picture
ld de,16384
ld bc,6912
ldir
ret
R_AT DEFB 22,21,31,16,0
TEXT DEFM "Examine yourself how you know the assembler!"
DEFB 0
picture:
incbin "BIO-UFO"
newart,Спасибо !!!
---------- Post added at 18:02 ---------- Previous post was at 17:56 ----------
Что то не получилось .Надо что бы картинка была и бежала строка
---------- Post added at 18:04 ---------- Previous post was at 18:02 ----------
newart,Так ?:
ORG 24576
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
d hl,picture
ld de,16384
ld bc,6912
ldir
ret
R_AT DEFB 22,21,31,16,0
TEXT DEFM "Examine yourself how you know the assembler!"
DEFB 0
picture:
incbin "BIO-UFO"
ZX Evolution REV.B
ZX SPECTRUM 48k
Ares, представь себя процессором и сам попытайся выполнить свою программу
алгоритм типа-
org xxxxxx
выводим картинку ldir-oм в адресс экрана
программа бегущей строки
конец проги ret
картинка
.incbin pic
текст
defb ......
Наверное должно быть PR_AT DEFB 22,21,31,16,0
Наверное должно быть OUT_P LD HL,picture
а вначале CALL OUT_P
---------- Post added at 03:44 ---------- Previous post was at 03:43 ----------
Либо без CALL, если вставить вывод рисунки в начало программы убрав RET. Вообщем AER все правильно объяснил
Последний раз редактировалось GM BIT; 03.05.2012 в 04:55.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)