Я про то, что Никита сделал утилиту, чтобы патчить .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 - вещь занятная )
БОЛЬШОЕ СПАСИБО!!! В данном архиве оказался полный комплект 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
Если код, как приведённый - ошибка - дубль метки, потому как L1$ - это отнюдь не локальная метка
Если правильная локальная метка, возможны три сценарии.
- ошибка - дубль метки
- ошибка - метка не определена
- нет ошибки - переход на одну из меток
Ищем в документации и читаем про понятие - блок локальных меток
Да, ошибка - не должно быть буквы "L" в метке.
Это понятно, что три случая возможны:
1. между глобальными метками есть локальные с одинаковыми именами
2. указанной локальной метки вообще нет в программе
3. локальная метка есть, но после и/или до глобальной метки.
Интересует, конечно, третий случай. Я именно про него спрашивал.
Ясно, "RTFM". Всё понял, спасибо большое, ты очень помог!Цитата:
Ищем в документации и читаем про понятие - блок локальных меток
Мои лекции стоят ОЧЕНЬ дорого, но всё это можно RTFM. Не за что
- - - Добавлено - - -
Нет, она может и быть. И не одна. И тем не менее, MACRO-11 выдаст указанную ошибку
И в этом варианте возможны всё три случая
Если бы можно было RTFM, то я бы уже. В реальности хвалёная DECовская документация составлена так, что в ней многое не описано. Например, в "PDP-11 MACRO-11 Language Reference Manual" нет формулировок типа "область видимости" и нет даже самого описания локальных меток (зато сразу с места в карьер "7.3.5 Creating Local Symbols Automatically").
Моё время тоже стоит очень дорого, но я трачу его на бесплатное написание новых программ для БК и Союз-Неона. Если я буду тратить его на чтение чудовищно составленной DECовской документации, то на новые программы для БК и Союз-Неона времени не останется.
Странно, конечно, что ты знаешь ответ на вопрос и мог бы ответить "да" или "нет", но вместо этого предпочитаешь писать нравоучения, а знание своё собираешься унести с собой в могилу. Ну да ладно, у каждого свои мотивы.
Вспомнился анекдот:
Скрытый текст
Клиент спрашивает в банке:
-А вы даёте кредиты под честное слово?
-Без проблем.
-А если я не верну кредит?
-Тогда вам будет стыдно перед всевышним, когда предстанете.
-Ну, это когда ещё будет.
-Вот, если пятого не вернёте, то шестого предстанете.
[свернуть]
Надеюсь Вы про могилу не в этом ключе? ;-)
Аха. Конечно.
"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:"
Так и пиши - Не умею искать. Будет честнее.
Это то, которое в общедоступной документации? Да, точно, унесу с собой в могилу. Что бы современные горе-"программисты" научились с документацией работать.
- - - Добавлено - - -
Если мой ответ не устраивает - это не значит, что я его не дал. Просто уровень знаний не тот - для понимания ответа.