Важная информация

User Tag List

Страница 9 из 35 ПерваяПервая ... 5678910111213 ... ПоследняяПоследняя
Показано с 81 по 90 из 342

Тема: PASCAL + MACRO11 (УКНЦ-ДВК).

  1. #81
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Rybak27 Посмотреть сообщение
    а как через него грузить?
    Если есть PC с COM-портом ( или есть адаптер COM-USB ) - достаточно спаять шнурок, после чего можно грузиться по этому шнурку из пункта меню "Загрузка через стык С2".

    Подробнее ЗДЕСЬ.

    Последние версии ПО - ЗДЕСЬ.

  2. #82
    R.I.P. Аватар для hobot
    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    2,979
    Спасибо Благодарностей получено 
    370
    Поблагодарили
    309 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    Question опрос клавиатуры ???

    У меня тут снова затык (такой уж я программист) с опросом
    клавиатуры под RT-11.

    Скрытый текст


    form, давненько подсказал мне более грамотную конструкцию для Паскаля, чем ту, что я прежде использовал - и всё равно не спасает от проскакивания как самого нажатия, так и значения нажатой клавиши.

    Проблема такая. Программа должна выводить в непрерывном цикле
    последовательно три экрана с различной информацией. Т.о. алгоритм такой примерно (это в исходнике у меня!) :

    Код:
    /* в шапке, в разделе VAR описаны глобальные переменные */
    PROGRAM KLAVAPODSTAVA;
    VAR
    	INKEY ORIGIN 177560B:			INTEGER; /* RA-КЛАВ. */
    	KEY ORIGIN 177562B:			INTEGER; /* RD-КЛАВ. */
    
    FUNCTION KEYPRESS: BOOLEAN; /* ПИШУ ТАКУЮ ФУН-Ю */
    BEGIN
    	KEYPRESS:=FALSE;
    	INKEY:=0;
    	IF(INKEY AND 128)<>0 THEN KEYPRESS:=TRUE;
    END;
    
    BEGIN
    REPEAT
    WRITELN(' ТЕКСТОВЫЙ БЛОК №1 - ПРИВЕТСТВИЕ');
    WHILE NOT KEYPRESS DO;
    WRITELN(' ТЕКСТОВЫЙ БЛОК №2');
    WHILE NOT KEYPRESS DO;
    WRITELN(' ТЕКСТОВЫЙ БЛОК №3');
    WHILE NOT KEYPRESS DO;
    UNTIL KEY=3;
    END.
    И вот подстава!
    Первое привествие вроде бы норм выводится и ожидается нажатие
    клавиши. Но после блока 2 сразу выводится блок 3 и только тогда
    срабатывает ожидание нажатия. Более того сохраняется значение нажатой кнопки (что не допустимо), поскольку если в третьем блоке
    какая-то функция на какую-то клавишу назначена и именно она была нажата в предыдущем опросе клавиатуры - то она автоматом выполняется. Как же это всё победить и что я не так делаю?
    Иногда почему то срабатывает даже <ВК> который жмётся при запуске .SAV файла ???

    Буду рад любому ответу и комментариям.
    У меня просто рушится вся система общения с игроком в предполагаемой ASCII игрушке, то есть "остро-необходимо" что бы
    каждый раз опрос клавиатуры был гарантировано уникальным, ждал нажатия кнопки и дальше (в зависимости от значения регистра
    данных - то есть "клавиши") будет что-то там ветвиться\вызываться.


    Спасибо.
    [свернуть]

    Последний раз редактировалось hobot; 26.01.2014 в 23:22. Причина: убрал вопрос под "спойлер".
    Архив программ для УК-НЦ, ДВК и БК.

    Ищу игру "СТРАНА МОНСТРОВ" [monstr.sav] для ДВК.

  3. #83
    Veteran Аватар для SKcorp.
    Регистрация
    01.01.2009
    Адрес
    Leningrad, USSR
    Сообщений
    1,954
    Записей в дневнике
    33
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    18
    Поблагодарили
    16 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от hobot Посмотреть сообщение
    Буду рад любому ответу и комментариям.
    ГОВНОКОД детктед!!!

  4. #84
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от hobot Посмотреть сообщение
    У меня тут снова затык с опросом клавиатуры под RT-11.
    Надо доверить опрос клавиатуры операционной системе, а в программе для проверки готовности символа использовать ассемблерную вставку с вызовом .TTINR

    А чтобы этот вызов не подвешивал программу в старших релизах RT-11 - добавить ассемблерную вставку, которая будет устанавливать нужные биты JSW.

    ---------- Post added at 22:13 ---------- Previous post was at 21:58 ----------

    Код:
    VAR	SIMB	:INTEGER;
    
    PROCEDURE READSIM;
    BEGIN
    	(*$C
    		EMT	^O340
    		BCS	SKIP
    		MOV	%0,SIMB(%5)
    	SKIP:
    	*)
    END;
    Код:
    PROCEDURE TTSPEC;
    BEGIN
    	(*$C
    		BIS	#^O10000,@#^O44
    	*)
    END;

  5. #85
    R.I.P. Аватар для hobot
    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    2,979
    Спасибо Благодарностей получено 
    370
    Поблагодарили
    309 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Вариант OMSI-PASCAL

    Вариант OMSI-PASCAL, отличие от предыдущего в размере .OBJ библиотеки
    - она больше на 6 блоков и файл получаемый после линковки на 3 блока
    вырастает как минимум.

    OMSIPAS_BIGOBJ.rar
    Архив программ для УК-НЦ, ДВК и БК.

    Ищу игру "СТРАНА МОНСТРОВ" [monstr.sav] для ДВК.

  6. #86
    R.I.P. Аватар для hobot
    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    2,979
    Спасибо Благодарностей получено 
    370
    Поблагодарили
    309 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    Arrow версии модуля Graph !!! Fast-Pascal.

    Я давно это всё подозревал, а сегодня всё таки раскидал по нужным местам и просто запустил и вся теория разом подтвердилась, FAST-PASCAL и в том числе модуль GRAPH были впервые реализованы для ДВК-2М.

    Скрытый текст







    [свернуть]


    Затем и на БК-11М

    Скрытый текст






    [свернуть]


    О том что турбо среда и модуль граф начиная с самой первой версии имели УК-НЦ воплощение было известно и так. Ура! Всем кто знали и молчали троекратное! ) Учитывая, что модуль GRAPH двухцветный - сильно упрощает адаптацию под конкретное видео устройство каждой из отечественных PDP-шек.



    осталось ещё найти мифический GAS.SAV...
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	bk11_V1.2.jpg 
Просмотров:	213 
Размер:	19.9 Кб 
ID:	46493   Нажмите на изображение для увеличения. 

Название:	bk11_V1.2_testgraph.jpg 
Просмотров:	221 
Размер:	22.3 Кб 
ID:	46494  
    Последний раз редактировалось hobot; 26.05.2014 в 01:52.
    Архив программ для УК-НЦ, ДВК и БК.

    Ищу игру "СТРАНА МОНСТРОВ" [monstr.sav] для ДВК.

  7. #87
    R.I.P. Аватар для hobot
    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    2,979
    Спасибо Благодарностей получено 
    370
    Поблагодарили
    309 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    Post md.(pas,sav)

    На закусочку к предыдущему сообщению, я до конца так и не доглядел,
    вернулся к компу оно вылетело в систему, но первый кадр сделал сразу )



    Да! Теперь и на спектруме? http://zx.oberon2.ru/forum/viewtopic.php?f=10&t=85
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	ScreenShot_001.png 
Просмотров:	207 
Размер:	13.9 Кб 
ID:	46499  
    Последний раз редактировалось hobot; 12.03.2014 в 00:47.
    Архив программ для УК-НЦ, ДВК и БК.

    Ищу игру "СТРАНА МОНСТРОВ" [monstr.sav] для ДВК.

  8. #88
    R.I.P. Аватар для hobot
    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    2,979
    Спасибо Благодарностей получено 
    370
    Поблагодарили
    309 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    Post

    Это издание просто очень интересно - хотя и посвящено не только
    и не столько Паскалю и Ассемблеру, но основы программирования
    там изложенные очень даже полезны ( я вот как триллер читаю сейчас)
    для понимания местного ассемблера, у меня такого учебника не было,
    я даже не знал, что такая чудесная книжка есть (узнал недавно).

    http://publ.lib.ru/ARCHIVES/E/ERSHOV...shov_A.P..html

    По ссылке обе части издания. Книга написана простым и понятным
    языком и интересна помимо прочего очень информативными иллюстрациями.
    Архив программ для УК-НЦ, ДВК и БК.

    Ищу игру "СТРАНА МОНСТРОВ" [monstr.sav] для ДВК.

  9. #89
    R.I.P. Аватар для hobot
    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    2,979
    Спасибо Благодарностей получено 
    370
    Поблагодарили
    309 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    Question опрос клавиатуры ???



    предложеный Patronom вариант
    Код:
    VAR	SIMB	:INTEGER;
    
    PROCEDURE READSIM;
    BEGIN
    	(*$C
    		EMT	^O340
    		BCS	SKIP
    		MOV	%0,SIMB(%5)
    	SKIP:
    	*)
    END;
    не работает и даже не пытается, процедура просто проскакивает как пустая при выполнении программы (что я не так делаю?)!!!
    Да и почему вместо (SP) %5, a вместо R0 %0 ???

    Цитата Сообщение от Patron
    Надо доверить опрос клавиатуры операционной системе, а в программе для проверки готовности символа использовать ассемблерную вставку с вызовом .TTINR

    А чтобы этот вызов не подвешивал программу в старших релизах RT-11 - добавить ассемблерную вставку, которая будет устанавливать нужные биты JSW.
    .TTINR так же просто игнорируется при выполнении программы


    И вот этот вариант сбоит - то есть пропускает ожидание через раз,
    может реагирует и на отжатие???
    Код:
    var
            INKEY ORIGIN 177560B:			INTEGER;
    	KEY ORIGIN 177562B:			INTEGER;
    
    <...>
    repeat
             INKEY:=0;
    until   (INKEY AND 128)<>0;
    Я в шоке!!!

    Ребята подскажите как
    1 - мне получить 100% гарантию ожидания нажатия клавиатуры в любом месте программы и в регистре данных клавиатуры или какой-нибудь переменной сохранить нажатую кнопку в виде кода или символа
    2 - мне считать нажатие с клавиатуры без ожидания нажатия внутри
    цикла например и опять таки иметь этот код или в регистре или в переменной (но тут обычно хватает тупо обнулить РА и потом уже
    в цикле проверять что нажато было последний раз)
    Буфер - про буфер и как его почистить я вообще не буду спрашивать, мне бы просто выяснить 1 и 2 пункты )

    В чём моя ошибка? Что я не так делаю? Должен же быть человеческий и рабочий способ !!! Печаль! А главное последний
    вариант работает, но хитро!!! Манипулировать с регистрами клавиатуры получается, но непредсказуемо как-то. Печаль два раза.

    Архив программ для УК-НЦ, ДВК и БК.

    Ищу игру "СТРАНА МОНСТРОВ" [monstr.sav] для ДВК.

  10. #90
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от hobot Посмотреть сообщение
    вариант
    Код:
    VAR	SIMB		:INTEGER;
    
    PROCEDURE READSIM;
    BEGIN
    	(*$C
    		EMT	^O340
    		BCS	SKIP
    		MOV	%0,SIMB(%5)
    	SKIP:
    	*)
    END;
    не работает и даже не пытается, процедура просто проскакивает как пустая при выполнении программы (что я не так делаю?)!!!
    Легко заметить, что содержимое глобальной переменной SIMB изменяется только тогда, когда была нажата клавиша. Иначе процедура просто "проскакивает", не изменяя вообще ничего.

    Использовать надо так:

    Код:
    VAR	SIM,SIMB	:INTEGER;
    
    PROCEDURE READSIM;
    BEGIN
    	(*$C
    		EMT	^O340
    		BCS	EXIT
    		MOV	%0,SIMB(%5)
    	EXIT:
    	*)
    END;
    
    PROCEDURE MOVEORM1;
    LABEL	9;
    VAR	PW		:^REC;
    BEGIN
        IF SIMB<>SIM THEN BEGIN
    9:	CASE SIMB OF
    	  70B: BEGIN DX:=0;  DY:=-1 ;DD:=3 END;
    	  65B: BEGIN DX:=0;  DY:=1  ;DD:=3 END;
    	  64B: BEGIN DX:=-1; DY:=0  ;DD:=1 END;
    	  66B: BEGIN DX:=1;  DY:=0  ;DD:=1 END;
    	  67B: BEGIN SIM:=SIM+1; IF SIM=67B THEN SIM:=70B; 
    		     IF SIM>70B THEN SIM:=64B;
    		     SIMB:=SIM; GOTO 9
    	       END;
    	 105B: STOP;
    	ELSE BEGIN SIM:=SIM-1;IF SIM=67B THEN SIM:=66B;
    		   IF SIM<64B THEN SIM:=70B;
    		   SIMB:=SIM; GOTO 9
    	     END
    	END; (* CASE *)
    	SIM:=SIMB;
         END;
    	NEW(PW);
    	PW^.X:=P^.X+DX;
    	PW^.Y:=P^.Y+DY;
    	IF DIRECTION>0 THEN BEGIN
    		PW^.PRED:=P;
    		PW^.SLED:=NIL;
    		P^.SLED:=PW
    	     END
    	ELSE	BEGIN
    		PW^.SLED:=P;
    		PW^.PRED:=NIL;
    		P^.PRED:=PW
    	     END;
    	P:=PW;
    
    END;
    
    
    (*************************************************************)
    (*			M A I N    P R O G R A M		  *)
    (*************************************************************)
    
    BEGIN
    	REPEAT
    		READSIM;
    		MOVEORM1;
    	UNTIL ( LEN>1000 );
    END.

Страница 9 из 35 ПерваяПервая ... 5678910111213 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. "Исходники" Turbo Pascal нужны кому ?
    от esl в разделе Программирование
    Ответов: 2
    Последнее: 19.10.2018, 11:33
  2. Продам МС5310 блок дисководов к УКНЦ+КМД УКНЦ
    от Mad Killer/PG в разделе Барахолка (архив)
    Ответов: 7
    Последнее: 19.03.2012, 11:27
  3. в розыске дисковая версия Pascal.
    от goblinish в разделе Программирование
    Ответов: 18
    Последнее: 16.08.2011, 16:30
  4. Pascal
    от Andrew771 в разделе Программирование
    Ответов: 22
    Последнее: 24.05.2011, 21:20
  5. Скопировать/вставить из/в HiSoft Pascal в эмуляторе
    от kit в разделе Программирование
    Ответов: 1
    Последнее: 05.02.2010, 15:35

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •