http://caxapa.ru/52582.html
Тут забавно комментируется кусочек дизассемблированного кода от прошивки клавиатуры "Русло-3" (МС7004).
(Выпускалась заводом 'МИКРООМ', 357340, РОССИЯ, СТАВРОПОЛЬСКИЙ ОБЛ., Г. ЛЕРМОНТОВ, УЛ. КОМСОМОЛЬСКАЯ, 13).
Вид для печати
http://caxapa.ru/52582.html
Тут забавно комментируется кусочек дизассемблированного кода от прошивки клавиатуры "Русло-3" (МС7004).
(Выпускалась заводом 'МИКРООМ', 357340, РОССИЯ, СТАВРОПОЛЬСКИЙ ОБЛ., Г. ЛЕРМОНТОВ, УЛ. КОМСОМОЛЬСКАЯ, 13).
Да, мне тоже было забавно это видеть, когда дизассемблировал. Но что делать, система команд MSC-48 такая, что логические операции над каналами P1 и P2 можно делать только с непосредственными данными. По команде IN не всегда прочтется то, что записали по OUTL. Так что извратились, как могли. Чтобы избежать такой ситуации надо было хранить копию P2 в памяти, благо ячеек свободных достаточно, но вот почему не догадались - это для меня большой вопрос.
---------- Post added at 22:30 ---------- Previous post was at 22:08 ----------
В дополнение еще один шедевр из прошивки 1801РЕ1-000 - монитор МС1201.0.
Как известно, условия начального пуска в МС1201 задаются переключателями, состояние которых можно прочесть из битов 0 и 1 регистра SEL1 (0177716). Условий соответственно может быть четыре, по количеству всевозможных значений из двух битов. Вызывает сперва удивление, почему просматриваются три бита, тем более бит 2 до этого был очищен. Но далее самое интересное - в цикле перебираются числа и сравниваются с тем что прочли из SEL1. А уж если сошлось, то тогда вычисляется адрес в таблице условий начального пуска, читается значение из таблицы и делается переход по прочитанному значению.Код:.=160000
160000$:BR 160016$ ; Точка начального пуска
160002$:.WORD 160446$,2340 ; Вектор прерывания HALT, зависание в HALT
160006$:.WORD 160374$,2340 ; Вектор прерывания по двойному зависанию
160012$:.WORD 160416$,2340 ; Вектор прерывания по ошибке приема АВП
; Начальный запуск
160016$:BIS #10,@#177716 ; Открыть ПЗУ в диапазоне 160000-173777
BIC #4,@#177716
MOV #177614,SP ; Нач.значение указ.стека (177600-177613)
CALL 160112$ ; Скопировать п/п записи/чтения в сист.ОЗУ
CLR @#177650
CLR @#177644 ; Признак прерывания = 0 (HALT)
CLR @#177640
CLR R0 ; Вычисляемое условие начального пуска = 0
MOV @#177716,R1
BIC #177770,R1 ; R1 = условие нач. пуска (биты 1-0 177716)
160070$:CMP R1,R0 ; Вычисляемое и реальное равны?
BEQ 160100$ ; Да
INC R0 ; Вычисляемое условие плюс 1
BR 160070$ ; На начало цикла
160100$:ASL R0
ADD #161432$,R0 ; R0 = таблица адресов начального пуска
MOV @R0,R0 ; R0 = адрес начального пуска
JMP @R0 ; Переход по адресу начального пуска
; Адреса п/п исполнения условий начального пуска
161432$:.WORD 160134$,160440$,160152$,160170$
Далее текущее значение регистров R0 и R1 не используется.
По моему можно было сделать проще:
Код:MOV @#177716,R1
BIC #177770,R1 ; R1 = условие нач. пуска (биты 1-0 177716)
ASL R1
JMP @161432$(R1)
Пост перенесен сюда.
Не сказать, чтобы очень нужная вещь, но вдруг кому пригодится ;)
Версия IOSCAN, которая работает в RSX-11.
TSK в архиве годится для RSX-11M+ и Micro/RSX V3.0 и новее.
Для RSX-11M, RSX-11S нужно собирать в каждой конкретной системе.
При запуске проверяет, что нет задач с незаконченным I/O.
В RSX-11M/S также проверяет, что программа собранна с нужной системой.
UPD: Добавил IOSCAN для P/OS V3.2 ;)
В другом P/OS работать не будет ибо нет в системе функционала для переносимости привилегированных программ.
Такой момент, по поводу ДВК и всего что с ним связано )))
В архиве есть загрузочная (системная) дискетка с MX и MY драйвером в подборке игрушек от Арсения. А есть ли у кого и мог бы кто выложить образ загрузочной дискеты, которую на практике можно применять. Там должен быть нормальный RT-11 монитор, SL драйвер, транслятор ассемблера с библиотеками, транслятор паскаля с библиотекой и Link (конечно). Очень большая просьба выложить если есть такая возможность dsk-образ такой ДВК-ашной дискеты (будет к архиву пришпилина).
Спасибо.
:redface:
Любой образ можно сделать загрузочным с любого устройства.
Например, если мы загрузились с устройства HD и хотим сделать из образа, подключенного к HD2: - загрузочную дискету MX с монитором RT11SB, то нужно использовать команду:
При этом в образе, подключенном к HD2: , должны находиться файл монитора и драйвер MX. Наличие там драйвера HD - не требуется.Код:copy/boot:MX HD2:RT11SB HD2:
Patron, очень спасибо за информацию, но в моём случае бесполезно =)
Мне даже не понятно куда и что писать из предложенных вами команд, у меня есть
эмулятор УКНЦ и куча загрузочных дискет для укнц (правильных) в виде образов.
Есть вот архив с дискетами для ДВК от Арсения, но там нет ни одной загрузочной дискеты для ДВК с компиляторами ))) Переделывать образы из архива без гарантии
работы на реальной ДВК - это не то что требуется ))) Нужна честная проверенная
рабочая системная RT-11+macro+link+pascal+*.(obj,sml) дискета для ДВК в виде dsk,
что-бы к архиву пришпилить )))
----------- Ну и конечно там драйвера и текстовый редактор должны быть как минимум )))
Спасибо!
Виндовсная версия.
Синхронизация с RT-11 версией: добавлены команды которые раньше не распознавались: SPL, MFPT, WRTLCK, TSTSET, CSM.
В посте про тупой дизассемблер поправлен файл.
Пофиксены охрененные косяки с JSR и EIS :)
В посте про тупой дизассемблер для виндовса. Поправилен файл. Был нерабочий.