forked from alemorf/retro_computers
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrussian.txt
125 lines (99 loc) · 10.1 KB
/
russian.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
БК0010
Год 1985
ОЗУ 32 кБ
ПЗУ 24 кБ
Проц К1801ВМ1 3 MГц
Графика 512x256x2, 256x256x4
В ПЗУ Фокал
Группа БК0010
БК0010 это советский школьный и домашний компьютер. Разработан НПО «Научный
Центр», ныне это Ситроникс. В этом компьютере используется советский 16 битный
процессор КР1801ВМ1 их же разработки. Процессор не имеющий зарубежных аналогов,
но использующий систему команд PDP11, которая была разработана американской
фирмой DEC. Но это не значит, что процессор не советский. Приведу аналогию.
Фирма AMD выпускает процессоры с системой команд разработанной Intel.
Под словом PDP11 скрывается не только система команд процессора, но и
архитектура компьютера позволяющая запускать операционные системы и программы
для PDP11.
Дак вот БК0010 запускать операционные системы и программы от PDP11 не мог. Мало
памяти, но память можно нарастить. Нерешаемой проблемой была видеопамять
расположенная по середине адресного пространства (по адресам 4000h-7FFFh).
Операционная система RTOS (стандартная для PDP11) и её программы требовали
непрерывного адресного пространства от начала памяти. Ошибка очень частая, на
компьютере ZX Spectrum была та же проблема с адресным пространством, не
позволяющая запускать операционную систему CP/M.
Клавиатура у БК0010 не удобная, но зато дешевая и ремонторпригодная. В ней
применялись самые распространенные тактовые кнопки (ПКН-150), которые и сейчас
купить не проблема. Их единственный минус это очень маленький ход. Над этой
кнопкой находится нормальная, полноразмерная клавиша. А на клавишах лежит
распечатка с названиями. Они конечно могли нанести названия на клавиши, но
стертые пальцами надписи на клавишах в домашних условиях не восстановишь.
А изготовить новую распечатку (и ламинировать) сейчас вообще проблем не
составляет.
Справа под крышкой спрятана панелька для микросхем ПЗУ. Штука не нужная и даже
опасная, в школах хватает идиотов. Под крышкой так же спрятан переключатель
сброс. Не кнопка, а переключатель с двумя положениями! Что бы перезагрузить
компьютер, надо снять крышку и дернуть вправо-влево малюсенький переключатель.
Я это не могу понять. Проще выключить и включить блок питания, который кстати
был внешним.
В компьютере было 32 Килобайта ОЗУ из которых половина использовалась под
видеопамять. То есть программам оставалось лишь 16 Килобайт. Работать можно, но
все таки памяти мало. Видеоадаптер поддерживал два режима 512x256 2 цвета,
256x256 4 цвета. Есть аппаратная вертикаольная прокрутка.
В школьных компьютерах ради удешевления не впаивали детали для режима 256x256
4 цвета. Место на плате есть, а деталей нет.
4 цвета это не так плохо, если бы можно было выбирать любые 4 цвета из палитры.
Но палитру не добавили. У компьютера было 4 фиксированных цвета: черный,
красный, синий, зеленый. Но такое было сплошь и рядом. IBM PC с CGA адаптером
тоже имел две ужасные фиксированные палитры.
В нормальном компьютере программа сама переключает режим видеоадаптера. Если
программе нужен 512x256, то она включит его. Если 256x256, то включит его.
БК0010 же имеет два разъема на задней стенке, один для разрешения 512x256,
второй для 256x256. И если программа написана для 512x256, а разъем будет
включен в 256x256, то вы увидите цветную кашу. Если же программа написана для
256x256 4 цвета, а разъем будет включен в 512, то цветное изображение будет
представлено штриховкой. При этом цвета 1 и 2 будут неразличимы.
Ситуацию усложняет то, что провода надо было паять самому (со стороны компьютера
должно быть два разъема). Только для этого надо было уметь паять, поэтому
большинство забивало и работало так. Смотрите скриншот справа.
В БК0010 используется аппаратный контроллер клавиатуры. Программа сразу получает
код нажатой клавиши. Только вот БК0010 не может обрабатывать несколько
одновременно нажатых клавиш, проблема эта аппаратная и не решаемая. И нет
автоповтора при долгом нажатии клавиши, проблема эта программная.
Игр для БК было выпущено и перенесено много. И это при том, что для переноса
игры приходилось весь код полностью переписывать.
В школах компьютеры объединялись в сеть, где в качестве центрального компьютера
использовался компьютер ДВК. В ДВК устанавливались две шестипортовые сетевые
платы (правильнее называть "контроллер телеграфных каналов"). И от каждой
БК-шки к ДВК шел провод.
*** Фокал ***
ПЗУ компьютера БК0010 содержало язык программирования Фокал. Т.е. сразу после
включения компьютера вы могли приступить к программированию на Фокале. Хотя вся
страна учила Бейсик.
Фокал был стандартным языком для PDP компьютеров. Он был очень простым и
маленьким, что позволяло ему работать на самых первых компьютерах.
Расшифровывается этот язык как FORmula CALculator, что собственно говорит о его
возможностях. С точки зрения программиста Фокал очень похож на Бейсик, но там
нет строковых переменных, графических функций. В БК-шном Фокале всего 26 команд
и 20 функций. Давайте я вкратце расскажу о нём. Если не я, то и не узнаете
никогда:
Каждая строка программы на Фокале имеет дробный номер, например "1.10", "1.20",
"5.15". Если вы введете 1.1, то это будет обозначать 1.10.
Команды можно сокращать до одной буквы, при этом все команды Фокала начинаются
с разных букв. А простейшая программа на Фокале выглядит так:
// Вывод текста "Введите число " и ввод с клавиатуры числа в переменную X
1.10 ASK "Введите число ", X
// Этой командой мы вычислим выражение и запишем результат в Y
1.20 SET Y = X * 2 - 6
// Этой командой мы вычислим значение выражения Y-10, и если оно меньше нуля,
// то перейдем на строку 1.10. Если равно нулю, то на строку 1.80. Если больше
// нуля, то на строку 1.40
1.30 IF(Y-10) 1.10, 1.80, 1.40
// Вывод текста "Результат " и значения переменной Y
1.40 TYPE "Результат ", Y
// Вывод программы на экран
WRITE
// Запуск программы
GO
Вот собственно и всё. На фокале было написано несколько игр, некоторые даже
стали культовыми. Например "Королевство Эйфория".