Я про то, что Никита сделал утилиту, чтобы патчить .mac-файл после компиляции Паскалем именно в плане искажения строк на русском (обнуляется старший бит символов). Если Паскаль берёт русские строки и так, то зачем бы он стал это делать?
Я про то, что Никита сделал утилиту, чтобы патчить .mac-файл после компиляции Паскалем именно в плане искажения строк на русском (обнуляется старший бит символов). Если Паскаль берёт русские строки и так, то зачем бы он стал это делать?
Код:HD7>TY OLEG.PAS /* ПРОГРАММА "ПРИВЕТ, ОЛЕГ!" */ PROGRAM HO; BEGIN WRITELN('ПРИВЕТ, ОЛЕГ!'); END. HD7>PASDWK OLEG,TT:=OLEG .MAIN. OMSI PASCAL-1 RT11 V1.1G 21- -89 Page 1 Univ. Tasmania, Info. Sciences, Physics Bldg, Hobart 7001, site #72-12 LINE STMT LEVEL NEST SOURCE STATEMENT 1 /* ПРОГРАММА "ПРИВЕТ, ОЛЕГ!" */ 2 PROGRAM HO; 3 BEGIN 4 1 1 1 WRITELN('ПРИВЕТ, ОЛЕГ!'); 5 2 1 1 END. ERRORS DETECTED: 0 FREE MEMORY: 11510 WORDS ERRORS DETECTED: 0 FREE MEMORY: 11510 WORDS HD7>TY OLEG.MAC .GLOBL $RESR6,$RESR5,$KORE,$SAV10,$VER .GLOBL $BEGIN,FILE,$TTY,$END .RADIX 10 $VER=59. $BEGIN: JSR %7,$B127 .GLOBL $B127 MOV #L0,-(6) MOV #17,-(6) CLR -(6) JSR %7,$B32 .GLOBL $B32 JSR %7,$B36 .GLOBL $B36 JMP $END L0: .WORD 28686 .WORD 26994 .WORD 25975 .WORD 3956 .WORD 8236 .WORD 28430 .WORD 25964 .WORD 3943 .WORD 33 .END HD7>MAC OLEG HD7>LIN OLEG,PASDWK HD7>RU OLEG ПРИВЕТ, ОЛЕГ! HD7>- - - Добавлено - - -КОИ-7 - семибитная кодировка для русского языка и обмена информацией, основанная на ASCII. КОИ-7 описана в ГОСТ 13052-67, 13052-74 и 27463-87. КОИ-7 включает в себя 3 "набора" - Н0, Н1, Н2. Н0 - это просто US-ASCII ; в Н1 все латинские буквы заменены на русские; в Н2 заглавные латинские буквы оставлены, а строчные заменены на заглавные русские.
На практике использовался либо набор Н2 сам по себе, либо Н0/Н1 с переключением: для перехода в русский режим Н1 использовался управляющий символ 0xE SO, РУС, а для возврата в латинский Н0 - символ 0xF SI, ЛАТ. Иногда смена набора, используемого устройством, осуществлялась ручным переключателем.
Буквы Ё не было; отсутствовала также заглавная буква Ъ для избежания потенциального конфликта с управляющим символом DELETE 0x7F. Поскольку русские буквы были размещены на позициях аналогичных латинских букв, текст оставался более-менее понятным даже при неправильно выбранном режиме.
КОИ-7 использовалась в основном на машинах серии СМ ЭВМ и ДВК; КОИ-7 Н2 использовалась на машинно-ориентированном языке в микроЭВМ Электроника Д3-28 в виде четырёхзначного шестнадцатеричного кода, также на БЭСМ-6 там она называлась ВКД, внутренний код данных; при этом вместо части русских букв использовались совпадающие по начертанию латинские.
да в этом была причина, убрал, собралось сразу в OBJ, но SAV в итоге всё равно не запустился - ругнулся "замысловато" )
В общем буду экспериментировать (по мимо прочего) с Pascal-2 - вещь занятная )
Последний раз редактировалось hobot; 21.04.2021 в 10:31.
Oleg N. Cher(21.04.2021)
БОЛЬШОЕ СПАСИБО!!! В данном архиве оказался полный комплект OMSI Pascal v1.2G, ну естественно "адаптированный" под наши ЭВМ. Включает компиляторы с поддержкой как FIS (PASSIM.SAV), так и FPP (PASFPP.SAV). Ну и четыре версии стандартной библиотеки - PASFPP (поддержка FPP), PASFIS (поддержка аппаратных FIS и EIS, эмулятора FIS нет), PASEIS (поддержка аппаратного EIS, эмулятор FIS присутствует), PASSIM (отсутствует аппаратная поддержка EIS и FIS, эмулятор FIS присутствует).
Знатоки Macro-11, подскажите, пожалуйста, каков стандарт обработки локальных меток в случае если указанная метка не встречается между глобальными метками.
Куда Macro-11 сделает переход - на метку L1$ выше FIRST или ниже SECON? Или выдаст ошибку?Код:L1$: NOP FIRST: MOV R0,R1 BR L1$ SECON: MOV R2,R3 L1$: WAIT
manwe.pdp-11.ru
Если код, как приведённый - ошибка - дубль метки, потому как L1$ - это отнюдь не локальная метка
Если правильная локальная метка, возможны три сценарии.
- ошибка - дубль метки
- ошибка - метка не определена
- нет ошибки - переход на одну из меток
Ищем в документации и читаем про понятие - блок локальных меток
Да, ошибка - не должно быть буквы "L" в метке.
Это понятно, что три случая возможны:
1. между глобальными метками есть локальные с одинаковыми именами
2. указанной локальной метки вообще нет в программе
3. локальная метка есть, но после и/или до глобальной метки.
Интересует, конечно, третий случай. Я именно про него спрашивал.
Ясно, "RTFM". Всё понял, спасибо большое, ты очень помог!Ищем в документации и читаем про понятие - блок локальных меток
manwe.pdp-11.ru
Если бы можно было RTFM, то я бы уже. В реальности хвалёная DECовская документация составлена так, что в ней многое не описано. Например, в "PDP-11 MACRO-11 Language Reference Manual" нет формулировок типа "область видимости" и нет даже самого описания локальных меток (зато сразу с места в карьер "7.3.5 Creating Local Symbols Automatically").
Моё время тоже стоит очень дорого, но я трачу его на бесплатное написание новых программ для БК и Союз-Неона. Если я буду тратить его на чтение чудовищно составленной DECовской документации, то на новые программы для БК и Союз-Неона времени не останется.
Странно, конечно, что ты знаешь ответ на вопрос и мог бы ответить "да" или "нет", но вместо этого предпочитаешь писать нравоучения, а знание своё собираешься унести с собой в могилу. Ну да ладно, у каждого свои мотивы.
manwe.pdp-11.ru
Вспомнился анекдот:
Скрытый текст
Клиент спрашивает в банке:
-А вы даёте кредиты под честное слово?
-Без проблем.
-А если я не верну кредит?
-Тогда вам будет стыдно перед всевышним, когда предстанете.
-Ну, это когда ещё будет.
-Вот, если пятого не вернёте, то шестого предстанете.
[свернуть]
Надеюсь Вы про могилу не в этом ключе? ;-)
Аха. Конечно.
"Local symbols are specially formatted symbols used as labels within a block of coding that has been delimited as a local symbol block. Local symbols are of the form n$, where n is a decimal integer from 1 to 65535, inclusive.
...
A local symbol block is delimited in one of three ways:"
Так и пиши - Не умею искать. Будет честнее.
Это то, которое в общедоступной документации? Да, точно, унесу с собой в могилу. Что бы современные горе-"программисты" научились с документацией работать.
- - - Добавлено - - -
Если мой ответ не устраивает - это не значит, что я его не дал. Просто уровень знаний не тот - для понимания ответа.
Последний раз редактировалось Hunta; 08.07.2021 в 11:40.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)