Как стать автором
Обновить

Комментарии 35

Не думаю, что тогда массово у частных лиц были телетайпы.

1975 год. М-да уж. Мы в универе в 1996ом почти на таком ПК лабы творили — УМК назывался, тоже на 8080
Мы в универе работали на УМК и в 2000-ом. Тоже воспоминания нахлынули по мере чтения статьи :-)
Мы на УМК лабы делали в 2007 :)
УМК! — не стареет в отличие от нас :)
Можно саркастически издеваться конечно, но ИМХО это на тот момент был нормальный вход в микропроцессорную технику. На листочке накидал прогу в ассемблере, перевёл в процессорный шестнадцатеричный код по табличке, ввёл прогу кнопочками, запустил и либо радуешься, либо нет. Где косяк никто не подскажет если что-то не так. И тут как раз могут выделиться студенты знающие об макроассемблерах для РС, об отладчиках и т.д.
Сейчас конечно УМК на пенсию пора, надо сразу приучать к современным МК и IDE

Нас в 2000 году заставляли так на железном pdp-8 тренироваться

и либо радуешься, либо нет
Это просто цитата к миру IT и программирования!

А про УМК, Вы это имеете ввиду?
Да да, он самый
первая версия ALTAIR не имела ни клавиатуры, ни экрана, только панель тумблеров, как на фото

Так ни в какой не было экрана и клавиатуры, не только в первой, как и не было собственно версий, разве нет?

Для компьютеров того периода нормой была работа со внешним терминалом по последовательному порту. Объединение терминала с микрокомпьютером в единую конструкцию произошло где-то во времена Apple I (1976), а в Apple II терминальная прослойка была устранена, и компьютер уже сам занялся опросом клавиатуры и выводом на экран, что сформировало привычный формат последующих домашних микрокомпьютеров 80-х.

Бонусом-фичей оригинальной реализации "стеклянного терминала" на сдвиговых регистрах в Apple I был аппаратный скроллинг. Для "обычной" параллельной видеопамяти IMHO самым удобным было решение в Amstrad PCW — хранить указатели на начало каждой строки. Прекрасно подходит для гладкого попиксельного скроллинга.

Кстати, отечественный ПК «Вектор-06ц» имел аппаратный скроллинг по такому же принципу.
Вот, С. Возняк и изобретал дешевый видеотерминал к Альтаиру.
А пока изобретал, ему попался в руки 6502 за четверть цены от 8080, и заверте…
Та самая компиляция первого компилятора восемью рубильниками

Интересно, как тогда обстояло в США со стабильностью электропитания? Во времена Спектрума, если при вбивании страниц хекс-кодов из журнала кончалось электричество, это вызывало печаль-огорчение. А если бы они еще и переключателями забивались…

Также как и сейчас, напряжение в розетке пропадает не каждую пятилетку. Броски напряжения — несколько раз в год. Просадка напряжения ниже номинала- не скажу. В логе работы бесперебойника за последние 5 лет таких событий нет. Но наверняка от конкретного места зависит.
вам повезло, у меня до 250 при котором срабатывает реле напряжения поднимается раз в пару месяцев точно, и это в квартире, в спб
Даже просто умножить 2 числа, если у процессора нет готовой команды для этого, будет поинтереснее любой задачи про гномиков, не говоря уже про написание кода «на бумажке».
Это да, если заниматься любимым занятием — изобретением велосипедов ;)
INTEL 8080 assembly language manual
SOFTWARE MULTIPLY AND DIVIDE (page 53)


Вот не знаю, нафига оно мне до сих пор надо, но машинный код 8080 (оно же 580ВМ80) до сих пор читаю, а началось всё в 1987-м году с Радио-86РК. :) Главное знать, откуда начать.
Именно для Радио-86РК пытался на ручном программаторе запрограммировать ПЗУ. Раз 10 ошибался, стирал, начинал сначала. Может бы до сих пор этим занимался, но мне друг на работе запрограммировал.
Я все-таки сжульничал и скачал готовый компилятор, взять который можно здесь (полезно также посмотреть пример использования). Но как можно видеть, и на бумажке «скомпилировать» программу вручную вполне реально, хотя конечно, это и заняло бы куда больше времени.

Компиляция и компилятор — это процессы и программы, которые переводят с высокоуровневого языка на язык ассемблера. Эти слова неприменимы к процессу непосредственной сборки машинного кода из инструкций ассемблера.

От определения зависит. В некоторых слова "высокоуровневые" нет и перевод в машинные/бинарные коды.

Может быть в каких-нибудь современных словарях, написанных людьми, которые в глаза ассемблера не видели? Я не помню, чтоб 20+ лет назад кому-нибудь в голову пришло сказать про «компилятор» ассемблера. Тогда это были всё отдельные инструменты, которые можно было пощупать. Был ассемблер и писали «на языке ассемблера». Были компиляторы, которые могли вообще в тот же файл ассемблера скомпилировать для проверки/правки, был отдельный linker и т.д.
про «компилятор ассемблера» действительно никто не говорил (хотя транслятором его иногда называли. но чаще — просто ассемблером). но я и не слышал, чтоб компилятор обязательно «переводил с высокоуровневого языка на язык ассемблера».
Да, такие были — например, Small-C, но далеко не все — большинство компиляторов генерировало перемещаемый объектный код, обрабатываемый затем линкером. Меньшинство, которое генерило ассемблерный код, часто использовалось для кросс-компиляции (подготовки на одной системе программ для другой системы).

Что было 20-30 лет назад уже не актуально, наверное, но даже тогда мы говорили "компилируется", поскольку слабо отличались процессы: на входе человекочитаемый текст на языке программирования, на выходе — нечитаемый бинарный код.

Я в ВУЗе такой фигнёй в 2003 году занимался, была лабораторная работа на микропроцессорном комплекте, советском клоне DEC, pdp-11 или что то типа, тоже прогу писали на ассемблере на листочке, переводили в код и вбивали в ячейки памяти, запускали и смотрели результат в регистре. Занимательно, но никакого практического смысла.
Ну почему нет практического смысла?
Сразу видно, как работают все эти ассемблеры-трансляторы-компиляторы.
Если в двоичный вид перевести опкоды — понятно, как декодер команд работает.
Без абстракций, даже макроассемблеров и символьных имен, более понятно, как процессор обрабатывает данные, куда их надо положыть и откуда забрать по исполнении программы.
И вообще ассемблер должен быть вторым языком у программиста, чтобы уметь думать, как машына.
На Ассемблере писал достаточно сложные вещи, типа записной книжки с контактами, но в 21 веке его изучать особо смысла нет, Си решит 99% его задач.
знание ассемблера зачастую помогало понять, почему на том же Си написано «именно так». И помогает понять, как надо писать. Т.е. вещь не столько практическая, сколько «базово-общеобразовательная». Ну и, конечно, нишевая. Но тут — как с матаном: может, применять никогда и не будешь, но он мозги в порядок приводит.
          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     


          DCR B
          JNZ LOOP

И ячейка STEP вместе с регистром C становятся не нужны. Прошу прощения за занудство :)
START:
        LDA    I
        MOV    B,A
        SUB    A
LOOP:
        ADD    B
        DCR    B
        JNZ    LOOP
PEND:
        STA    SUM
PWAIT:
        JMP    PWAIT

Ещё раз прошу прощения за занудство :)
Ожидал, что первая программа под Альтаир будет на том самом Бейсике.
Я не настолько стар, чтоб на подобном работать, но когда-то примерно так программирование микроконтроллеров осваивал) Тоже все было вслепую, никаких отладчиков тогда еще не было. А если еще и единственный уарт был занят чем-то — вообще мрак начинался. Кто практиковал отладку через светодиод — поймут.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории