А я сам покритикую рыбу hello world. Для учебного примера возможно стоит вывод символов сделать попроще, без стека и необходимости запрещать прерывания.
Если отвлечься от рыбы и принять, что программа будет загружаться в магнитофонный загрузчик, то можно обойтись без прерываний и без программирования палитры. Только надо рисовать в плоскости C000-DFFF. Есть даже примеры игрушек, сделанных в таком стиле.
Да уж, опечаток в тесте есть немного ) в использовании меток и не только, но скомпилировалось )
Работать правда не заработало, но это уже буду вечером смотреть, что не так.
УРАААААААААА!!! )))) Какая прелесть, оно заработало! )))) И еще пищит сволочь ))))
Для тех кто будет повторять ORG 1800h замените на ORG 100h , дело было не в этом, я просто как обычно через одно место попытался запустить, но просто напоминаю, что при запуске как обычное приложение нужно править исходник.
Компиляция tasm32 с ключём -i
Всем спасибо.
Что-то криво вставился правленный исходник Секретов Вектора под спойлер, поэтому приаттачиваю архив со всем необходимым для компиляции (win10 x64 полет нормальный).
Еще раз всем спасибо кто помогал разбираться с поставленной задачей.
Последний раз редактировалось dbk; 17.06.2020 в 19:03.
...
Что до использования стека, тут соглашусь, но мне лень переделывать то, что работает. Хотя вообще это все-таки не учебник, а просто на Векторе нет принципиально более легкого способа написать HELLO WORLD. Выбрасывать программирование палитры в Векторовских реалиях — это какое-то тяжкое зло. Исторически неказистые игры уж точно не пример для подражания. Наоборот лучше дополнить рыбу и вместо слегка зашифрованного кода set_palette, который там сейчас, сделать пример, в котором очевидным образом задаются значения R, G, B.
Больше игр нет
dbk (17.06.2020)
Чтобы были нули в неиспользуемых местах (DS или если текущий адрес через ORG сдвигается).
-f0 не особо нужен, по умолчанию tasm заполняет "пустые" места нулями.
Командная строка осталась ещё со времён ДОСовского варианта, наверное уже не нужно. Вопрос в том, как винда выделяет память. У меня в эмуле тоже насильно не обнуляется, но почти вся память в эмулируемом компе забита нулями, кроме первых нескольких байт.
- - - Добавлено - - -
Данная опция полезна для ПЗУ, можно неиспользуемые места забивать байтом FF.
dbk (18.06.2020)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)