Just for fun. Рассказ нечаянного революционера :: Даймонд Дэвид
Страница:
80 из 292
Поэтому для построения программы эмуляции терминала таким путем нужно было знать, как работает ЦП. Отчасти именно поэтому я писал на ассемблере – хотел разобраться в ЦП. Еще нужно было знать, как писать на экран, как читать с клавиатуры, как читать с модема и писать на него. (Надеюсь, я еще не распугал тех своих читателей-неспециалистов, которые мужественно отказались перескочить на страницу 142.)
Я хотел иметь два независимых процесса. Один должен был читать информацию с модема и выдавать ее на экран. А другой – читать с клавиатуры и отправлять модему. Для этого я хотел использовать два двусторонних канала. Это называется переключением задач, и аппаратная часть 386-го его поддерживает. Я был в восторге от своего плана.
Моя первая тестовая программа использовала один процесс для выдачи на экран буквы А, а другой – для выдачи буквы В. (Звучит тоскливо – я знаю.) Я запрограммировал это так, чтобы каждую секунду писалось несколько букв. С помощью прерывания по таймеру я сделал так, что сначала экран заполнялся ААААААА. Потом неожиданно буквы сменялись на ВВВВВВВВВ. С практической точки зрения это было абсолютно бессмысленно, но зато становилось очевидно, что переключение работает. На это у меня ушел почти месяц, потому что во всем приходилось разбираться с нуля.
В конце концов я научился переключать процессы (АААААААА и ВВВВВВВ) так, чтобы один читал с модема и писал на экран, а другой – читал с клавиатуры и писал на модем. У меня появилась собственная программа эмуляции терминала.
|< Пред. 78 79 80 81 82 След. >|