обычно это делается так
Код:org program ;здесь твоя программа начинается ... display $ ;здесь твоя программа заканчивается ;по $ sjasm пишет текущий адрес или display "free: ",#10000-$ ; пишет сколько до конца памяти
обычно это делается так
Код:org program ;здесь твоя программа начинается ... display $ ;здесь твоя программа заканчивается ;по $ sjasm пишет текущий адрес или display "free: ",#10000-$ ; пишет сколько до конца памяти
С уважением,
Jerri / Red Triangle.
Bedazzle как я понимаю, также можно посчитать размер и во вкладке memory. Где моя программа размещаеться с адреса 25000 до 29000, что составляет около 4кб.
С уважением,
Gris / Red Triangle.
_____________________________________
ZX-EVO/TS-Labs config/NGS/HDD/SD-card
Amiga A1200/Blizzard 1230@50/32/60GB
Amiga A1200/Apollo 1260@66/32/60GB
UnAmiga (C5) AGA GM7123 VideoDAC
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Приветствую.
То что вы спрашиваете, я называю путь "программирования извне". То есть программировать утилитами и средствами из среды PC для Спектрума, а не средствами Спектрума для нужд самого Спектрума (типа Zeus, Gens-Mons и пр.). Я пробовал именно с первого варианта.
Понимаю, что отвечаю с запозданием, но я только вчера тут зарегистрировался. Я сам в программировании не соображал, когда был реальный ZX-совместимый. Немного знал BASIC, а команда RANDOMIZE USR ... казалась дверью в другой неизвестный и яркий мир. К сожалению эта дверь долгое время для меня оставалась наглухо закрытой. Как алхимики в старину, в детстве, я пытался найти такую волшебную программу или "золотой ключик на Бейсике", который внезапно превратит содержимое, прячущееся за неприступной дверью с надписью "RANDOMIZE USR" в понятную BASIC программу. И все время недоумевал, почему же все красочные игры расположены в "таинственных ячейках", а всякая ерунда делается в открытом BASIC... Эх юность-детство. А сбил меня с толку злосчастный ToBoS-FP из игры STEK-D, который только подлил масла в огонь.
Теперь по поводу советов. Каждый человек индивидуален, и поэтому способ, который подходит одному человеку, может не подойти другому.
Лично я с нуля натренировался очень просто практическим способом с теоретической подсказкой, которая всегда лежала под рукой. Еще в 2000-х кто-то из коллег по работе разгребая завалы, презентовал мне бумажное издание книги Родионова и Ларченко "ZX-SPECTRUM для пользователей и программистов". На мой взгляд это самая удачная книга. Так вот, там четко и ясно с 60-й по 95-ю страницу описана работа компьютера и принцип действия команд. Доходчиво описана.
А с практикой все просто. Открываете Spectaculator, загружаете в него любимую игру, выставляете в DEBUGGER'е точки прерывания в интересных, на Ваш взгляд, местах со стартового адреса. И вперед:
Внимательно наблюдаете за курсором который гуляет по командам, а следом за ним меняются значения регистров в окошке и содержимое ячеек. Записываете на бумагу или текстовый файл добытые знания, тренируетесь с короткими подпрограммами. Одновременно вспоминайте, какие действия стоят за теми или этими событиями в Вашей любимой игре. Меняйте содержимое ячеек, смотрите на результат, выписывайте короткие программы и пробуйте их запускать отдельно от игры... Компьютер рестартнулся? Не страшно! Снова вставляйте, анализируйте причину.
В играх, в отличие от сухих теоретических книжных знаний, вы будете запоминать разные методы решения тех или иных проблем, выверты программистов с недокументированными особенностями, половинками индексных регистров, нецелевым использованием машинного стека (например для закраски экрана), и прочими шедеврами. Со временем навскидку будете отсортировывать графическо-текстовые ресурсы, карты полей и переменных, отображаемые командами ассемблера, от последовательности команд реально исполняемой программы.
Первая изучаемая игра пойдет тяжело, но в конечном итоге вы будете раскатывать игры средней сложности довольно быстро, и черпать оттуда бесценный опыт программирования.
Но проще начинать с простых и коротких программ. Отличный базовый навык можно приобрести изучая Debugger'ом пакеты программ SUPERCODE. Они достаточно короткие и станут настоящей находкой.
Следует сразу понять, что BASIC это, грубо говоря, оболочка, которая по сути такая-же машинная программа, расположенная в ПЗУ. Изучая дизассемблер интерпретатора, можно также подчерпнуть массу полезных идей, состоящих из машинных процедур. Поэтому, поковырять отдельные куски BASIC-системы через Debugger тоже стоит.
Создание программ и компиляция. Как мне кажется, проще и удобнее, чем EmulZWin средств просто нет. Никаких дополнительных команд. Одна директива ORG (или несколько в разные точки) с адресом размещения. Все! Создал txt файл в блокноте Windows, написал какую-нибудь простенькую коротенькую программку. Две манипуляции пальцами CTRL+C - CTRL+V в эмулятор, Compile. И... программа готова:
Сохраняй в .Z80 и работай в любом эмуляторе, записывай в любой полюбившийся формат... В общем, у меня метод изучения машинного языка был такой. Возможно что-то из моего опыта Вам приглянется.
Последний раз редактировалось Yuri80; 01.04.2016 в 21:55.
Как задача-максимум для начала изучения "кодинга" почему-то придумалась игра "Бега" из одноименного игрового автомата 80х. Бежит лошадка по прямой, навстречу ей бугорки, которые надо перепрыгивать. Стал мониторить форум, с чего бы начать. Путевой камень куда можно пойти на этой развилке в виде темы http://zx-pk.ru/threads/5335-posetit...-razdela!.html нашел, начал читать легендарную "Как написать игру на ассемблере". Эта тема дала дополнительную пищу для размышлений. Спасибо всем, кому не жалко потратить время на новичков. Может, мы ничего и не добьемся, бросив в самом начале, но сам процесс пробования уже приносит эндорфины - поэтому надо пробовать.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)