Кто нибудь хоть что-то знает или умеет программировать на ассемблере для Атари ?
Кто нибудь хоть что-то знает или умеет программировать на ассемблере для Атари ?
ATARI 65XE|130XE|XEGS|4-XC12|(2-TURBO2000)|SIO2SD
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
тоже хотел как-то изучить асм под атари. но только под 2600.
сам умеешь что-нибудь ?
ZXM-Phoenix 1024+PROF ROM+SMUC+VGA
Profi 1024+CF+CPM+VGA
ATARI 800XL+SIO2PC+SIO2SD
RK86@Maximite
вот еще какой-то онлайн-букварь со встроенным ассемблером 6502
https://skilldrick.github.io/easy6502/ (тоже инглиш, но вдруг поможет)
Прихожу без разрешения, сею смерть и разрушение...
Здравствуйте.
Прежде всего... Вопрос.
Насколько Вы знаете машину?
Понимаете, выучить Ассемблер очень легко! А пользоваться им для программирования (о-о-очень трудно).
Дело в том, что, не зная до тонкостей машины (процессор, ПЗУ, ОЗУ, OS, DOS и пр. И как эта вся "нелюдь" работает?) Вы не будете знать, где Вы находитесь и куда идти.
Если Вы не знаете, для чего ячейка 88, Вы не будете знать как её применять.
Если Вы даже знаете для чего какая-то ячейка, но не знаете как она обрабатывается операционной системой "по умолчанию", Вы всё равно не будете знать как с ней работать.
Начать надо с удивления тому, что комп не умеет НИЧЕГО, кроме как перегонять биты из одного места в другое !!!
Вычисления и "побочные действия" (например прорисовка экрана) получаются при алгоритмизации этого процесса, то есть при применении ВНЕШНИХ, по отношению к процессору правил!!!
Если вопросы будут - отвечу.
MAC и PC - это всего лишь периферия для Атари...
130XE|XC12|CA2001|XF551|IDEPlus2.0|SIO2SD|SIO2IDE| RAM576XE+Covoх|SIO2PC|MAXFLASH8|MAXFLASH1|The Ultimate Cartridge|
ну я вообще ничего не знаю, а вот это поможет для начала ?
ATARI 800. Операционная система. Руководство пользователя
Mapping The Atari (rus)
ATARI 65XE|130XE|XEGS|4-XC12|(2-TURBO2000)|SIO2SD
Всё, что содержит информацию МОЖЕТ!
Либо помочь, Либо помешать.
Давайте пытаться программиривать.
Ну, начнём, помолясь...
Я в ассемблере программировал только на MAC/65, поэтому и инструкции ассемблера будут для MAC/65.
Чтобы всё было интересно сразу раскрою тайну.
Программировать будем статусную строку для состояния консоли.
Консольные клавиши в Атари - это START,SELECT,OPTION.
Общая идея такова:
1. Сначала добавим статусную строку и увидем её на экране.
Она должна заполняться не меняя нашей работы с Атари.
...
Вот и начнём.
Есть такая фишка в Атари, которая называется Дисплей Лист.
Это - место в памяти, в котором лежат инструкции по отображению данных, которые исполняет ANTIC
(Alphanumeric Television Interface Controller - Знако-Цифровой Контроллер телевизионного интерфейса).
Стандартный DLIST таков:
> dlist
BC20: 3 раза по 8-BLANK
BC23: MODE 2 + LMS(BC40)
BC26: MODE 2 (23 раза)
BC3D: JVB BC20
Утомлю командами ANTIC для DLIST.
Они аддитивны, то есть их можно и нужно (с участием моска!) складывать.
Кроме этого, нужно вспомнить, что обычная текстовая строка Атари состоит из 8 заполненных растровых линий TV!
(ЗАПОМНИТЕ! 8 ЛИНИЙ РАСТРА!)
; Display List Commands
;
; ПРОБЕЛЫ - (незаполненые растровые линии телевизора/ЛУЧ ВЫКЛЮЧЕН - например, черная область выше голубого экрана!)
BL1=$00
BL2=$10
BL3=$20
BL4=$30
BL5=$40
BL6=$50
BL7=$60
BL8=$70
;
; СТРОКИ - неважно текстовые, или графические, но, выводящие на экран данные из экранной памяти.
GR* - это режимы Бейсика
AN* - это режимы ANTIC, недоступные для Бейсика.
GR0=$02
AN3=$03
AN4=$04
AN5=$05
GR1=$06
GR2=$07
GR3=$08
GR4=$09
GR5=$0A
GR6=$0B
ANC=$0C
GR7=$0D
ANE=$0E
GR8=$0F
;
; ПЕРЕХОДЫ - так как, даже если мы ничего не делаем на Атари, всё равно надо прорисовывать экран, а также и по многим другим причинам,
неоюходимы переходы с конца прорисовки на начало - по циклу, или всякие другие.
JTO=$01 - Jump To(далее Адрес!) - переход на конкретный адрес экранной памяти.
JVB=$41 - Jump by Vertical Blank(далее Адрес!) - Переход по дефолту на начало экранной памяти, если прорисован весь экран, для
постоянной прорисовки экрана.
;
; ДЕЙСТВИЯ
HSC=$10 - Включение оборудования горизонтального скроллирования
VSC=$20 - Включение оборудования вертикального скроллирования
LMS=$40 - Load Memory Scan - Включение прорисовки экранной памяти.
LIN=$80 - Display List Interrupt - Включение прерывания со следующей строки сканирования.
Далее...
Мы желаем! обычную текстовую строку над голубеньким экраном, но так, чтобы Атари её не замечал. Есть - и есть...
Вот это и есть - наша глобальная задача.
Посмотрим стандартный DLIST (выше.)
Там сверху непрорисованных 24 линии сканирования, то есть 3 раза по BL8.
(8+8+8)=(8+7+8(здесь появится НАША текстовая строка, а не пробельные строчки сканирования)+1)
Вот такой NEWDL мы и начнём...
А что ждём-то? Это же данные, а не ассемблирование! Их так и так надо вносить. Пора кодить.
Обиняки:
Будем кодить в выделенном месте для программирования пользовательских программ на ассемблере! Это $0600.
Потом, уже задумаемся, куда всё поместить.
Запускаем MAC/65
Увидели на экране
Edit
Пишем ручками:
NUM 1000,10 - нумерация от 1000 с шагом 10
Получаем:
1000
Дописываем:
1000 CODES *=$0600 <нажать Return>
1010
Звёздочка - это состояние PC - Program Counter, то есть ГДЕ мы находимся при ИСПОЛНЕНИИ программ.
Здесь призадумаемся.
Нам нужна инициализация многих подпрограмм, значит - ДО исполнения, а именно в этом месте нужно перейти к ней.
В этом случае ассемблер будет знать Что,Где,Когда!
Итак,
1000 CODES *=$0600
1010 JMP INIT - прыгаем на INIT.
Получаем:
1000 CODES *=$0600 ; Адрес начала кодов
1010 JMP INIT ; Адрес инициализации.
1020
Что мы знаем?
Задали метку CODES, Это пользовательская 6 страница!
Начинаем с $0600
(Переходим на INIT, - пока не задали!)
Вот здесь мы упёрлись в структуризацию программы!
Начало тупое - START
Инициализация данных всех подпрограм - INIT
Объявление всех системных адресов - EQUATES
Объявление всех системных векторов - VECTORS
Объявление всех наших констант - CONSTANTS
(Эти данные сугубо необходимы для того, чтобы ассемблер хоть что-то понял.)
Далее идут исполняемые Коды - CODES
А здесь прервёмся.
Я уже тексты утомился писать.
Сохранись в Ассемблере Бра!
SAVE #DL.m65
Я буду писать помаленьку...
MAC и PC - это всего лишь периферия для Атари...
130XE|XC12|CA2001|XF551|IDEPlus2.0|SIO2SD|SIO2IDE| RAM576XE+Covoх|SIO2PC|MAXFLASH8|MAXFLASH1|The Ultimate Cartridge|
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)