Ранее казалось, что Firefox является более лёгкой, хоть, может, и чуть более медленной альтернативной Chrome, но похоже, что сейчас это не так. Более лёгкий браузер мне нужен из-за увлечения прослушиванием музыки и слабым ПК. Не очень удобно каждый раз искать и скачивать альбомы, поэтому пользуюсь ВК. Разницу в качестве звука между настоящим lossless и .MP3 в ВК не слышу (если только это не другой релиз, мастеринг). Вместе со старой игрой этого хватает, чтобы временами ПК шумел, что несколько мешает. При тех же начальных условиях, Firefox и нагружает систему в 2 раза сильнее, и использует в полтора раза больше памяти, но при длительной сессии могу говорить лишь за Chrome — будто бы нестабильно нагружается больше. Ничего лишнего не запущено, автообновления Windows отключены. Возможно, кого-то из них можно лучше настроить. Заменить ПК, конечно, можно, но для этого надо разбираться в комплектующих — в этом я профан, и в таком случае вычислить в чужой сборке поделие горесборщика невозможно.
Ранее я часто рассказывал об особенностях видеокарт из 90-х. В рамках прошлых статей, мы успели с вами рассмотреть внутреннюю архитектуру 3dfx Voodoo, узнать о кастомном графическом API в S3 ViRGE, и даже написать свою собственную небольшую демку под видеокарты из 90-х. Вместо рассказов о GeForce 256 и ATi 3D Rage, в сегодняшнем материале мне хотелось бы поговорить о видеокарте, которая обогнала своё время — и при этом всё равно провалилась. Как вы уже поняли — речь пойдет об Intel i740.
Каким был первый GPU от Intel, на что он был способен и в чём заключается его главная тайна — читайте в сегодняшней статье!
❯ Предисловие
История видеоускорителей Intel начинается, как это ни странно, с программ космических симуляций. Первые наработки 3D-ускорителей разрабатывали ещё в 70-х годах в стенах компании GE Aerospace, однако в 1992 году, General Electric решили продать своё аэрокосмическое подразделение компании Martin Marietta, которое в 1995 году стало называться Lockheed Martin. После появления PlayStation 1 и массовых игровых автоматов с 3D-графикой, было очевидно что рано или поздно 3D станет мейнстримом и в сегменте домашних компьютеров, а пока конкуренция была ещё достаточно мала, Lockheed Martin решила организовать подразделение под названием Real3D.
По сути, в 1995 году из конкурентов у Real3D была только Nvidia со своим мультимедийным акселлератором NV1 и... PowerVR с GPU Midas 3. Но NV1 не был просто 3D-ускорителем — это целый комбайн, который включал в себя контроллер геймпадов от SEGA Saturn, звуковую карту, 2D-ускоритель для GDI/DDraw-игр и, собственно, 3D-ускоритель. Стоил NV1 целых 300$ и его самая главная фишка в лице 3D-ускорителя оказалась полным провалом: дело в том, что по каким-то причинам инженеры Nvidia решили построить растеризатор на базе квадов, а не общепринятых треугольников. Из-за этого разработчикам приходилось серьезно переписывать рендереры своих игр, поэтому на NV1 вышло всего 6 игр. Кроме того, NV1 оперировал не классическими UV-координатами, а специальными «весами», которые диктовали GPU как правильно наносить текстуру на примитив.
Как и NV1, PowerVR Midas 3 был тоже прорывным и в некоторой степени экзотическим GPU. В отличии от чипа от Nvidia, он оперировал классическими треугольниками, однако растеризатор здесь работал по принципу TBDR — Tile Based Deffered Renderer. Если говорить простыми словами, то видеокарта разбивала экран на набор тайлов размером 32x32 каждый, считала видимость и перекрытие всех рисуемых в тайле треугольников и затем отсылала их растеризатору. Таким образом, Midas 3 очень сильно экономил филлрейт за счёт отсечения невидимых поверхностей, не требовал тяжелого Z-буфера и заметно снижал нагрузку на общую шину с видеопамятью. Однако TBDR очень не любит полупрозрачные поверхности, а также геометрию с альфа-тестом, поэтому производительность Midas 3 значительно падала при отрисовке заборов, решеток и прочих объектов с полностью прозрачными пикселями. К слову TBDR в отличии от квадов живёт и сегодня и применяется даже в вашей RTX5090, а GPU от PowerVR сильно повлияли на успех первых iPhone (причём MBX был прямым наследником Midas 3).
Поэтому в 1995 году, Real3D совместно с Intel и Chips (читатели, заставшие 386/486, сразу поймут что это за компания) начали разрабатывать потребительский GPU под кодовым именем Auburn. Главной фишкой Auburn была новая шина AGP, созданная специально для видеокарт. Концептуально и электрически AGP был практически идентичен PCI: использовалась всё та же параллельная шина (за исключением того, что AGP не делил линии с другими устройствами как PCI) с теми же логическими уровнями, на программном уровне AGP-устройства использовали регистры PCI-контроллера и PCI-й же Configuration Space, а регистры и память самого GPU точно также маппились в адресное пространство процессора с помощью MMIO. Однако AGP добавлял ещё несколько важных фишек:
Возможность передачи данных как по восходящему, так и по спадающему фронту — как в DDR. Это позволяло передавать данные в два раза быстрее без фактического увеличения скорости шины, которая в первых версиях работала на частоте в 66МГц — x2 от PCI.
Технология GART, позволявшая замаппить кусок RAM для совместного использования GPU и CPU. Таким образом, GPU мог читать текстуры не только из собственной видеопамяти, но и из оперативной — что по теории Intel должно было решить проблему недостатка дорогой EDO-памяти для текстур и заметно удешевить видеокарты.
Иллюстрация с сайта pctechguide. Как мы с вами видим, процессор был связан напрямую с северным мостом, который включал в себя контроллер DRAM, PCI и AGP. Процессор был подключен к «северу» с помощью шины FSB
Как вы уже могли понять, основной упор в Auburn решили сделать на поддержку технологии GART. Суть её была такой, что на видеокарте располагается лишь минимальный объём видеопамяти (~4МБ) для хранения фреймбуфера и Z-буфера, в то время как для хранения текстур предполагается использовать системную память. Теоретически этот способ помогал заметно разгрузить шину GPU — VRAM в процессе растеризации, при этом распараллеливая обращения к текстурам через контроллер памяти в северном мосту. На бумаге это звучало хорошо...
❯ Разбираем архитектуру
Архитектура видеокарт в 90-х заметно отличалась от современных. Во первых, в GPU тех лет конвейер был фиксированным: все возможные операции по освещению, наложению тумана и текстурированию были заранее реализованы в железе и возможности вручную посчитать цвет фрагмента не было. Некоторым подобием шейдеров была возможность мультитекстурирования, которая позволяла за один проход наносить несколько текстур одновременно с разными операциями: например можно было наложить основную текстуру, маску и сферическую карту отражений, что позволяло сделать модельку машины, где кузов отражается, а матовые элементы — нет. Первой видеокартой с поддержкой мультитекстурирования была 3dfx Voodoo 2, однако там возможность нанесения нескольких текстур за один такт зависела от числа TMU — текстурных юнитов на видеокарте.
Иллюстрация с сайта ScienceDirect. Здесь представлен чуть более поздний конвейер — времен GeForce 256, с аппаратным T&L
Во вторых, вплоть до GeForce 256 в видеокартах вообще не было вершинного конвейера. Вы же помните слова о том, что видеопамять используется только для фреймбуфера, а оперативная — для текстур? Так вот, в те годы видеокарты не хранили в себе геометрию и никак её не обрабатывали, ожидая на вход уже готовые и преобразованные треугольники. Таким образом, вся нагрузка по трансформации треугольников, перспективному делению, повершинному освещению и клиппингу (разбиения частично видимых треугольников «перед носом» на несколько более мелких) ложилась на центральный процессор, в то время как GPU оставалось лишь это всё растеризовать (и именно отсюда растут корни glBegin/glEnd). В GF256 уже появилась поддержка T&L и возможность размещать вершинные буферы в видеопамяти, что позволило уже через 2-3 года кратно увеличить полигональность моделей в играх.
Сравните детализацию в Porsche Unleashed и HP2. Разница на лицо
Auburn, уже под финальным названием Intel i740, появился в начале 1998 года и должен был конкурировать с новым ATi Rage 128. На первый взгляд, это был суперсовременный и доступный GPU на момент выхода:
В i740 был встроен 2D-ускоритель с аппаратным ускорением GDI и DirectDraw, поддержкой разрешения до 1280x1024 при 16-битном цвете и поддержкой как VGA, так и NTSC/PAL для вывода изображения на телевизор.
Помимо 2D-ускорителя, в GPU был также аппаратный декодер DVD. Это уже очень серьезная заявка на успех с учетом того, что не каждый процессор в те годы мог программно декодировать MPEGII.
3D движок поддерживал все современные на тот момент возможности: Z-буфер, MSAA, затенение по методу Гуро, попиксельный туман, альфа-блендинг, альфа-тест, дизеринг, трилинейную фильтрацию. Из текстурных форматов поддерживалась палитровые, 1555, 565 и 4444 — никаких 24 и тем более 32 битных текстур.
На бумаге GPU работал на частоте в 133МГц, имел приличный филлрейт в ~55 мегапикселей, мог растеризовывать до ~350к треугольников в секунду (или около 11к треугольников на один кадр — это не так мало, как кажется. В HL ~4к треугольников на кадр к примеру).
И самое главное — никаких собственных GAPI, полный ориентир на OpenGL и Direct3D.
Всё это было выполнено на техпроцессе в 350нм и при скромной розничной цене в 120$. Звучит как что-то невероятное, однако на практике FPS в играх был не особо высокий из-за использования GART: видеокарте постоянно приходилось бороться с процессором за возможность доступа к оперативной памяти, из-за чего страдала пропускная способность как со стороны GPU, так и со стороны процессора. Добавьте к этому невысокую частоту FSB и самой SDRAM и получаем просадки растущие не только от объёма геометрии в кадре, но и количества наносимых текстур, благо i740 не поддерживал мультитекстурирование.
Очевидно что в 1998 году, большинство 3D-акселлераторов проектировались как игровые и i740 стал провалом в геймерском сегменте из-за невысокого FPS в играх. Ситуация становилась ироничной из-за того, что Intel выпустила специальную PCI-версию, для которой отдельно разработала чип-мост, перенаправляющий обращения к GART с северного моста на дополнительные чипы SGRAM распаянные на плате. PCI-версия стоила значительно дороже и нивелировала все плюсы i740, хоть и работала в играх чуть быстрее, что иронично.
Фото с сайта vgamuseum
Однако огромным плюсом были адекватные драйвера для OpenGL и Direct3D. До 1998 года, большинство видеокарт были ориентированы в первую очередь на свои собственные проприетарные графические API — у 3dfx был Glide, у S3 — Metal (не тот что у Apple), а у ATi — CIF, в то время как i740 был ориентирован на стандартные API. При этом все три API взваливали задачу написания аллокатора текстур, математической библиотеки и вершинного конвейера на программиста, что заметно увеличивало порог входа для разработки 3D-игр. У GL и D3D же это всё было готово «из коробки», благодаря чему большинство игр уже в 1999 году перешли на DirectX. Для понимания почему так произошло — окромя Nvidia, ни у одного производителя GPU в 90-х не было адекватных драйверов для OpenGL. У 3dfx был обрубок под названием MiniGL специально для Quake, у ATi драйвера были кривыми вплоть до ~2001 года, а у S3/SiS вообще всё с этим было максимально плохо, поэтому и победил DirectX.
Ещё одна причина почему победил в DirectX
Во времена DirectX 6 было два режима D3D — Immediate и Retained. Immediate больше всего похож на современные графические API, поскольку сразу оперировал программными командными буферами, и аппаратными вершинными/индексными буферами, что позволило прозрачно для игр использовать T&L и заметно поднять их производительность.
Retained же представлял из себя почти готовый графический движок с полноценным графом сцены, математической библиотекой и даже API для загрузки моделей/текстур с диска. Retained-режим очень сильно снижал порог входа в сферу, благодаря чему некоторые игры использовали именно его.
Касательно конкретных фишек у i740 всё тоже было не идеально. Во первых, как я и говорил ранее, i740 не имел поддержки мультитекстурирования, что требовало двухпроходной отрисовки уровней — сначала геометрия с текстурой, затем та же самая геометрия с лайтмапой. Больше всего это было актуально для Half-Life и Quake. Во вторых, i740 не поддерживал Stencil-буфер и соответственно стенсильные тени в реальном времен. Можно было только очень костыльно реализовать самые примитивные Shadowmap'ы без фильтрации, но выглядели они отвратительно.
Примерный уровень графики на i740 из демки. На дне каустики, дорисованные вторым проходом
И в третьих — i740 не поддерживал текстурную компрессию, которая позволила бы заметно выиграть в производительности. Дело в том, что блочные алгоритмы типа DXT позволяют хранить блок из 16 пикселей всего в 8 байтах (двух машинных словах) и отлично кэшируются, что помогло бы разгрузить шину... но имеем что имеем. В играх i740 показывал себя в целом очень даже неплохо, но уступал решениям от ATi и Nvidia, а ещё по каким-то причинам GPU не использовался в ноутбуках (скорее всего из-за отсутствия поддержки LVDS).
Результаты в играх были неплохими, но не более того. В Quake 3 i740 в AGP-версии выдавала солидные 30 FPS (а PCI-версия всего 20), в то время как в Quake 1 кадровая частота местами подлетала почти до 50 FPS. В Carmageddon II приходилось наслаждаться 20-22 FPS на обеих версиях, зато Mortal Kombat 4 шел в 50 на PCI версии и 60 на AGP. В MS Flight Simulator 98, i740 вытворял чудеса и выдавал более 60 FPS - это уже FPS уровня современного геймера.
Несмотря на все свои недостатки, i740 не отправился в помойку: несмотря на провал на розничном рынке, i740 стоил очень недорого на оптовом для OEM, что и обеспечило ему большую популярность в готовых сборках. А годом позднее, GPU был интегрирован в чипсет Intel i810, где и раскрыл свой бюджетный потенциал во всю. Его основными конкурентами стали SiS Mirage Graphics на базе SiS 6326 (обычно была слабее Intel'ов), VIA Unichrome на базе легендарного S3 Savage, и такая экзотика, как Trident CyberBLADE XP. В 2004'ом, Intel выпустила современный и относительно крутой GPU под названием GMA900 с поддержкой Direct3D9 и продвинутым шейдерным конвейером, но... об этом как-нибудь в другой раз.
❯ Заключение
Вот такой была первая видеокарта от Intel. И, судя по всему, из года в год Intel повторяет историю точь в точь: разрабатывают продвинутый GPU с поддержкой всех современных технологий, но спотыкаются об использование RAM в качестве основной памяти и кривоватые драйвера. Хотя сейчас с появлением Intel Arc ситуация кратно улучшилась. А что вы думаете о GPU от Intel? Пишите своё мнение в комментариях!
В будущем хотелось бы написать статью про что-то из Trident'ов, PowerVR, Trident'ов или ранних 3dfx, но к сожалению пока возможности купить их нет. Но там будь что будет :)
Ну а я надеюсь, что вам было интересно. Подписывайтесь на блог, чтобы не пропускать новые статьи каждую неделю! А если вам интересна тематика ремонта, моддинга и программирования для гаджетов прошлых лет — подписывайтесь на мой Telegram-канал «Клуб фанатов балдежа», куда я выкладываю бэкстейджи статей, ссылки на новые статьи и видео, а также иногда выкладываю полезные посты и щитпостю. А ролики (не всегда дублирующие статьи) можно найти на моём YouTube канале.
А если вы хотите что-нибудь подарить из железа и увидеть о нём статью — пишите мне в Telegram. Меня очень интересуют самые разные гаджеты: начиная от игровых консолей и любых связанных с геймингом устройств, телефонов, смартфонов, КПК, заканчивая ретро-компьютерами и ноутбуками. Кто знает, может героем следующейподобной статьи окажется ноутбук из 90-х? :)
После обзоров устройства не продаются, а остаются в моей коллекции. Когда-нибудь я хочу сделать музей, где к каждому устройству можно будет приложить QR и почитать мою статью. Кто знает, вдруг на следующей неделе я также подробно расскажу про девайс из вашей юности? :)
Кстати, у меня есть GameBoy Advance SP, под который я очень хочу написать игру. Однако мой экземпляр был залит водой и кофе. Может у кого-то есть донор с дохлой платой, откуда я смог бы взять контроллер питания? У меня AGS-101.
Не видел тут эту новость, просто знайте. Исследовали аркадный автомат на основе ps1. Был обнаружен неиспользованный контакт для переключения банков памяти, что позволило делать мод на 16 вместо 8.
Больше не получится, контроллер памяти такой.
Похоже, разработчик кастомных материнских плат для нее пока не в курсе. И разработчики эмуляторов тоже.
Сейчас ищут способ припаять второй мб vram, как в аркадных автоматах. На уровне софта это сразу было доступно, в командах gp для адресации поддерживается 2мб, но игры использовали только один, что логично.
Следить можно на красном видеохостинге (англ. канал), ссылку не оставлю.
Который был оживлен и запущен в эмуляторе, спустя 40 лет после банкротства компании‑создателя. Самая редкая операционная система и самое редкое железо из всего что автор когда‑либо видел за жизнь.
Ни один житель СССР и РФ не мог видеть эти строчки запуска, поскольку машины Plexus были редкостью даже в самих США и абсолютно точно их продукция никогда не попадала в наши края.
Plexus
Всего было создано около 2500 таких машин, производила их с 1980 по 1988 небольшая калифорнийская компания Plexus Computers:
3833 North First Street San Jose, California, 95134, United States (408)943-9433
В 1989 году компания обанкротилась и производство было остановлено навсегда. Вот тут выложен интересный PDF-документ с отсканированной брошюрой, описывающей их продукцию:
Еще кто-то выложил в сеть отсканированное руководство администратора для одной из последних моделей Plexus P/90:
Вот так выглядит один из последних сохранившихся образцов, Plexus P/75:
Кнопка запуска вблизи:
Обратите внимание на бежевые панели - это не пластик а самое настоящее железо.
Как видите предки понимали в капитальных решениях, примерно такой кнопкой у нас запускают стратегические ракеты.
Вот так выглядит еще один из доживших образцов попроще — Plexus P/35:
Эта же модель на брошюре с описанием возможностей, в свои лучшие годы:
В 2024м году одному компьютерному энтузиасту из Калифорнии удалось заполучить Plexus P/20 в свои лапы и вернуть его к жизни. Весь процесс оживления, а также детальный обзор этой машины он записал в серию видео, которые затем выложил на Ютуб.
Но это еще не все, поскольку довольно быстро в комментариях под видео появились живые свидетели, заставшие эти удивительные машины:
About Plexus Computer, Inc. : It started operating in 1981 and in 1988 sold its Unix and hardware side of their business to Motorola. By this time they 've already gone up to the 68020 processor with up to 48 MB of RAM and adopted the VMEbus in their P/95 product. They kept on developing their expensive and niche software imaging products under chapter 11 protection (bankruptcy) until 1989 when they finally sold the remaining software assets to "Recognition Equipment".
Сочетание фраз up to 48 MB of RAM и 1988 год думаю заставит дернуться не один читательский глаз.
Как видите, если создать действительно неубиваемый сервер — им будут пользоваться и через 20 лет после банкротства производителя:
So cool to see one of those again! I worked for a Circuit City location years ago that in the 2000s was still running serial terminals over a PLEXUS server. I do know it was based on 68030 CPUs, with a pair of 160MB SCSI drives in mirror. But it so happened that I was the only non-corporate person who had root level login on the command line. The rest of the store was based on a locked menu for sales, inventory management, etc. I had just quit consulting and as the ONLY person on site with Unix certificates, I got saddled with emergency on-call. It never happened, but oh that brings back memories!
Обратите внимание на объемы: диски по 160 мегабайт в 1988м году (!), времена ленточных накопителей и дискет на 360 килобайт.
В 2024м году команда энтузиастов смогла реализовать полноценный эмулятор этой редкой машины:
This emulator emulates most aspects of a Plexus P/20 system: you can boot from a hard disk image, log into UNIX and play around. The things currently unsupported are the tape drive, floppy drive, and any Multibus cards.
Если вы простой обыватель, далекий от UNIX и программирования, но каким‑то удивительным образом дочитали до этого места — у эмулятора существует веб‑версия, которая позволит увидеть UNIX System 5.2 в работе без описанных ниже приседаний со сборкой из исходников и запуском.
Мы же пойдем как обычно путем хардкора — соберем и запустим все собственными руками. Проект эмулятора свежий, поэтому спокойно и без ошибок собирается самым обычным штатным clang на FreeBSD:
cc -v FreeBSD clang version 18.1.6 (https://github.com/llvm/llvm-project.git llvmorg-18.1.6-0-g1118c2e05e67) Target: x86_64-unknown-freebsd14.2 Thread model: posix InstalledDir: /usr/bin
Поэтому проблем со сборкой в линуксе не будет.
Но в Windows/Mac так просто проект не соберется — соответствующих ветвлений в исходниках нет.
Забираем проект, внутри всего одна ветка — текущая:
В результате в корневом каталоге эмулятора у вас должно появиться три файла: два.BIN и один.img. Их имена зашиты в код эмулятора, поэтому переименовывать нельзя.
Запускаем эмулятор:
./emu
После прохождения тестов оборудования появится стадия single mode:
Для продолжения загрузки в многопользовательский режим, введите:
init 2
Появится диалог задания даты и времени, думаю очевидно что тут есть проблема 2000 и задать можно только дату до 1996го года.
Затем пойдут проверки файловой системы:
И наконец появится приглашение авторизации:
Введите root, затем вместо ввода пароля нажмите <Enter>, появится приглашение командной строки от суперпользователя, с полным доступом:
Добро пожаловать в самый редкий UNIX на свете:
Вот так выглядит список процессов:
Вывод корневых каталогов:
Поскольку образ диска был снят с реальной машины, в системе есть пользователь adrian (тот самый энтузиаст), в домашнем каталоге которого есть кое‑что интересное, в частности инструкции по работе в этой системе.
Для попадания можно использовать.. стандартный su:
su adrian
Или же зайти под ним из приглашения (пароля нет):
В системе есть cat и работают пайпы:
И даже есть вот такой артефакт:
Вывод содержимого классического /etc/passwd, до сих пор присутствующего во всех UNIX-системах:
Как видите в системе используется C shell (csh), расположенный в весьма нестандартном месте:
/usr/plx/csh
К сожалению man-ы (системные руководства и справка по командам) повреждены:
Вот так выглядят переменные окружения:
Есть vi, grep, find, bison и компилятор Си:
Удивительная система из далекого прошлого, о которой я абсолютно ничего не знал пока не наткнулся на видео от Адриана.
Мы создали реплику прототипа первой компьютерной мыши.
Обычно историю появления компьютерной мыши рассказывают примерно так: Дуглас Энгельбарт придумал мышь, в 1968 году показал её на Mother of All Demos, а потом весь мир стал пользоваться мышками.
В реальности все было чуть сложнее и интереснее. В начале 1960-х компьютер ещё не был персональным устройством на столе. Для большинства людей работа с вычислительной машиной означала перфокарты, пакетную обработку, операторов, машинное время и очень длинную обратную связь: ты готовишь задание, отдаёшь его машине, ждёшь результата и потом ищешь ошибку. Энгельбарт в Stanford Research Institute занимался почти противоположной идеей: компьютер должен быть не калькулятором за стеной, а интерактивной средой для усиления человеческого мышления.
Эта среда называлась NLS, oN-Line System. Слово online тогда означало не интернет в современном смысле, а работу человека с компьютером в реальном времени, через экран, команды и мгновенную обратную связь. NLS была целой рабочей системой для текстов, ссылок, структурированных документов, совместной работы, команд, экранного редактирования, видеосвязи и навигации по информации - прообразом современных операционных систем, где человеку нужно быстро указывать на объекты на экране, выбирать фрагменты текста, перемещаться по структурам и управлять сложными объектами.
Когда такая задача появилась, никто заранее не знал, какое устройство окажется лучшим. В лаборатории пробовали разные способы взаимодействия человека с экраном: световое перо, джойстик, Grafacon(дед планшетов), устройства для управления коленом, варианты с движением головы или носа и другие экспериментальные манипуляторы.
Саму первую мышь физически сделал не Энгельбарт, а инженер Билл Инглиш. Энгельбарт придумал принцип и поставил задачу, а Инглиш построил устройство, участвовал в инженерной проработке и стал одним из первых людей, кто реально пользовался мышью. В музейных записях Computer History Museum оригинальный деревянный прототип прямо атрибутирован так: Douglas Engelbart как создатель, Bill English как человек, который его построил.
Первая мышь работала на двух колёсах, установленных под прямым углом друг к другу. Одно колесо отвечало за движение по оси X, другое - за движение по оси Y. Каждое колесо было посажено на вал потенциометра, а весь механизм был закрыт в деревянный корпус размером примерно 2 × 3 × 4 дюйма, то есть около 5 × 7,6 × 10 сантиметров. В Computer History Museum эти колёса описывают как knife-edge wheels, то есть колёса с тонкой кромкой: одно катилось при движении в своём направлении и скользило при движении поперёк, второе делало то же самое для другой оси.
В патенте Энгельбарта слово mouse вообще не используется: юридически устройство называлось X-Y Position Indicator for a Display System.
К 1968 году мышь уже эволюционировала. На Mother of All Demos Энгельбарт показывал не этот самый ранний однокнопочный деревянный прототип, а более зрелую рабочую версию для NLS: трёхкнопочную мышь вместе с обычной клавиатурой, пятиклавишным аккордным кейсетом и экранной системой.
Помимо оригинала и "почти оригинальной" реплики, тоже созданной Инглишем, мне удалось найти информацию еще о трех репликах в США и Европе.
Самое сложное в реплике - найти оригинальные компоненты, или хотя бы приближенные к оригинальным. В нашем случае это потенциометры, кнопка, разъем и кабель. На поиск этого всего по всему миру у меня ушло около полугода. Поэтому реплика собирается как расследование: патентные схемы, фотографии нижней стороны, музейные размеры, технические статьи, сравнение ранних и поздних версий, поиск компонентов той же эпохи и постоянная проверка, где заканчивается факт и начинается реконструкция.
Ну и конечно получилось найти человека, который скрупулезно воссоздал точную копию конструкции и внешнего вида.
Эту и другие мыши скоро можно будет посмотреть живьем в Москве, детали чуть позже. Stay tuned!
Древний дисковод ожил и издавая чудовищный скрежет стал медленно загружать мое послание. Через какое-то время на экране появились строки:
NE PUERO GLADIUM, DR. KRIGER. 04.03.2026
Три пары глаз повернулись ко мне в немом изумлении.
— Это длинная история, нам лучше присесть.
Все герои в сборе.
Человек, перешагнувший порог моего маленького офиса в тот летний вечер явно имел отношение к спецслужбам — армейскую выправку и годы тренировок не спрячешь так просто.
Рослый и поднятутый, в безупречном костюме и с острым, пронзительным взглядом — он производил серьезное впечатление.
И тем странее выглядел этот заказ.
— Алекс, полагаю?
— Он самый, рад наконец познакомиться лично. Вы написали, что для нас есть работа. Хотя исходя из содержания письма, задача выглядит довольно.. необычной.
— Это проблема? Мне рекомендовали вас как опытных профессионалов..
— Нет, не проблема. Просто уточняю детали, дабы убедиться, что мы понимаем друг друга. Итак, вы действительно используете компьютеры.. из 1987 года?
АРХЕОТЕХ
Копаясь в сети в поисках очередного археотеха, был обнаружен удивительный репозиторий, в котором один почтенный джентельмен, недавно отошедший от дел, собрал невероятную подборку дичи инструментов разработки для компьютеров конца 70х — начала 80х:
CP/M 2.2 compilers, assemblers, and interpreters
CP/M, если кто вдруг не знает (коих среди читателей точно будет большинство), это такая операционная система из далекого-далекого прошлого, созданная аж в 1974 году. Разумеется давно и крепко забытая обывателями.
Практически любые компьютерные материалы тех лет представляют историческую ценность, а тут аж целый репозиторий, забитый под завязку редчайшим археотехом.
Чтобы вы смогли оценить объем и сложность проделанной работы:
каждый компилятор или средство разработки из этой коллекции пришлось специально оцифровывать, считывая данные с невероятно старых носителей информации — дискет или магнитной ленты.
C помощью дисководов, возрастом слегка за пятьдесят, типа такого:
8-дюймовый (!) диск с дисководом начала 70х. Слева для сравнения "современная" 1'44 дискета.
Представляете, чего стоило все это оживить, запустить и заставить работать?
Физические процессы, механические повреждения и влияние среды при этом никто не отменял.
Если быть совсем точным, то сначала был обнаружен немного другой репозиторий от этого же почтенного автора, где была собрана похожая коллекция, но для более обыденного DOS. Лишь несколько недель спустя обнаружилось, что совсем рядом находится настоящее сокровище утраченной цивилизации — чистый археотех. И понеслась.
От такого изобилия начала капать слюна и дергаться глаз:
Сообщения коммитов вроде "macos build" и "linux build" в одной строке с компиляторами из 70х невероятно доставляют.
Скорее всего ничего из длинного списка выше вам знакомо не будет, поскольку все эти древности на десяток-другой лет старше даже автора этих строк.
Отдельный восторг у искушенной публики вызовет наличие скриптов сборки под Unix (Linux/Mac/BSD).
Примерно из-за таких изумительных проектов хорошие инженеры навсегда бросают пить. Но вернемся в мой кабинет — к гостю с армейской выправкой и странными, хотя и законными запросами.
— Этот разговор будет долгим. Не найдется ли у вас чем освежиться?
..
Искусство искусством, но прежде чем погружаться по локоть в «кровавый ад разработки» 80х c линковщиками и компиляторами, стоит рассказать о технических реалиях тех лет — оборудовании и самой операционной системе CP/M. Будет интересно, даже если вы, дорогой читатель, сами не старше третьего GTA.
Между огромными мейнфреймами, занимающими машинные залы и первым домашним PC с DOS а затем и Windows, был относительно краткий период рассвета (1970-1980) микрокомпьютеров:
Да, это официальное название, «микрокомпьютерами» назывались множество разных девайсов от разных производителей, предназначенных для игор домашнего использования.
Это был настоящий бум домашней электроники и сотни разных компаний по всему миру начали создавать свои линейки для новой отрасли — домашних компьютеров.
— Интересная история, крайне.. необычная.
Рассказ гостя определенно интриговал.
За долгую жизнь со мной случилось столько разнообразной херни, что заказ на разработку для компьютера из 80х от мультяшного персонажа из сериала про супершпионов уже не казался чем-то невероятным. Куда больше вопросов вызывал сам процесс.
— Но все же, что конкретно мы должны реализовать? И под какую машину?
KAYPRO II
Одной из компаний, решивших поучаствовать в гонке первых домашних компьютеров была Kaypro Corporation:
Kaypro Corporation was an American home and personal computer manufacturer based in Solana Beach, California, in the 1980s
Хотя сама компания давно не существует, она успела наследить оставить след в истории компьютеров и сердцах благодарных потомков. Первый же ее продукт имел оглушительный успех:
by mid-1983 the company was selling more than 10,000 units a month, briefly making it the fifth-largest computer maker in the world
Пятая в мире по продажам, рядом с Apple и IBM — в первом ряду, не где-то сбоку, причем с первого продукта.
Именно этот продукт — домашний компьютер Kaypro II был выбран в качестве полигона для восстановления процесса разработки под CP/M. И последующей сдачи этого фантастического проекта для столь особенного заказчика.
Только посмотрите на эту брутальную «няшу» в стильном металлическом корпусе:
Ну как можно было пройти мимо такого сказочного девайса?
— Видите ли, Алекс. У нас в.. организации есть один сотрудник. С наци.. ээ немецкими корнями и такой же педантичностью.
Мой гость сделал еще один глоток виски, явно наслаждаясь процессом.
— Отвечает за техническое сопровождение и разные.. эксперименты. В некотором смысле — ваш коллега. К великому сожалению, последнее время он начал.. скажем так, проявлять неустойчивость. Рассказывал коллегам о своей избранности и незаменимости. Стал требовать сдавать ему кровь. Даже представлять не хочу, для чего ему могло понадобиться столько крови, но нам срочно необходимо это прекратить.
— С нашей помощью, полагаю?
Создатель операционной системы CP/M Gary Kildall за работой, 1978 год. Огромный ящик слева это.. дисковод.
CP/M
Стоит рассказать и про операционную систему тех лет, благо очень немногие из читателей дожили имели шанс с ней поработать:
Внешне это сильно похоже на более привычный отечественному пользователю DOS, хотя конечно же CP/M появилась гораздо раньше.
Зеленые буквы на черном фоне, за тридцать лет до выхода "Матрицы".
Кстати скриншот выше это тоже настоящий артефакт, который был сделан после случайной археологической находки — были обнаружены исходники четырех первых версий CP/M, примерно 1975-79 годов. Так вот на этом скриншоте — работающая CP/M версии 1.3.. собранная из найденных исходников!
..
— Несмотря на все наши таланты и умения, думаю не сможем помочь.
Окинув гостя взглядом и оценив его серьезную физическую подготовку, я добавил:
— Полагаю в вопросах наказания, проучения и приручения вы дадите сто очков форы кому угодно..
— Ну что вы, Алекс. Конечно же речи не идет о применении насилия, мы мирные землепашцы люди. К тому же для такого существуют.. профильные специалисты. Нет, боюсь все несколько сложнее. Я хочу чтобы вы проучили коллегу морально — с помощью вашего ума и инженерных талантов. Мы договорились?
ЭМУЛЯЦИЯ
Нетрудно догадаться, что настоящего микрокомпьютера из 1987 года у меня никогда не было, поскольку в те годы я успел только появиться на свет. Поэтому большая часть описываемых ниже приключений снова будут происходить в эмуляции.
«Большая часть» — потому что действующий компьютер 80х я все же нашел и даже смог запустить на нем собранное приложение.
Вообще 8-битные микрокомпьютеры быстро завоевали популярность, фактически создав новый рынок домашней электроники и оставив заметный след рваную рану в юных сердцах. Благодарные пользователи, убившие детство на первые компьютерные игры и выросшие затем в бородатых программистов, наклепали горы самых разных эмуляторов этих машин.
Я отобрал три абсолютно разных эмулятора, для максимального погружения в тему микрокомпьютеров и эстетику 80х.
В качестве тестовой среды на этот раз использовался обычный Mageia Linux, чтобы не отвлекать внимание читателей на любимую FreeBSD. Кстати вот тут находится очень интересная подборка образов дискет для компьютеров Kaypro, включая исходники — на случай, если статьи покажется мало и захотите продолжить банкет.
MYZ80
Начнем с самого отбитогохардкорного. Перед вами настоящий дедушка эмуляции — действующий эмулятор CP/M, написанный в 1991м году под MS-DOS:
MyZ80 does more than just emulate the CPU though, it's a complete Z80 computer emulation
Этот эмулятор когда-то был коммерческим продуктом — «shareware», хотя и без каких-либо технических ограничений. Исходного кода найти не удалось, так что использовать будем его готовую сборку.
Ссылка указанная выше, на самом деле лишь сохраненная копия сайта автора, поскольку и сайт и сам проект были давным давно заброшены. Тем не менее нужный файлик myz80124.zip со сборкой эмулятора легко находится в сети, можно скачать например тут.
Внутри будет весьма необычный для современности набор файлов:
MYZ80.EXE — очевидный бинарник эмулятора, но проблема в том что это 16-битное приложение для DOS, запустить которое в современном окружении представляет проблему. Так что придется использовать еще один известный эмулятор — Dosbox, чтобы запустить внутри винтажный MYZ80. А так эта «матрешка» выглядит в работе:
Самое важное, ради чего были нужны заморочки аж с двумя эмуляторами — виртуальные диски, связанные с файловой системой DOS:
Поскольку Dosbox в свою очередь дает виртуализацию дисков непосредственно из хоста — получаем отличный способ быстро перебрасывать файлы в виртуальную CP/M.
Что важно при любой разработке с использованием эмулятора.
Собственно, то самое тестовое приложение EXMPL.COM на заглавной картинке было сначала скопировано в каталог с эмулятором:
Все это проще и быстрее, нежели описываемый ниже вариант с Mame и полной эмуляцией Kaypro II, но к сожалению не дает того самого «ощущения от использования», что это реальная машина тех лет. Так что я пошел дальше в своих изысканиях.
..
— Интересное предложение. Проучить коллегу по опасному инженерному делу, еще и за приличные деньги..
Моему гостю этого знать не следовало, но я готов был таким заниматься совершенно бесплатно и на регулярной основе.
— ..путем разработки под столь винтажный компьютер. Практически совершить уринотерапию..
— Боюсь, уринотерапия тут не поможет — коллега все же имеет немецкие корни. У каждой нации свои.. культурные особенности.
— Ну да ладно. Обсудим конкретику?
MAME
Mame это очень известный эмулятор самых разных машин и архитектур, как устаревших так и современных, когда-то созданный ради запуска игор, выгруженных из старых игровых автоматов.
С помощью Mame, мы получим почти настоящий Kaypro II, с оригинальным ROM и оригинальным образом загрузочной дискеты с CP/M — прямо из 80х.
Дальше нужно будет скачать загрузочный образ 5.25-дискеты с CP/M 2.2, например отсюда, затем специальные ROM-файлы для самого Kaypro II и его весьма специфической клавиатуры, отсюда.
Архивы называются kayproii.zip и kaypro10kbd.zip, их необходимо копировать как есть, не распаковывая. Создаем структуру каталогов:
mkdir kayproii-machine && cd kayrpoii-machine mkdir roms disks
Копируем ROM-файлы:
cp ~/Downloads/kaypro*.zip ./roms/
Распаковываем образ дискеты:
7z e ~/Downloads/KAYPRO\ II\ 64k\ CPM\ vers\ 2.2.7z -o./disks/
Если все шаги выполнены правильно, появится заставка Mame с описанием эмулируемой машины:
После нажатия любой клавиши, загрузится сама CP/M и вы увидите такое приглашение:
..
— Да все просто.
Если бы мне давали доллар каждый раз, когда я слышу эту фразу — давно бы стал миллионером..
— Наш коллега из организации, назовем его для простоты доктор Кригер, свято уверен, что только он один может.. как это он выразился?
Создать новую электронную жизнь в древнем компьютерном теле.
— Надеюсь, ваш коллега хотя-бы вводит код руками а не другим органом.
Гость посмотрев с удивлением, ненадолго задумался.
— Какая интересная мысль! Мне бы такое в голову не пришло. Я уже упоминал, что вы с ним похожи?
CPMTOOLS
Это весьма известный (среди некрофилов) набор инструментов для работы с файловыми системами CP/M, за авторством Michael Haardt. К сожалению работа над оригинальным проектом давно прекращена, так что мы будем использовать более современный форк:
В результате сборки появится несколько бинарников, готовых к запуску:
Думаю даже по названию нетрудно догадаться об их предназначении.
Для всех последующих увеселений будут использоваться в основном эти два: cpmls и cpmcp. Первый предназначен для просмотра содержимого образа диска, второй — для копирования внутрь файлов с хоста.
Копируем созданный образ диска в текущий каталог:
cp ../../work/kayproii-machine/test2.dsk .
Проверяем что диск читается:
./cpmls -f kpii test2.dsk
Копируем тестовый файл:
./cpmcp -f kpii test2.dsk README 0:README.TXT
Повторный запуск cpmpls должен показать содержимое диска с тестовым файлом:
Virtual CP/M Machine. Emulates CP/M and the 8080/Z80 on Linux, MacOS, Windows, and real-mode 8086 DOS to run CP/M .com files
Кстати последний он еще и в том смысле, что это новая разработка, созданная (судя по коммитам) буквально пару лет назад.
Этот самый ntvcm придется собрать и добавить в переменную PATH, поскольку эмулятор создан тем же автором, что собрал репозиторий с компиляторами под CP/M и используется из скриптов для тестов и.. кросс-компиляции. Под CP/M, ага.
Дальше просто добавляете этот каталог в переменную PATH:
export PATH=$PWD:$PATH
На этом подготовка к оргии празднику древней разработки наконец завершена и мы снова переносимся обратно в офис.
..
— Короче, коллега Кригер считает, что только он один в силах что-то написать для нашего Kaypro II. Что вообщем-то правда, поскольку остальные умеют все эти ваши компьютеры только включать и выключать. Обычно пинком.
Тут мой гость понял, что наверное не стоило показывать зависимость от будущего исполнителя.
— Но разумеется, у нашей организации есть и другие варианты. Пробовали привлекать «юные дарования», как самые перспективные. Закончилось.. не очень хорошо.
Достав из внутреннего кармана пиджака конверт, гость выложил на стол несколько фотографий.. полных неописуемого ужаса.
Увиденное на фото заставило шевелиться последние остатки волос.
— Когда его нашли, он был в бреду и ползал в ванной, обмазавшись собственными экскрементами. Весь пол, стены и даже потолок были изрисованы чем-то коричневым — символами, похожими на египетские иероглифы:
All 24 and 28 pins EPROM pinout 2708 - 27512. Отсюда.
— Это распиновка EPROM, для Z80.
— Хм, гляжу вы действительно разбираетесь.
Тут гость привлек мое внимание, указав на одну из фотографий.
— Вот здесь, на стене было загадочное послание, оставленное.. аналогичным способом. Но его смысл мы так и не смогли разгадать.
Я пригляделся к фотографии:
640КБ ХВАТИТ НА ВСЕХ
— Нет идей что бы это могло значить?
Пол Аллен и юный Гейтс за четыре года до основания Microsoft.
НЕПРЕРЫВНОЕ ВЕСЕЛЬЕ
Возвращаясь к тому адскому репозиторию с компиляторами, наконец рассказываю основное:
как современному ребенку программисту вести разработку для компьютера из 1987 года.
Цепочка необходимых действий выглядит следующим образом:
Сборка;
Тестовый запуск с помощью ntvcm;
Запуск с помощью myz80;
Запуск в Mame с образом настоящего Kaypro II;
Сеанс рукоблуд.. ээ переход к следующему примеру.
И начнем мы с того самого примера, показанного на заглавной картинке в фоне. Заранее предупреждаю:
собираем только самые простые варианты, так как каждый сложный имеет свою специфику, требующую отдельного описания.
Но даже в этом случае показать получится очень далеко не все — интересных компиляторов и тулчейнов в репозитории просто чудовищное количество. Начнем разумеется с компилятора языка С, но.. особенного.
Судя по обнаруженным материалам, это был весьма известный и популярный продукт для тех лет. А еще это вариация языка Сдо стандартизации, поэтому и называется не просто компилятором, а прям отдельным языком:
Aztec C — a programming language for a variety of platforms
Редкое для современных бюрократических реалий зрелище: компилятор, забивающий на стандарты и правила. Так что это был популярный и известный инструмент, с весьма скромными прайсами:
Сложно из 2026 года оценивать цены 1980х, но судя по прайсу выше, Aztec C был явно не самым дорогим софтом, тем более для разработчиков. Но мы опять отвлеклись.
Переходим в каталог manx aztec c v106d и запускаем сборку примера:
Да, обязательно КАПСЛОКОМ и обязательно без указания расширения, поскольку в скрипте идет вызов как компилятора, так и линковщика. Будет собран COM-файл для CP/M, который проще всего запустить с помощью эмулятора от автора репозитория:
Теперь запустим на втором эмуляторе — MYZ80, чтобы убедиться в корректности только что собранного приложения. Копируем созданный EXMPL.COM в каталог с эмулятором и запускаем его через Dosbox:
Чтобы не раздувать статью до совсем уж скотских размеров, для всех остальных компиляторов покажу только финальный запуск в Mame. Пусть ваше больное воображение дорисует недостающее.
..
— Ладно, думаю мы договорились. Небольшое приложение для Kaypro II образца 1987 года, для причинения моральных страданий немецкому инженеру.
На этом мой гость задумался, как будто вспоминая важную деталь.
— Как же оно называется? Туда запихиваются такие плоские черные штуки? Д.. дди.. доо..
— Дисковод, для дискет. Работу необходимо сдать на 5.25 дискете, я уже понял.
Это был первый раз в моей жизни, когда надо было сдать работу на пятидюймовой дискете. Но с учетом роста цен на чипы памяти и SSD — думаю далеко не последний.
(гомерический хохот за кадром)
Так выглядела обложка от оригинальной упаковки с комплектом дискет.
Для запуска помимо SQUARO.COM надо перебросить в эмулятор еще и файл RUNCOB.COM, иначе не заработает. Так этот пример выглядит в работе, на фоне (в редакторе) можно заметить исходный код на COBOL:
Microsoft COBOL оказался хотя и интересным, но все же мало актуальным компилятором, так и не нашедшим широкого применения в свое время. Врядли приложение на COBOL было лучшим вариантом, чтобы утереть нос немецкому коллеге-инженеру.
Так что я стал искать дальше. Однако был еще один важный вопрос, который стоило закрыть прежде чем выбрать наконец язык реализации.
..
alex0x08: дарова!
alex0x08: нужны тайные знания ордена
alecv: излагай
alex0x08: надо программку одну запустить, на железе из 1987 года :)
..
Единственное фото дискеты с этим компилятором, которое удалось найти.
Prospero Pascal
Кто ищет — всегда находит, поэтому очень скоро обнаружилась еще одна невероятная дичь редкость:
Prospero Pascal is a full-featured Pascal that includes everything you need to begin writing stand-alone programs for your Atari ST.
Компилятор Паскаля для 8-битных компьютеров с блекджеком и блудницами с дополнениями и доработками:
Prospero Pascal is a superset of ISO Standard Pascal. In addition to the standard features, this package offers a number of extensions including dynamic strings, single- and double-precision floating-point arithmetic, an assembler-level interface, and separate compilation of program segments. Moreover, Prospero Pascal offers a high degree of portability.
Динамические строки, вычисления с плавающей точкой, поддержка ассемблерных вставок и все это в 1983м году! На Паскале и под Atari, если кто вдруг не понял.
Все выше конечно весьма занимательные (для археологов и некрофилов) штуки, но самое интересное я приберег напоследок.
Borland Pascal 1.0
Тот самый Паскаль, ставший для многих первой любовью первым языком программирования, поскольку именно на нем много лет обучали кодингу в школах и некоторых ВУЗах этой страны.
В результате чего появлялись на свет такие как автор, для которого Паскаль тоже когда-то был самым первым.
Но то что я сейчас покажу — не просто «какой-то там Паскаль» и даже не «какой-то там Паскаль» от фирмы Borland, ставшей законодательницей мод в паскалестроении.
Это его первая релизная версия, с которой все началось.
А еще с первой версии стартовала история и знаменитой среды разработки, с помощью которой осуществлялась сборка и отладка программ.
Вот он, тот самый TURBO.COM, который позже превратится в TURBO.EXE:
Кусочек руководства пользователя с адресом «небольшой компании-стартапа» на просторах Калифорнии:
А я почему-то всегда был уверен, что Borland начиналась как европейская компания — удивительные открытия порой приносит компьютерная археология.
Для тестов, были скопированы TURBO.COM и HELLO.PAS на образ дискеты, который затем подключили в эмулятор. Так все действо выглядит в эмуляторе Mame:
НЕЛЕГКИЙ ВЫБОР
Итак, у меня набралось четыре варианта на выбор:
Первая релизная версия Borland Pascal;
Редкая версия Pascal, с крутыми (для 1983 года) фичами;
Microsoft COBOL, без комментариев.
И конечно же Aztec C — реализация языка С до его стандартизации, настоящий артефакт. Что выбрала для меня судьба?
И.. да, это Aztec C.
(бурные аплодисменты)
Но не потому, что верю в судьбу или так подсказал какой-то кубик. Просто в любой непонятной ситуации я всегда выбираю С. И такой подход еще ни разу не подводил.
В такое безусловно сложно поверить далекому от Сант-Петербурга обывателю, но это настоящий барельеф с масонским гербом.
ПОСЛЕДНЯЯ ПРОВЕРКА
Старый, дореволюционной постройки дом в самом центре Питера, с гербом масонского ордена на барельефах разумеется привлекал внимание туристов, наделавших немалое количество селфи на его фоне. Но мало кто даже из коренных петербуржцев догадывался, что находится внутри.
Меня встретили у неприметной двери, в которую надо было постучать определенным образом и строго в нужной последовательности. Затем надев на голову черный мешок, непроницаемый для любого света, аккуратно сопроводили в тайное помещение ордена.
Ордена «Свидетелей Спектрума».
С незапамятных времен Советского Союза, этот тайный орден хранил уникальные знания и что самое важное — поддерживал в рабочем состоянии удивительные машины из далекого прошлого.
Тут было все:
Спектрумы, Амиги, старые рабочие станции Sun и HP, DEC и даже Alpha.
Денно и нощно (обычно по субботам) монахи ордена без устали смазывали, паяли и окуривали все это благовониями, дабы ублажить «дух машины» обитающий в старом железе. Орден ревностно хранил свои секреты и мне очень далеко не сразу было позволено хотя бы приблизиться к их древностям. Но все же мне необходима была их помощь для последней проверки перед сдачей этого фантастического проекта:
запуска собранного приложения для машины из 1987го на реальном компьютере 1987го.
Меня сопроводили в специальную, строго охраняемую комнату, где на постаменте, под защитным стеклом находился артефакт из далекого прошлого.
Версия 1715M, сохраненная в ордене это «экспортный» вариант, когда-то давно поставляемый в Советский Союз. С величайшим почтением нашептывая молитвы загрузки, послушник в черном балахоне приблизился к постаменту и приложил ладонь к считывателю отпечатков пальцев. Защитное стекло начало медленно опускаться.
Наконец запуск и загрузка операционной системы SCP ( аналога CP/M, но из ГДР) были завершены. Появилось приглашение ввода команд:
А>
Послушник взял мою пятидюймовую дискету с записанной сборкой и с благоговением вставил ее в древний дисковод, не забыв выставить специальную защелку в вертикальное положение.
Затем на не менее древней механической клавиатуре он ввел:
Дисковод ожил и издавая чудовищный скрежет начал загружать мое послание. Через какое-то время на экране появились строки:
NE PUERO GLADIUM, DR. KRIGER. 04.03.2026
Что в переводе с латыни означает:
НЕ СТОИТ ДАВАТЬ БОЕВОЙ МЕЧ МАЛЬЧИКУ, ДОКТОР КРИГЕР.
Проверка удалась и написанное мой приложение для компьютеров 80х под CP/M действительно успешно запустилось на настоящем компьютере из 1987 года. Так это выглядело в живую:
Дисклеймер: Че-то надоели все эти остросоциальные темы. Обещаю больше не постить про оные и не ввязваться в дискуссии. Поэтому сегодня про железки.
Попался мне тут на Авите древнючий гравер фирмы Roland DG. Модель PNC-2300a. Ну не то что бы он был действительно старинным, производился в конце 90-х начале 2000-х.
Учитывая цену в 15к и мое давнее желание завести себе какой-нибудь гравер/фрезер купил я эту железяку не глядя. Сгонял за ней из Питера в Подмосковье :)
Для моих задач моделестроения сия агрегатина очень даже подходящая. Большое рабочее поле, почти 200х300мм и наличие оси Z. Пусть и маленькой, всего 30мм, но настоящей. То есть машина не 2.5D, а честная 3D. Ну опять же, хоть и старый, но таки японец :) На старте аппарат стоил немыслимых денег. Да и сейчас новые экземпляры стоят примерно 100-150К.
Естественно, я не ожидал от машины чудес. Понятно, что проработал он на своем веку достаточно. Как потом оказалаось ~6300 часов наработки. Даже на слова продавца, что оно таки включается и что-то показывате посмотрел скептически.
Но, в целом, гравер действительно включился. И даже в тестовом режиме покрутил мотором.
Первое, что я с ним сделал, выгреб изнутри многолетнее говнище. Ну там где достал пылесосом и тряпкой.
Дальше встал вопрос, как этим чудом управлять. Весь софт который с ним был, закончился еще на Win XP. Большой плюс этой модели в том, что управляется он посылкой команд в обычной ASCII. Хотя и имеет свой собственный язык управления CAMM-GL, похожий на g-code, но все таки отличный от него.
У гравера два интерфейса управления. Это CENTRONICS, через который можно слать только команды на языке CAMM-GL и обычный, честный RS232C, который позволяет еще и немножко порулить самой железкой, а не только процессом гравировки.
Спаял кабель под RS232 - не работает. Причем не работает не только с дешевыми переходниками USB-232, но и с честной платой MOXA на 4 232-х порта. Разобрал, потыкал, выяснил что сдохла микруха отвечающая за 232-й порт. Заказал. Пока ехала, попробовал через LPT. Встроенного LPT у меня нет, купил переходник USB-LPT для старых принтеров. Но, тут меня ждала интересная проблема. Эти переходники, как оказалось, нихрена не создают LPT порт в системе. Они вешаются на принтер установленный в системе и какими-то там внутренними механизмами преобразуют то, что рожает драйвер принтера, в сигналы пригодные для отправки на старый LPT принтер. Но мы же помним, у нас обычный текстовый протокол, поэтому добавил в систему Generic/Text-only принтер и повесил его на переходник. Заодно net use прицепил к принтеру имя LPT1 :)
Команды начали отправляться и гравер их начал выполнять. Что бы каждый раз в командной строке не набирать что-нибудь типа "echo H;>LPT1" написал программульку читающую файлик с командами и отправляющую их с небольшой задержкой через принтерный API винды. В целом, к тому, что бы чего-то загравировать ящик стал готов.
Пробуем отправить простую тестовую программу, без фрезы что бы ничего не сломать.
Но, наши руки не для скуки, надо бы починить 232-й порт. Как раз приехала нужная микросхемка.
Вон она, справа сверху, многоногая DS14C238WM от давно присоединенной к TI фирмы National Semiconductors. Такую же сейчас не купить, TI их снял с производства, но есть полный аналог от MAXIM MAX238.
В общем перепаиваем
И после плясок с бубном, включавших в себя окирпичивание устройства самой свежей прошивкой с сайта Роланд, поиски старой прошивки, которой нигде нет, и которую по запросу подогнали парни из австралийского саппорта Роланд, перепайки кабеля - 232-й оживает :)
Собственно оба интерфейса работают, можно чего-то начинать делать. Но. Как мы помним, весь софт стух. Напрямую сейчас язык управления не поддерживает. А хочется жеж гламура, модельки-то у меня во Fusion 360...
В общем пошарил по инету, нарыл постпроцессор для Fusion от другой модели Roland, примерно того же времени, PNC-3000. Дописал его под 2300а. Добавил поддержку com-порта в программу посылалку, и ВАУ! оно заработало!!! :)
Моделька с генерацией программы и постпроцессингом во Fusion 360
Ну и собственно резня
Да, фреза не та, материал не тот, режимы не те :) Но уж очень хотелось попробовать в деле.
На этом первую часть закончу. Дальше как-нибудь расскажу, что сделал по обслуживанию и ремонту механики. Там есть чего сделать :)