Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » Старый софт » Программы под RT-11 |
<<Назад Вперед>> | Страницы: 1 2 * 3 4 | Печать |
Technomancer
Advanced Member
Откуда: Рига Всего сообщений: 359 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 12 июня 2016 |
Xoiss, вот, выкладываю, но там у меня одна непонятка. И сразу извиняюсь за качество фото. 1. Через Kermit скачиваю исходной файл - HELLO.C на диск DK: который у меня MX1:. 2. Проверяю что файл действительно находится на MX1:. 3. И проверяю содержимое файла. 4. Пробую запустить компилятор прямо от DK: или MX1:, но не получается. Сделаю диск C:, который по сути MX1:, и заработало. Почему так? Почему именно C:? Это как-то связано с DOS-овскими именам дисков? Это как раз и моя непонятка по работу компилятора. 5. Проверяю что после работы компилятора появился файл HELLO.OBJ и запускаю линковщик. Кстати, может быть есть смысл тут и LINK.SAV выкладывать, чтобы всё было в одном месте? 6. После работы линковщика проверяю, что создан исполняемый файл HELLO.SAV. 7. Запускаю HELLO.SAV и наслаждаюсь результатом. Xoiss, ладно, договорились, я выложу описание Kermit-а, но не скоро, надо проверить как переслать файлы из Windows-а, а то пока только на Linux-е у меня сервер стоят. |
xoiss |
NEW! Сообщение отправлено: 31 октября 2018 15:21 Сообщение отредактировано: 21 ноября 2018 18:58
Спасибо!! >> Пробую запустить компилятор прямо от DK: или MX1:, но не получается. Сделаю диск C:, который по сути MX1:, и заработало. Почему так? Почему именно C:? Это как-то связано с DOS-овскими именам дисков? Это как раз и моя непонятка по работу компилятора. Кратко: диск C: обязателен. Компилятор ищет на нём файл stdio.h, а потом, возможно (но я не уверен), ещё и as.sav. Точный ответ — в руководстве CCPROG.LST, а именно, строки 342-356 и 473-501. Если "своими словами", то суть такая: - в Си директива #include имеет две формы: (1) с указанием файла в угловых скобках и (2) с указанием файла в двойных кавычках - вторая форма рекомендуется в том случае, если Вы подключаете заголовочный файл, являющийся частью Вашего же проекта, — вот, например, как здесь: https://github.com/xoiss/b3-23...ain.c#L38. Тогда компилятор будет начинать поиск включаемого файла в текущем рабочем каталоге (на RT-11 - это DK: ), потом просмотрит список каталогов, указанных в строке вызова компилятора опцией "-I" (в нашем примере отсутствуют), и только потом поищет его в системных библиотеках (на RT-11 - это специальное логическое устройство C:, а в Линуксах — набор каталогов, а-ля /usr/include и др.) - первая же форма рекомендуется, если Вы подключаете заголовочный файл какой-либо стандартной библиотеки. Тогда СОВРЕМЕННЫЙ компилятор будет вести поиск в обратном порядке: начнёт с каталогов системных библиотек и закончит текущей директорией. Но это именно для современных компиляторов... - ... для данного компилятора маршрут поиска файла, заданного первой формой (в угловых скобках), ограничивается ТОЛЬКО каталогом системных библиотек — это специальный диск "C:". Соответственно, не найдя его там (например, потому что такого диска нет вообще), он НЕ будет пытаться искать его на DK: или ещё где-либо и выдаст ошибку Название C, надо полагать, означает "Си". >> Кстати, может быть есть смысл тут и LINK.SAV выкладывать, чтобы всё было в одном месте? Да, наверное, можно было бы. Я просто поленился это делать, т.к. он уже есть на "системном диске" SY: в эмуляторе RT-11. >> ... а то пока только на Linux-е у меня сервер стоят ... так и у нас тут (в Яндексе) сервера на Линуксе Спасибо за подробный отчёт!! |
Сейчас на форуме |
xoiss |
NEW! Сообщение отправлено: 31 октября 2018 15:26
... кстати, кто-нибудь знает, как в командном файле (.COM) в RT-11 отдать команду CTRL/C ? зачем? суть в том, что, например, линковщик принимает аргументы в отдельной субконсоли (промпт "звёздочка") и, чтобы завершить сеанс работы с линковщиком, надо отдать ему команду CTRL/C при ручном вводе - это сделать понятно как но если команды впечатаны в командный файл — то тогда как? |
Сейчас на форуме |
XPOHOMETP
Advanced Member
Всего сообщений: 752 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 13 мая 2015 |
xoiss, сами напросились Вот так тоже должно работать: .LINK HELLO,C:SPEIS,C:CXLIB Аналогично .LINK /EXE:B323 SPEIS,CXLIB,MAIN,ADCON,SIMUL |
xoiss |
NEW! Сообщение отправлено: 31 октября 2018 17:38
спасибо! понял, значит у директивы LINK немного другой формат аргументов, нежели у программы LINK.SAV // а ведь когда-то в 92-94-х я это всё знал... не подскажите, как всё-таки CTRL/C из командного файла отдать? // на самом деле и LINK.SAV тоже можно запустить прямо со строкой аргументов: .ru sy:link b323=speis,cxlib,main,adcon,simul // он тогда не открывает субконсоль — т.е. мой вопрос - он, скорее, на перспективу спасибо! |
Сейчас на форуме |
XPOHOMETP
Advanced Member
Всего сообщений: 752 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 13 мая 2015 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 31 октября 2018 18:06 Сообщение отредактировано: 31 октября 2018 18:13 Что-то не припоминаю я там такой возможности... не подскажите, как всё-таки CTRL/C из командного файла отдать? Так тоже не пишут. Запуск программы с системного диска - просто R: .ru sy:link .R LINK abcdef |
Technomancer
Advanced Member
Откуда: Рига Всего сообщений: 359 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 12 июня 2016 |
Я так подумал - а каждая следующая команда в COM файле исполняется после завершения предыдущей, правильно? А раз уж так, тогда CTRL/C Вы не можете подать так-как линковщик работу завершил, но еще открыт. Разьве не так? Это только мои предположения. |
Arseny
Advanced Member
,,,=^..^=,,, Откуда: Bryansk, Russia Всего сообщений: 1722 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 13 окт. 2005 |
xoiss написал: ^C (в кодировке УКНЦ - это кривой дефис) не подскажите, как всё-таки CTRL/C из командного файла отдать? |
XPOHOMETP
Advanced Member
Всего сообщений: 752 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 13 мая 2015 |
Arseny написал: Были смутные воспоминания, но... ^C (в кодировке УКНЦ - это кривой дефис) В эмуляторе RT-11 и в эмуляторе ДВК не работает... Речь ведь про два символа (галочка ^ над цифрой 6 и буква С)? Или что-то другое набивать? |
Arseny
Advanced Member
,,,=^..^=,,, Откуда: Bryansk, Russia Всего сообщений: 1722 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 13 окт. 2005 |
XPOHOMETP написал: В эмуляторе УКНЦ работает. Проверил. В эмуляторе RT-11 и в эмуляторе ДВК не работает... XPOHOMETP написал: Я набирал текстовый файл в винде и там он выглядит как "галочка ^ над цифрой 6", но в эмуляторе отображается как горизонтальная Г (если покажет, то вот она ¬) Речь ведь про два символа (галочка ^ над цифрой 6 и буква С)? Вот что у меня было для проверки: dump Если просто запустить DUMP (или убрать из COM файла ^c), то он ждет ввод имени файла. |
<<Назад Вперед>> | Страницы: 1 2 * 3 4 | Печать |
Полигон-2 » Старый софт » Программы под RT-11 |
1 посетитель просмотрел эту тему за последние 15 минут |
В том числе: 1 гость, 0 скрытых пользователей |
Последние | |
[Москва] LIQUID-Акция. Сливаются разъемы CF МС7004 и 7004А на AT и XT Пайка термотрубок Проммать s478 PEAK 715VL2-HT ( Full-Size SBC) Подскажите по 386 материке по джамперам. |
Самые активные 5 тем | |