Я думал про этот вариант для видеоплеера, но в той же памяти еще нужно уместить нераспакованное видео... и побольше, побольше, чтобы сгладить неравномерное чтение с диска :)
Вид для печати
Для информации:
Попробовал компилятор DECUS C ради интереса. Что-ж, он компилирует вполне под RT-11 и простенькие вещи на УКНЦ работают.
Можно скачать .dsk с ним например отсюда http://www.classiccmp.org/PDP-11/RT-...ware/dsk/misc/ (decusc.dsk)
Компиляется сишник скажем так (в LD1 примаунчен диск с декусом):
Но... так и не понял как там работать с floating point. Поскольку с float он генерит инструкции какие-то под математический сопроцессор что-ли? (FP-11?)Код:ASSIGN LD1: C:
RU C:CC test
RU C:AS test
link test,C:(SUPORT,CLIB)
Получается код навроде:
Несмотря на то что ассемблер и линкер такой код нормально соберут, но ... :)Код:...
ldcif _h,r3
ldf _y,r0
divf r3,r0
stf r0,_y2
...
Да, под FPP-11. Ну или под FPA (по командам одно и тоже, по скорости раз в пять быстрее), но ни того ни другого на УК-НЦ нет. Из советских микропроцессором - есть на 1811 и 1831, из буржуйских, соответственно на F-11 и J-11. Для 1801ВМ3 был выпущен как микросхема сопроцессора 1801ВМ4. Что то ещё есть под аналог ВМ3 для 1806, но тут сходу не скажу
Возможно, у компилятора есть какой-нибудь ключ - какие команды для плавучки использовать, но ... надо смотреть доки.
С похожей проблемой столкнулся при использовании компилятора с FORTRAN-77 на Квант-е 4С (1801ВМ3) - он тоже для плавучки использует FPP-11, но мне было проще - на Квант я перенёс RSX, а под RSX был программный эмулятор.
Вроде что то такое (эмулятор) был и для DECUS C, но учитывая мою "любовь" к C - не в курсе
Да, генерит инструкции под FP-11. Но в библиотеках должен быть эмулятор FPP. При старте программа захватывает вызов прерывания TRAP10. При исполнении на УКНЦ вызов инструкций FPP вызывает прерывание TRAP10 (отсутствующая команда). А уже подпрограмма обработки TRAP10 вызывает эмулятор FPP. Так что всё исполнится нормально, только довольно медленно, эмуляция всё-таки.
Ещё, помню, продавался на Кванте в начале 90-х продавали драйвер-эмулятор FPU под RT11. Помню, что в компиляторе С была библиотека эмуляции FPU, но какой именно компилятор - не помню, под RT-11. C фортраном-77 я тогда только целочисленную арифметику смог запустить без FPU. Недавно только прочитал, как можно было ... Но тогда интернета не было :(
Единственно странно, что FPU.OBJ самый маленький по размеру... Так что скорее всего это не эмуляция :(
В случае бы эмуляции - был бы самым большим по размеру.
Похоже просто математические библиотеки заточенные под какой-то компилятор. Или под генерацию какого-либо компилятора(интерпретатор ???)
В поставке FORTRAN-а (да и Pascal-я, насколько я помню) примерно так и было - исполняющие (математика) библиотеки под разный набор команд проца. В процессе установки выбиралась нужная и вместе с общей частью создавались библиотека.
- - - Добавлено - - -
Кстати, по названиям и размерам похоже на библиотеки от поставки РАТФОР-а :)
- - - Добавлено - - -
Последнее предложение не совсем точное. Компилятор РАТФОР-а даёт на выходе текст на FORTRAN-е, так что это файлы из исполняющей системы FORTRAN-а, если точнее, то FORTRAN-IV
Про фортран, который IV, от DEC - помню, что там был модульный код(по листингу интересно смотреть) с минимальным объёмом, либо оптимизация под EIS и FIS. При оптимизации включались инструкции непосредственно в тело программы, росло быстродействие но так же рос объём. И при генерации можно было сделать более компактный компилятор, отбросив лишние опции для генерации кода. Особенно актуально было для тех систем, где ничего другого, кроме двух дискеток МХ не было. Обычно оставляли только модульный код(THR - дай бог памяти) и увсё... Да ещё библиотеку фортрановскую в SYSLIB включали. На кафедре вычислительной математики для студентов делалась ещё система меню, дабы студенты своими грязными руками к системе не лезли :)
По крайне мере для FORTRAN-IV 2.8 уже был FPP.OBJ, и, насколько мне не изменяет память, был он и для более ранних версий. Просто на тех PDP-11, где я использовал FORTRAN-IV, FPP не было, так что в памяти и не отложился.
А вариант кода THR (thread) у нас назывался шитый, а не модульный.
Времени прошло много... Давно в фортране не сидел ...
Что-то завбывается...
У меня тогда в радиусе доступности не было ни одного компьютера с FPU... Единственные, которые с FPU видел на расстоянии - "Электроника-85". Стояли две штуки в деканате "И", там где иностранцы учились... Ну уж без такой передовой советской техники было ну ни как :)
Ой, ещё вспомнил - где у нас парочка "Электроника-85" стояла - кафедра физики, там же где СМ-1700 под ... Рафосом гоняли... Я пару раз всего лишь видел терминалы и оба раза видел загруженнный ... РАФОС-SJ... Я вообще охренел тогда. Один раз понятно, но когда повторно... То ли я везучий такой :) Студентов туда не пускали. Техника выделенная для член-кора АН-СССР. У нас в институте тогда два член-кора было. Единственный VAX-образный на весь институт.
Одна из особенностей фортрана - возможность передавать аргументы в любом количестве, пропуская ненужные - в g77 этой возможности нет.
Другая фича - векторность аргументов. Если склероз не врет, это даже всегда документировалось в руководствах по фортрану.
То есть вызовы вида RAN(0, 0) - это не вызов с двумя нулями в качестве аргументов, а вызов с двумя нулями первый раз.
В g77 и тут все испоганили :)
Ещё читом был оператор EQUIVALENCE. Можно было преобразовывать типы не вызывая функции :)
У фортрана от мелкомягких(был и таковой :) ) были опции передачи параметров при вызове. Помню точно, что было две формы передачи аргументов Pascal и С.
Хотя сейчас современные компиляторы фортрана популярностью не пользуются :(
Есть вроде как фортран от интела... Я его пытался запустить, но чего-то не понравилось...
Последняя более-менее версия Compaq fortran - ведёт свою историю от компилятора DEC.
И что самое печальное, что разрабатываются новые стандарты, есть Fortran 2018, но я не знаю какой из компиляторов сей стандарт поддерживает :(
В паскале есть указатели ... Но многие считают, что это типа "неправильный паскаль"... Типа всё должно расписано и шаг в лево, шаг в право - попытка к бегству, а прыжок на месте - провокация :v2_dizzy_army:
Типа можно тогда будет избежать ошибок... Наивные :)
Так Вирт - это Вирт ... Тот кто заложил основу....
Глянул статью про фортран, там написано, что прекращены обновления:
Hewlett Packard
Watcom
PathScale
G95
Open64
Unisys
:(
Но что меня поразило:
The AMD Optimizing C/C++ Compiler (AOCC) compiler system is a high performance, production quality code generation tool. The AOCC environment provides various options to developers when building and optimizing C, C++, and Fortran applications targeting 32-bit and 64-bit Linux® platforms. The AOCC compiler system offers a high level of advanced optimizations, multi-threading and processor support that includes global optimization, vectorization, inter-procedural analyses, loop transformations, and code generation. AMD also provides highly optimized libraries, which extract the optimal performance from each x86 processor core when utilized. The AOCC Compiler Suite simplifies and accelerates development and tuning for x86 applications.
То есть называется компилятор С, а переваривает и фортран....
В общем, лучше MACRO-11 для PDP-11 ещё не придумали :)
Плюс макросов - тебе всегда доступно всё остальное из MACRO-11.
Минусы языков, выглядящих как MACRO-11 (надо посчитать, но штук пять примерно я пробовал) - не всё из MACRO-11 доступно.
Когда мне попался пакет макросов структурных операторов - я перестал пробовать и даже начал отходить от связки FORTRAN-MACRO-11, ну а сейчас с того момента как опять вернулся к PDP-11 - только MACRO-11 (со структурными макросами) и использую.
Кстати, у меня был (!) компилятор в PL-11, но... ка бы раньше знать то - я бы всё постарался сохранить... :(
Самое обидное, что ушло много, чего сам писал ... И ушло много, чего писали люди вокруг меня(даже простенькие игры для КЦГД, всякие загрузки для КЦГД, до сих пор обидно, что не списал клон нортона-командера сидящий в КЦГД и не требующий памяти у центрального процессора ) :(
Я так думаю, что если поискать хорошо, то PL-11 найти можно... Но, то что было написано, существовало в одном-двух экземплярах ушло :(
А вот обычного BASIC-11 для RSX не завалялось нигде?
BP2 как интерпретатор не годится. А то уже мысли дурацкие лезут в голову - переделать RTшный :)
Код:Directory DU3:[11,104]
2020-12-16 22:44
IMPURE.OBJ;1 3. 1976-09-23 15:11
EDIT.OBJ;1 21. 1976-09-23 15:12
XEQT1.OBJ;1 13. 1976-09-23 15:12
CKCTCI.OBJ;1 1. 1976-09-23 15:12
STOP.OBJ;1 1. 1976-09-23 15:12
PNTRS.OBJ;1 5. 1976-09-23 15:13
XEQT2.OBJ;1 6. 1976-09-23 15:13
IOPK1.OBJ;1 5. 1976-09-23 15:13
PRU1N.OBJ;1 1. 1976-09-23 15:13
XEQT0.OBJ;1 16. 1976-09-23 15:13
FUNC.OBJ;1 7. 1976-09-23 15:14
IOPK0.OBJ;1 11. 1976-09-23 15:14
CALLS.OBJ;1 5. 1976-09-23 15:15
DEBUG.OBJ;1 1. 1976-09-23 15:15
PRU0.OBJ;1 2. 1976-09-23 15:15
CALLI.OBJ;1 1. 1976-09-23 15:16
PRU1.OBJ;1 5. 1976-09-23 15:16
CKCTCO.OBJ;1 1. 1976-09-23 15:17
COMPIL.OBJ;1 4. 1976-09-23 15:17
IOPK2.OBJ;1 4. 1976-09-23 15:18
KEYS.OBJ;1 7. 1976-09-23 15:18
IMPURF.OBJ;1 1. 1976-09-23 15:18
XDISP.OBJ;1 2. 1976-09-23 15:19
PRU0N.OBJ;1 2. 1976-09-23 15:19
ROOT.OBJ;1 7. 1976-09-23 15:20
OTSE.OBJ;1 13. 1976-09-23 15:20
OTSI.OBJ;1 11. 1976-09-23 15:21
CALLSN.OBJ;1 1. 1976-09-23 15:21
OTSA.OBJ;1 13. 1976-09-23 15:22
OTSN.OBJ;1 13. 1976-09-23 15:23
OTSF.OBJ;1 8. 1976-09-23 15:23
CALLIN.OBJ;1 1. 1976-09-23 15:24
QIODFS.OBJ;1 1. 1976-09-23 15:25
STRING.OBJ;1 2. 1976-09-23 15:27
CALMSG.OBJ;1 1. 1976-09-23 15:28
MBASN.CMD;1 1. 1976-09-23 15:28
MBASA.CMD;1 1. 1976-09-23 15:29
MBASE.CMD;1 1. 1976-09-23 15:29
MBASI.CMD;1 1. 1976-09-23 15:30
MBASF.CMD;1 1. 1976-09-23 15:30
MBASNO.CMD;1 1. 1976-09-23 15:31
MBASN.ODL;1 1. 1976-09-23 15:31
MBASAO.CMD;1 1. 1976-09-23 15:32
MBASA.ODL;1 1. 1976-09-23 15:33
MBASEO.CMD;1 1. 1976-09-23 15:33
MBASE.ODL;1 1. 1976-09-23 15:34
MBASIO.CMD;1 1. 1976-09-23 15:34
MBASI.ODL;1 1. 1976-09-23 15:35
MBASFO.CMD;1 1. 1976-09-23 15:35
MBASF.ODL;1 1. 1976-09-23 15:36
SBASLN.CMD;1 1. 1976-09-23 15:36
SBASUN.CMD;1 1. 1976-09-23 15:37
SBASLE.CMD;1 1. 1976-09-23 15:38
SBASUE.CMD;1 1. 1976-09-23 15:38
SBASLI.CMD;1 1. 1976-09-23 15:39
SBASUI.CMD;1 1. 1976-09-23 15:40
SBASLF.CMD;1 1. 1976-09-23 15:40
SBASUF.CMD;1 1. 1976-09-23 15:41
DBASE.CMD;1 1. 1976-09-23 15:41
DBASI.CMD;1 1. 1976-09-23 15:42
DBASF.CMD;1 1. 1976-09-23 15:43
IBASE.CMD;1 1. 1976-09-23 15:43
IBASI.CMD;1 1. 1976-09-23 15:44
IBASF.CMD;1 1. 1976-09-23 15:45
DSTOP.CMD;1 1. 1976-09-23 15:45
MSTOP.CMD;1 1. 1976-09-23 15:47
CALLI.MAC;1 5. 1976-09-23 15:48
BMAC.MAC;1 4. 1976-09-23 15:49
ASSEM.MAC;1 5. 1976-09-23 15:50
CONVRT.BAS;1 9. 1976-09-23 15:50
Total of 250./250. blocks in 70. files
>
Где б его стянуть? :)
Здесь :)
В первом приближении работает.
Y2K патч прилепить и можно пользовать :)
- - - Добавлено - - -Код:>BAS
IAS/RSX BASIC V02-01
READY
LIST
NONAME 17-DEC-<0 02:32:07
READY
READY
10 PRINT "HELLO WORLD"
20 PRINT PI
RUN
NONAME 17-DEC-<0 02:32:40
HELLO WORLD
3.14159
READY
LIST
NONAME 17-DEC-<0 02:32:43
10 PRINT "HELLO WORLD"
20 PRINT PI
READY
A=SYS(4)
>
А собственно чего мучиться - благо 1075 найти в небольшой кучке DOB файлов - не проблема :)
Теперь на CTAKAHе есть BASIC-11 :)Код:>BAS
IAS/RSX BASIC V02-01
READY
LIST
NONAME 17-DEC-20 03:42:41
READY
PRINT DAT$
17-DEC-20
READY
BYE
>TYP PATCH.MAC
.TITLE IOPK2
.PSECT BASSCD
.=.+602
CALL FIX
.PSECT PATCH
FIX: SUB #100.,R3
BPL FIX
ADD #100.,R3
MOV #'0,R4
RETURN
.END
>