Кодинг на 6502 – сверхбыстрый старт

Допустим, у Вас возникло странное желание начать кодить для Apple II, Atari 2600, Atari 7800, Atari 8bit, C64, NES. Но вся жизнь посвящена спектруму, другие платформы — темный лес, с чего начинать — гуглить?





Идем на сайт WUDSN IDE, качаем готовую сборку для Win32/Win64. Пользователям Linux / MacOS придется устанавливать отдельно Eclipse IDE, отдельно WUDSN плагин.

Распаковываем архив в каталог C:\jac\wudsn (можно выбрать и другой каталог, но тогда придется возиться с настройками. А наша цель на сегодня — БЫСТРО). Запускаем ярлык.

После загрузки IDE видим в окне Project Explorer список готовых проектов, разбитых по платформам. Открываем Atari800->HelloWorld.asm, нажимаем Ctrl + Shift + 0 (Compile and Run) и видим запущенный эмулятор с нашей первой программой для Atari 8bit.

Дальше-то конечно документация, туториалы, форумы, всё как обычно. И тут опять заботятся авторы IDE о нас, новичках. В комплекте идет и документация, и туториалы, и ссылки на интернет-ресурсы. Но самый первый шаг мы УЖЕ сделали, даже не заметив этого. Вот что самое крутое.

А причем тут спектрум? К сожалению, не при чем. Чтобы начать кодить на спектруме по-прежнему нужно перечитать кучу документации, разобраться с компиляторами, эмуляторами и десять раз бросить всё на полпути…

PS1: Быстро стартануть у меня получилось только на Apple II, Atari 2600 и Atari 8bit. HelloWorld для C64 сходу не собрался, а для NES вообще не предусмотрено хелловорда.

PS2: А еще можно ставить точки останова прямо из редактора, И ОНИ СРАБАТЫВАЮТ! (Atari 8bit). Вот тут мне совсем грустно стало.

14 комментариев

avatar
Мощная инфа!
avatar
Проды повалят… а спек бы прикрутить надобно!
avatar
Eclipse — штука очень на любителя (говоря мягко :)
Конкретно для 64-ки имеет смысл посмотреть вот сюда: www.ajordison.co.uk/screenshots.html
Если же хочется просто поиграться с ассемблером, то сюда: www.asm80.com/
  • frog
  • +3
avatar
Ну я-то в Eclipse постоянно работаю, уже много лет. Правда, не залезая ему под капот, но хотя бы интерфейс давно уже привычный и домашний. Так что для меня этот wudsn был типа «Вау! Всё как привык, только теперь 6502!» :)

Ссылочку на CBM prg Studio сохранил. Вдруг когда-нибудь поманит С64.

А вторая ссылка совсем уж для поиграться, как мне кажется. Потом все равно придется переходить на нормальную IDE.
avatar
Я когда для Vectrex'a писал (там 6809), мне этот asm80 очень помог. Весьма удобно, когда надо быстро проверить, как та или иная инструкция работает или какой-нибудь короткий кусок кода проверить (не привязанный к графике-звуку).
А для 64-ки народ уже все условия создал для комфортной разработки — только садись и пиши :) И эмуляторы отличные (Vice) и документация с библиотекой исходников по всем вопросам, типа: codebase64.org
Но есть и обратная сторона — чем-то удивить уже сложно будет.
avatar
Жаль для спека нет, я бы стартанул (
avatar
Для спектрума тоже всё есть. Только размазано тонким слоем по всему интернету. А те, кто мог бы всё это сконцентрировать, тем это неинтересно похоже…
avatar
Да, обидно, что тонким слоем размазано и нет такого, чтобы поставил кросс-тулзу, которая сама знает как и что компилить, собирать, запускать и доку показывать… Вот разве что под ZX Basic и есть ;)
avatar
Для спектрума есть отличный набор под SublimText2 + sjasmplus: bit.ly/st4z80
Всяко поживее будет неповоротливого ёклипса ;)
avatar
О, любимый саблаймчик) Спасибо!
avatar
себе собрал комбайнер-кит, результат — www.pouet.net/prod.php?which=66807 после 12 лет простоя )
таки можно писать в\на вражЪей платформе
avatar
«Допустим, у Вас возникло странное желание начать кодить для Apple II, Atari 2600, Atari 7800, Atari 8bit, C64, NES.» Не переживайте, все просто и понятно — вы goblinish.
avatar
Ну почему странное? это увлекательное занятие:)
Я бы посоветовал emu6502 для быстрого старта, в программе есть встроенный ассемблер и отладчик, я использовал такую фичу, когда отлаживал код алгоритмов для Firstie, потому что у эмуляторов неудобные дебаггеры.
Далее, пример не совсем удачный, я уже видел исходник, проще собрать в бинарник и почувствовать себя великим кодером.
для Atari есть два адресных пространства:
$0600-$06FF(6я страница)
$2000-$BEFF — свободное пространство, можно использовать адреса с $1000-$1FFF, если программа не обращается к диску. Как раз пример размещен по этому адресу.

Следует помнить, что для 6502 не реализовано чтение/запись портов, поэтому обращение к устройствам реализовано через аппаратные ячейки, например:

lda $D40b; VCOUNT

а что это? я не помню таких цифр, зато знаю по мнемоникам, описанным в Atari Menory Mapping. Список включен в Dis6502 — это удобное средство для исследования программ.


*=$2E0
.word start


А это что? а это запись в адрес $2E0 адреса автозапуска программы.

Теперь: какой эмулятор выбрать? с Atari полная засада: эмуляторам нужны образы ROM, которые нелегко найти в интернетах. Выбор эмулятора — дело вкуса, я привык с Atari800win+, хотя у Altirra есть свои преимущества и я неоднократно сталкивался с тем, что Altirra эмулирует лучше.
Ассемблер — дело привычки. MADS очень популярен, пакет содержит массу нужных примеров. Единственное, что мне не понравилось — неописанные макросы:(
Xasm — понимает синтаксис MADS и немного капризен к записи кода в исходнике.
Мне нравится Atasm, хотя дядька JAC! жалуется, что ассемблер не работает.

Теперь, вопрос: а в чем еще 6502?

Oric: osdk.defence-force.org/ На сайте есть SDK с примерами и утилитами, можно найти документацию.

Apple: Легко скачать эмулятор и создавать приложения с помощью ACME, для запуска проще использовать CiderPress или Apple Commander. А вот где найти документацию, это другой вопрос.

Было бы желание и упорство, все прибудет.
avatar
По теме ёклипса и 6502 без проблем писал кот в том же Sublime Text 2 + Kick Assembler.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.