Добрый день,подскажите пожалуйста.Как в ALASM`е загрузить кодовый файл ?
Например:load "adg" code 23650,3400 Как его запустить в ALASM`е ?
Вид для печати
Добрый день,подскажите пожалуйста.Как в ALASM`е загрузить кодовый файл ?
Например:load "adg" code 23650,3400 Как его запустить в ALASM`е ?
Пожалуйста, детализируйте задачу, что Вы хотите сделать.
Вероятно, вы хотите не то, что вам посоветовал коллега Vitamin.
У меня есть картинка,как мне ее вставить в мою программу в ALASM`е ?
Картинка мультикалорная с расширением code
Если это просто картинка, то вставляйте куда угодно, главное программу не перетрите.
Если это код мультиколора, то тут надо осторожно. Вероятно, она заточена под конкретный адрес, так что надо смотреть что и как там работает. Вообще, если Вы новичок, я бы очень не советовал работать с мультиколорами и прочими элементами экстремального программирования. Пока пытайтесь сделать что-нибудь попроще.
Вопщим так. Возраст, это, конечно, фактор, но не главный (тут каждый второй в 10 лет за спектрум сел). Посему, сразу матчасть (не сложно, но крайне полезно):
http://zxdn.narod.ru/ - куча статей на самые разные темы по программированию.
http://zxpress.ru/ - спектрумовская пресса. Но ходить сюда лучше за конкретными статьями в конкретных журналах, а то есть опасность завязнуть:)
Вопросы задавать лучше с контекстом. А то будет превращение в еврейский форум- на один вопрос десять вопросов в ответ:)
Я думаю, имеет смысл почитать литературу для начинающих, где все более-менее систематизировано. Например, Как написать игру на ассемблере http://vtrdos.ru/book/WGASM.ZIP
Я рекомендовал автору темы эту литературу в соседней ветке.
а как в ALASM`е вставить обычную картинку ?
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
Запускаю идет только бегущая строка.Как сделать так чтобы картинка была и бегущая строка бежала ?
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
я что то не врублюсь :v2_conf2:
Vitamin, не совсем
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"
Vitamin, Она устанавливает начало адресов файла
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"
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 все правильно объяснил
ну понятно, зачем просто, если можно сложно. Для одноразовой загрузки картинки...
желательно в конце, чтобы еще раз не переопределять orgКод:org 16384
incbin "zastavka.scr"
Ares, ты на будущее как-нибудь более говоряще темы называй. А то чего помогите, зачем - непонятно.
Vitamin, Всё получилось я org не в том месте писал
Ares, демку на DiHalt делаешь? :)
newart, Да я тока новичок,но постараюсь сделать )
Ну вот как-то так ):v2_rolley