Просто это началось в 1988 году и непрерывно продолжалось практически до 1994. А потом от случая к случаю. Поэтому, это сродни ощущению носителя языка, когда он слышит жёсткий акцент иммигранта.
Ладно, это личное, против кино ничего не имею, снято круто, наполнение годное. Настоятельно рекомендую тебе продолжать свою деятельность.
CityAceE (10.01.2024)
HardWareMan, я тебя отлично понимаю! Но для меня, к сожалению (или же к счастью), родные мнемоники i8080 ровным счётом ничего не значат. Скорее всего именно поэтому я так бесцеремонно, без угрызений совести, не только сам программирую, но и показываю остальным, как это делать в "неправильных" мнемониках Z80. Скорее всего это произошло из-за того, что когда Специалист был моим первым и единственным компьютером, я не умел программировать на ассемблере. У меня не было знакомых, которые могли бы меня чему-то научить. Единственным источником информации по Специалисту для меня были журналы Моделист-Конструктор. Ну и то, что я сам смог накопать, ковыряясь через Монитор в играх. А ассемблер в моей жизни появился позже, когда я обзавёлся Спектрумом. И мнемоника Z80 - это единственное, что на сегодня я знаю без справочников. Например, сейчас я могу на Python не пописать пару месяцев, а потом даже не вспомнить какой синтаксис у цикла. Я ассемблер ARM трижды с нуля учил, потому что делал перерыв и всё начисто забывал. А с Z80 всё иначе. Это первые знания, которые были получены в молодом возрасте на пике энтузиазма. Полагаю, что у тебя так с i8080, и мои методы, естественно, кажутся тебе кощунственными.
Последний раз редактировалось CityAceE; 11.01.2024 в 14:45.
С уважением, Станислав.
tihsasha (24.04.2024)
CityAceE, ты, кстати, выводил надпись на спецтрумский манер (что логично, используя мнемоники Z80 - ФЬЮТЬ-ХА!). А ты выводи теперь по-Спецовски, 6х8. Я не советую тебе ковырять монитор, его вывод символа медленный из-за использования стека, но могу подкинуть часть своего BIOS. Если решишь использовать в своём новом кино - я не против.
CityAceE (11.01.2024)
Ну да, так было бы правильнее. Показать как это делается с помощью вызова процедуры из ПЗУ, а затем продемонстрировать реализацию этого метода с нуля. Однако в твоих же исходниках есть такой комментарий относительно процедуры вывода символа на экран:
Вот именно по этой причине я решил продемонстрировать создание процедуры печати со шрифтом, у которого ширина кратна байту. Но за базовые процедуры спасибо. Я их перевёл в понятную мне мнемонику и скомпилировал с помощью SJAsmPlus:Код:; Вывод символа ; Самая муторная подпрограмма
Но, видимо, где-то ошибся при конвертировании, так как выше нижней строчки поднять текст никак не получается. Для вывода использую процедуру OutText, а координаты записываю в ячейки CurX и CurY.
Последний раз редактировалось CityAceE; 11.01.2024 в 19:01.
С уважением, Станислав.
Ты пробовал CurY от 9 до 255?
Там 0:0 это левый верхний угол. И ЕМНИП координатная логика полностью повторяет мониторовскую. Всмысле, X это координата с шагом 2 точки, а Y - с шагом в 1 точку, но 0-7 эквивалентны 8. Сами ячейки должны быть в ОЗУ и инициироваться до вывода символа. Либо можно вставить код #0C перед текстом (или даже #1F). Первый просто отправит текст домой (в левый верхний угол), а второй при этом ещё и экран очистит.
- - - Добавлено - - -
PS В комментах может быть путаница, имейте в виду.
Да, конечно. Я же посмотрел логику:
Код:lda CurX ; ani 0FCh ; rrc ; rrc ; adi 90h ; mov h,a ; lda CurY ; cpi 08h ; jnc OutSymCrd ; mvi a,08h ; sta CurY ; OutSymCrd: sui 08h ; mov l,a ; [HL] верх координаты
Код:ld a,(CurX) ; and a,0FCh ; rrca ; rrca ; add a,90h ; ld h,a ; ld a,(CurY) ; cp a,08h ; jp nc,OutSymCrd ; ld a,08h ; ld (CurY),a ; OutSymCrd: sub a,08h ; ld l,a ; [HL] верх координаты
С уважением, Станислав.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)