Когда писал статью про компьютер Jupiter Ace наткнулся (картинку нужно увеличить, чтобы прочитать цифры) на сравнительный анализ бейсиков для разных компьютеров из которого следует что BBC Basic не такой уж и тормознутый.
Когда писал статью про компьютер Jupiter Ace наткнулся (картинку нужно увеличить, чтобы прочитать цифры) на сравнительный анализ бейсиков для разных компьютеров из которого следует что BBC Basic не такой уж и тормознутый.
litwr(02.09.2021)
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Это известный факт, что BBC Basic на BBC Micro/Master быстрый. Он позволяет оптимально использовать целые. Хотя в целом его скорость больше обязана частоте процессора, чем качеству кода. Этот бейсик фирменно перенесли на Z80, 32016, ARM, x86 и возможно на какие-то ещё процы. Порт для PDP-11 немного левый, им занимается один энтузиаст. Сил не хватает, он ещё тригонометрию не сделал, сомневаюсь, что встроенный ассемблер работает.
По моим представлениям, просто из-за качества кода в 300 раз медленнее быть не может. Вильнюсский бейсик на БК, если сравнивать с бибисишным, все равно чуть медленнее, несмотря на полукомпиляцию. Поэтому загадка торможения пока остаётся...
- - - Добавлено - - -
Нужно разобраться почему так медленно, речь совсем не о том, что быстрее. Не понятно, как так получается.
Что касается формата fp, то разницы большой быть не должно. Это несложно и проверить. Вот программка
На вильнюсском бейсике для УКНЦ почему-то по-умолчанию используют формат 3+1 (на БК ПЗУ Бейсике - 7+1), на BBC Basic всё как всегда 4+1 (4 байта на мантиссу и 1 на порядок). Это может дать разницу максимум на треть, а не в 300 раз...Код:10 C=0 : T=1 : Q=0.5 20 C=C+1 : Q=Q/2 : S=T+Q : IF S<>T THEN 20 30 PRINT "MANTISSA BITS: ";C 40 REM TRAP 70 50 C=0 : T=2 60 C=C+1 : Q=T : T=T*2 : IF Q<>T THEN 60 70 PRINT "MAX EXPONENT: +";C 80 REM TRAP 110 90 C=0 : T=0.5 100 C=C+1 : T=T/2 : IF T<>0 THEN 100 110 PRINT "MIN EXPONENT: -";C 120 END
Вроде для Z80, ARM, x86 и даже ARM-64 и х86-64 ассемблеры есть. Кстати, есть ещё порты для 6809, 68000, 65816 и 6309, но как там с ассемблерами не знаю. Встроенные ассемблер - очень хорошая вещь для компилятора, но для интерпретатора это скорее спорное подспорье. Потому что приходится постоянно хранить в памяти как исходник, так и код. Кроме того, ассемблер интерпретатор должен компилировать, а это если код большой, это может вызвать неожиданную задержку.
Добавлю ещё, что есть вариации BBC Basic с праздничным названием Бренди - эти вариации ассемблера не поддерживают принципиально.
- - - Добавлено - - -
Запостил - https://stardot.org.uk/forums/viewto...333283#p333283
EDIT. И, конечно, очень Вам благодарен.
Мы не системы сравниваем фактически, а как бы разные варианты PDP-11. Как известно тайминги у разных моделей могут различаться очень сильно. Поэтому возникает предположение, что на каких-то моделях PDP11 бибисишный бэйсик может быть реально быстрее вильнюсского...
- - - Добавлено - - -
Попробовал запустить на УКНЦ вильнюсский бейсик с ДВК - запустился, но любая попытка обратиться к файловой системе бейсик ломает. Естественно предположить, что RT-11 для УКНЦ как-то не совсем стандартно работает с дисками. И это при том, что в эмуляторе RT11 бейсик с ДВК работает отлично.
Последний раз редактировалось litwr; 04.09.2021 в 10:00.
Или взять стандартный дистрибутив RT-11, добавить драйвер MZ и убедиться, что больше ничего для запуска RT-11 на УК-НЦ не требуется
- - - Добавлено - - -
Вот тут я именно это и сделал. Скопировал файлы с дистрибутива RT-11 5.7, добавил MZ.SYS, HD.SYS и программу ClkOn (она подсказывает RT-11, что есть таймер и что он 50 Гц) и вауля - я ПОРТИРОВАЛ RT-11 на эмулятор Патрона, эмулятор УК-НЦ от Никиты и на реальный УК-НЦ. Какой я молодетс!
litwr(05.09.2021)
Благодарю Вас за интересные результаты. Но Вы лишь доказали, что типовой RT11SJ для УКНЦ совсем нетиповой в общем смысле. Теперь об оценке Вашей работы. К сожалению, есть явные промахи:
1) вы не портировали на эмулятор Патрона, а лишь модифицировали его конфигурацию - нельзя на эмулятор RT11 портировать эмулятор RT11, если выражаться правильно;
2) вы даже НЕ ПЫТАЛИСЬ портировать на БК - самый популярный PDP-11 компьютер;
3) вильнюсский бейсик для УКНЦ перестал работать на собранной Вами системе - дисковые команды не работают;
4) таймер бибисишного бейсика стал выдавать некоректные данные, на исходных RT11 для УКНЦ и эмуляторе Патрона всё работало точно.
Итак, отлично ставить "молодцу" нельзя, можно только поставить хорошо с минусом, минус за гонор.![]()
Это не типовой RT11SJ. Это не понятно какой RT11SJ. В случае RT11SJ без вмешательства "специалистов" - всё работает.
Учитывая, то была взята RT11 из дистрибутива - она сгенерирована на 60 Гц. Результаты и будут некорректны.
- - - Добавлено - - -
Это не эмулятор RT-11. Это эмулятор ДВК Патрона с зашитой конфигурацией (вроде не поменять, наверняка не скажу) и с зашитым диском RT-11 (а вот это поменять можно).
- - - Добавлено - - -
А зачем? Речь шла о том, что нетронутая RT-11 вполне себе идёт на УК-НЦ и всякие слова о портировании RT-11 на УК-НЦ (как, впрочем, и на ДВК) - это громкие слова и ничего более. И в моем сообщении ПОРТИРОВАНИЕ - это был САРКАЗМ, для особо не понимающих.
- - - Добавлено - - -
И это заявление - полная чушь. Попался хреновый вариант (доделанный умельцами) RT11 - это не проблемы ни RT ни УЦ-НЦ
Вот картинка с крашем УКНЦ-бейсика на вашей системе.
- - - Добавлено - - -
Диск взят с UKNCBTL. Предполагаю, что автор использовал типичный диск с вильнюсским бейсиком.
Неужели BBC Basic не определяет частоту? Даже мой пи-затвор определяет, а англичане люди аккуратные и дотошные. Скорее там ваш драйвер таймера всё перепутал.
В этом весь Hunta - он знает название лучше самого автора! Авторское название - Эмулятор RT-11 для консоли Windows.
Как видите, в Вашем недопортировании возникли нестыковки.
Однако, это типовой диск из комплекта для УКНЦ.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)