Пишем программу для компьютера ALTAIR 8800 1975г выпуска / Хабр
Привет, Хабр.
В истории вычислительной техники существуют определенные события, повлиявшие на ход истории. Одним из таких было появление первого массового персонального компьютера.
В те годы компьютеры использовались лишь учеными и инженерами на больших предприятиях. И тут появляется компьютер, купить который может любой желающий. Altair 8800 содержал процессор 8080, 256 байт памяти в первой версии, и имел цену ниже 1000$ — это был первый успешно продаваемый персональный компьютер. Это был тот самый компьютер, для которого Билл Гейтс и Пол Аллен разрабатывали язык BASIC, компьютер благодаря которому сотни и тысячи увлеченных студентов и школьников пришли в мир программирования.
Разумеется, дешевизна имела свою цену — первая версия ALTAIR не имела ни клавиатуры, ни экрана, только панель тумблеров, как на фото. Стало интересно разобраться, как же написать и запустить программу на таком ПК. Для тех, кто хочет узнать как это работает, продолжение под катом.
Код
Первым доступным языком был лишь Ассемблер. ALTAIR мог иметь до 64 КБайт памяти, и процессор 8080, работающий с тактовой частотой 2 МГц.
Чтобы лучше понять как это работает, я написал несложную программу, вычисляющую сумму чисел от 1 до 5:
; Code segment: ORG 0o ; Set Program Counter to address 0 START: LDA I MOV B,A ; RegB => I (1..N) LDA STEP MOV C,A ; RegC => STEP (always 1) LDA SUM MOV D,A ; RegD => SUM (result) LOOP: MOV A,D ; Move value to Accumulator from Register D (SUM) ADD B ; Add value in Register B to value in Accumulator MOV D,A ; Save result back to D I MOV A,B ; Mov B to A and decrement it SUB C JZ PEND ; If A is zero, the calculation is complete MOV B,A ; If not, continue JMP LOOP PEND: MOV A,D ; Save result in SUM value STA SUM PWAIT: JMP PWAIT ; Nothing to do, infinite loop ; Data segment: ORG 200o ; Set Program Counter to address 200 I: DB 5o ; Data Byte at address 200 = 5 STEP: DB 1o ; Data Byte at address 201 = 8 (10 octal) SUM: DB 0o ; Data Byte at address 202 = 0 END ; End
Как можно видеть, я создал в памяти 3 переменные, I, STEP и SUM, которые используются для организации цикла от 1 до 5 с шагом 1. Далее эти значения загружаются в регистры B, C и D, с которыми и производятся арифметические операции. Команда JZ (Jump if Zero) завершает цикл, когда значение регистра А становится равным нулю. Последним шагом мы записываем результат обратно в ячейку памяти с именем SUM. Кстати, для ячеек памяти (data segment) мы указываем адрес первой ячейки, который в нашем случае равен 200o («o» здесь это octet, 8-ричная система счисления).
В общем, вышенаписанный код делает то же, что в Python можно записать одной строкой:
s = sum(range(6))
Кстати забавно, что на Хабре нет подсветки синтаксиса для ассемблера, видимо было решено что вряд ли это кому-нибудь еще пригодится. Но пойдем дальше.
Компиляция
Строго говоря, никакого компилятора по условию задачи у нас нет, перевести команды в машинные коды придется вручную. К примеру, можно найти описание команды LDA:
Команда «LDA I», где I это ячейка памяти 200о = 80h, будет записана как 3A 80 00.
Следующая команда MOV B,A описывается так:
Получаем код команды 01000111b = 47h
Я все-таки сжульничал и скачал готовый компилятор, взять который можно здесь (полезно также посмотреть пример использования). Но как можно видеть, и на бумажке «скомпилировать» программу вручную вполне реально, хотя конечно, это и заняло бы куда больше времени. В итоге мы должны получить следующий бинарный код:
3a 80 00 47 3a 81 00 4f 3a 82 00 57 7a 80 57 78 91 ca 18 00 47 c3 0c 00 7a 32 82 00 c3 1c 00
Размер программы — 38 байт. Никаких префиксов MZ, переключения страниц памяти и прочего — программа просто выполняется с адреса 0. До того времени, когда чтобы запустить программу на устройстве, нужно подписать её платным сертификатом, было еще лет 40…
Загрузка и запуск
Для тестирования программы я воспользовался бесплатным симулятором ALTAIR 8800, скачать который можно с github. Его можно запустить прямо в браузере:
Еще раз повторюсь, в первой версии ALTAIR не было ни экрана ни клавиатуры. Все что доступно пользователю — это фактически панель прямого доступа к ячейкам памяти. Например, чтобы загрузить в ячейку памяти с адресом 1 значение 10001000b, нужно выставить соответствующие тумблеры и нажать тумблер DEPOSIT, чтобы ввести следующий код, нужно снова переключить тумблеры и нажать DEPOSIT NEXT. Чтобы прочитать значение ячейки памяти, есть соответствующий тумблер EXAMINE/EXAMINE NEXT. Запустить программу можно нажатием тумблера RUN или SINGLE STEP.
Скажу по секрету, перейдя в закладку DEBUG симулятора, можно загрузить программу в виде hex-файла целиком. Однако, желающим прочувствовать весь процесс до конца пришлось бы переключить тумблеры порядка сотни раз даже для такой небольшой программы.
Результат выполнения показан на скриншоте. Запускаем программу, затем выбираем тумблерами ячейку памяти 202о = 10000010b, нажимаем тумблер EXAMINE. В ячейках D7..D0 получаем значение 00001111b = 15, что соответствует искомой сумме чисел от 1 до 5:
Реальные программы были, разумеется, гораздо сложнее. В компьютер также можно было доустановить платы расширения, включающие модули памяти, порты для подключения терминала, внешнего диска и пр.
В 1975 г Билл Гейтс и Пол Аллан выпустили интерпретатор BASIC для ALTAIR, а в 1976 была основана компания «Micro-Soft». Началась новая страница в истории IT.
Заключение
Знакомство с подобными технологиями оказалось довольно любопытно. Посмотреть как работает ALTAIR было также интересно и с профессиональной точки зрения — понять, насколько может современный программист писать код под систему почти 50 летней давности. И надо сказать, что это оказалось ничуть не проще. Даже просто умножить 2 числа, если у процессора нет готовой команды для этого, будет поинтереснее любой задачи про гномиков, не говоря уже про написание кода «на бумажке».
Интересно, что ALTAIR не забыт и до сих пор. Кроме онлайн-симулятора, можно собрать и «железный», на базе Ардуино:
И наконец, симулятор ALTAIR входит в пакет simh, доступный для Linux, с помощью которого может быть удобно запускать программу по шагам в консоли и просматривать содержимое ячеек памяти:
В общем, желающие могут поэкспериментировать самостоятельно.
Как обычно, всем удачных экспериментов.
Полезные коды Nokia все секретные и несекретные коды защиты, сброса, настроек, информации IMEI
Секретные коды Nokia для сброса, проверки и настроек.
На этой странице собраны все полезные секретные и не секретные коды для телефонов и смартфонов Nokia. Коды помогают получить некоторую информацию о телефоне, а так же изменять и сбрасывать настройки. Здесь я собрал некоторые наиболее использующие коды Nokia в повседневной жизни, если вы знаете ещё другие полезные коды то вы можете добавить их ниже и тем самым поможете другим пользователям телефонов, возможно, они ищут именно тот код который вы добавите.
Для тех кто не знает заводской код защиты Нокиа это 12345. Если вы купили телефон и не знаете какой код зашиты Nokia или сами изменили, но потом забыли, то вы можете попробовать посмотреть забытый защитный код на телефоне Nokia и изменить его, смотрите по этой ссылке.
1) *#06# код выводит на дисплей имейл (IMEI) телефона.
2) *#0000# показывает модель телефона, версию прошивки, дату выпуска и ещё кое какую информацию в зависимости от модели Nokia. Ещё так обычно смотрят оригинальный телефон или Китайский обычно в подделках ничего не показывает.
3) *#92702689# выводит на экран полное время работы телефона так же в зависимости от модели может показать IMEI, дату выпуска, дату покупки — это поле можно самому изменить только один раз, дата ремонта если он был в сервисном ремонте так же возможна и другая информация о телефоне Нокиа.
5) *#7780# сброс до заводских установок телефона Нокиа, а именно все настройки станут как на новом телефоне но при этом не удаляются установленные приложения, файлы, контакты просто всё сбрасывается. Например, если вы установите новую тему то после ввода команды *#7780# телефон вернётся на тему, которая установлена по умолчанию но остальные темы сохраняются в памяти и вы в любое время можете его установить. Так же сотрётся журнал звонков, возможно, нужно будет заново настроить интернет и все другие настройки одним словом подгонять под себя телефон по новому. Обычно на Nokia просит код зашиты, если ранее вы не меняли, то это 12345.
7) Вот ещё один вариант полного сброса телефона Nokia до заводских установок заменяет команду *#7370#. Выключаем телефон далее нажимаем и удерживаем не отпуская три клавиши это первая зелёная кнопка вызова, вторая звёздочка, третья клавиша 3 в таком состоянии не отпуская нажимаем кнопку включения/выключения телефона Нокиа и ждём несколько секунд. Если всё правильно сделали и удерживали в нажатом состоянии все четыре кнопки, то должен произойти завод сброс, которое удаляет всё что находится в памяти телефона и восстанавливает заводские настройки.
8) *#2820# выводит на дисплей Нокиа адрес устройства Bluetooth.
9) *#62209526# показывает на экране «MAC-адрес WLAN:».
Как на Nokia сделать кнопчный сброс к заводским настройкам смотрите по этой ссылке.
> Nokia помощь
> Android помощь
> Компьютерная помощь
> Главная сайта
- Надеюсь, информация из статьи оказалась полезной.
- Отзывы, коменты, коды для Нокиа, вопросы и ответы можно будет добавлять ниже.
- Большая просьба помогать полезными советами и способами устранения проблем.
- Спасибо за отзывчивость, помощь и полезные советы!!!
Отзывы и дополнительная информация о кодах Нокиа.
Добавить отзыв, другие коды Nokia или полезные советы по теме статьи.
Страницы 1 > 2 > 3 > 4 > 5
Смартфоны с самой лучшей камерой 2023. В рейтинге предоставлены телефоны с самой лучшей камерой на сегодняшний день.Бесплатно телефон по акции. Бесплатные телефоны, смартфоны сенсорные и кнопочные как брендовых производителей Samsung, iPhone так и малоизвестных.Справочное руководство: Справочное руководство вихревого расходомера Rosemount™ 8800D
%PDF-1. 6 % 1 0 объект >поток application/pdfСтроительный отдел | Дэви, Флорида
ОБЪЯВЛЕНИЯ
Действует с 25 января 2023 г. – Разрешения на посещение будут приниматься по номеру по средам с 8:00 до 11:00. Пожалуйста, ознакомьтесь с принятыми требованиями и разрешениями здесь.
Вступает в силу с 09 января 2023 г. – Принимается только недавно обновленное единое заявление на получение разрешения на строительство округа Бровард. Все обновленные документы см. в наших Строительных формах.
Вступает в силу с 29 июня 2022 г. Невозмещаемый сбор за подачу заявки будет взиматься за разрешения на работу стоимостью 100 000 долларов США или более. Этот сбор должен быть оплачен до процесса рассмотрения.
РАЗРЕШЕНИЯ
- Подать новое разрешение
- Произвести платеж
- Внесение исправлений/пересмотров
- Запрос на проверку
Все новые разрешения и заявки будут обрабатываться как Project-dox (пакет онлайн-разрешений). Пожалуйста, см. ниже, как подать заявку:
Бумажные разрешения больше не принимаются, и несоблюдение приведенных ниже инструкций может привести к задержке вашего разрешения.
- Отправьте только свое заявление по адресу [email protected]. Адрес электронной почты в разделе подрядчика будет тем, который мы используем для настройки Project-Dox. Если вы хотите использовать другой, вы должны указать это в своем электронном письме.
- Лично — для оформления вашего разрешения нужны только заявления. Если разрешение принадлежит застройщику, застройщик сам должен подать заявление.
- Кандидаты получат приглашение по электронной почте загрузить планы и документы на указанный адрес электронной почты. Электронное письмо придет от Project-Dox, поэтому проверьте папку «Входящие» и «Спам».
- Убедитесь, что вы загрузили необходимые документы в соответствии с контрольным списком разрешений в Project-Dox, чтобы убедиться, что ваше разрешение может быть обработано.
- Прочтите все инструкции по загрузке планов (тип файла и имя ДОЛЖНЫ соответствовать инструкциям ) см. пошаговую презентацию.
- Если стоимость работы, указанная в заявке, составляет 100 000 долларов США или более, до того, как разрешение может быть направлено на рассмотрение, необходимо уплатить сбор за выдачу/заявку. Инструкции см. во вкладке «Внести платеж».
МИССИЯ
Строительный отдел города Дэви занимается оперативным и высококачественным выполнением всех функций, связанных со строительством, при соблюдении Строительного кодекса Флориды. Делая акцент на обслуживании клиентов и безопасности жизни, мы стремимся к тому, чтобы строительные работы, выполняемые в городе Дэви, проводились таким образом, чтобы обеспечить безопасность как коммерческих, так и жилых зданий для наших граждан и наших посетителей.
ИНФОРМАЦИЯ О
В строительном отделе в каждом подразделении есть «руководитель», как того требует Административная глава округа Броуард Строительного кодекса Флориды. Подразделение внутренне разделено по различным дисциплинам (например, структурным, электрическим, сантехническим и механическим), и все они поддерживаются нашим профессиональным персоналом по выдаче разрешений.