Я так понял, что если я хочу, чтобы программа работала в том числе на самом базовом Специалисте (только с загрузчиком Зверкова), то мне можно использовать только C037 и C438. А все, что выше C800 относится уже к Монитору, которого может не быть.
Я так понял, что если я хочу, чтобы программа работала в том числе на самом базовом Специалисте (только с загрузчиком Зверкова), то мне можно использовать только C037 и C438. А все, что выше C800 относится уже к Монитору, которого может не быть.
Теоретически это правильно. Может случиться такая ситуация, если кто-то ярый фанат "классики" из 1985 года и использует оригинальный монитор А.Волкова, который тоже прошивается в ПЗУ C800, но не имеет РК-совместимых входов C803...C833. Или же, если кто-то слишком беден, чтобы поставить вторую РФ2 и использует монитор загружаемый в ОЗУ по сбросу. Такое часто встречалось в 80-тые годы. Но сейчас вряд-ли кто-то не поставит вторую РФ2, т.к перестанет работать часть системных программ.
Кстати, ещё до Орлова был монитор от КООП SP-580 который имел входные точки F803...F833 на 100% совместимые с РК86, но этот монитор стоял на адресах F800...FFFF (а ППА клавиатуры FF00 отсюда было перенесёно куда-то ещё). Это позволяло без переделки использовать программы от РК86, но увы, стандарты задаёт публикация в журнале, а не наличие программы.
При выводе на C037 есть один нюанс. В оригинальном и зверковском загрузчике эта подпрограмма не делает ролика при ВК в последней строке, а переходит на начало экрана. А в ленинградском мониторе в загрузчик умещён и ролик экрана, потому там п/п-ммы C037 и C809 в плане ролика в последней строке одинаковы, а в орловском нет. Т.е п/п-мма C037 в НЕленинградском мониторе неполноценна. Проблема ролика была исправлена в орловском мониторе, там п/п-мма C809 уже делает ролик.
Потому, если в программе нужен ролик экрана и эта программа должна работать не только на ленинградском мониторе, но и на журнальном, то надо пользоваться входами C809 и C818. Потому-то системные программы, где ролик необходим, и пользовались именно входами монитора, а не загрузчика.
Последний раз редактировалось barsik; 09.03.2018 в 13:38.
Мы в радиокружке грузили монитор с кассеты. Это было в 89-90-м году примерно.
- - - Добавлено - - -
Какие управляющие символы (позиционирование в нужное место экрана, очистка экрана и т.д.) есть в процедурах C037 - ZCOUT и C438 - ZMSSG?
- - - Добавлено - - -
Мне не нужен ролик, мне нужна совместимость с любыми прошивками. И с отсутствием Монитора по адресу C800.
Я посмотрел исходник зверковского загрузчика и орловского монитора (они, увы, есть только на бумаге) и обнаружил, что ни там, ни там, не обрабатываются вообще никакие искейп-коды. Код 1BH игнорируется. Это очередная ошибка Орлова, т.к стандартная подпрограмма F809 в РК86 обслуживает позиционирование по ESC+Y. Так что, если нужно позиционирование по ESC+Y, то пользуйтесь ленинграским монитором.
А в журнальных ПЗУ обслуживаются только коды: 0D, 0A, 18, 08, 19, 1A, 0C, 1F.
Очистку выполняет код 1F, хотя в CP/M это делается кодом 0C. А код 0C здесь HOME - курсор в левый верхний угол. Если позицию курсора надо сохранить, то для очистки делают CALL C010, это стандартный вход CLS, регистров не портит. В крайнем случае можно позиционировать курсор понемногу, кодами 08 - влево, 18 - вправо, 19 вверх, 1A - вниз.
Ха... в этих ПЗУ даже управление инверсией не обслуживается. Вот так облом. Это что же получается, что чтобы включить инверсию символов, надо нагло лезть в служебные ячейки INVERSE (8FFA/8FFB) и вручную заносить туда коды FF. Вообще драйвер вывода символов в Специалисте очень неудобный. Особенно раздражает, что нет нормальных координат позиции курсора POSX и POSY, как есть в РК86 и ОРИОНЕ. А также свой фонт замучишься загружать, хотя это и предусмотрено.
В общем, похоже, для позиционирования с орловским монитором Вам придётся вручную подставлять координаты курсора в ячейки 8FFC (V_CUR: она 0...FF) и 8FFD (H_CUR: она 0...BF). V_CUR это позиция нижней линии знакоместа на экране (т.е содержимое регистра L при экранной адресации через HL), а H_CUR это гориз.позиция сдвинутая влево на 3 разряда.
Так, что лучше пользоваться ленинградским монитором, он на порядок лучше.
Последний раз редактировалось barsik; 09.03.2018 в 18:40.
Проверено экспериментально на играх - выходы цвета ВВ55: 10, 11 и 13 соответственно R, G, B.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Чтобы позиционировать курсор для Специалиста с убогим ROM-BIOS, не поддерживающим позиционирование искейп-кодом ESC+Y, используйте вот такие процедуры. В них на входе нормальные человеческие координаты (0...63, 0...24). Удобно объединить их в одну подпрограмму POS_HL передавая координаты X,Y в регистрах HL.
Код:. V_CUR EQU 8FFCH ; верт.коорд.курсора H_CUR EQU 8FFDH ; гориз.коорд.курсора SET_V: ADD A,A LD C,A ADD A,A ADD A,A ADD A,C ADD A,8 LD (V_CUR),A RET SET_H: LD C,A ADD A,A ADD A,C LD (H_CUR),A RET
Последний раз редактировалось barsik; 09.03.2018 в 18:19.
Гммм...
Нашли "эталон"! Три почти эталонно безграмотно спроектированных машинки. Нет, оно понятно почему и зачем, но тем не менее.
2,4В / 300Ом = 8мА! Тут ВА86 с его вытекающим током 5мА пуп надорвет от земли отрывать. При том, что втекающий у него 32мА, а подтяжка 4,7...10кОм как правило (на длинных шинах может и Ом до 300 уменьшить придется).- значит совершенно незачем впустую грузить шину. .... И полезнее не подтяжка шины на +5В, а наоборот утяжка шины на землю через резисторы 300 Ом. Это повышает надёжность.
С того, что болтающаяся в воздухе шина несколько меня коробитС чего Вы взяли, что грузить шину полезно?
[свернуть]
Последний раз редактировалось TomaTLAB; 09.03.2018 в 19:06.
electronox necromancer
Одним словом - радиолюбительские. То есть делаем из того что есть под рукой, экономя на "спичках". Времена такие были, наверно.
Часто загоняя в предельные режимы, полагаясь на "особые" свойства того или иного элемента.
В общем куча "грязных хаков", предмет особой гордости авторов
Отсюда напр. конденсаторы в несколько пик. на информационных выводах для затяжки фронтов и подавления "иголок".
В промышленных тоже встречается, и по той же примерно причине.
Какая нибудь ерунда могла оказаться остродефицитной и приходилось искать замену (или вовсе не устанавивать).
Отсутствие тех же подтяжек на шинах, буферизации шин, ну и прочие мелочи.
Вот берем справочник "Микропроцессоры и микропроцессорные комплекты..." под ред. Шахнова стр.169 п.3.15. Рекомендации по применению:
"... для увеличения быстродействия системы тристабильные линии шины адреса и данных рекомендуется подключать к шинам +5В через резисторы сопротивлением 2,2кОм..."
Орион-128 еще так, более-менее, хотя тоже не без недостатков.
Вот "Ириша", например, спроектирована "по учебнику", как говорится.
Последний раз редактировалось TomaTLAB; 09.03.2018 в 21:01.
electronox necromancer
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)