Вход

Просмотр полной версии : "Академическое" - не есть "удобное"



Alikberov
11.01.2026, 17:00
Над этим я размышлял ещё в далёкие 90-е, задумываясь над кодом позиционирования курсора ВГ75:


mvi a,80h ; Установка позиции курсора
sta 0c001h ; Подготавливаем ВГ75
mov a,e
sta 0c000h ; Позиция X
mov a,d
sta 0c000h ; Позиция Y

Допустим, если все УВВ в адресации сместить на один бит влево - чтобы чётный/нечётный адрес ссылался на один порт:

8000/8001 - ВВ55 порт A
8002/8003 - ВВ55 порт B
8004/8005 - ВВ55 порт C
8006/8007 - ВВ55 режим
A000/A001 - ВВ55/ВИ53 порт A / канал 0
A002/A003 - ВВ55/ВИ53 порт B / канал 1
A004/A005 - ВВ55/ВИ53 порт C / канал 2
A006/A007 - ВВ55/ВИ53 режим
C000/C001 - ВГ75 данные
C002/C003 - ВГ75 режим/статус
E008/E009 - ВТ57 канал 2 адрес
E00A/E00B - ВТ57 канал 2 счётчик
E010/E011 - ВТ57 режим

Управление курсором стало бы компактнее:


mvi a,80h ; Установка позиции курсора
sta 0c002h ; Подготавливаем ВГ75
xchg
shld 0c000h ; X и Y одной командой

И программирование ВТ57:


shld 0e008h ; вместо mvi m,0d0h + mvi m,76h
xchg
shld 0e00ah ; вместо mvi m,23h + mvi m,49h

Что упростило бы и с каналами ВИ53.

Практически все Микро-ЭВМ строились на базе из академических справочников, однако на уровне сигналов нет совершенно никакой разницы, куда какие сигналы идут. Но "точечно" - код мог бы получить выигрышную оптимизацию по числу инструкций и тактов.

cy6
11.01.2026, 21:51
8000/8001 - ВВ55 порт A

A000/A001 - ВВ55/ВИ53 порт A / канал 0
К сожалению, на мелкую доработку совсем не похоже.
С такой доработкой, можно кинуть эти порты куда угодно, ибо совместимости одинаково нет на все 100%.
Весь любой софт перестанет работать.

Alikberov
12.01.2026, 01:00
Можно на КП11 или на ИР21 организовать сдвиг адреса - опционально, тумблером или от ВВ55.

Vital72
12.01.2026, 01:33
но-но-но, ай-яй-яй и фу-фу-фу