Comments 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 раза плотнее чем позволяет принтер. Но у вас видимо назад не тянет, вот и получается задваивание.
Кстати, в WinXP у Epson было два драйвера. Один работал нормально, а с другим (даже на куда более новом LQ-100) были описанные вами глюки. Так что рекомендую поэкспериментировать с драйверами ещё.
Матричные принтеры до сих пор используются в двух случаях
Нужна "печать под копирку" (есть специальная бумага для этого)
Нужно скидывать что-то типа логов на твёрдый носитель построчно.
А ещё - там, где надо печатать много, но без претензий к качеству графики (обычно как раз всяческое типа логов). Так как матричная печать очень дешёвая, а современные матричники сравнялись по скорости со струйниками и слабыми лазерниками.
Зайдите в аэропорт или на сортировочную станцию - документы типа списка пассажиров, номеров вагонов и тому подобного почти всегда печатают на матричнике.
их используют в банках и на морских судах в составе радиокомплексов Глобальная Морская Система Связи при Бедствии https://furuno.ru/gmssb/
Чтобы собиралось шустрее, наверное, стоило поднять число Cpu Speed. На 3000 он моделирует довольно древнюю машинку. Либо вообще выставить cycles=max в .conf - файле.
Спасибо. В самое сердечко.
Всё же есть, что-то чарующее в старых железках и в старом софте.
Кстати, интересно, а там вообще есть что-то, что может не запуститься на современном процессоре, если использовать ВМ вроде VirtualBox какого-нибудь (типа слишком высокой скорости или ошибки как в Windows NT 3.1)? Надо бы попробовать...
Для экспериментов рекомендую таки qemu, с ней проще чем с Virtualbox. Для второго надо диски преобразовывать в формат VM. А qemu может работать с dd-шными образами диска.
интересная статья, но возник вопрос а как была собрана и записана на диск самая первая версия на самый первый диск?
Как и большинство программ тех лет - ручками писался машинный код для конкретной машины, который реализовывал более высокоуровневый компилятор уже текстового ассемблера. Среди инструкций всегда найдутся опкоды аппаратных прерываний, которые позволяли в том числе писать в конкретное устройство. В том числе и флоппики.
На самом деле изначально разработка шла на мини-ЭВМ, где были быстродействующие компиляторы и возможность записи на дискеты.
Разработка на самих микрокомпьютерах началась позднее.
81 первый год первый выпуск. Первый Си был в 72. По идее микрокопьютеры должны были догнать за эти десять лет по закону Мура, учитывая что сам дос почти полностью на своём ассемблере писался.
Если говорить конкретно про MS-DOS - то и в изначальном виде (QDOS) ее разрабатывали на компьютере с процессором Z80 от компании Cromemco. Под Z80 был написан ассемблер для компилирования исходников и записи их на дискеты через контроллер Cromemco 4FDC (он же стоял на первых компьютерах SCP с процессором 8086, на которых QDOS запускалась).
Потом уже разработка переехала на комьютеры SCP полностью. Но это было уже с 1979 года - к тому моменту уже хватало достаточно оснащенных микрокопьютеров.
Например, pdp-8 и pdp-11 умели грузиться с перфолент/перфокарт и писать на дискеты.
А для перфокарт/перфолент вроде бы были ручные набиватели. И да, в первые компьютеры программы набирали тумблерами/кнопочками прямо в оперативку на машинных кодах.
перфокарты перфоленты школьником застал, там понятно...а вот как в случае персоналки происходило таинство...ручной компилятор и запись MBR в формате текстового редактора с размещением на нужной дорожке и секторе нужного дампа?
Операторы PDP помнили начальный загрузчик в машинных кодах и вводили его с консоли при включении.
Ну я думаю что кросс-компиляция даже в те времена существовала. Так что первый софт скорее всего готовили на машине другой архитектуры.
Ещё была постадийная сборка. Например, первый компилятор Паскаля его автор Никлаус Вирт реализовал в несколько стадий. Был некий промежуточный 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 на ферритовых кольцах. Не стирается при выключении питания. А программируется всё же не накруткой проводов, а сигналами по этим проводам.
Эта система успешно работает на реальном железе. В данном случае проверка идёт на 386 компьютере.
Эх, я то думал, что на современном железе будут сборка и запуск...
Эм, а разве этого не было в статье?
Средой DOS для сборки выбрал dosbox, к сожалению, это не самый лучший вариант, потому что там идёт замедление частоты (чтобы старые программы корректно работали), поэтому сборка идёт достаточно долго. Лучше всего использовать любой удобный DOS, запущенный в виртуальной машине.
Имел ввиду реальное железо) Вижу только что дос в досе собирается в виртуалке, а не в той же убунту/венде ? Досбокс то работал на реальном современном железе, тут вопросов нет))
А слабо загрузиться на современном ПК?
И все же непонятно отчего же команда sys не сработала?
Думаю, потому, что дискета не форматировалась утилитой format той же версии DOS. Хоть загрузчики DOS более-менее совместимы, но дискеты, отформатированные в DR-DOS, могли вызвать некоторые странности, а после fformat, если хочешь грузить систему, будь добр, выполни format a: /q /s
иначе увидишь красивую менюшку из кнопки "OK" вместо загрузки...
...ну и да, начиная с 6.0 появился dblspace, наличие которого могло изменить логику бута.
Пробовал всё сделать по уму, всё равно не работает https://dlinyj.livejournal.com/886832.html
Мне не хватило пороха в дебагере исследовать. Но вот вам место для дальнейших исследований :)
Спасибо, интересная статья. Можно будет поэкспериментировать с созданием графических оболочек, модификацией, улучшением ;). В общем, изобрести велосипед Windows с чистого листа ?.
О, так вам сюда - https://github.com/reactos/reactos
?
Прям захотелось детские поделки на турбо паскале глянуть снова собрать)
а че sys.com то не сработал? все-равно компилировал исходники, надо было проверку на версию dos отключить перед компиляцией. вроде, оно там все от mbr-а до файлов загрузки переносит.
Частота в DOSBox меняется сочетанием клавиш.
А мне интересно, чем же вызваны проблемы с поломанной кодировкой? Ведь в исходниках должны использоваться только символы латиницы и знаки препинания, т.е. первая половина таблицы ASCII, а эти символы в любой кодировке, в т.ч. и в UTF-8, кодируются одинаково. Я бы понял ещё проблемы с CR/LF...
Возможно что-то связанное с https://en.wikipedia.org/wiki/Byte_order_mark но тоже выглядит сомнительно т.к. BOM состоит из непечатных ASCII (0xFE 0xFF)
Ведь в исходниках должны использоваться только символы латиницы и знаки препинания
Почему? Внутри строк и комментариев -- любая псевдографика из CP-437
Надо было на нем DOOM запустить, если это возможно.
Меня удивляет, что Microsoft выложила в открытый доступ не самую свежую версию DOS. Что мешает выпустить как минимум самую последнюю standalone версию? А то и вообще, раскрыть исходники какой-нибудь Windows 95?
Ностальгия :) захотелось включить все это на реальном железе, нашел флоповод и материнку с pentium3 и разъемом FDE, но чет она не завелась :( Хотя лежало все в коробке в шкафу. Что-то с БИОСом вероятно, батарейку померял, она как ни странно еще жива...
Спасибо Вам за интересную статью!
Прямо в сердце.
Интересно, а это соберется современными компиляторами типа GCC(https://github.com/tkchia/gcc-ia16) и CLANG? Будет ли профит от лучших оптимизаций или наоборот?
Сборка MS-DOS 4.0