Что представляет с себя буфер клавиатуры? Где он хранится и каковой его размер?
И как вот этот код
Цитата
while keypressed do readkey;
или
repeat
readkey
until not keypressed;
его очищает?
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК ! 
4. НЕ используйте форум для личного общения! 
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел! 
![]() ![]()  | 
	
| Bokul | 
                        
			
			  
			
				 Сообщение
					#1				
			 
		 | 
	
        	
        		![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация:    11           	 | 
       
			
			 Решил даром не флудить. 
			
			Что представляет с себя буфер клавиатуры? Где он хранится и каковой его размер? И как вот этот код Цитата while keypressed do readkey; или 
 его очищает? -------------------- Лао-Цзы : 
					
		Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.  | 
	
| Lapp | 
                        
			
			  
			
				 Сообщение
					#2				
			 
		 | 
	
        	
        		![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация:    159           	 | 
       
			
			 Что представляет с себя буфер клавиатуры? Где он хранится и каковой его размер? И как вот этот код .. его очищает? Обычный буфер типа FIFO (первым вошел - первым вышел), размер, кажется, 16 байт... могу ошибаться, давно было.. Находится где-то в области досовской памяти.. Тебе нужно точно? Как очищает? да просто считывает все символы из него! -------------------- я - ветер, я северный холодный ветер 
					
		я час расставанья, я год возвращенья домой  | 
	
| Bokul | 
                        
			
			  
			
				 Сообщение
					#3				
			 
		 | 
	
        	
        		![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация:    11           	 | 
       
			
			 Спасибо.  
			
			Цитата Тебе нужно точно?   Если знаешь - давай... Цитата Находится где-то в области досовской памяти..   Что такое досовская память? Сообщение отредактировано: Bokul - -------------------- Лао-Цзы : 
					
		Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.  | 
	
| Lapp | 
                        
			
			  
			
				 Сообщение
					#4				
			 
		 | 
	
        	
        		![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация:    159           	 | 
       
			
			 > Если знаешь - давай... 
			
			Когда-то знал, мог наизусть ответить.. Сейчас - надо рыть Интернет, бумага уже не сохранилась > Что такое досовская память? Ну, область памяти, где DOS хранит свои данные. Там все имеет определенные адреса, которые, слава Богу, не менялись от версии к версии. Это позволяло достаточно надежно использовать сами данные в обход системных вызовов. Само по себе это нехорошо, но иногда давало определенные преимущества - типа скорость, а также контроль самого низкого уровня. -------------------- я - ветер, я северный холодный ветер 
					
		я час расставанья, я год возвращенья домой  | 
	
| Bokul | 
                        
			
			  
			
				 Сообщение
					#5				
			 
		 | 
	
        	
        		![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация:    11           	 | 
       
			
			 Цитата давай подождем xds - я уверен, он скажет адрес smile.gif.   Согласен, будем ждать ходячего справочника Цитата Ну, область памяти, где DOS хранит свои данные. Там все имеет определенные адреса, которые, слава Богу, не менялись от версии к версии. Это позволяло достаточно надежно использовать сами данные в обход системных вызовов. Само по себе это нехорошо, но иногда давало определенные преимущества - типа скорость, а также контроль самого низкого уровня.  Конечно не по теме, но что поделаешь, все-равно ждать приходится, -------------------- Лао-Цзы : 
					
		Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.  | 
	
| Lapp | 
                        
			
			  
			
				 Сообщение
					#6				
			 
		 | 
	
        	
        		![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация:    159           	 | 
       
			
			 Конечно не по теме, но что поделаешь, все-равно ждать приходится, Да, за тему пришлось выйти, к теории Паскаля это имеет весьма малое отношение. Но обнаруживает разницу между задачами, скомпилированными в TP и в FPC. Для запуска досовской программы Винда запускает виртуальную DOS-машину, которая довольно точно копирует настоящий DOS, включая распределение памяти. Так что твой вопрос (или мой ответ?..) имеет отношение только к тому, что скомпилированно в TP. Но если говорить об очистке буфера клавиатуры, то принцип тот же - тебе надо читать из буфера, пока он не очистится. -------------------- я - ветер, я северный холодный ветер 
					
		я час расставанья, я год возвращенья домой  | 
	
| xds | 
                        
			
			  
			
				 Сообщение
					#7				
			 
		 | 
	
        	
        		![]() N337 ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 737 Пол: Мужской Репутация:    26           	 | 
       
			
			 Разбирайся  
			
			program Code; -------------------- The idiots are winning. 
					
		 | 
	
| SKVOZNJAK | 
                        
			
			  
			
				 Сообщение
					#8				
			 
		 | 
	
        	
        		![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 930 Пол: Мужской Репутация:    11           	 | 
       
			
			 Блин, как просто это в досе\виндОсе. Уже даже и не верится. Стабильный размер буфера, никаких событий и загрузки порциями, даже автоповтор эмулировать не надо  
			
			
					
		 | 
	
| Bokul | 
                        
			
			  
			
				 Сообщение
					#9				
			 
		 | 
	
        	
        		![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация:    11           	 | 
       
			
			 Цитата Стабильный размер буфера, никаких событий и загрузки порциями, даже автоповтор эмулировать не надо    Чтобы не расценивать твое сообщение как флуд -------------------- Лао-Цзы : 
					
		Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.  | 
	
| SKVOZNJAK | 
                        
			
			  
			
				 Сообщение
					#10				
			 
		 | 
	
        	
        		![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 930 Пол: Мужской Репутация:    11           	 | 
       
			
			 А  кто сказал что это виндовс ;) Речь идёт о библиотеке сдл и о настальгии по таким простым методам доступа к клаве в любое время суток  
			
			
					
		program demo; 
 Сообщение отредактировано: SKVOZNJAK -  | 
	
| TarasBer | 
                        
			
			  
			
				 Сообщение
					#11				
			 
		 | 
	
        	
        		![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация:    62           	 | 
       
			
			 Код var KStart: Word absolute $40:$1A; { адрес начала (откуда считывается) очереди данных клавиатуры } KEnd: Word absolute $40:$1C; { адрес конца (куда записывается) очереди данных клавиатуры } KBuf: array[0..15] of Word absolute $40:$1E; { собственно, буфер - 16 записей по 2 байта (ASCII-, Scan-код) } { - если очередь пуста, то KStart = KEnd } { - если очередь переполнена, то KEnd указывает на запись перед KStart } Ура, одним стандартным модулем меньше в моём списке uses. Спасибо. --------------------  | 
	
![]() ![]()  | 
	
 
  | 
		Текстовая версия | 4.11.2025 18:48 |