Попробовал снять все ограничения на использование символов КОИ-7 и КОИ-8 в комментариях и текстовых константах.
В приложении - последняя версия программного комплекта MACRO-11 ( включая компилятор MACRO V05.06r со снятыми ограничениями ).
Попробовал снять все ограничения на использование символов КОИ-7 и КОИ-8 в комментариях и текстовых константах.
В приложении - последняя версия программного комплекта MACRO-11 ( включая компилятор MACRO V05.06r со снятыми ограничениями ).
Oleg N. Cher(03.03.2020)
SIPP патч для простоты![]()
Последний раз редактировалось form; 08.06.2014 в 18:41.
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
Поддержка 8бит в RT-11 V5.7 (SLP патчи для RMON.MAC и EDTG.MAC).
Поддержка включается определением conditional EIGH$T = 1 на этапе SYSGEN.
Патч тупо разрешает 8бит, хотя может правильнее запользовать PASAL$ бит в JSW, который правда отмечен как undocumented и используется для VENU$C=1.
В перспективе - добавка вопроса в SYSGEN на эту тему и правка KED/K52.
К слову в сорцах KED/K52 в коментариях отмечены места "change for 8bit", но там придется подумать - 8бит у них выполняет какую-то функцию. Тупо поправленный KED работает, но русский текст показывает в инверсном цвете![]()
Последний раз редактировалось form; 08.06.2014 в 18:41.
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
Раз уж есть тема по программированию, предлагаю сюда же свалить всякие хитрости какие кто пользует
Например такие:
Код:JSR Rx,@PC ;СОХРАНИТЬ Rx В СТЕКЕ, НЕ ТРОГАЯ PSW MOV #160000,SP ;ПОЛНАЯ ОЧИСТКА ПАМЯТИ (56Kb) MOV #4747,@#0 ;И ЧИСТЫЙ ОСТАНОВ БЕЗ ОШИБОК CLR PC ;В КОНЦЕ CALL @(SP)+ ;ВЫЗОВ СОПРОГРАММЫ
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
И я тоже добавлю - простой способ разворачивания цикла 2x:
1. Пусть есть цикл, выполняющийся N раз, типа:
mov N,r0
1$: cmd ! некая команда, например, clr(r1)+
sob r0,1$
2. Простой способ разворачивания того ж цикла в линейку:
mov N,r0
inc r0
asr r0
bcc 2$
1$: cmd
2$: cmd
sob r0,1$
Идея состоит в том, чтоб позаботиться о нечётном числе итераций до начала
цикла, и войти внутрь цикла в обход стандартного начала.
Задавали тут вопросы, решил сюда занести на всякий случай - вдруг кто не в курсе
Что слово .WORD можно опускать и писать
вместоКод:123,456,LABEL
знают наверное все.Код:.WORD 123,456,LABEL
Но есть еще одна фича. Можно писать <имяинструкции> чтобы вписать
код [первой] инструкции в программу:
Ну а полезное практическое применение этому на мой взгляд одно - использованиеКод:010000 <MOV> 005000 <CLR>
понятных команд для очистки/установки нескольких признаков процессора одновременно (например <SEC>!<SEZ>, <CLV>!<CLZ>!<CLN>)...
Хотя еще пожалуй для создания таблиц дизассемблера может пригодится![]()
Последний раз редактировалось form; 22.09.2011 в 09:40.
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
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Настройка экрана и запуск приложений
+ процедура gotoXY(x,y : integer); - для паскаля
+ процедура waitKEY; ожидания нажатия кнопочки - для паскаля
PASCALКод:Устанавливает цвет курсора 8 цветов от 60 до 67 (третий параметр) .TTYOUT #33 .TTYOUT #247 .TTYOUT #67 Цвет экрана .TTYOUT #33 .TTYOUT #242 .TTYOUT #60 Цвет символов .TTYOUT #33 .TTYOUT #241 .TTYOUT #67 Цвет знакоместа .TTYOUT #33 .TTYOUT #240 .TTYOUT #60 Установка формата экрана (61 - 80х24, 62 - 40х24, 63 - 20х24, 64 - 10х24) .TTYOUT #33 .TTYOUT #246 .TTYOUT #61 Запускаем нужное приложение (на примере 'МЗ1:ДИГГЕР.САЖ') .MCALL .CHAIN MOV #^RMZ1,@#500 MOV #^RDIG,@#502 MOV #^RGER,@#504 MOV #^RSAV,@#506 .CHAIN
Вот вопрос такой родился - почему никто не пишет игры для УКНЦ?Код:PROCEDURE WAITKEY; VAR KEY ORIGIN 177560B: INTEGER; BEGIN REPEAT KEY:=0 UNTIL KEY>0 END; Если завести глобальную переменную INKEY ORIGIN 177562B: INTEGER; там будет код последней нажатой клавиши PROCEDURE gotoXY(X,Y: INTEGER); BEGIN WRITE(CHR(27),'Y',CHR(32+Y),CHR(32+X)); END;
Платформа жива - пока для неё делают игры![]()
Последний раз редактировалось hobot; 27.09.2011 в 07:00.
При использовании на УК-НЦ печати через EMТ ^O341, возникла ситуация, когда видимо буфер где-то там переполняется и при интенсивной печати часть символов не выводится. Наверное где-то есть флажок, переполнен буфер или нет. Где он?
Ну да, если буфер переполнен, то устанавливается бит C в PSW. Поэтому код должен быть таким:
Titus, а зачем такие сложности, можно же подцепить макробиблиотеку SYSMAC.SML (она вообще-то автоматом цепляется, если есть) и объявить макрос с помощью .MCALL .TTYOUT, а затем уже использовать этот макрос.Код:EMT ^O341 BCS .-2
Код:.TTYOUT #'A
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)