спасибо:)
вроде получилось... по вашему примеру скопировал файл
при запуске ругается на VT52 в консоле эмулятора, надеюсь это не страшно????
Вид для печати
спасибо:)
вроде получилось... по вашему примеру скопировал файл
при запуске ругается на VT52 в консоле эмулятора, надеюсь это не страшно????
щас будет:)
хотя постойте.... я использую предпоследнюю версию, наверно поэтому и ошибки...
- - - Добавлено - - -
запустил на новом---лампочки глаз радуют:)
Еще бы - в 22 веке тоже любили :D
очень похоже:)
- - - Добавлено - - -
добрый вечер.
есть программа у меня, она используется для проверки различных узлов в оборудовании под управлением ДВК-3М
очень хочется разобрать её на атомы для понимания как и что там работает, да боюсь моих познаний не хватит:)
что нужно: в идеале превратить в исходник, это наверно крайне сложно, даже скорее невозможно!!!!
или хотя бы в удобоваримый для понимания вариант:код-данные-емт(ввод-вывод) итд итп......
таких программ в комплекте штук 8 разных, одна из них рабочая, остальные тестовые-проверочные, комплектов 4 штуки, в принципе они однотипные но имеются различии.
:) это ещё не самая маленькая
там тёмный лес.....:) к589 мпу через интерфейс ну и кучка плат которая напрямую через и2 и дешифратор адресов
- - - Добавлено - - -
по 167002 один бит вроде проверяется, это чтобы стартануть и не вылететь, точнее проверяется готовность 589мпу к обмену
Если ссылки нет (возможно был аттач файла), то не сохранилось.
CTRL/B не лучшая комбинация для RT-11 - в FB/XM/ZM монторах она используется.
Также нежелательно использовать CTRL/A (редкий случай - поддержка графдисплея), CTRL/F (FB/XM/ZM), CTRL/O, CTRL/Q, CTRL/S, CTRL/X (FB/XM/ZM) - они тоже используются в RT-11, некоторые варианты невозможно перехватить стандартными средствами.
Нежелательно также использовать CTRL/P - его часто используют по умолчанию терминальные программы (VTCOM например) и RTEM-11.
Кроме того в "наших| ФОДОСах была привычка заменять стандартный CTRL/O на CTRL/D :)
Лучше не закладываться на SJ, а просто учитывать возможные варианты. :)
А то потом рождаются мифы о том, что где-то TAB стирает символы по дороге на экране и тому подобное только от того, что не были учтены варианты :)
Ну в сущности связь фортрана с ассемблером очень проста, а работа с прерываниями требует большой аккуратности. Ну и нужно помнить, что большая часть фортрановских операций ввода-вывода не повторновходимы, а значит их нельзя использовать в обработчике прерывания.
Ну так ничего сложного: нужно включить посимвольный режим и запрет ожидания - недавно показывал пример, в нужном месте делать проверку с помощью .TTINR - если ничего не нажато (установлен бит C), просто идти дальше, если нажато - смотреть что (вернет в R0) и реагировать соответственно. :)
Удаление в знак протеста против действий MM
добрый день.
вот здесь http://zx-pk.ru/threads/15587-progra...l=1#post378045
команда *TEST=TEST файл LST генерит? и сразу распечатывает?
в эмуляторе V05.06R и вышеуказанная команда создаёт только OBJ файл, что соответствует описанию.
наверно что то где то смонтировано как в кино??? :)
Автораспечатки в RT-11 в принципе нет, а чтобы получить файл листинга - надо попросить его сделать. В CSI строке это будет второй выходной файл, в команде MACRO нужно указать опцию /LIST[:file].
То, что показано - это распечатка ошибки на экран которая есть когда нет файла листинга и ее нет когда файл листинга есть (в этом случае ошибки показываются в нем).
понятно, спасибо
проверил, внёс ошибки в мак файл и ошибки напечатались:)
Удаление в знак протеста против действий MM
Я сложил в одну кучу все, что касается ПП на УКНЦ.
Там последний PRUN для упрощения запуска на ПП и несколько простых программ (некоторые собраны, некоторые только в исходниках):
- KBFIX - исправление "залипания" клавиш дополнительной клавиатуры в режиме ДКЛ /у кого хоть раз залипла девятка в K52 после часа работы, тот поймет ;)/
- NOALF - еще одна затычка - отключение клавиши АЛФ нафиг - кто как, а я частенько в нее попадал вместо shift :)
- PPCP - пример программы которую можно запускать как в RT-11 так и на ПП
- PPTEST - пример программы для ПП которая после выполнения сама себя выгружает
Ну и IOSCAN в комплекте содержит вариант для ПП.
Вроде бы есть документация "Работа с внешними устройствами". Там подробно объяснено, что сначала надо запросить блок памяти, получив его адрес. А уже затем загрузить в ОЗУ ПП и дать команду на выполнение. В примере грузится строго по адресу 30000. А если мы запускаем из-под RT-11 и до этого уже что-то загрузили, то всё будет потёрто.
По поводу подпрограммы посылки адреса блока параметров по каналу К2: после посылки четырех байтов надо обязательно дождаться установки флага готовности, это свидетельствуют о том, что блок параметров обработан процессом канала К2 и выполнен.
Что-то в качестве примера:
Код:BLK: .WORD 0,32,0,0,0
BLK0: .WORD BLK,-1
CHAN2: MOV #BLK0,R0
MOV #5,R1
BR 2$
1$: MOVB (R0)+,@#176676
2$: TSTB @#176674
BPL 2$
SOB R1,1$
RETURN
START: MOV #777,AA
MOVB #1,BLK+1
MOV #<$END-$BEGIN>,BLK+6
CALL CHAN2
TSTB BLK
BEQ 1$
.PRINT #WARN
.EXIT
1$: MOVB #20,BLK+1
MOV #$BEGIN,BLK+6
MOV #<$END-$BEGIN>,BLK+10
CALL CHAN2
MOVB #30,BLK+1
CALL CHAN2
AA: BR .
MOVB #2,BLK+1
CALL CHAN2
.EXIT
$BEGIN:
...............
MOV #AA/2,@#177010
MOV #NOP,@#177014
RETURN
$END:
WARN: .ASCIZ /?SCAN-F-No memory for load/
Удаление в знак протеста против действий MM
доброе утро.
есть ли возможность так организовать печать в программе на терминал при которой: очищается экран, печатаются строки с информацией, печатаются строки с информацией на том же месте ?????
Что то типа такого, насколько мне не изменяет память
Но если выводимая строка статуса может быть разной длины - нужно учесть это и затирать хвост предыдущего вывода
Код:.PSECT CODE
;....
.PRINT #Mess
;....
.PSECT DATA
Mess: .ASCII /Message/<15><200>
Можно использовать коды управления терминалом типа VT52.
Курсор в верхний левый угол: <033>H
Очистить экран ниже курсора: <033>J
Очистить строку после курсора: <033>K ( если чистить сразу весь экран - очищать отдельные строки уже не надо и наоборот ).
Программа, выводящая строки на экран таким способом - может выглядеть так:
Код:;
.MCall .Print, .Exit
START:
Mov #75., R2
2$:
.Print #Scr
Clr R0
1$: SOB R0, 1$
IncB Byte1
IncB Byte2
IncB Byte3
IncB Byte4
SOB R2, 2$
.Exit
Scr: .ASCII <33>/H/<33>/J/<12>/Str1: /
Byte1: .ASCII /0/<15><12><12>
.ASCII /Str2: /
Byte2: .ASCII /0/<15><12><12><12><12>
.ASCII /Str3: /
Byte3: .ASCII /0/<15><12><12><12><12><12><12><12><12><12><12>
.ASCII /Str4: /
Byte4: .ASCIZ /0/
.End START
;
А, да .PRINT, а не .TTYOUT, поправил :)
доброе утро.
подскажите как лучше реализовать:
есть команды сом1 сом2 сом3......сомN, также эти команды могут содержать перед собой кол-во повторов 888сом1 333сом2 222сом3......111сомN и пакетный вариант 888сом1,333сом2, 222сом3,......111сомN-последний вариант наверно из области фантастики:)
команды нужно декодировать и в результате получить переход на нужную подпрограмму.
да
в общем я понимаю как и что должно работать по моей задумке.....
проблема в реализации.
допустим я введу через .GTLIN 222сом1 - мне нужно команду декодировать, разделить количество повторов от команды, в случае пакета команд после исполнения первой перейти на вторую, третью итд итп
gfd71, я не задавал вопрос я предложил как оформить )
gfd71, я не задавал вопрос я предложил как оформить )
он для всего абзаца.
Через GTLIN что то дебри какие-то получаются, почему бы перестать работать с RT-11 уже на самом раннем этапе и делать все остальные манипуляции внутри интерфейса для Оператора?
я на ощупь предлагаю, поскольку мне страшно подумать что вы подразумеваете
под "декодировать" ) скорее всего моё предложение не реализуемо окажется как только всплывут детали-подробности...
опишите ваши три режима в виде блок схемы (хотя бы для себя) 333 - кол-во циклов независимых
я так понял что 1 случай когда этот параметр одинаков для всех команд
второй когда растёт некая прогрессия для каждой следущей команды
пакетный режим подробнее и в виде блок схемы
- - - Добавлено - - -
ещё важный момент - вложенность или ожидание окончания предыдущего цикла????
- - - Добавлено - - -
я бы запускал один какой-то единый справочник-командер
где можно менять параметры и запускать руками нужные режимы работы
т.о. всё отладить, а потом уже можно автоматизировать кусками )))
- - - Добавлено - - -
программисты профессионалы наверняка могут изящнее что то написать.
com1 исполнится процедура соответствующая команде, 10com1 - десять раз исполнится нужная процедура, 10com1,20com2 - десять раз первая процедура, двадцать раз вторая процедура
блок схемы рисовать - нормального редактора пока не нашёл:)
последовательно, пока не подразумевается переход куда то в зависимости от исполнения предыдущего, хотя вполне возможно когда нибудь..........
во-во, он самый, наверно это то что мне нужно
было бы здорово шаблончик на macro11
подскажу - простой карандаш и тетрадка в клетку )
По поводу команд - не сразу сообразил - в RT-11 если не ошибаюсь команды не могут начинаться с цифр !!!
готового шаблона нет и быть не может, я вообще не думаю что писать интерфейсы на ассемблере это удобно...
любой простой интерфейс с выводом пунктов по координатам на экран и какой-то "курсор" управления
выбором нужного пункта - вроде бы ничего сложного.