Удаление в знак протеста против действий MM
Удаление в знак протеста против действий MM
Последний раз редактировалось MacBuster; 27.01.2019 в 09:03. Причина: Удаление в знак протеста против действий MM
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Я сложил в одну кучу все, что касается ПП на УКНЦ.
Там последний PRUN для упрощения запуска на ПП и несколько простых программ (некоторые собраны, некоторые только в исходниках):
- KBFIX - исправление "залипания" клавиш дополнительной клавиатуры в режиме ДКЛ /у кого хоть раз залипла девятка в K52 после часа работы, тот поймет /
- NOALF - еще одна затычка - отключение клавиши АЛФ нафиг - кто как, а я частенько в нее попадал вместо shift
- PPCP - пример программы которую можно запускать как в RT-11 так и на ПП
- PPTEST - пример программы для ПП которая после выполнения сама себя выгружает
Ну и IOSCAN в комплекте содержит вариант для ПП.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Вроде бы есть документация "Работа с внешними устройствами". Там подробно объяснено, что сначала надо запросить блок памяти, получив его адрес. А уже затем загрузить в ОЗУ ПП и дать команду на выполнение. В примере грузится строго по адресу 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
Последний раз редактировалось MacBuster; 27.01.2019 в 09:03. Причина: Удаление в знак протеста против действий MM
доброе утро.
есть ли возможность так организовать печать в программе на терминал при которой: очищается экран, печатаются строки с информацией, печатаются строки с информацией на том же месте ?????
Что то типа такого, насколько мне не изменяет память
Но если выводимая строка статуса может быть разной длины - нужно учесть это и затирать хвост предыдущего вывода
Код:.PSECT CODE ;.... .PRINT #Mess ;.... .PSECT DATA Mess: .ASCII /Message/<15><200>
Последний раз редактировалось Hunta; 05.11.2017 в 14:43.
Можно использовать коды управления терминалом типа 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 (пользователей: 0 , гостей: 1)