Важная информация

User Tag List

Страница 2 из 8 ПерваяПервая 123456 ... ПоследняяПоследняя
Показано с 11 по 20 из 79

Тема: Ассемблер. Первые шаги.

  1. #11
    Master
    Регистрация
    17.05.2005
    Адрес
    г. Абакан
    Сообщений
    694
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Код:
    AND A                ;тут, вроде, флаг Z сбрасывается, 
    JR NZ,NOSETM     ;след. условие NZ выполняется 
    LD HL,MESS         ;и сюда мы не попадаем никогда. Или нет?
    По AND A определяется нулевое значение А, т.е. if (A==0) Z=1 else Z=0

    Цитата Сообщение от Vitamin Посмотреть сообщение
    Можно и так. Еще у тебя есть ошибка- программу надо зациклить. Ну и добавить в цикле проверку на выход (клавишу там нажать надо или еще что).
    И HALT перед входом в SCROLL иначе будет "рвать" строку
    Последний раз редактировалось James DiGreze; 17.04.2007 в 19:22.

  2. #12
    Member Аватар для jim
    Регистрация
    31.03.2005
    Адрес
    Новосибирская область
    Сообщений
    96
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от mig'95 Посмотреть сообщение
    Вопрос, назревавший в другом, не совсем подходящем для него разделе:
    Как правильно рассчитывается количество задержек HALT для отрисовки на бордюре командой OUT(#FE),A фиксированной полосы определённог цвета.
    одного HALT достаточно для синхронизации с обратным ходом луча. это и будет PAUSE 1

  3. #13
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,255
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    83
    Поблагодарили
    35 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от mig'95 Посмотреть сообщение
    Вопрос, назревавший в другом, не совсем подходящем для него разделе:
    Как правильно рассчитывается количество задержек HALT для отрисовки на бордюре командой OUT(#FE),A фиксированной полосы определённог цвета.
    Вопрос поставлен несколько некорректно.
    Команда HALT ждет прихода прерывания. Согласно структуре ULA спектрума, данное событие (приход прерывания) совпадает с началом отрисовки видеокадра. Так что, выполнив эту команду, всего лишь синхронизируешься с лучом- HALT применяется для организации задержек, кратных периоду кадра (50мс). Для более мелких задержек (с более высокой точностью) надо действовать иначе- например, просто организовать цикл или выполнение "ненужных" команд.
    Вообще, сначала прочитай все на http://www.zxdn.narod.ru/ - большая часть вопросов отпадет сама.

  4. #14
    Activist Аватар для Jukov
    Регистрация
    03.12.2005
    Адрес
    Серов
    Сообщений
    491
    Спасибо Благодарностей отдано 
    13
    Спасибо Благодарностей получено 
    38
    Поблагодарили
    13 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А вот аналогичная бегущая строчка, которую я хотел встроить в Бобика, но не успел. По адресу 40000 грузится русский фонт или любой другой. А можно и вообще использовать ПЗУшный, если вместо INCBIN "fontrus" вставить EQU 15616. Выход из процедуры по BREAK:

    ORG 40000
    FONT INCBIN "fontrus"

    ORG 30000
    R4 LD IX,TEXT
    R3 LD A,(IX)
    OR A
    JR Z,R4
    INC IX
    ADD A,A
    LD L,A
    LD H,0
    ADD HL,HL
    ADD HL,HL
    LD DE,FONT-256
    ADD HL,DE
    LD DE,BUFER
    LD BC,8
    LDIR
    LD C,8
    R2 HALT
    LD DE,BUFER
    LD H,#50
    R0 LD B,32
    LD L,#FF
    LD A,(DE)
    RLCA
    LD (DE),A
    INC DE
    R1 RL (HL)
    DEC L
    DJNZ R1
    INC H
    BIT 3,H
    JR Z,R0
    CALL 8020
    RET NC
    DEC C
    JR NZ,R2
    JR R3
    BUFER DEFS 8
    TEXT
    DEFB "HELLO WORLD!"
    NOP
    Вложения Вложения
    Последний раз редактировалось Jukov; 18.04.2007 в 20:35.
    Кворум-192, Кворум-128 CP/M, Кворум-64, ZS-Scorpion 256 Turbo+&Caro ZX_MC, Мастер48К

  5. #15
    Guru Аватар для SAM style
    Регистрация
    28.02.2005
    Адрес
    Великий Новгород
    Сообщений
    2,055
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    218
    Поблагодарили
    92 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от mig'95 Посмотреть сообщение
    Прикольно, но вот этот фрагмент кода мне не очень ясен:
    Код:
    BIT 3,H     ;Это я понял. Проверка на достижение восьмёрки.
    JR Z,R0     ;это понятно
    CALL 8020   ;что выполняет эта процедура? 8)
    RET NC      ;ну это тоже понятно
    Я вроде как начинающий, мне простительно
    Если мне память не отшибло (редко пользуюсь процедуринами из ПЗУ), call 8020 - это тест на нажатие break (CS+Space). Возвращает CY=1 когда он не нажат, и CY=0 когда нажат.
    Все любят гипножабу

  6. #16
    Activist Аватар для Jukov
    Регистрация
    03.12.2005
    Адрес
    Серов
    Сообщений
    491
    Спасибо Благодарностей отдано 
    13
    Спасибо Благодарностей получено 
    38
    Поблагодарили
    13 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SAM style Посмотреть сообщение
    Если мне память не отшибло (редко пользуюсь процедуринами из ПЗУ), call 8020 - это тест на нажатие break (CS+Space). Возвращает CY=1 когда он не нажат, и CY=0 когда нажат.
    Память тебе не изменяет. Ассемблер - это низкоуровневый язык, и очень удобно пользоваться уже готовыми процедурами, когда пишешь какие-нибудь тестовые процедуры. Это экономит время. В конечном же продукте процедуры ПЗУ лучше не использовать из соображений совместимости.
    Кворум-192, Кворум-128 CP/M, Кворум-64, ZS-Scorpion 256 Turbo+&Caro ZX_MC, Мастер48К

  7. #16
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #17
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,255
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    83
    Поблагодарили
    35 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от mig'95 Посмотреть сообщение
    Может, кто-нибудь поможет разобраться?
    Демку не видел, поэтому ориентируюсь по коду
    Чувствуется давность кода В экранной области #5100-#5700 циклически скроллируются байтики. По два пиксела за раз. Если скроллируемый байт будет равен %01111110 (хранится в ячейке 51933), то в нижней трети увидем двигающиеся вправо квадратики размером 6х6 пикселов.
    Как работать со стеком, смотрим в цикле статей от Alco на вышеуказанном сайте

  9. #18
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,255
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    83
    Поблагодарили
    35 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от mig'95 Посмотреть сообщение
    Всё, ушёл штудировать ZXDN
    [несмотря на всю мою нелюбовь к электронным изданиям; ничего не могу с собой поделать: книжкам (печатным) всегда отдавал и буду отдавать предпочтение]
    Дык, распечатай! Там не такие уж и большие статьи

  10. #19
    Veteran Аватар для TomCaT
    Регистрация
    25.06.2005
    Адрес
    Одесса
    Сообщений
    1,795
    Спасибо Благодарностей отдано 
    54
    Спасибо Благодарностей получено 
    46
    Поблагодарили
    22 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А, да-да. Много таких демок в Волгодонской коллекции, в играх. в нижней трети сроллируются квадратики, потом только успевать к ним атрибутами пририсовывать восьмикратно увеличенные символы.
    Помни. Только на компьютере можно семь раз Cut, а один - Format. В реале все иначе. (c)
    Власть людей сильнее, чем люди у власти.
    Чем меньше мы смотрим на мир, тем больше задумываемся о нем. (c)

    Скрытый текст

    Can you help Robin in his quest for the silver arrow? (c) Odin "Robin of the Wood"
    Мы все немного режем по дереву, а потом собираем корабли в бутылках.
    Is it the same old story you are going to tell me
    or is it the old story telling me and you we are the same?
    http://www.sky.od.ua/~ptsk
    [свернуть]


  11. #20
    Member
    Регистрация
    08.02.2006
    Адрес
    Москва
    Сообщений
    30
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Всегда использовал IX только в системных утилитах.
    Например как ссылку на массив констант/переменных при отрисовке меню.
    По принципу:

    CALL drawcells
    cell1: DB xx,yy,l,h,(etc)
    cell2: DB xx,yy,l,h,(etc)

    ***

    drawcells: POP IX
    Последний раз редактировалось klondike; 15.05.2007 в 21:54.

Страница 2 из 8 ПерваяПервая 123456 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. SjASMPlus Z80 кросс ассемблер
    от Aprisobal в разделе Программирование
    Ответов: 1663
    Последнее: 19.06.2021, 01:36
  2. Первые итоги
    от CityAceE в разделе Форум
    Ответов: 25
    Последнее: 15.07.2005, 08:03
  3. sjasm - первые глюки
    от breeze в разделе Программирование
    Ответов: 9
    Последнее: 24.03.2005, 10:51
  4. ZX ассемблер (и не только?) с библиотеками
    от shade в разделе Программирование
    Ответов: 24
    Последнее: 04.03.2005, 19:43

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •