Введение
Electrologica X1 - цифровой компьютер, разработанный и изготовленный в Нидерландах с 1958 по 1965 год. Около тридцати из них были произведены и проданы в Нидерландах и за рубежом. X1 был разработан Математическим центром в Амстердаме, академической организацией, которая занималась разработкой компьютеров с 1947 года, и изготовлен Electrologica NV, компанией, созданной специально для производства машины. X1 был твердотельным бинарным компьютером ("полностью транзисторизованным" В 1965 году X1 был заменен X8. Electrologica была приобретена Philips несколько лет спустя. В результате условный вывод может быть основан на тестах, сделанных некоторое количество строк ранее, а не на условиях, основанных только на результате самой последней арифметической операции. Это позволило компактно выразить программы. Следующий пример демонстрирует загрузку значения памяти в n в аккумулятор A, вызов подпрограммы (которая, предположительно, использует это значение в A), и, наконец, настройка A на абсолютное значение чисел, прочитавших: 2A n P // копировать [n] на A, установить флаг условия на "да", если положительное 6T fn 0 // вызвать функцию на fn, которая вернется с флагом условия сохранен N 5P AA // если флаг условия "нет", скопировать A на A.
The Electrologica X1 was a digital computer designed and manufactured in the Netherlands from 1958 to 1965. About thirty were produced and sold in the Netherlands and abroad. The X1 was designed by the Mathematical Centre in Amsterdam, an academic organization that had been involved in computer design since 1947, and manufactured by Electrologica NV, a company formed expressly for the purpose of producing the machine. The X1 was a solid state binary computer ("completely transistorized" In 1965, the X1 was superseded by the X8. Electrologica was taken over by Philips a few years later. As a result, conditional execution can be based on tests made some number of lines earlier, rather than being conditional only based on the result of the most recent arithmetic operation. This allowed for compact expression of programs. The following example demonstrates the loading of the value of memory at n into the accumulator A, calling a subroutine (which presumably uses that value in A), and finally setting A to be the absolute value of the number read:
2A n P // copy [n] to A, set condition flag to "yes" if positive
6T fn 0 // call the function at fn, which will return with the condition flag preserved
N 5P AA // if condition flag is "no", copy A to A
The X1 arithmetic operators used binary ones' complement arithmetic.
Сборщик
X1 включал в себя простой сборщик в своей памяти только для чтения. У него довольно основные особенности: символические адреса могут быть определены, но символы длиной всего две буквы. Инструкции называются комбинацией цифр, представляющих операцию, и буквы, обозначающей регистр, на котором будет выполняться операция, или одной или двумя буквами, указывающими класс операции. Например, "0A" означает "добавить содержание памяти в аккумулятор A", а "5P" означает "установить аккумулятор на отрицательное значение другого аккумулятора". Обычно символические адреса используются для обозначения "параграфов", т.е. связанных блоков кода или данных. Символические адреса будут изменены "номером строки" (цифровым смещением) и "номером страницы" (число в диапазоне от 0 до 31). Например, "3 FE 6" - это строка номер 3, страница номер 6, представляющая собой смещение 195 (6 * 32 + 3) от начала пункта FE. Эта адресная нотация является особенностью ассемблера; аппаратное адресование просто использует 15-битовые адреса.