User Tag List

Страница 4 из 23 ПерваяПервая 12345678 ... ПоследняяПоследняя
Показано с 31 по 40 из 222

Тема: Атари ассемблер

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    14,293
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    203
    Спасибо Благодарностей получено 
    1,457
    Поблагодарили
    947 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    https://en.wikipedia.org/wiki/ANTIC
    у процессора в-атари нет команд ввода/вывода в-порты для командования устройствами.
    поэтому девайсы ввода/вывода сами забирают нужные данные/команды из фиксированных ячеек в-памяти
    Последний раз редактировалось goodboy; 08.03.2016 в 14:54.

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

  3. #2

    Регистрация
    22.01.2011
    Адрес
    г. Кирово - Чепецк
    Сообщений
    335
    Спасибо Благодарностей отдано 
    14
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    8 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    как я понимаю можно вместо этого SDMCTL = $022F записать DMACTL = 54272, будет то же самое и правильно ?
    ATARI 65XE|130XE|XEGS|4-XC12|(2-TURBO2000)|SIO2SD

  4. #3

    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    14,293
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    203
    Спасибо Благодарностей получено 
    1,457
    Поблагодарили
    947 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    нет.
    как я понял из статьи значение в (DMACTL) может намеренно измениться, а потом оно снова возмётся из (SDMCTL)

  5. #4

    Регистрация
    29.03.2005
    Адрес
    Ярославль
    Сообщений
    1,102
    Спасибо Благодарностей отдано 
    14
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    goodboy, Если я правильно помню SDMCTL это теневые Shadow регистры и копируется из них в регистры ANTIC c синхронизацией (к чему не помню )
    Не соврал ?

    И еще адрес этих теневых вроде как так же изменяется .
    Блин надо все вспоминать- читал же...

    Зы. Надо же - еще и помню:

    Operating System Shadow registers are copied from RAM to the hardware registers during the vertical blank.
    Последний раз редактировалось dosikus; 08.03.2016 в 18:47.
    ZXM-Phoenix 1024+PROF ROM+SMUC+VGA
    Profi 1024+CF+CPM+VGA
    ATARI 800XL+SIO2PC+SIO2SD
    RK86@Maximite

  6. #5

    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    14,293
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    203
    Спасибо Благодарностей получено 
    1,457
    Поблагодарили
    947 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    я честно говоря в атарях не-разбираюсь.
    (xe продал поскольку почти не-было софта, ST лежит на антресолях).

    The operating system also maintains copies of these color registers in RAM memory. These are called shadow color registers. They are maintained because the hardware locations are "write only" locations. Since they can't be read, we need RAM locations where they can be read. At the beginning of each refresh cycle, these five shadowed registers are copied into the hardware locations.

  7. #6

    Регистрация
    29.03.2005
    Адрес
    Ярославль
    Сообщений
    1,102
    Спасибо Благодарностей отдано 
    14
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    я честно говоря в атарях не-разбираюсь.
    Гы. И я так же.


    atariki, счас разберусь с очередным завалом. Обновлю инстрУмент и вас догоню.
    Насколько помниться denpopov хорошо в асме атари разбирается...
    ZXM-Phoenix 1024+PROF ROM+SMUC+VGA
    Profi 1024+CF+CPM+VGA
    ATARI 800XL+SIO2PC+SIO2SD
    RK86@Maximite

  8. #7

    Регистрация
    26.02.2011
    Адрес
    Москва
    Сообщений
    258
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    25
    Поблагодарили
    18 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    То, что программа выполняется чисто, я проверил в мониторе.
    Вот старый DLIST

    > dlist
    9C20: 3x 8 BLANK
    9C23: LMS 9C40 MODE 2
    9C26: 23x MODE 2
    9C3D: JVB 9C20

    Вот новый DLIST
    > dlist
    202B: 8 BLANK
    202C: 7 BLANK
    202D: LMS 2003 MODE 2
    2030: 1 BLANK
    2031: JMP 9C23
    9C23: LMS 9C40 MODE 2
    9C26: 23x MODE 2
    9C3D: JVB 202B

    Как видно, всё как мы и хотели.

    - - - Добавлено - - -

    2Atariki.
    Отвечая на Ваш вопрос, скажу следующее.

    Да, в Атари существуют поименованные ячейки памяти.
    Каждая такая ячейка имеет уникальное имя и связанную с ней функцию.

    Из таких мы в программке использовали только две.

    SDMCTL - Shadowed Direct Memory Control Теневой регистр управления Прямым Доступом к памяти.
    Если в него внести число #$00 - прямой доступ к памяти выключается.
    Если внести число #$22 - прямой доступ к памяти включается.

    SDLSTL/SDLSTH - Shadowed Display LiST Это системный указатель на начало Дисплейного Листа.

    По поводу Ассемблирования скажу честно. Пока не напишешь тыщу тонн кода - не научишься.

    Раньше программировали в Машинных Кодах.
    Вот наша программа в машинных кодах:
    > m 2000 (Смотрю в мониторе начиная с адреса загрузки программы, то есть $2000)

    2000: 4C 34 20 00 00 23 6F 6E 73 6F 6C 1A 00 0F 33 74 L4 ..#onsol...3t
    2010: 61 72 74 0F 00 0F 33 65 6C 65 63 74 0F 00 0F 2F art...3elect.../
    2020: 70 74 69 6F 6E 0F 00 00 00 00 00 70 60 42 03 20 ption......p.B.
    2030: 00 01 23 9C A9 00 8D 2F 02 AD 30 02 85 C0 18 69 ..#..../..0....i
    2040: 03 8D 32 20 AD 31 02 85 C1 8D 33 20 A9 2B 8D 30 ..2 .1....3 .+.0
    2050: 02 A0 1E 91 C0 A9 20 8D 31 02 A0 1F 91 C0 A9 22 ...... .1......"
    2060: 8D 2F 02 60 00 00 00 00 00 00 00 00 00 00 00 00 ./..............

    Ничего утешительного, не правда ли?

    Тем не менее, идея ассемблирования очень проста - заменить цифры Машинного Кода запоминающимися знако-сочетаниями.

    Проделаем эту процедуру.

    $4C $34 $20 - Это и есть наша первая команда JMP INIT

    Здесь $4C - JMP, а адрес $2034 (в памяти лежит наоборот, то есть младший байт первый.) это вычесленный ассемблером адрес INIT.
    Проверим так ли это?
    По этому адресу лежат байты $A9 $00, а это и есть LDA #$00, как в нашей программе.

    Да, кстати, впервые вижу книжку по Атари на Русском. Здорово.
    MAC и PC - это всего лишь периферия для Атари...
    130XE|XC12|CA2001|XF551|IDEPlus2.0|SIO2SD|SIO2IDE| RAM576XE+Covoх|SIO2PC|MAXFLASH8|MAXFLASH1|The Ultimate Cartridge|

  9. #8

    Регистрация
    26.02.2011
    Адрес
    Москва
    Сообщений
    258
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    25
    Поблагодарили
    18 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    denpopov, привет!

    Ну Вы же знаете, что команды Ассемблера к Бейсику не могут иметь НИКАКОГО отношения.
    RTS - Это выход в вызывающую подпрограммуу, а именно, на тот адрес, который следует за вызовом, то есть в случае загрузки программы DOS-ом, мы остаёмся в Цикле исполнения DOS-а!!!

    Я так понимаю, что Вы все Балуетесь со XEX-ами, но файлы XEX - Это просто переименованые файлы COM. АБСОЛЮТНО ничего более.
    То есть, если у Вас не загружен сам ВЫЗЫВАЮЩИЙ программу ДОС, а вызывает её ЭМУЛЯТОР, к чему же Вы можете вернуться?

    У меня прекрасно и в эмуле и в HW всё работает до сих пор.
    MAC и PC - это всего лишь периферия для Атари...
    130XE|XC12|CA2001|XF551|IDEPlus2.0|SIO2SD|SIO2IDE| RAM576XE+Covoх|SIO2PC|MAXFLASH8|MAXFLASH1|The Ultimate Cartridge|

  10. #9

    Регистрация
    12.02.2014
    Адрес
    г. Арзамас
    Сообщений
    6,123
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ezswift Посмотреть сообщение
    У меня прекрасно и в эмуле и в HW всё работает до сих пор
    Вы просто счастливчик) я до сих пор не могу подключить рабочую Атари 130ХЕ к ТВ.


    Цитата Сообщение от ezswift Посмотреть сообщение
    Ну Вы же знаете, что команды Ассемблера к Бейсику не могут иметь НИКАКОГО отношения.
    RTS - Это выход в вызывающую подпрограммуу, а именно, на тот адрес, который следует за вызовом, то есть в случае загрузки программы DOS-ом, мы остаёмся в Цикле исполнения DOS-а!!!
    что Вы говорите?
    при вызове USR из Бейсика на стеке помещаются: номер параметров и параметры, т.е A=USR(1536,8,7) на стеке даст 2,8,7.
    поэтому обычно ассемблерная часть выглядит как
    PLA
    ..
    немножко кода
    ..
    RTS

    Вызов ассемблерных процедур из Бейсика реализуем, например можно перевести опкоды в символы ATASCII и вызвать как мы делали A=USR(ADR("строка"))

    g0blinish писал подобный пример.

    Заодно выполнять RTS на непонятной среде - это моветон.

  11. #10

    Регистрация
    22.01.2011
    Адрес
    г. Кирово - Чепецк
    Сообщений
    335
    Спасибо Благодарностей отдано 
    14
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    8 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    а видео запилить по этому поводу можно ?
    ATARI 65XE|130XE|XEGS|4-XC12|(2-TURBO2000)|SIO2SD

Страница 4 из 23 ПерваяПервая 12345678 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. ПК8000 - Ассемблер
    от scaraby в разделе ПК8000
    Ответов: 9
    Последнее: 16.12.2018, 11:00
  2. Ассемблер для 48к на ленте
    от newart в разделе Программирование
    Ответов: 37
    Последнее: 20.09.2015, 22:48
  3. Переведите на ассемблер
    от Руслан в разделе Программирование
    Ответов: 2
    Последнее: 06.08.2012, 23:41
  4. Ассемблер Z-80
    от sergey2b в разделе Пресса
    Ответов: 12
    Последнее: 11.07.2011, 23:41

Ваши права

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