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

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

R&K?! С ума сойти. Олдскулы свело.

Очень долго искал этот корпус.

А сколько их видел в 00-10-х годах на помойках, позади разных контор, когда списать нельзя, а использовать тоже, в итоге втихую их выносили и выкидывали.
Там разная экзотика попадалась, но в основном десктопы 286-386-е с большими, полноразмерными жесткими, 20-40МБ, дисками типа ST351.

Матричные принтеры чуть позже А3 формата стали популярны для столодрыжных фрезеров, а вот с системниками такого не было.

А сейчас матричным принтерам формата А3 можно найти применение? Кроме как просто печатать, а то лежат несколько epsonов без применения.

У меня вот Robotron такой широкий лежит. Давным давно долго и упорно пытался завести его.

Кодировки переключались перемычками в принтере. До сих пор помню, распечатку английского текста: Мицрософт Виндовс. В кодовой таблице включена транслитерация символов и невозможно печатать двуязычный текст.

В текстовом режиме он печатал в режиме кои-7 и не помню, печатал ли он что-либо полезное в итоге.
Но самое интересное, что в Windows XP с драйвером Epson compatible 9 pin он начал печатать в графическом режиме, но при этом каждую строчку он печатал два раза. Вот прям тестовая страница печати с логотипом XP, но двойные строчки. Как это исправить, гугл в то время мне не смог помочь.

Быть может кто знает в какую сторону искать, и получится когда-нибудь запустить принтер для печати широких листов. Правда к тому моменту придется искать компьютер с LPT-портом.

Изи. Если винда на нем может графику, значит сам принтер умеет графический режим. У вас 2 пути:

  • Выбрать правильный драйвер путем перебора доступных драйверов (название принтера будет другим)

  • Погуглить ESCAPE- последовательности для Epson, и работать напрямую через порт принтера или формировать файл с последовательностями и копировать его на prn: / lpt:

    Если принтер 9-пиновый, графика будет унылая, так что лучше использовать фиксированный шрифт, загружаемый перед печатью

Двойные строчки, это микросдвиг, т.е. винда пытается прокрутить вперёд/назад и за счёт люфта сдвинуть бумагу на половину точки чтобы напечатать в 2 раза плотнее чем позволяет принтер. Но у вас видимо назад не тянет, вот и получается задваивание.

винда пытается прокрутить вперёд/назад и за счёт люфта сдвинуть бумагу на половину точки чтобы напечатать в 2 раза плотнее чем позволяет принтер.

В смысле? Никаких люфтов, это полностью задокументированное производителем явление, а не какие-то изыски винды

Кстати, в WinXP у Epson было два драйвера. Один работал нормально, а с другим (даже на куда более новом LQ-100) были описанные вами глюки. Так что рекомендую поэкспериментировать с драйверами ещё.

Матричные принтеры до сих пор используются в двух случаях

  1. Нужна "печать под копирку" (есть специальная бумага для этого)

  2. Нужно скидывать что-то типа логов на твёрдый носитель построчно.

А ещё - там, где надо печатать много, но без претензий к качеству графики (обычно как раз всяческое типа логов). Так как матричная печать очень дешёвая, а современные матричники сравнялись по скорости со струйниками и слабыми лазерниками.

Зайдите в аэропорт или на сортировочную станцию - документы типа списка пассажиров, номеров вагонов и тому подобного почти всегда печатают на матричнике.

У почтальона видел пачку пенсионных квитков (и прочие пособия), которые на матричном печатают

Ещё недавно почти в каждом банкомате (когда ещё были старые вроде NCR Personas 5877 или Wincor ProCash 2500xe) стояли матричники как чековые и журнальные принтеры.

их используют в банках и на морских судах в составе радиокомплексов Глобальная Морская Система Связи при Бедствии  https://furuno.ru/gmssb/

Чтобы собиралось шустрее, наверное, стоило поднять число Cpu Speed. На 3000 он моделирует довольно древнюю машинку. Либо вообще выставить cycles=max в .conf - файле.

Кстати, интересно, а там вообще есть что-то, что может не запуститься на современном процессоре, если использовать ВМ вроде VirtualBox какого-нибудь (типа слишком высокой скорости или ошибки как в Windows NT 3.1)? Надо бы попробовать...

Для экспериментов рекомендую таки qemu, с ней проще чем с Virtualbox. Для второго надо диски преобразовывать в формат VM. А qemu может работать с dd-шными образами диска.

Ну а совсем каноничным вариантом будет, наверное, 86box.

я, особо разницы не заметил, если не брать XT-шную специфику.

Можно подключить физический диск или раздел и к VirtualBox.

Да можно, но сложнее чем к qemu

интересная статья, но возник вопрос а как была собрана и записана на диск самая первая версия на самый первый диск?

Как и большинство программ тех лет - ручками писался машинный код для конкретной машины, который реализовывал более высокоуровневый компилятор уже текстового ассемблера. Среди инструкций всегда найдутся опкоды аппаратных прерываний, которые позволяли в том числе писать в конкретное устройство. В том числе и флоппики.

На самом деле изначально разработка шла на мини-ЭВМ, где были быстродействующие компиляторы и возможность записи на дискеты.

Разработка на самих микрокомпьютерах началась позднее.

81 первый год первый выпуск. Первый Си был в 72. По идее микрокопьютеры должны были догнать за эти десять лет по закону Мура, учитывая что сам дос почти полностью на своём ассемблере писался.

Если говорить конкретно про MS-DOS - то и в изначальном виде (QDOS) ее разрабатывали на компьютере с процессором Z80 от компании Cromemco. Под Z80 был написан ассемблер для компилирования исходников и записи их на дискеты через контроллер Cromemco 4FDC (он же стоял на первых компьютерах SCP с процессором 8086, на которых QDOS запускалась).

Потом уже разработка переехала на комьютеры SCP полностью. Но это было уже с 1979 года - к тому моменту уже хватало достаточно оснащенных микрокопьютеров.

Например, pdp-8 и pdp-11 умели грузиться с перфолент/перфокарт и писать на дискеты.

А для перфокарт/перфолент вроде бы были ручные набиватели. И да, в первые компьютеры программы набирали тумблерами/кнопочками прямо в оперативку на машинных кодах.

перфокарты перфоленты школьником застал, там понятно...а вот как в случае персоналки происходило таинство...ручной компилятор и запись MBR в формате текстового редактора с размещением на нужной дорожке и секторе нужного дампа?

Операторы PDP помнили начальный загрузчик в машинных кодах и вводили его с консоли при включении.

PDP не видел. мал ещё(46годов). но J3QQ4-H7H2V-2HCH4-M3HK8-6M8VW на всю жизнь

Ну я думаю что кросс-компиляция даже в те времена существовала. Так что первый софт скорее всего готовили на машине другой архитектуры.

Ещё была постадийная сборка. Например, первый компилятор Паскаля его автор Никлаус Вирт реализовал в несколько стадий. Был некий промежуточный P-код, можно сказать дальний предок байт-кода. Очень простой стековый язык типа форта, порядка 20 примитивных команд всего. Его "компилятор" писался на макросах ассемблера под конкретную машину. Дальше собственно компилятор Паскаля был написан на этом машино-независимом P-коде. Дальше этим компилятором собиралась стандартная библиотека (crt) "первого этапа". Дальше, уже со стандартной библиотекой, где были строки, целые и т.д., в т.ч. ассемблерные вставки под конкретную машину, собирался полноценный компилятор, а им уже собиралась полноценная стандартная библиотека.

GCC и сейчес похожим образом вытягивал себя за волосы. Вот сейчас на сайте gcc пишут, что ему нужен gcc версии GCC 4.8.3 или любой C++11 компилятор. 4.8.3 можно собрать с помощью 3.4, его можно собрать с помощью 2.95, и так дойти до 1.27 (если он запустится на современном линуксе). А дальше надо будет собирать компилятор для minix, а его собирать под старым досом? А тот - под cp/m? Дальше, наверное, придётся переходить на z80 или на m68k, и уже без вариантов заниматься кросс-компиляцией.

в первые компьютеры программы набирали тумблерами/кнопочками прямо в оперативку на машинных кодах

вспомнил не так давно посмотренную мной [лекцию про компьютер Аполлона 11] (https://www.youtube.com/watch?v=B1J2RMorJXM), где рассказывают в том числе, как была запрограммирована его ПЗУ путём ручной намотки на магнитных кольцах

вот ссылка на статью с фото

а зачем в пзу магнитные кольца? Там же просто перемычек бы хватило - замкнуто - 1, разомкнуто - 0. Или эту пзу на магнитах можно было программно перезаписывать?

Зашел в статью - да, это по сути аналог не пзу, а флеша. Записанное не пропадает после выключения питания.

Зашел в статью

надо не статью открывать - её я привел как источник картинок, так как туда свалили все типы подряд, а саму лекцию, там подробно про это рассказывается. и да, это было ПЗУ и оно запрограммировано путём намотки

Не намотки, а прошивки (иглой с проводом).

У меня в конце 80-х “боевые алгоритмы” шились накруткой, только не на кольца, а на ферритовые “пеньки”. Обычной медной проволокой. Вручную.

А в статье речь не про ПЗУ, а про энергонезависимую RAM. Это скорее аналог флешки. У той же СМ-3 были модификации с RAM на ферритовых кольцах. Не стирается при выключении питания. А программируется всё же не накруткой проводов, а сигналами по этим проводам.

А в статье речь не про ПЗУ, а про энергонезависимую RAM

Core rope memory is a form of read-only memory (ROM) for computers <...> It was later used in the 1960s by early NASA Mars space probes and then in the Apollo Guidance Computer (AGC), which was built by Raytheon.

А программируется всё же не накруткой проводов, а сигналами по этим проводам.

Programs for the Apollo Guidance Computer were encoded by painstakingly threading wires through tiny magnetic cores

[Всё уже] было на Хабре.

На ферритах можно делать и ROM (прошивкой разрядных проводов в кольца или мимо них) и RAM.

Эта система успешно работает на реальном железе. В данном случае проверка идёт на 386 компьютере.

Эх, я то думал, что на современном железе будут сборка и запуск...

Эм, а разве этого не было в статье?

Средой DOS для сборки выбрал dosbox, к сожалению, это не самый лучший вариант, потому что там идёт замедление частоты (чтобы старые программы корректно работали), поэтому сборка идёт достаточно долго. Лучше всего использовать любой удобный DOS, запущенный в виртуальной машине.

Имел ввиду реальное железо) Вижу только что дос в досе собирается в виртуалке, а не в той же убунту/венде 🤔 Досбокс то работал на реальном современном железе, тут вопросов нет))

Да без проблем, просто дольше.

А слабо загрузиться на современном ПК?

Если в BIOS есть опция Legaсy Boot - то без проблем.

И все же непонятно отчего же команда sys не сработала?

Думаю, потому, что дискета не форматировалась утилитой format той же версии DOS. Хоть загрузчики DOS более-менее совместимы, но дискеты, отформатированные в DR-DOS, могли вызвать некоторые странности, а после fformat, если хочешь грузить систему, будь добр, выполни format a: /q /s иначе увидишь красивую менюшку из кнопки "OK" вместо загрузки...

...ну и да, начиная с 6.0 появился dblspace, наличие которого могло изменить логику бута.

Мне не хватило пороха в дебагере исследовать. Но вот вам место для дальнейших исследований :)

Спасибо, интересная статья. Можно будет поэкспериментировать с созданием графических оболочек, модификацией, улучшением ;). В общем, изобрести велосипед Windows с чистого листа 🙂.

Спасибо, слышал о ней, но не знал, что на гитхабе есть. Спасибо!

Прям захотелось детские поделки на турбо паскале глянуть снова собрать)

а че sys.com то не сработал? все-равно компилировал исходники, надо было проверку на версию dos отключить перед компиляцией. вроде, оно там все от mbr-а до файлов загрузки переносит.

а че sys.com то не сработал?

Да откуда же я знаю. Но факт остаётся фактом, отказался переносить системные файлы, хотя я и переменные среды окружения прописал и всякое всякое...

Частота в DOSBox меняется сочетанием клавиш.

А мне интересно, чем же вызваны проблемы с поломанной кодировкой? Ведь в исходниках должны использоваться только символы латиницы и знаки препинания, т.е. первая половина таблицы ASCII, а эти символы в любой кодировке, в т.ч. и в UTF-8, кодируются одинаково. Я бы понял ещё проблемы с CR/LF...

Возможно что-то связанное с https://en.wikipedia.org/wiki/Byte_order_mark но тоже выглядит сомнительно т.к. BOM состоит из непечатных ASCII (0xFE 0xFF)

 Ведь в исходниках должны использоваться только символы латиницы и знаки препинания

Почему? Внутри строк и комментариев -- любая псевдографика из CP-437

Надо было на нем DOOM запустить, если это возможно.

По идее возможно, Дум как раз DOS 4.0+ требует

Меня удивляет, что Microsoft выложила в открытый доступ не самую свежую версию DOS. Что мешает выпустить как минимум самую последнюю standalone версию? А то и вообще, раскрыть исходники какой-нибудь Windows 95?

Жаба

Возможно там есть проблемы с авторскими правами третьих лиц, например с DriveSpace.

Ну ничего. Лет через 70-100 увидим исходники, когда истечет срок авторского права.

Ностальгия :) захотелось включить все это на реальном железе, нашел флоповод и материнку с pentium3 и разъемом FDE, но чет она не завелась :( Хотя лежало все в коробке в шкафу. Что-то с БИОСом вероятно, батарейку померял, она как ни странно еще жива...

Может конденсаторы высохли. С ними такое бывает.

Переткните всё, что вставлено (может, контакт пропал) и поменяйте электролиты. Скорее всего, дело в этом.

Спасибо Вам за интересную статью!

Прямо в сердце.

Интересно, а это соберется современными компиляторами типа GCC(https://github.com/tkchia/gcc-ia16) и CLANG? Будет ли профит от лучших оптимизаций или наоборот?

Там же C кода мало, ассемблер в основном.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий