User Tag List

Страница 9 из 23 ПерваяПервая ... 5678910111213 ... ПоследняяПоследняя
Показано с 81 по 90 из 222

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

  1. #81

    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,456
    Записей в дневнике
    42
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    173
    Поблагодарили
    121 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    что главное чего мне не хватает -- это знания аппаратуры Atari, того как работают устройства, какие есть режимы, как они выбираются итп
    Да пока что и несложно:
    Код:
    0646: A9 78             LDA #$78
    0648: 8D 07 D4          STA PMBASE   [$D407]
    Здесь задается адрес спрайтов, т.е. $7800, отсюда видны манипуляции с памятью.

    попиарюсь немножко: спрайты или PMG

    Код:
    0632: A9 EA             LDA #$EA	;
    0634: 8D 02 D4          STA DLISTL	;
    0637: A9 0E             LDA #$0E	;
    0639: 8D 03 D4          STA DLISTH	; $0EEA -> DLIST -- game mode display list
    выходит, адрес DList=$0EEA. Иными словами говоря, это набор инструкций, как отображать экран.
    вот только есть ошибка:
    0EEC: .byte $40 ; 5 blank lines
    Вернее будет LMS - указатель адреса для видеопамяти, по идее получается $2020.

    Вообще, исследовать игрушки дело трудное.
    Последний раз редактировалось Shiny; 19.01.2017 в 20:02. Причина: ошибочка вышла

  2. #82

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

    По умолчанию Вернёмся к Ассемблеру...

    Здравствуйте, коллеги.

    Я всё время программировал на Ассемблере на MAC/65, но он слишком для меня старорежимый, что-ли...

    Ненавижу нумерацию строк и никак не могу запомнить команду ASM (кто там и за кем должен следовать...)

    Когда я с вопросом о совершенном нативном ассемблере обратился к друзьям в AtariAge, мне ответил старина Конрад Кокожкевич Draco030 и написал, что ничего лучшего для Атари нет, кроме как MAE ассемблер Джона Харриса.

    Я попробовал и оказалось, что это то, о чём я мечтал тыщу лет!

    Преимущества:
    - Продуманный интерфейс. (Я и впрямь видел такие славные программы!)
    - Отсутствие нумерации строк
    - Возможность работы как с Заглавными, так и со строчными буквами.
    - Возможность программирования не только 6502, но и 65816 и пр.
    - 3 режима текста: 40/64/80 колонок!
    - С обиняками! совместим с MAC/65

    Бяки тоже есть! Он лучше всего работает со 130XE.

    Здесь спрашивали об ассемблерном доступе к устройствам...
    ...

    Я покопался в текстах и на MAE могу предложить код вывода строки на экран (S с помощью CIO (Central Input/Output)

    Как работает CIO?
    Прежде всего, этот модуль всегда загружен во включённой Атари!
    Затем, именно он СТАНДАРТНО обеспечивает АВТОМАТИЧЕСКУЮ работу с устройствами.
    И наконец, он по Атарьски жутко мобилен. Я имею ввиду то, что Вы и сами можете его полностью переписать! (Так работает Любой СпартаДОС)

    Для того, чтобы заставить работать CIO нужно совсем немного.
    Нужно:
    1. Дать Ассемблеру знать о стандартных регистрах CIO.
    2. Дать знать о стандартных коммандах.
    3. Дать знтать о стандартных режимах этих комманд.
    4. Внести инфо о передаваемых данных.
    5. Передать управление CIO.

    ВСЁ!

    Фактически, - заполнить несколько таблиц и вызвать CIO.
    Далее Атари работает сама!

    Важная особенность MAE - Желание Автора выполнить выравнивание по длине комманд Ассемблера к оп-кодам процессора
    Чтобы текст программы стал читаем. СПАСИБО ему!

    Поясню: и те и другие предпочтительно имеют длину 3 знака!

    Таким образом,
    .ORG преобразуется к .or (Origin)
    OUT(нет в MAC/65) преобразуется к .ou (Output to disk)
    .BYTE преобразуется в .by (BYTE)
    .DS преобразуется в .ds - Define Space
    и так далее.

    К сожалению, MAE-Руководство написано, хоть и исчерпывающе подробно, но бессистемно и читать его - сущее мучение.

    ПРИМЕЧАНИЕ:
    Совсем не обязательно заполнять ВСЕ комманды и ВСЕ режимы CIO!
    Атари будет пользоваться теми, которые мы указали как СУЩЕСТВЕННЫЕ!

    Итак, вот программа вывода текста на Экран:
    Код:
    ; Drac030 Rules Demo!
        .ou dr.com
    
    ; CIO Equates
    IOCB     .or    $0340
    ICHID    .ds    1 ; Handler
    ICDNO    .ds    1 ; Number
    ICCOM    .ds    1 ; Command
    ICSTA    .ds    1 ; Status
    ICBAL    .ds    1 ; Lo BufAdr
    ICBAH    .ds    1 ; Hi BufAdr
    ICPTL    .ds    1 ; Lo PutAdr
    ICPTH    .ds    1 ; Hi PutAdr
    ICBLL    .ds    1 ; Lo BufLen
    ICBLH    .ds    1 ; Hi BufLen
    ICAX1    .ds    1 ; Aux 1
    ICAX2    .ds    1 ; Aux 2
    
    ; Atari Equates
    CIOV      = $e456
    RUNAD     = $02e0
    
    ; Atari Constants
    CLS       = $7D
    EOL       = $9b
    
    ; CIO Commands
    GETREC    = 5
    PUTREC    = 9
    
    ; Setup CIO
        .or $2000
    
    start ldx #0     ;IOCB 0
        lda #PUTREC  ;want output
        sta ICCOM,x  ;issue cmd
        lda #<msg    ;low byte of msg
        sta ICBAL,x  ; into icbal
        lda #>msg    ;high byte
        sta ICBAH,x  ; into icbah
        lda #0       ;length of msg
        sta ICBLH,x  ; high byte
        lda #$ff     ;255 char length
        sta ICBLL,x  ; low byte
    
    ; Call CIO to print string
        jsr CIOV     ;call cio
        rts          ;exit to dos
    
    ; Our message
    msg .by CLS,"Drac030 Rules!!!",EOL
    
    ; Setup run address
        .or    RUNAD
        .wo start
        .en
    MAC и PC - это всего лишь периферия для Атари...
    130XE|XC12|CA2001|XF551|IDEPlus2.0|SIO2SD|SIO2IDE| RAM576XE+Covoх|SIO2PC|MAXFLASH8|MAXFLASH1|The Ultimate Cartridge|

  3. #83

    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,456
    Записей в дневнике
    42
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    173
    Поблагодарили
    121 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    MAC/65 в старое время только спас наличием переводного руководства. Найти бы тот документ.

  4. #84

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

    По умолчанию

    Цитата Сообщение от ezswift Посмотреть сообщение
    Когда я с вопросом о совершенном нативном ассемблере обратился к друзьям в AtariAge, мне ответил старина Конрад Кокожкевич Draco030 и написал, что ничего лучшего для Атари нет, кроме как MAE ассемблер Джона Харриса.
    Дык снова же на реале. Я то писал о писанине на ББ и смотрение на реале. А здесь похоже конкурентов для WUDSN и MADS нет.
    ZXM-Phoenix 1024+PROF ROM+SMUC+VGA
    Profi 1024+CF+CPM+VGA
    ATARI 800XL+SIO2PC+SIO2SD
    RK86@Maximite

  5. #85

    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,456
    Записей в дневнике
    42
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    173
    Поблагодарили
    121 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от dosikus Посмотреть сообщение
    А здесь похоже конкурентов для WUDSN и MADS нет.
    На реале таких IDE нет. На пейси только кросс-средства.

  6. #86

    Регистрация
    10.11.2011
    Адрес
    Москва
    Сообщений
    766
    Спасибо Благодарностей отдано 
    237
    Спасибо Благодарностей получено 
    233
    Поблагодарили
    196 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ezswift
    MAE
    Ссылку на этот ассемблер можно?

  7. #87

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

    По умолчанию

    2Atari1974

    http://mixinc.net/atari/mae.htm - Это Инструкция одновременно для 02 и 816, что чудовищно!

    Не умею загружать на форум вложения...
    Даю ссылку на atr с тремя 40/64/80 режимами Е:

    http://atariage.com/forums/index.php...tach_id=487399

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

    Способ взаимодействия Атари с устройствами.

    Я наверное неоднократно предпринимал попытки рассказать о том, что Атарьские инженеры - вообще говоря, гениальны! Чего стоит один Стив Возняк, который работал на Атари.

    Не вдаваясь в холивары по поводу Атари, Эпл, и Амига, попробую рассказать о взаимодействии ВНЕШНИХ устройств с Атари.

    Во первых, они - ВНЕШНИЕ, а значит, придётся иметь дело с Вводом/Выводом.
    Во вторых, они - РАЗНЫЕ, а значит, обладают разными опциями, которые должен задать Именно Программист.

    Гениальные Атарьские Инженегры ПРЕДУСМОТРЕЛИ эти особенности и спроектировали УНИВЕРСАЛЬНУЮ систему Централизованного Ввода/Вывода.
    (Как им это удалось?..)

    Идея была простой.
    При I/O машинка должна знать/обрабатывать следующие вещи:

    1. Как компу распознавать обращение к именно этому устройству? (по именам!)
    2. Это устройство ввода, или это устройство вывода?
    Затем, соответственно генерировать номер ошибки... (Если не срослось...)
    3. Если устройств много, нужен порядковый номер.
    4. Если устройство НЕ СТАНДАРТНОЕ, то нужны дополнительные опции его работы.

    Ну, а задав эти вещи, можно запускать универсальную программу.

    Итак, универсальная... А почему? Потому, что применяется и для своих Атарьских внутренних и внешних устройств! Ничего идеологического не нужно менять!

    Это я к тому, что при включении Атари, хотите Вы или нет, ИСПОЛЬЗУЮТСЯ
    1. Редактор
    2. Возможность вывода на графику
    3. Кассетник, Принтер, и пр.

    По цифрам каналов ввода/вывода это 0, 6, 7.
    (Ясно, что если чего-то нет, то не используется и можно их программировать... [Но при загрузке инициализируется всегда!]) Пардон, если нет картриджа, так как он главнее!

    Кроме этого, AtariOS и Бейсик сами произвольно используют что-то из Ввода/Вывода!!! для внутренних нужд! (Это относится к опциям, а не к вводу/выводу, но они запросто могут переписать Ваши коды,если не убережётесь.)

    Итак, Атари CIO. Централизованный Ввод/Вывод!

    С точки зрения пользователя, работает так:
    Если правильно задать инициализацию и передать управление правильному Вектору (Это такая фигня, которая содержит переходы на обработчики(handlers), то есть JMP <адрес>.), тогда всё произойдёт само собой и Вы в шоколаде.

    Если нет, то Ваш обработчик ошибок (А Вы его написали?) выдаст ошибку ввода/вывода, которая легко распознаётся по номеру и всегда больше 127.
    Это пгтому, что до 127 - это ошибки Бейсика, а после - ошибки устройств.

    Как написать Инициализацию?

    В Атари максимально может быть одновременно работающих устройств 8!
    Программист решает, будет ли он работать с текстом или нет, будет ли он выводить графику, будет ли он работать только с дисководом...

    В зависимости от этого, определяется количество и нумерация свободных устройств.

    Откуда берёт данные программа Централизованная ввода/вывода?

    Из Базы Данных
    Как и любая База Данных, она строго структурированна и определена.

    Блоков в ней 8 - по числу устройств, Записей в каждом блоке 16 (с избытком)

    Начинается она в Атари с адреса $0340!

    Называется IOCB (Input Output Control Block)

    Поля в Базе всегда строго определены, для универсальности.
    Ёрзать с устройствами можно, пользуясь ДОПОЛНИТЕЛЬНЫМИ полями, или, модификаторами.

    Вот структура этой Базы данных:

    ; CIO Equates
    IOCB .or $0340
    ICHID .ds 1 ; Handler ID
    ICDNO .ds 1 ; Number
    ICCOM .ds 1 ; Command
    ICSTA .ds 1 ; Status
    ICBAL .ds 1 ; Lo BufAdr
    ICBAH .ds 1 ; Hi BufAdr
    ICPTL .ds 1 ; Lo PutAdr
    ICPTH .ds 1 ; Hi PutAdr
    ICBLL .ds 1 ; Lo BufLen
    ICBLH .ds 1 ; Hi BufLen
    ICAX1 .ds 1 ; Aux 1
    ICAX2 .ds 1 ; Aux 2
    ICAX3 .ds 1 ; Aux 3
    ICAX4 .ds 1 ; Aux 4
    ICAX5 .ds 1 ; Aux 5
    ICAX6 .ds 1 ; Aux 6

    Поясню, .or в MAE Assembler = Origin
    .ds в MAE Assembler = Define Space, Size

    Далее, для прикола...
    Атарьские Гении поняли, что если длина блока Базы данных будет ровно 16 байт, то тогда программисту не нужно будет ничего считать!

    То есть: Предполагая адресацию к полям, такую как
    CMD ADDR,X

    мы, для нулевого устройства имеем

    LDX #$00

    Для Первого
    LDX #$10

    Для Второго
    LDX #$20
    ...


    На сегодня - всё.
    Удачи!
    Последний раз редактировалось ezswift; 21.01.2017 в 20:05.
    MAC и PC - это всего лишь периферия для Атари...
    130XE|XC12|CA2001|XF551|IDEPlus2.0|SIO2SD|SIO2IDE| RAM576XE+Covoх|SIO2PC|MAXFLASH8|MAXFLASH1|The Ultimate Cartridge|

  8. #88

    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,456
    Записей в дневнике
    42
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    173
    Поблагодарили
    121 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ezswift Посмотреть сообщение
    Чего стоит один Стив Возняк, который работал на Атари
    на Apple.

  9. #89

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

    По умолчанию

    Дружищще!

    Когда не было Эпл, и Возняк (Крутой инженер) и Джобс (Крутой мэнагер) работали на Атари.

    Совместный проект был Sweet 16.

    Он не был реализован, но коды для Атари в формате MAC/65 есть у Карстена Строттмана на xWiki

    https://atariwiki.org/wiki/Wiki.jsp?page=Sweet16Mac65

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

  10. #90

    Регистрация
    10.11.2011
    Адрес
    Москва
    Сообщений
    766
    Спасибо Благодарностей отдано 
    237
    Спасибо Благодарностей получено 
    233
    Поблагодарили
    196 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ezswift
    Не умею загружать на форум вложения...
    Даю ссылку на atr с тремя 40/64/80 режимами Е:
    К сожалению я новичек и не понимаю в этом. У меня 130xe

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

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

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

Эту тему просматривают: 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

Ваши права

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