- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
http://faqs.org.ru/progr/c_cpp/watcom_c.htm
WATCOM C/C++ FAQ
version 3.0
29 Aug 1998
compiled by Lenik Terenin, 2:5061/1
Maintained by Cyril Pertsev, 2:5020/1415.1
Please send your additions and suggestions to the above address.
Для удобства потpебления данного текста
добавления выделены символом квотинга
...
> Q: Гpафическая библиотека ваткома отказывается пеpеключать pежимы/банки
> или делает это кpиво
>A: В результате ковыряния в библиотеке выяснилось, что криворукие
>ваткомовцы
>совершенно не задумываются ни о какой переносимости и универсальности их
>библиотек. В результате, если видео-карта имеет в биосе прошитое имя
>производителя или другую информацию о нем, то для нее будет вызываться
>вместо
>функции переключения банков через VESA, другая функция, работающая с
>картой
>напрямую (иногда даже через порты).
>Единственная проблема, что у каждого производителя (ATI, в моем случае),
>рано
>или поздно выходят новые и продвинутые карты, раскладка портов в которых
>может
>отличаться от той, которая использовалась в старых моделях. В результате,
>все
>это свинство начинает глючить и иногда даже виснуть.
>После того, как я руками заткнул ему возможность использовать "родные"
>фишки
>для конкретной карты и прописал пользоваться только VESA -- все работает
>как из
>пушки ;))
>Как затыкать -- а просто, есть переменная: _SVGAType, которую я
>описывается
>следующим образом: "extern "C" int _SVGAType;", и потом _перед_ (важно!)
>вызовом _setvideomode нужно сказать "_SVGAType = 1;".
Люблю читать несвежие FAQ.
Сегодня-то такого не встретишь, чтобы кто-то прямо в порты в видеокарту что-то писал, эхх...
Но ничего, есть вон даже ассемблеры и дизассемблеры к GPU
https://github.com/CLRX/CLRX-mirror
https://github.com/envytools/envytools
Разве то был настоящий асм? DirectX ASM это например не настоящий асм (будь он настоящий, он работал бы только на ATI и не работал бы на Nvidia (или наоборот, в общем он был бы жестко прикован к одному типу GPU), но таким свойством он не обладает)
Асм пишется для набора инструкций (ISA), а микроархитектура вполне может быть различной: см Intel vs AMD
Откуда инфа что наборы инструкций там совпадали, а не транслировались через какой-то недо-JIT?
ISA x86 тоже транслируется в микрокоды конкретной микроархитектуры, правильно?
Слоёный пирог:
java (javac) -> jvm_opcodes (jit) -> x86 opcodes (decoder) -> sandy bridge microcodes
Ну если разницы нет, давайте тогда питон асмом назовем
>ISA x86 тоже транслируется в микрокоды конкретной микроархитектуры, правильно?
Не всегда. Старые процессоры x86 отлично обходились без этого
До P6 примерно, дальше всё RISC...
Думаю, надо было читать их мануалы, там всё было бы написано.
Я про превращение CISC в RISC читал в книге, где про AMD было ничегоне сказано
З.Ы. Спутал, это на K7 было. А на K6 ещё не обновлялось.
Те GPU же ещё не были современными терафлопсовыми суперкомпьютерами...
Ну допустим договорились. Только как из этого следует, что машинный код должен быть для этих видеокарточек таким же? И почему этого DirectX ASM нет где-либо кроме винды с DirectX-ом? Ведь если это точно такой же честный асм, как и в ассемблере NASM (где определенные мнемоники транслируются в определенные байтики - инструкции для GPU/процессора), никакой привязки к DirectX и винде быть по-идее не должно, и те же мнемоники можно было бы оттранслировать в универсальные опкоды для всех видюх вообще под все архитектуры GPU(хотя какие еще все архитектуры? Архитектура тогда должна быть одна).
Этот недоасм настолько же асм, как и байткод какой-нибудь Java или сишарповский CIL (он же MSIL) - есть какая-то параша в операционке (драйвера видюхи, DirectX или еще какая-то ссанина) которая этот недоасм транслирует уже в настоящий асм
Для новых карт -- соглашусь.
>Q: Я уже забодался загружать все .vbb модули в Visual Builder
A: (Dmitriy Grachjev, 2:5020/328.328)
Создай файлик VbLoad.Dat со списком этих файлов с указанием пути и положи его
либо в каталог, где живут файлы приложения, в случае если Visual Builder
запускается оттуда, либо (что подходит только для одного проекта) в каталог в
VbBase.Vbb, VbDax.Vbb e.t.c (он называется IVB для Win и DDe4Vb для Os/2).
Солнце само себя не закатит
BIOS -- ты имеешь ввиду firmware видеокарты же? Обычный BIOS вроде как никак не принимал участие в моем писани (и кстати это были не I/O, а замапленная память).
Правда вот как я включал этот режим (через что -- этого я непомню)
В общем я прекрасно понимаю что если тебе хотелось чего-то, что не описывают VGA и VESA Bios Extensions, то тебе приходилось узнавать что за видео карта и работать напярмую
Быстрее сбегать в защищёнку и оттуда нормально порисовать :) Там же нормальный адрес буфера можно было достать (или это только в последних VBE?)
в HTML пишешь
<img src="foo.php"/>
Про докачку ты прав: ranges сервер должен делать сам
ОС (или драйвер шины) читаает PNPID у PCI и выбирает соответствующий драйвер устройства.
BIOS PC сканировал адресное пространство (с не помню каким шагом) в поисках сигнатуры 0x55, 0xAA и если находил -- передавал туда управление.
Так запускались сетевые карточки с загрузской по сети, boot devices (причем их могло быть два сорта -- одни представлялись как устройство загрузки, а другие переписывали прерывание 13h, и представлялись как диски, как ты верно сказал -- так делал raid).
Видеокарточный биос патчил обработчик прерывания и мапил себя в адресное пространство
Полагаю что Firmware умеет прочитать APCI, PCI и USB и ланчануть все нужные устройства.
Патчить прерывания ей не надо, она же ими не пользуется
Боже упаси... Там интерфейсики с гуидами. Сразу видно, кто лапу приложил.
прерыввания были "API" в 16битном коде, в уефи уже нормальный чуть ли не сишный API
Чуть ли не сиплюшплюшный! Вот только this руками передавать приходится.
Кстати, а PCI устройства же не имели права мапиться в память пока их не включат и не заполнят base address.
Выходит что и BIOS должен был знать про PCI чтобы ланчануть его option rom?
Ну разве что прикинуться флешкой... В остальном -- нет.
> знать про PCI
Да конечно они знали. Операционки же жили на готовеньком маппинге. DOS разве вообще умел адреса раздавать?
да, dos не умел (хотя была какая-то шина не ISA и не PCI, а от IBM) в которой был кастрированный PnP который реализовывался спец программой под дос.
А вот win95 уже умела сам делать PNP (а NT не умела, кстати!)
и даже была опция в бивисе pnp os installed
Да и похуй в общем-то. Потом обратно ремапнешь.
Сделает страницу которая совпадает с реальными адресами?
зы: нахуй ефи x64? почему в 32 не стартовать? 4 гига хватит всем
Держи: https://github.com/tianocore/edk2/blob/master/MdePkg/Library/BaseLib/X64/Thunk16.nasm
Ну и сам видеодрайвер через legacy: https://github.com/tianocore/edk2/blob/master/IntelFrameworkModulePkg/Csm/BiosThunk/VideoDxe/BiosVideo.c
блядь, это же удаление бита PE , они из x64 в real mode переключаются?:))
Таки значит неможливо из x64 гонять realmode code.
зы: мало кто знает, но в 286 такой трюк был бы невозможен: там для возврашщения в реалмоде надо было делать ресет
Ну да, венда в эмуляторе его гоняет когда нормальных дров на видюху нету.
Сконпелировал другим асмом, windows logo же хочется получить. Майкрософт смеётся последним.
Переключаться в real mode для работающей ОС -- не вариант по пнятным причинам
Инетерсно, как делают прыщи без DRM/DRI? Там GRUB их в граф режим переключает?
А если я передам vga=(vesa_режим) ядру?
Надо почитать сырцы
https://github.com/torvalds/linux/blob/master/drivers/video/fbdev/vesafb.c
написано же
[quote]
* framebuffer driver for VBE 2.0 compliant graphic boards
*
* switching to graphics mode happens at boot time (while
* running in real mode, see arch/i386/boot/video.S).
[/quote]
ну а дальше уже в память писать биос не нужен
а тамщемто
video.S:
> int $0x10
Чудес не бывает
мы теперь не только AML гоняем, но и x86 isa:)
>>t int 10h functionality for video drivers can be maintained on 64-bit Windows
>>without the need to have these systems support virtual-8086 execution.
Зачем? Нельзя разве уметь VESA мимо BIOS, а дальше пусть драйвер ебется?
Его же нет. А картинку как-то надо показывать. Хотя бы режим переключить на нужный. Они всяко не юзают это говно когда нормальный драйвер стоит.
я всё понял теперь: VGA можно напрямую, ну кому нахуй нужено 320x200x16, а для нормальных режимов нужны VESA BiosExtensions, а они только через BIOS
так?
Так.
Писать в память и порты иксы могут (бо ланчаца от рута в линуксах, а в опенбзде имеют специальный двейс -- aperture driver)
Но как они выбирают видеорежим? Как они могут дернуть BIOS?
>>It can drive most VESA-compatible video cards, but only makes use of the basic standard VESA core that is common to these cards. The driver supports depths 8, 15 16 and 24.
Значит-ли это что у нас только vga?
Где Лёник Теренин из Ростова?
Где Кирилл Перцев из Москвы?
Им всем уже за сорокет. Пишут-ли они до сих пор на сях? Стали ли крупными тилидами?
Но суть: чувак 20 лет назад уехал в Японию, щас веслает в NVidia. Т.е. продолжает пердолиться с GPU в том или ином виде.
>>Японию
хм
About 25+ years of embedded design under the belt, spent not only programming mainstream microprocessors, but also interfacing them to the networks and personal computers running Linux, Windows or any major OS. Plenty of mobile development (mostly Android) since 2010.
Successfully managed a small team working on the hardware/software projects.
Sr. Solutions Architect - Autonomous Driving
NVIDIA
март 2017 – настоящее время (1 год 5 месяцев)Within 23 wards, Tokyo, Japan
Self-driving cars is the future of the personal transportation, and we make it happen.
https://jp.linkedin.com/in/lenik-terenin-a124235a
jp устроит?
Network Engineer
Rostov state administration
1993 – 1996 (3 года)Ростовская область, Россия
- под описание подходит вполне.
Единицией адресации изначально была нода. Любая нода могла соединиться с другой нодой (был нодлист с их телефонами даже, и был час когда нужно принимать звонки), но так как звонить в далекие города было дорого, то некоторые ноды (установленные в ВУЗах, например) принмиали сообщения от всех и передавали в далекие города по своим каналам (Интернет или выделенные линии итд). Маршрутизация была нелинейной, в общем:)
У нод были клиенты -- поинты. Поинт мог попадать в Фидо только через свою ноду (можно думать о нем как о сидящем "за натом" клиенте).
Поинт никак не Фидо не влиял, а мог только использовать сервисы. А ноды выбирали координаторов, договаривались о маршрутизации итд.
Основные сервисы в сети это были это почта и конференции.
Почему была популярна?
Она была бесплатной. Интернет был очень дорогой и не везде был доступен, а чтобы подключиться к Фидо надо было найти ноду, прийти на поинтовку и попросить стать поинтом. Это примерно как на хабру попасть:)
Были и шлюзы в Интернет (из конференций в usenet (только на чтение разумеется!) из почты в SMTP или UUCP).
В конце концов Интернет её и убил.
Не о чем сожалеть. Убогие текстовые конференции без видео, фотографий, без дизайна... Мерзость.
Кстати, в 90-х Интернет тоже был преимущественно представлен usenetовыми конфами, ftp и smtp, так что дизайна там тоже не было.
Кто помнит gopher?
Гофер как-то сразу же был убит HTTP, и мало успел пожить в качестве таких "Интернет-BBS":)
А в щтатах была сеть Compuserve с кучей сервисов, мемов, чатов, и почти не известная за пределами сша
У ХТТП его тоже не дохуя, есил не считать метод POST
>SMTP
То-есть вместо пирдолинга в маленьком окошке с неудобным редактором которое проебется когда ты случайно закроешь браузер ты предлагаешь использовать удобное приложение с нормальным настроенным под меня редактором, которое не зависит от связи с инетом?
с ума сошел что ли?
Гоф (как и все старыепротоколы) не смешивал в кучу данные и представление, и тем мне нравился.
бля, даже в темных уголках
gopher://gopherddit.com:70/1/
https://i.imgur.com/L4gbkJ6.jpeg
погодите, так это получается можно вместо вонючего вебговна делать цисгендерные интерфейсы к системам?
ахахаха
https://f-droid.org/ru/packages/com.gmail.afonsotrepa.pocketgopher/
Veronica (на floodgap) нашла анонимные борды по протоколу gopher, в которых обсуждают современную политоту.
У ТСПУ/DPI, поди, и алгоритмов для фильтрации такого конь-тента нету, только по IP.
Спасибо вам, диктаторы-говноеды!
https://telegra.ph/Issleduem-Gopherspace-07-05
gopher://gopherspace.de:70/1/alive/new.report.php
> Gophered by Gophernicus/3.1.1 on Raspbian/11 armv7l
Какой пердолинг )))
Текст из книги Лучшие игры для ZX Spectrum выпуск 1, Санкт-Петербруг, 1993 г.
ISBN 5-85306-002-3
В этой игре вы являетесь маленьким белым привидением, в которое вас превратил злой колдун. И, чтобы опять стать человеком вам нужно до рассвета разбудить своего дядю, который возвратит вам прежний вид.
Гоферпедия — фронтенд к Википедии. Фиговый: ссылок из статей нету, картинок нету...
Фронтенд к чьему-то гиту.
Оказывается, можно читать текст гетеросексуальным образом, без пяти мегабайт пердящего тормозящего джаваскрипта который греет тебе процессор и срёт хуйней про куки?
Canceled Software Solutions Gopher Service by Roman production
Rebuilted browsers with TLS 1.3 support for Windows 98
Modern 100% up-to-date proven browsers for Windows XP
https://www.unrealengine.com/en-US/tech-blog/bringing-verse-transactional-memory-semantics-to-c