Важная информация

User Tag List

Страница 4 из 18 ПерваяПервая 12345678 ... ПоследняяПоследняя
Показано с 31 по 40 из 180

Тема: Почему компилированный Бейсик выполняется быстро?

  1. #31
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,774
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    143
    Спасибо Благодарностей получено 
    1,179
    Поблагодарили
    775 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SfS Посмотреть сообщение
    Если "умник" пишет задницей, а не через стандартное API - это проблемы "умника")) Мне так кажется. Впрочем в ТО время про API не очень часто задумывались.
    приведу к примеру MSX.
    там API в основном использовали только японские фирмы, европейцы в играх напрямую лезли сами в порты.
    потому-что это быстрее.
    тут приходиться выбирать стиль программирования.
    правильное как правило выходит тормозным.

  2. Этот пользователь поблагодарил goodboy за это полезное сообщение:

    Barmaley_m (18.11.2023)

  3. #31
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  4. #32
    Veteran
    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,058
    Спасибо Благодарностей отдано 
    220
    Спасибо Благодарностей получено 
    47
    Поблагодарили
    31 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    там API в основном использовали только японские фирмы, европейцы в играх напрямую лезли сами в порты.
    потому-что это быстрее.
    Вот, кстати, да. На Спеке тоже есть хороший пример - точка входа TR-DOS #3D13. Де-факто стала стандартным API TR-DOS. В конце 90х - начале 2000х начали появляться разные IDE- и SD-Card-интерфейсы. И программы, использовавшие точку #3D13, без изменений продолжали работать.

    Но в середине 90х никто не думал о том, что когда-нибудь появится другое железо, которое будет доступно через #3D13. В среде спектрумистов было престижно лезть в порты контроллера дисковода напрямую. Это давало доступ к некоторым функциям контроллера: форматирование, чтение и анализ дорожек. С прямым доступом можно было читать/писать диски в формате MS-DOS и других нестандартных форматах на 800К против стандартных 640К. Прямой доступ давал улучшение производительности диска, более точный контроль над ошибками. Всякие программы форматирования и восстановления дисков (DCU, ADS, тысячи их), IS-DOS, лезли в порты напрямую. Я тоже в своих проектах так делал. Так делал и ASC в своем ASC Sound Master и других проектах. Так делали знаменитые создатели Demo - группа Code Busters, белорусские Dream Makers, Rush и др.

    Но все эти проекты оказались непортируемы на более современные носители - IDE-винчестеры и SD-карты.
    Цитата Сообщение от goodboy Посмотреть сообщение
    тут приходиться выбирать стиль программирования.
    правильное как правило выходит тормозным.
    Да, полностью соглашусь.

    Есть и противоположный пример, где все строго следовали API - CP/M. API там было весьма скудным, но достаточным. А зоопарк железа был огромным, так что соблазна лазить в порты напрямую ни у кого не возникало. Все понимали, что это сделает программу непортируемой на другие CP/M-машины. Конечно, какие-то аппаратно-зависимые проекты под CP/M где-то были. Но они не распространялись за пределы узкого круга железа. А те проекты, которые распространились повсеместно - они все строго следовали API.

    Среди наследия CP/M - огромное число профессионального софта, включая редакторы, файловые утилиты, хорошие ассемблеры, дизассемблеры компоновщики, бейсики, компиляторы Фортрана, Паскаля, Си. Создатели таких проектов - Microsoft, Digital Research, Borland. Были и архиваторы, были текстовые игры, и вообще тысячи всего.

    Но не было графики. Не было демок и игр, выжимающих максимум из железа. Не было стандартного доступа к памяти выше 64К (разве только как RAM-Disk).
    Последний раз редактировалось Barmaley_m; 18.11.2023 в 21:04.

  5. #33
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,774
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    143
    Спасибо Благодарностей получено 
    1,179
    Поблагодарили
    775 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Но все эти проекты оказались непортируемы на более современные носители - IDE-винчестеры и SD-карты.
    1 тут ты ошибаешься, в divIDE/MMC полная эмуляция давно существует.
    2 стандартная функция #05,#3D13 спокойно прочитает сектор любой длины
    3 проблемы с прямым доступом к портам возникли ещё в 90х (когда версию trdos 5.01 сменила 5.03)
    в ранних программах (типа ADS) была проверка на версию и корректировка адресов вызова процедур

  6. Этот пользователь поблагодарил goodboy за это полезное сообщение:

    andrews (20.11.2023)

  7. #34
    Master Аватар для LW
    Регистрация
    05.09.2007
    Адрес
    Орск
    Сообщений
    950
    Спасибо Благодарностей отдано 
    228
    Спасибо Благодарностей получено 
    1,005
    Поблагодарили
    319 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    чуток дополню
    в последних прошивках ПрофПЗУ скорпиона также присутствует "эмуляция" вг93 и загрузчики использующие точку входа #3d2f/#3d96 вполне себе прекрасно работают
    ...ну по крайней мере в большинстве случаев

  8. Этот пользователь поблагодарил LW за это полезное сообщение:

    SERGEY256 (19.11.2023)

  9. #35
    Master
    Регистрация
    27.01.2005
    Сообщений
    905
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    176
    Поблагодарили
    142 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Вот, кстати, да. На Спеке тоже есть хороший пример - точка входа TR-DOS #3D13. Де-факто стала стандартным API TR-DOS. В конце 90х - начале 2000х начали появляться разные IDE- и SD-Card-интерфейсы. И программы, использовавшие точку #3D13, без изменений продолжали работать.

    Но в середине 90х никто не думал о том, что когда-нибудь появится другое железо, которое будет доступно через #3D13. В среде спектрумистов было престижно лезть в порты контроллера дисковода напрямую. Это давало доступ к некоторым функциям контроллера: форматирование, чтение и анализ дорожек. С прямым доступом можно было читать/писать диски в формате MS-DOS и других нестандартных форматах на 800К против стандартных 640К. Прямой доступ давал улучшение производительности диска, более точный контроль над ошибками. Всякие программы форматирования и восстановления дисков (DCU, ADS, тысячи их), IS-DOS, лезли в порты напрямую. Я тоже в своих проектах так делал. Так делал и ASC в своем ASC Sound Master и других проектах. Так делали знаменитые создатели Demo - группа Code Busters, белорусские Dream Makers, Rush и др.
    Точка входа TR-DOS #3D13 не содержала всех тех функций "форматирование, чтение и анализ дорожек" и прочих. То есть налицо недостаток функционала API.
    Если бы всё это было - то особо никто бы и не лазил "напрямую в регистры".
    Тем более, что никакого выигрыша в скорости в данном случае это не даёт. Просто обход недостатков стандатного ПЗУ.

    Собственно, любой программист - хоть игрушек, хоть системного ПО - так или иначе создаёт набор библиотек с нужным ему API.
    Все эти "игровые движки" - тоже по сути готовые модули со своим API.

    Сейчас создателям ПО и в голову не придёт "лезть напрямую в регистры" видяхи или звуковухи. За исключением драйверописателей.

    У спектрума видеопамять была "константой". Потому в неё безбоязненно лазили напрямую. Плюс скорость. В вот если был десяток видюшек, да разных... То фиг бы там куда лазали помимо API.

  10. #36
    Guru Аватар для andrews
    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,688
    Спасибо Благодарностей отдано 
    423
    Спасибо Благодарностей получено 
    196
    Поблагодарили
    174 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    То одна библиотека не подходит, то другая. То в компиляторе что-то поменялось.
    на кросс-системах с колоссальными ресурсами памяти и быстродействия это вообще не проблема! Достаточно однообразно верифицировать версии софта и железа и перестать загонять юзера в нужный тебе трек. Вот эта чехарда с версиями винды и переходом на 64 бит 99% юзеров не нужна! А кому она нужна? Только тому, кто зарабатывает деньги прежде всего на железе.

    - - - Добавлено - - -

    Цитата Сообщение от SfS Посмотреть сообщение
    Сейчас создателям ПО и в голову не придёт "лезть напрямую в регистры" видяхи или звуковухи. За исключением драйверописателей
    ну почему же? Для коммерческого софта чем непонятней непосвященному код - тем лучше. А в России это еще и способ сохранить на годы вперед высокооплачиваемое рабочее место ( так было в телефонных компаниях, где мне доводилось работать). А регистры, если они конечно правильно задокументированы позволяют работать и непосвященным новичкам с железом компании. И ассемблер, кстати тоже является "великим уравнителем" всех программистов.

    - - - Добавлено - - -

    Цитата Сообщение от goodboy Посмотреть сообщение
    европейцы в играх напрямую лезли сами в порты
    если API не были адекватно описаны на английском и не были доступны бесплатно, то учить ради этого европейцу японский конечно же не хотелось.
    Последний раз редактировалось andrews; 20.11.2023 в 10:00.

  11. #37
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,843
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,818
    Поблагодарили
    1,044 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    оффтоп про msx

    Границу на MSX по использованию BIOS / прямому обращению к портам нельзя четко провести между японскими и европейскими программистами. BIOS использовали в первые годы (причем даже тогда не все), когда для MSX писали практически только японцы. Игрушки были сравнительно простые и быстродействия хватало. Когда подключились европейцы, то они в основном портировали игры со спека, и не особо заморачивались использованием возможностей msx (спрайты, тайлы). Там в основном надо было побыстрее пересылать фрагменты изображения в видеопамять, как на спеке и мимо BIOS выходило явно быстрее. Но в то время и японцы стали все больше напрямую. А если взять например Konami, то они хотя и японцы, но не видел у них ни одной "корректной" игры, использующей только BIOS, всегда лезли в порты.
    [свернуть]

  12. #38
    Master
    Регистрация
    27.01.2005
    Сообщений
    905
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    176
    Поблагодарили
    142 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от andrews Посмотреть сообщение
    ну почему же? Для коммерческого софта чем непонятней непосвященному код - тем лучше. А в России это еще и способ сохранить на годы вперед высокооплачиваемое рабочее место ( так было в телефонных компаниях, где мне доводилось работать). А регистры, если они конечно правильно задокументированы позволяют работать и непосвященным новичкам с железом компании. И ассемблер, кстати тоже является "великим уравнителем" всех программистов.
    Вот воткнул ты новую видяху или сетевуху в комп. И? Кто там выше драйвера "в регистры" лезет?

    Я не говорю про какое-то "спецоборудование". Там может быть всё что угодно. Но обычно это оборудование не меняется за время своей жизни.

    То есть каждый "новичёк" будет по новой изучать и программировать все 1599 регистров сетевухи?) А зачем ?! Это во-первых коммерчески невыгодно, во-вторых просто не нужно.

    Недаром, сейчас очень многие производители предоставляют библиотеки работающие со своим оборудованием.

  13. #39
    Guru Аватар для andrews
    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,688
    Спасибо Благодарностей отдано 
    423
    Спасибо Благодарностей получено 
    196
    Поблагодарили
    174 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну конечно же это пример из личного опыта. Купили готовую операционку реального времени для ЦАТС. В описании было про поддержку интересной компании микрухи, которую и установили на плату процессора. Запустили программу -не работает! В коде рабочей программы станции на С/C++ ковыряться не стали, а пришлось дизассемблировать драйвер операционки. Там вместо кода оказалась "заглушка". Обратились к компании -производителю операционки. Те ответили, мол, ждите полгода, будет код. Обратились в компанию производителя микрухи в Японию про описание регистров микрухи. Те послали на й. Проект приостановился, компания возмещала убытки заказчику, а из меня сделали "козла отпущения" и уволили. Так как оказывается и нанимали-то меня именно с этой целью, так как не были уверены что все пройдет гладко. Поэтому еще раз: адекватное описание регистров и ассемблер( ну и прочее до получения исполняемого кода и его загрузки(программирования) . Всё остальное уже "роскошь"

    - - - Добавлено - - -

    Цитата Сообщение от SfS Посмотреть сообщение
    То есть каждый "новичёк" будет по новой изучать и программировать все 1599 регистров сетевухи?
    если что-то не работает как надо - придётся! Так как программист фирме стоит даже сегодня на 3 месяца от силы $10 000 даже при зп вбелую, а штрафные санкции за неработающее и не отгружаемое оборудование могут быть на порядки больше и это бьет по карману учредителей.
    Последний раз редактировалось andrews; 20.11.2023 в 11:50.

  14. #40
    Master
    Регистрация
    27.01.2005
    Сообщений
    905
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    176
    Поблагодарили
    142 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Это как раз относительно нетипичный пример.

Страница 4 из 18 ПерваяПервая 12345678 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 47
    Последнее: 02.02.2021, 14:06
  2. Как быстро летит время.
    от Mick в разделе Новости
    Ответов: 18
    Последнее: 25.02.2020, 08:43
  3. Почему Спектрум-бейсик такой медленный?
    от mmxdmv в разделе ZX Концепции
    Ответов: 53
    Последнее: 07.07.2018, 19:39
  4. Как быстро добраться до мыши?
    от TomCaT в разделе Для начинающих
    Ответов: 38
    Последнее: 02.03.2010, 11:00
  5. Быстро переместить 384b
    от Aprisobal в разделе Программирование
    Ответов: 6
    Последнее: 23.01.2005, 15:23

Ваши права

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