Кстати, в графическом режиме действительно не очистка. В текстовом не знаю.
Хоботыч, ты бы мне сготовил нормальный образ чистой системы, на котором есть только всё минимально для автозапуска DURAK.SAV, и после того, как он отработает, выход обратно в RT-11? Плиз. А то я даже не могу проверить восстанавливается ли обратно надпись РУС/ЛАТ или нет - зациклено.
Я в долгу не останусь, сделаю тебе работу с картинками и спрайтами из OMSI Pascal, особенно если вы мне все будете помогать.
Так как вы обращаетесь непосредственно к видеопамяти в планах 1 и 2 ЦП, то переводить терминал в графический режим и не надо. Это используется, если вы пользуетесь Esc-последовательностями графики. Но так как вы ими не пользуетесь, то и переводить не надо.
Я говорю про последовательности <Esc>%!0 <Esc>%!1 и <Esc>%!3.
hobot (05.03.2020)
Alex_K, а можно увидеть корректные последовательности для перехода в графический режим 320x264 (как я понимаю, именно 264, а не 288) и потом обратно из него в текстовый, который принят в RT-11? Терминологию использую в общепринятом смысле, а не в специфически-УКНЦ-шном.
Ещё было бы интересно узнать, какими последовательностями гасится и восстанавливается служебная строка РУС-ЛАТ.
- - - Добавлено - - -
Так, всё оказалось сильно хитрее, чем я думал. Итак, отдельного графического режима у нас нет, есть нечто смешанное. Для общего развития спрошу: что делают эти последовательности кодов? (я их проверил, вроде бы ничего не меняется)
- - - Добавлено - - -Esc %! (033 045 041) - установка режима работы терминала:
Из четвертого символа используются два младших бита
Esc %!0 - графический режим;
Esc %!1 \
Esc %!2 ! - текстовый режим (система команд VT-52).
Esc %13 /
Вдогонку. Так РУС/ЛАТ не гасится, а вообще уплывает за экран, когда включается ширина 40? Интересно.
- - - Добавлено - - -
Ещё вопрос: если инструкция
запрещает Ctrl+C, то как разрешить его обратно?Код:BIS #^O10000, @#^O44 ; Disable Ctrl-C
Нужно ли в графической игре запрещать Ctrl+C ?
так сделай просто копию той что у тебя есть PASCAL.DSK - удали всё лишнее,а DURAK.SAV или как он там пропиши в стартовый файл
STARTS.COM - ??? переименуй образ в какой-нибудь DURAK_RELIZ.DSK ) Дел то >0 )
Нигде не очистка! )
Правильную очистку
я тебе стока шпор накидал, всё мимо что ли?Код:PROCEDURE CLS; BEGIN WRITE(CHR(27),'H',CHR(27),'J'); END;
А в графическом хорошо бы пробежаться по экрану циклом обнуления RD экрана )
- - - Добавлено - - -
Последний раз редактировалось hobot; 05.03.2020 в 13:49.
В графическом и эта не очистка. В графическом режиме только отрабатывают специальные Esc-последовательности графического режима (рисование точек, линий и т.д. и т.п.). Для выхода из графического режима служит Esc-последовательность <Esc>%!3, в восьмеричных кодах это 033 045 041 063.
А вот в текстовом режиме в УКНЦ для очистки экрана ОБЯЗАТЕЛЬНО надо чистить с помощью кода 014 (восьмеричный, десятичный 12), или Esc-последовательностью <Esc>[r (033 133 162). Это не только очищает экран, но и возвращает таблицу видеострок на начало видеопамяти. А если очищать экран с помощью <Esc>H<Esc>J (033 110 033 112), то экран очистится, но адрес начала видеопамяти 0100000 окажется не в верхнем левом углу, а где-то посередине экрана.
Последний раз редактировалось Alex_K; 05.03.2020 в 13:46.
hobot (05.03.2020), Oleg N. Cher (05.03.2020)
но в 7-ке не работает write(chr(12)) - она как раз странным образом крутит рулон и в итоге курсор висит на середине экрана, в то время как h+J работает в любой версии монитора - исхожу из этого.
- - - Добавлено - - -
дело в том, что не имею опыта работы в этом режиме, вообще ничего про него не знаю,
я работаю с обычным экраном системы в обычной рабочей среде ) Что даёт этот граф.режим - примитивы рисовать (круги,точки,линии???) - да ну их, окошки и без них можно делать, графику я не пишу.
Будет спрайтовый движок - вернёмся к предметному разговору )))
В семёрке не работает, это что в Windows 7
Ну ладно, пошутили и хватит. Всё дело в том, что Паскаль для вывода использует средства операционной системы, а ОС при выводе управляющих символов делает некоторую обработку. В RT-11 V05.07 есть такая команда SET TT [NO]FORM. После подачи команды SET TT FORM код 12 будет спокойно выводится.
но страдают другие экранчики же!!! для каждой писать командный файл??? ) Есть стандартная вещь HOME - левый верхний угол, J - очистка от курсора и до конца экрана - я пока не видел что бы не работала а не рабочую chr(14B) - видел )))
это справедливо и для ДВК и для УК-НЦ ) Что бывает важно для программы без графики под RT-11.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)