Я не очень понял про многотерминальные системы. Есть ли какой-то другой более правильный способ опроса клавиатуры в RT-11? (с ожиданием нажатия, и без).
Я не очень понял про многотерминальные системы. Есть ли какой-то другой более правильный способ опроса клавиатуры в RT-11? (с ожиданием нажатия, и без).
Хобот, лови для Паскаля. Спасибо Никите и Alex_K
- - - Добавлено - - -Код:VAR crtflg: INTEGER; PROCEDURE CrtInit; BEGIN /*$C .TITLE CRT001 MOV @#^O177560, crtflg BIC #^O100, @#^O177560 */ END {CrtInit}; PROCEDURE CrtQuit; BEGIN /*$C MOV crtflg, @#^O177560 */ END {CrtQuit}; /*------------------------------- Cut here --------------------------------*/ FUNCTION GetKey : INTEGER; BEGIN /*$C .TITLE CRT002 .GLOBL RETKEY CLR R1 TSTB @#^O177560 ; is char? BPL RETN$ ; no char => return 0 RETKEY: MOVB @#^O177562, R1 ; A key code CMPB R1, #^O33 BNE RETN$ ESCKEY: TSTB @#^O177560 BPL ESCKEY MOVB @#^O177562, R1 ; char => low byte BIS #^O15400, R1 ; ^O33 => high byte RETN$: MOV R1, 12(SP) ; return result */ END {GetKey}; /*------------------------------- Cut here --------------------------------*/ FUNCTION WaitKey : INTEGER; BEGIN /*$C .TITLE CRT003 WTKEY$: TSTB @#^O177560 ; Ready? BPL WTKEY$ ; No! JMP RETKEY */ END {WaitKey};
CrtInit нужен чтобы переключить ввод с эха на опрос процедурами GetKey и WaitKey. CrtQuit возвращает ввод обратно - его надо вызывать перед выходом в ОС. Можно было бы попробовать вставить эти вызовы прямо в процедуры опроса. Но если WaitKey ещё как-то будет работать, то GetKey нет - потому что в процессе работы программы ввод будет хапать то ОС (с выводом эха), то сама GetKey. Поэтому только такой механизм.
У кого-нить есть OMSI Pascal, запатченный под возможность использовать в идентах символ "_"?
У кого-нить есть линкер и Macro-11, запатченные под иденты длиннее 6 символов? Это вообще возможно?
Последний раз редактировалось hobot; 27.03.2020 в 03:06.
При генерации RT-11 можно указать такую опцию, как "многотерминальная поддержка". Это для случая, когда к одному компьютеру подключено более одного терминала и эта опция обеспечивает поддержку этих терминалов на уровне системы. Возможность для программистов, чтобы всё было более-менее единообразно. Система поддерживает многотерминальные версии макрокоманд, кольцевой буфер терминала, отработку Ctrl/S, Ctrl/Q Ctrl/O стандартным образом.
Только я вот знаю только одну программу, которая пользуется этим функционалом - многотерминальный бэйсик. Он позволят на конфигурации без диспетчера памяти посадить за терминалы, как я видел, 4-х студентов, обеспечив им бэйсик ...
Имеет ли смысл многотерминальная поддержка на УКНЦ смысл? С первого взгляда не имеет, но кто его знает - вполне может возникнуть желание подцепить терминал на С2 и(или) на переделанный сетевой адаптер(токовая петля 20 ма, использовалось на УКНЦ входящих в комплект СВД ВУЗ, кои, как утверждалось, даже экспортировались в ГДР).![]()
Последний раз редактировалось Alex; 27.03.2020 в 09:25.
Oleg N. Cher(27.03.2020)
Я видел распечатку исходников многотерминального Паскаля для RT-11, на данный момент - распечатка передана на хранение в музей истории МИЭТа.
Со скан-кОдами клавиатуры для Паскаля, что то никто даже не проявил интерес, я ожидал, конечно, что такая возможность (буде реализованной) пригодилась бы всем сочувствующим, не только мне https://zx-pk.ru/threads/20444-pasca...=1#post1053516 - вопрос\запрос висит по ссылке с исходником
Последний раз редактировалось hobot; 27.03.2020 в 09:49.
Ответ нет на оба вопроса, ибо RADIX50. 3 символа помещаются в 16 bit integer, 6 символов - 32 бита (2 слова).
Пользуйте GNU binutils (asm, linker, etc). Но там нет Pascal. И нет MACRO11 библиотеки (смотрю доку на RT11)
Я делаю себе C функции или макросы препроцессора с asm вставками и EMT), инструкции макросов не такие мощные в GNU as, как в MACRO11.
В теории можно сделать конвертор из формата файлов OBJ в Files11 в *.o (a.out) для target=pdp11-dec-aout
hobot(27.03.2020), nzeemin(27.03.2020), Oleg N. Cher(27.03.2020)
Продолжаю изучать добытый @shattered софт.
Решил глянуть, что же там за
PAS1.LZS unknown pascal
Смотрим листинг
В шапке есть этот вариант и похоже именно его @form патчил на предмет правильногоКод:РАБОТАЕМ С АРХИВОМ: DK:PAS1.LZS [ 85] 13-26-88 ПОЛНЫЙ КАТАЛОГ АРХИВА Метод 'LZS', версия V02.01, буфер сжатия: 4096, общий каталог: НЕТ ---------- ---------- -------- --------- ------- ------------------- Имя файла блоков дата <байтов> сжатие адрес в архиве ---------- ---------- -------- --------- ------- ------------------- PAS1.SAV [ 52] 01-11-81 18996 29% [ 0]+ 16 PAS1.OBJ [ 91] 28-09-85 24182 48% [ 37]+ 84 ---------- ---------- -------- --------- ------- ------------------- 2 143 43520 41 % 85 HD7>RU PAS1 TEST,TT:=TEST TEST P A S C A L 13- -88 PAGE 1 ДВК "ЭЛЕКТРОНИКА НЦ 8020/2,3,4" LINE STMT LEVEL NEST SOURCE STATEMENT 1 PROGRAM TEST; 2 BEGIN 3 1 1 1 WRITELN('Ok'); 4 2 1 1 END. ERRORS DETECTED: 0 FREE MEMORY: 9861 WORDS ERRORS DETECTED: 0 FREE MEMORY: 9861 WORDS HD7>MAC TEST HD7>LIN TEST,PAS1 HD7>RU TEST Ok
заголовка и современного календаря.
Идём дальше, по описанию есть ещё один архив
PASCAL.LZS unknown pascal
И вот с ним не всё однозначно,
программа транслятор с таким заголовком так же есть в шапке темы и
в архиве, но тот же тест в самом конце отказался запускаться, наверное
я просто не в курсе какой то специфики???
Смотрим листинг:
Код:РАБОТАЕМ С АРХИВОМ: DK:PASCAL.LZS [ 323] 13-26-88 ПОЛНЫЙ КАТАЛОГ АРХИВА Метод 'LZS', версия V02.01, буфер сжатия: 4096, общий каталог: НЕТ ---------- ---------- -------- --------- ------- ------------------- Имя файла блоков дата <байтов> сжатие адрес в архиве ---------- ---------- -------- --------- ------- ------------------- PASFOR.SAV [ 40] 29-04-92 12675 38% [ 0]+ 16 PASIMP.SAV [ 36] 29-04-92 12612 32% [ 24]+ 420 PASIMP.PAS [ 42] 29-04-92 7643 65% [ 49]+ 248 STRING.PAS [ 6] 29-04-92 1134 64% [ 64]+ 228 ERROR.PAS [ 2] 29-04-92 0586 43% [ 66]+ 354 CSI.PAS [ 10] 29-04-92 2477 52% [ 67]+ 444 INTRPT.PAS [ 3] 29-04-92 0692 55% [ 72]+ 378 PASPRF.PAS [ 21] 29-04-92 3716 66% [ 74]+ 62 PCL.PAS [ 27] 29-04-92 5973 57% [ 81]+ 210 PDROMA.PAS [ 1] 29-04-92 0246 52% [ 93]+ 56 PDHANO.PAS [ 1] 29-04-92 0284 45% [ 93]+ 318 PDRAND.PAS [ 1] 29-04-92 0246 52% [ 94]+ 106 PDGRAF.PAS [ 1] 29-04-92 0284 45% [ 94]+ 368 PDBIOR.PAS [ 17] 29-04-92 2778 69% [ 95]+ 156 HYPHEN.PAS [ 7] 29-04-92 1468 59% [ 100]+ 390 VOC.PAS [ 24] 29-04-92 4334 65% [ 103]+ 338 PAS4.OBJ [ 5] 29-04-92 1520 41% [ 112]+ 80 VOCE.PAS [ 16] 29-04-92 3166 62% [ 115]+ 80 PAS7.OBJ [ 5] 29-04-92 1318 49% [ 121]+ 190 PAS9.OBJ [ 5] 29-04-92 1492 42% [ 123]+ 500 PASB.OBJ [ 7] 29-04-92 2336 35% [ 126]+ 472 PAS0.OBJ [ 5] 29-04-92 1398 46% [ 131]+ 264 PAS1.OBJ [ 4] 29-04-92 1200 42% [ 134]+ 142 PAS2.OBJ [ 7] 29-04-92 2073 43% [ 136]+ 334 PAS3.OBJ [ 5] 29-04-92 1668 35% [ 140]+ 376 PAS5.OBJ [ 6] 29-04-92 1930 37% [ 144]+ 12 PAS8.OBJ [ 4] 29-04-92 1108 46% [ 147]+ 422 PAS6.OBJ [ 5] 29-04-92 1546 40% [ 150]+ 10 PASA.OBJ [ 7] 29-04-92 2170 40% [ 153]+ 36 EXAM1.TXT [ 1] 29-04-92 0235 55% [ 157]+ 174 EXAM2.TXT [ 1] 29-04-92 0167 68% [ 157]+ 426 PASNHD.OBJ [ 84] 29-04-92 26163 40% [ 158]+ 98 PASFPP.OBJ [ 74] 29-04-92 22916 40% [ 209]+ 166 PASFPP.SAV [ 58] 29-04-92 20975 30% [ 254]+ 58 PASPRF.OBJ [ 9] 29-04-92 2897 37% [ 295]+ 58 PASFOR.PAS [ 75] 29-04-92 10929 72% [ 300]+ 412 ---------- ---------- -------- --------- ------- ------------------- 36 622 165376 48 % 323 HD7>RU PASFPP TEST,TT:=TEST TEST P A S C A L/RAFOS 13- -88 9:25 V1-564 PAGE 1 SM-3/SM-4 MINICOMPUTERS LINE STMT LEVEL NEST SOURCE STATEMENT 1 PROGRAM TEST; 2 BEGIN 3 1 1 1 WRITELN('Ok'); 4 2 1 1 END. ERRORS DETECTED: 0 FREE MEMORY: 8895 WORDS ERRORS DETECTED: 0 FREE MEMORY: 8895 WORDS HD7>MAC TEST HD7>LIN TEST,PASFPP HD7>RU TEST ?FATAL ERROR: RESERVED INSTRUCTION TRAP PROGRAM COUNTER: 1476 HD7>
Последний раз редактировалось hobot; 13.10.2020 в 12:04.
PASFPP.SAV - название файла намекает, что это транслятор OMSI (а листинг, что его переделали шаловливые советские ручки) и то, что транслятор будет выдавать код с поддержкой FPP (а OTS должны FPP инициализировать - отсюда прерывание по резервной инструкции, ибо на ДВК FPP - это редкость редкая)
- - - Добавлено - - -
Посмотреть, что по адресу 1474 или выложить программу - могу проверить на J11
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)