С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Ну она так, условно есть:
https://github.com/svofski/prettyasm/
Я не советую, потому что мне это просто интересно было повозиться, а как продукт он может не особо-то прочный. У онлайнового фича, что можно быстро набросать тестик или какую-то идею и обкатать ее перед тем, как заводить проект посерьезней. Но если уж есть проект и все равно что-то запускается в консоли, tasm ничем не плох.
Документации нет. Там нечего документировать.
Больше игр нет
Идея прикольная, но у меня вон три года PR от Pyk-а висит, а тут такое. С тактами еще такая тонкость, что они машинно-зависимые. На Векторе количество тактов в каждом машинном цикле округляется вверх до кратного четырем (mov r,r = 8 тактов). На других машинах не так. Векторовские такты вызывают досаду своей тормознутостью, но зато их на самом деле очень легко запомнить.
На такты при отладке мне нравится смотреть в отладчике VV.
Больше игр нет
ok.
Я пытаюсь поспользоваться макросами в TASM.
Например вот это кусочек кода положить в макрос:
и заменить конкретные параметры на макрос параметры - DrawSprite_ivagor -> DrawSprite, SPRITE_SCR_ADDR+23 -> spriteScrAddr, RES_SCR_ADDR_4 -> resScrAddrКод:LHLD SPRITE_COUNTER_ADDR _loop: LXI B, spriteData01 LXI D, SPRITE_SCR_ADDR+23 PUSH H CALL DrawSprite_ivagor POP H INX H LDA STOP_TIMER_FLAG_ADDR ORA A JNZ _loop SHLD SPRITE_COUNTER_ADDR LXI D, RES_SCR_ADDR_4 call DrawResult
никак не могу побороть. Может быть кто-то сможет привести пример такого макроса? Заранее спасибо!
Последний раз редактировалось parallelno; 02.07.2022 в 03:04.
Так а если допустим написать в тексте CALL DrawSprite, а при вызове tasm указывать -DDrawSprite=DrawSprite_ivagor, не получается?
Больше игр нет
Забыл указать что я просто хочу сделать макро функцию чтобы не дублировать код много раз.
что то типа как доках TASM
#DEFINE ADD(xx,yy) clc
#DEFCONT \ lda xx
#DEFCONT \ adc yy
#DEFCONT \ sta xx
но немного посложнее
Если честно, то у меня даже стандартный пример не заработал. Не хочет компилиться.![]()
Если хочется удобной компоновки с бинарниками, продвинутых макросов и дополнительных директив препроцессора то можно расширить область поиска трансляторов ассемблера:
1. CP/Mные трансляторы. Для кросскомпиляции понадобится еще эмулятор cp/m типа такого
2. Вот такой вариант (правда для 8080 я его не пробовал, но для x86 fasmом пользуюсь)
3. Перейти на сторону синтаксиса z80 и тогда станут доступны продвинутые асмы для этого проца.
Подобные вопросы уже возникали в теме, стоит там посмотреть.
Если ты исполнен отваги пользоваться препроцессором, в принципе обычный сишный препроцессор можно использовать с чем угодно, даже с TASM, потому что TASM поддерживает разделители в виде бекслеша. Попробовал по быстрому, вот как это выглядит.
Код:$ cat tets.asm #define ADD(xx,yy) clc \\ lda xx \\ adc yy \\ sta xx ADD(foo,bar) $ cpp -P tets.asm clc \ lda foo \ adc bar \ sta foo
Последний раз редактировалось svofski; 02.07.2022 в 13:30.
Больше игр нет
Привет всем...
А есть примеры программ на ассемблере?
Процедуры или вся программа?
Про комп - Вектор-06Ц...
Комп был проблемный...
Программ на него у нас в городе - даже купить было негде...
Книг по программированию, конкретно под Вектор, не было...
У меня с компом шло 3 книжки -
Монитор, Бейсик и книжка со схемой...
Пробовал что то написать на Бейсике - даже и получалось...
Что то простое...
Программы наши - писать не умели...
Даже сюжета особого в играх не было...
???
Кишинев - тупо готовое переделывал...
Что то японское по-моему...
От Taito, Namco и тд...
Наши клоны - обычно писали...
Клон игры Йети, Клада и подобных...
Штук 20 - 30 наберется...
Последний раз редактировалось Stl75; 02.07.2022 в 14:36.
В заголовке этой темы было - Категория sourcecode http://sensi.org/scalar/categories/37/
Также свои могу упомянуть -
https://github.com/nzeemin/vector06c-desolate
https://github.com/nzeemin/vector06c-asteroids
https://github.com/nzeemin/vector06c-dangerick
Рива Рейд от @svofski - https://github.com/svofski/incursiondelrio
Stl75(02.07.2022)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)