На счет программирования на асме под MACRO11.
Есть ли в нем обозначение для представления шестнадцатиричных чисел? Для восмиричных нашел ^O перед числом, а для шестнадцатиричных не нашел. Radix не предлагать.
На счет программирования на асме под MACRO11.
Есть ли в нем обозначение для представления шестнадцатиричных чисел? Для восмиричных нашел ^O перед числом, а для шестнадцатиричных не нашел. Radix не предлагать.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
^X
---------- Post added at 11:36 ---------- Previous post was at 11:07 ----------
Фортран только транслятор (или компилятор - в данном случае это одно и то же). Бейсики есть и трансляторы (для RT-11 не видел) и интерпретаторы.
Процедура работы с фортрановской программой от исходника до готовой програмы такая (на примере того же RT-11): компиляция (команда FORTRAN), сборка (команда LINK). К примеру:
Здесь мы при сборке указываем библиотеку фортрановских подпрограмм.Код:.FORT FORPRG !КОМПИЛЯЦИЯ ПРОГРАММЫ .LIN FORPRG/LINK:SY:FORLIB !СБОРКА ПРОГРАММЫ .!ИЛИ ОДНОЙ КОМАНДОЙ: .EXE FORPRG/LINK:SY:FORLIB !КОМПИЛЯЦИЯ, СБОРКА, ЗАПУСК .EXE FORPRG/NORU.... !АНАЛОГИЧНО НО БЕЗ ЗАПУСКА
Библиотека обычно называется FORLIB, но для F77 может называться F77OTS (обычно используется если в системе одновмеренно есть и F77 и FIV).
В RT-11 версий 5.6 и 5.7 компилятор фортрана для команды FORTRAN выбирается командой SET FORTRA F77 или SET FORTRA FORTRA.
Сложного в фортране действительно ничего нет, но надо помнить о некоторых особенностях языка (некоторые из них описаны в прошлых письмах). Типичные ошибки тех, кто привык к C или паскалю:
CALL SUBR(1) - Многие думают, что это вызов подпрограммы SUBR с аргументом 1. Для фортрана это верно только если подпрограмма SUBR не меняет переменную, используемую для передачи параметра. Если меняет - изменение будет действовать при следующем вызове из этого же места.
2. FORMAT('TEXT') - данный формат не напечатает строчку "TEXT" - первый символ в строке используется для форматирования, к примеру:
0 или пробел - печать с новой строки
1 - печать с новой страницы (на терминале отрабатывает 8 переносов строки, на принтере пробрасывает бумагу до следующей страницы)
+ - печать с той же строки на которой стоим
Также для программирования на фортране полнзно изучить описание подпрограмм системной библиотеки - там много нужного. В том числе есть подпрограммы для работы с памятью (насчет портов, на PDP-11 такого понятия отдельно нету).
Документация на английском:
RT-11 V5.6: System Subroutine Library Manual
RT-11 V5.6: System Macro Library Manual
RT-11 V5.6: System Internals Manual
PDP-11 MACRO-11 Language Reference Manual (MACRO-11 Version 5)
PDP-11 FORTRAN IV Language Reference Manual (FORTRAN IV Version 2.6)
PDP-11 FORTRAN 77 Language Reference Manual (FORTRAN 77 Version 5.0)
на русском:
РАФОС-ПЛЮС: Системные таблицы и библиотеки. Руководство программиста.
ФОДОС-2: Программирование периферийных устройств.
ФОДОС-2: Ассемблер. Руководство программиста.
ФОДОС-2: Системная макробиблиотека. Руководство программиста.
ФОДОС-2:Монитор системы. Руководство программиста.
---------- Post added at 11:47 ---------- Previous post was at 11:42 ----------
Бр-р-р! Тяжко в форуме редактировать написанное - еле управился![]()
Последний раз редактировалось form; 21.04.2011 в 10:20.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Есть книжка на тему:
http://www.kodges.ru/97371-oshibki-l...-fortrane.html
После прочтения открываются БЕЗДНЫ ЗНАНИЯ. Начинаешь понимать, насколько глубокий и мощный язык Фортран.Но в книжке больше ориентация на ЕС-овский фортран, DEC-овская реализация может отличаться.
hobot(08.04.2021)
Да, отличная книжка.
Я изучал по какой-то старой толстой книге и когда пришел на DEC, оказалось, что там все также, причем в книге упоминались даже TYPE/PRINT/PUNCH
Вот GNU F77 как-то посмотрел - там ни тебе с аргументами разобраться ни фортрановский (!) format character не поддерживается
Про TYPE/PRINT/PUNCH говорить даже не стану - и так ясно
Хорошо хоть WRITE(*) работает
--
GOD is REAL, unless declared INTEGER (правило фортрана)
---------- Post added at 15:08 ---------- Previous post was at 14:37 ----------
И раз пошла такая пьянка - пример для современного gcc на обычных i386 машинах
Как можно догадаться, программа напечатаетКод:#include <stdio.h> int main(void) { char c = 128; if (c != 128) printf("Shit happens!\n"); return (0); }
"Shit happens!"![]()
Последний раз редактировалось form; 21.04.2011 в 11:41.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Еще пример - использование прерываний в фортрановской программе.
Коментарии в ассемблерном коде.
В данном примере прога тупо крутится в цикле, печатая всякую фигню, при нажатии CTRL/C выходит.
Последний раз редактировалось form; 07.06.2014 в 18:34.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Если ссылки нет (возможно был аттач файла), то не сохранилось.
CTRL/B не лучшая комбинация для RT-11 - в FB/XM/ZM монторах она используется.
Также нежелательно использовать CTRL/A (редкий случай - поддержка графдисплея), CTRL/F (FB/XM/ZM), CTRL/O, CTRL/Q, CTRL/S, CTRL/X (FB/XM/ZM) - они тоже используются в RT-11, некоторые варианты невозможно перехватить стандартными средствами.
Нежелательно также использовать CTRL/P - его часто используют по умолчанию терминальные программы (VTCOM например) и RTEM-11.
Кроме того в "наших| ФОДОСах была привычка заменять стандартный CTRL/O на CTRL/D![]()
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Лучше не закладываться на SJ, а просто учитывать возможные варианты.
А то потом рождаются мифы о том, что где-то TAB стирает символы по дороге на экране и тому подобное только от того, что не были учтены варианты
Ну в сущности связь фортрана с ассемблером очень проста, а работа с прерываниями требует большой аккуратности. Ну и нужно помнить, что большая часть фортрановских операций ввода-вывода не повторновходимы, а значит их нельзя использовать в обработчике прерывания.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)