С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Теперь понятно, почему в текстовых программах абракадабра отображается. Грустно все это.
Видимо речь об обычных подпрограммах. Обычное дело. Тут опа в другом, изменяются регистры, которое не должны меняться по документации ASCII.
Как то так функции биос-а описываются в красной книге
Address... 1113H
Name...... BEEP
Entry..... None
Exit...... None
Modifies.. AF, BC, E, EI[свернуть]
Электроника КР-02, MSX YIS-503IIR, Орион-128, Ленинград-2, Pentagon-128k, MSX2 YIS-503IIIR, MSX-EXT, ...
Тут не обычные подпрограммы, а косяк локализаторов биоса. Евгений Брычков считает, что регистры портятся из-за far call в модуль Hangul. Если достану себе Daewoo, поправлю этот глюк в биосе.
- - - Добавлено - - -
В корейском биосе есть ещё одня бяка. В нормальном MSX 24 текстовых строки и если напечатать что-то на последней позиции 24й строки, экран сдвинется вверх на 1 строку. На корейской машинке сдвиг происходит уже на 23й строке. В итоге пришлось избегать вывода последнего символа на 23й строке. Поэтому на картинке в предыдущем посту правый нижний угол выглядит так странно.
Понял, ну тогда конечно бяка, но не так страшно... Я почему-то подумал это прерывания такие корявые. Да, локализаторы знатно поработали.
EDIT: Кстати, про скролл на одну строку выше. Вообще-то в системной области висит переменная которая хранит кол-во строк для всех операций ввода-вывода на экран. Мы еще баловались, можно было хоть полэкрана "откусить", сначала что-то напечатать, уменьшить кол-во строк, и текст практически "перманентно" оставался (до CLS, SCREEN, WIDTH и прочих очищающих экран команд). Я сейчас вспомнил об этом и ее нашел - это она: F3B1 CRTCNT Number of lines of current screen - думаю есть смысл проверить, из-за нее ли это происходит, и если что не париться особо, установить туда что надо и вернуть назад символ в углу
Последний раз редактировалось Pencioner; 09.05.2018 в 17:39.
Электроника КР-02, MSX YIS-503IIR, Орион-128, Ленинград-2, Pentagon-128k, MSX2 YIS-503IIIR, MSX-EXT, ...
Из бутблока мы обращаемся к биосу напрямую, "call #00C6" например. А вот он сам делает межслотовый вызов локализатора. Биос по идее должен регистры сохранять перед таким вызовом, но этого он не делает. Ведь другие модули (сабром, драйвер дисковода и прочие) работают нормально и ничего не портят. Представляете что было бы, если сабром не сохранял регистры? А вот корейские "мастера" об этом не подумали, когда делали свой модуль. И сделали кривую бяку.
Последний раз редактировалось Wierzbowsky; 09.05.2018 в 19:25.
Электроника КР-02, MSX YIS-503IIR, Орион-128, Ленинград-2, Pentagon-128k, MSX2 YIS-503IIIR, MSX-EXT, ...
Опечатался. С6 должно быть. Позиционирование курсора. Даже там почему-то вызывается локализатор.
Работоспособность нового бутблока подтверждена на реальной машинке (Daewoo CPC-400S). Наверное займусь исправлением косяков биоса летом. Может тогда удастся достичь большей совместимости софта. А вот с конфигурацией слотов только Камиль сможет разобраться, если найдёт время. Теоретически чип логики можно выпаять и поставить на его место платку CPLD типа Альтеры. Тогда проблему со стотами наверняка можно будет решить достаточно быстро - алгоритмы работы плат MSX известны. Тем более, что классные спецы в нашей среде имеются.
Удалось победить глюк биоса, когда нельзя было печатать на последней позиции 23й строки. Теперь рамка ровная со всех сторон. Бутблок обновлён, как и картинка в моём посте:
http://zx-pk.ru/threads/25442-canivo...l=1#post963087
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)