<?xml version='1.0' encoding='utf-8' ?>

<rss version='2.0' xmlns:lj='http://www.livejournal.org/rss/lj/1.0/' xmlns:atom10='http://www.w3.org/2005/Atom'>
<channel>
  <title>Сообщество любителей БЭСМ-6</title>
  <link>https://besm6.dreamwidth.org/</link>
  <description>Сообщество любителей БЭСМ-6 - Dreamwidth Studios</description>
  <lastBuildDate>Sat, 16 May 2026 21:44:19 GMT</lastBuildDate>
  <generator>LiveJournal / Dreamwidth Studios</generator>
  <lj:journal>besm6</lj:journal>
  <lj:journaltype>community</lj:journaltype>
<item>
  <guid isPermaLink='true'>https://besm6.dreamwidth.org/43978.html</guid>
  <pubDate>Sat, 16 May 2026 21:44:19 GMT</pubDate>
  <title>Автопереводчик в работе</title>
  <link>https://besm6.dreamwidth.org/43978.html</link>
  <description>Posted by: &lt;span lj:user=&apos;spamsink&apos; style=&apos;white-space: nowrap;&apos; class=&apos;ljuser&apos;&gt;&lt;a href=&apos;https://spamsink.dreamwidth.org/profile&apos;&gt;&lt;img src=&apos;https://www.dreamwidth.org/img/silk/identity/user.png&apos; alt=&apos;[personal profile] &apos; width=&apos;17&apos; height=&apos;17&apos; style=&apos;vertical-align: text-bottom; border: 0; padding-right: 1px;&apos; /&gt;&lt;/a&gt;&lt;a href=&apos;https://spamsink.dreamwidth.org/&apos;&gt;&lt;b&gt;spamsink&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Я решил перевести диагностики Паскаль-компилятора (обратно) на английский язык, воспользовавшись при этом Cerebras Cloud, потребовав сохранение длин сообщений. Он понял, что речь идет о количестве БЭСМ-овских слов,  а не букв, но побоялся сокращать количество слов. :)&lt;br /&gt;&lt;br /&gt;Вот результат (несмотря на то, что буквы ABEKMHOPCTYX были латинские, он разобрался):&lt;br /&gt;&lt;br /&gt;&lt;table border=&quot;1&quot;&gt;
&lt;tr&gt;&lt;td&gt;TPEБYETCЯ ЛOГИЧECKOE BЫPAЖEHИE&lt;/td&gt;     &lt;td&gt;LOGICAL EXPRESSION REQUIRED&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;HET HИ ЗAПЯTOЙ HИ TOЧKИ C ЗAПЯTOЙ&lt;/td&gt;  &lt;td&gt;NO COMMA OR PERIOD OR WITH COMMA&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ИДEHTИФИKATOP YЖE OПPEДEЛEH&lt;/td&gt;        &lt;td&gt;IDENTIFIER ALREADY DEFINED&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;HET ИДEHTИФИKATOPA&lt;/td&gt; &lt;td&gt;NO IDENTIFIER&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ИДEHT HE ИДEHT TИПA&lt;/td&gt;        &lt;td&gt;IDENT NOT IDENT TYPE&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;TPEБYETCЯ ПPOCTOЙ TИП&lt;/td&gt;      &lt;td&gt;SIMPLE TYPE REQUIRED&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;HET KOHCTAHTЫ&lt;/td&gt;      &lt;td&gt;NO CONSTANT&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;TPEБYETCЯ KOHCTAHTA ИHOГO TИПA&lt;/td&gt;     &lt;td&gt;CONSTANT OF OTHER TYPE REQUIRED&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;HE ИHДEKCH TИП&lt;/td&gt;     &lt;td&gt;NO INDEX TYPE&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;TИП HE ДOЛЖEH БЫTЬ ФAЙЛOВЫM&lt;/td&gt;        &lt;td&gt;TYPE MUST NOT BE FILE&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;KOHCTAHTA HE ДИKP-YПOP TИПA&lt;/td&gt;        &lt;td&gt;CONST NOT SCALAR TYPE&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ИДEHTИФИKATOP HE OПPEДEЛEH&lt;/td&gt; &lt;td&gt;IDENTIFIER NOT DEFINED&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;HEПPABИЛЬHЫЙ CИMBOЛ&lt;/td&gt;        &lt;td&gt;ILLEGAL SYMBOL&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ПEPEMEHHAЯ HE YKAЗATEЛЬ&lt;/td&gt;    &lt;td&gt;VARIABLE NOT POINTER&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;BЫPAЖ HE ЦEЛOГO TИПA&lt;/td&gt;       &lt;td&gt;EXPR NOT OF INTEGER TYPE&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;B OПEPATOPЕ BRANCH HEЛЬЗЯ C ЦEЛЫMИ METKAMИ&lt;/td&gt; &lt;td&gt;IN BRANCH OP CANT USE INTEGER LABELS&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;METKA HE OПPEДEЛEHA B CПИCKE METOK БЛOKA&lt;/td&gt;   &lt;td&gt;LABEL NOT DEFINED IN BLOCK LABEL LIST&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;METKA YЖE OПPEДEЛEHA B CTPOKE&lt;/td&gt;      &lt;td&gt;LABEL ALREADY DEFINED IN LINE&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;METKA HE OПPEДEЛEHA&lt;/td&gt;        &lt;td&gt;LABEL NOT DEFINED&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;HE ДOЛЖHO БЫTЬ BЫPAЖEHИE CTPYKTYPHOГO TИПA&lt;/td&gt; &lt;td&gt;NO STRUCTURED TYPE EXPRESSION ALLOWED&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ЦИФPA БOЛЬШE 7&lt;/td&gt;     &lt;td&gt;DIGIT ABOVE 7&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;TPEБYЮTCЯ ДPYГИE TИПЫ OПEPAHДOB&lt;/td&gt;    &lt;td&gt;OTHER OPERAND TYPES REQUIRED&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;HEПPABИЛЬHЫЙ TИП ПEPEMEHHOЙ ПEPEД&lt;/td&gt;  &lt;td&gt;ILLEGAL TYPE OF VARIABLE PRECEDING&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ИДEHTИФИKATOP TИПA BMECTO ПEPEMEHHOЙ&lt;/td&gt;       &lt;td&gt;IDENT OF TYPE INSTEAD OF VARIABLE&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;BЫPAЖEHИЯ B KOHCTPYKTOPE MHOЖECTB HECOBM TИПA&lt;/td&gt;      &lt;td&gt;EXPR IN SET CONSTRUCTOR OF INCOMP TYPE&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;BЫPAЖEHИE HE ДИCКP YПOP TИПA&lt;/td&gt;       &lt;td&gt;EXPR NOT DISCR OF SCALAR TYPE&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;KAK ПAPAMETPЫ CTАHД ПРОЦ И ФУНКЦИИ HE ПЕРЕДАЮТСЯ&lt;/td&gt;   &lt;td&gt;PARAMETERS OF STD PROC AND FUNC NOT PASSED&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;HYЖHA ПEPEMEHHAЯ-CTOИT BЫPAЖEHИE&lt;/td&gt;   &lt;td&gt;VARIABLE NEEDED BEFORE EXPRESSION&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;PAБOTA C ПEPEMEHHOЙ ПOCЛE ИHДEKСАЦИИ YПAK MACC&lt;/td&gt;     &lt;td&gt;WORK WITH VAR AFTER INDEXING PACK ARRAY&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ИHДEKC HE ЛEЖИT B TPEБYEМOM OТPEЗKE&lt;/td&gt;        &lt;td&gt;INDEX NOT IN REQUIRED RANGE&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;HET ПPOCTOЙ ПEPEM ДЛЯ ЦИKЛА&lt;/td&gt;        &lt;td&gt;NO SIMPLE VAR FOR LOOP&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;HE COOTB TИПЫ ПEPEMEHHOЙ ЦИKЛA И BЫP&lt;/td&gt;       &lt;td&gt;NO MATCH TYPE OF LOOP VAR AND EXPR&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;HEПPABИЛЬHO HAЧИHAETCЯ OПEPATOP&lt;/td&gt;    &lt;td&gt;OPERATOR DOES NOT START RIGHT&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;HEДOПYCT TИПЫ ПPИ ПPИCBAИBAHИИ&lt;/td&gt;     &lt;td&gt;ILLEGAL TYPES IN ASSIGNMENT&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;TИП HE COOTBETCT TИПY ЭЛЕMEHTA ФAЙЛA&lt;/td&gt;       &lt;td&gt;TYPE DOES NOT FIT FILE ELEM TYPE&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;BTOPOЙ CПEЦИФИKATOP ДЛЯ WRITE TOЛЬKO ДЛЯ REAL&lt;/td&gt;      &lt;td&gt;2ND SPEC FOR WRITE ONLY FOR REAL&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;MAЛO ПAPAMETPOB&lt;/td&gt;    &lt;td&gt;FEW PARAMETERS&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ФAЙЛA INPUT HET B CПИCKE ПAPAMETPOB ПPOГPAMMЫ&lt;/td&gt;      &lt;td&gt;INPUT FILE NOT IN PROGRAM PARAM LIST&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;MHOГO ПAPAMETPOB&lt;/td&gt;   &lt;td&gt;MANY PARAMETERS&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;HECOOTBEТCTBИE BИДOB ПAPAMETPOB ПPИ BЫЗOBE&lt;/td&gt; &lt;td&gt;ARGUMENT KIND MISMATCH IN CALL&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;HECOOTBEСТCTBИE TИПOB ПAPAMETPOB ПPИ BЫЗOBE&lt;/td&gt;        &lt;td&gt;ARGUMENT TYPE MISMATCH IN CALL&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;HET ЗAПЯT ИЛИ CKOБKИ ИЛИ MAЛO ПAPAMETPOB&lt;/td&gt;   &lt;td&gt;NO COMMA OR BRACE OR FEW PARAMS&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;HET CПИCKA ПAPAMETPOB&lt;/td&gt;      &lt;td&gt;NO PARAM LIST&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;CЛИШKOM БOЛЬШOE ЧИCЛO&lt;/td&gt;      &lt;td&gt;TOO MANY NUMBERS&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;HEПPABИЛЬHOE YПOTP ИДEHT CTAHД ПPOЦ ИЛИ ФYHKЦИИ&lt;/td&gt;    &lt;td&gt;ILLEGAL USE OF STD PROC OR FUNC IDENT&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;HET OTKP CKOБ ДЛЯ CTAHД ПPOЦ&lt;/td&gt;       &lt;td&gt;NO OPEN BRACE FOR STD PROC&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;HET ПEPEMEHHOЙ ДЛЯ CTAHД ПPOЦ&lt;/td&gt;      &lt;td&gt;NO VAR FOR STD PROC&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;HET ПEPEMEHHOЙ TИПA ФAЙЛ&lt;/td&gt;   &lt;td&gt;NO VAR OF FILE TYPE&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;CЛИШKOM CЛOЖHAЯ ПEPEMEHHAЯ&lt;/td&gt; &lt;td&gt;TOO COMPLEX VARIABLE&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;CЛИШKOM MHOГO KOМАHД B БЛОKE&lt;/td&gt;       &lt;td&gt;TOO MANY CMDS IN BLOCK&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ПEPEПOЛHEHA TAБЛИЦA OПИCAHИЙ&lt;/td&gt;       &lt;td&gt;OVERFLOW OF DECL TABLE&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ПEPEПOЛ TAБ ДЛИH ИДEHT&lt;/td&gt;     &lt;td&gt;OVERFLOW ID LENGTH&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;BCTPETИЛCЯ KOHEЦ ФAЙЛA&lt;/td&gt;     &lt;td&gt;END OF FILE ENCOUNTERED&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;CЛИШKOM MHOГO OШИБOK&lt;/td&gt;       &lt;td&gt;TOO MANY ERRORS&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;OШИБKA B ПCEBДOKOMMEHTAPИИ&lt;/td&gt; &lt;td&gt;ERROR IN PSEUDO COMMENT&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;B ЧИCЛE БOЛЬШE 16 ЦИФP&lt;/td&gt;     &lt;td&gt;NUMBER ABOVE 16 DIGITS&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ПOCЛE TOЧKИ HET MAHTИC&lt;/td&gt;     &lt;td&gt;AFTER DOT NO MANTISSA&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;HET ПOPЯДKA ЧИCЛA ПOCЛE E&lt;/td&gt;  &lt;td&gt;NO EXPONENT AFTER E&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ПOPЯДOK БOЛЬШE 18&lt;/td&gt;  &lt;td&gt;EXPONENT ABOVE 18&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;B CTPOKE EOLN TRUE&lt;/td&gt; &lt;td&gt;IN LINE EOLN TRUE&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ЦИФPA ПOCЛЕ TOЖДECTBA БOЛЬШE 3&lt;/td&gt;     &lt;td&gt;1ST DIGIT IN BYTE ABOVE 3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ПYCTAЯ CTPOKA&lt;/td&gt;      &lt;td&gt;EMPTY LINE&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;HET ЦEЛOГO&lt;/td&gt; &lt;td&gt;NO INTEGER&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;HEПPAB TИП ДЛЯ БAЗOBOГO TИПA MHOЖECTB&lt;/td&gt;      &lt;td&gt;ILLEGAL TYPE FOR BASE SET TYPE&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;OШИБKA ПPИ OПPEДEЛEHИИ TИПA OTPEЗKA&lt;/td&gt;        &lt;td&gt;ERROR IN RANGE TYPE DEFINITION&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;HEЛЬЗЯ ПCEBДO K0 И NEW&lt;/td&gt;     &lt;td&gt;CANT USE PSEUDO K0 AND NEW&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;TPEБYETCЯ ИHOЙ TИП ИHДEKCА&lt;/td&gt; &lt;td&gt;INDEX TYPE REQUIRED&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ПOCЛE ИHДEKCOB HET KB CKOБKИ&lt;/td&gt;       &lt;td&gt;NO BRACKETS AFTER INDEXES&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ИCПOЛЬЗOBAHИE ПPOЦEДYPЫ B BЫPAЖEHИИ&lt;/td&gt;        &lt;td&gt;USE OF PROCEDURE IN EXPRESSION&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;MИHYC HE K REAL И HE K INTEGER&lt;/td&gt;     &lt;td&gt;MINUS NOT TO REAL OR INTEGER&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;HET HИ TO HИ DOWNТО&lt;/td&gt;        &lt;td&gt;NEITHER TO NOR DOWNTO&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;OПEPATOP WITH HE OT ЗAПИCИ&lt;/td&gt; &lt;td&gt;OPERATOR WITH NOT FROM RECORD&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;OПEPATOP WITH HE OT ПEPEMEHHOЙ&lt;/td&gt;     &lt;td&gt;OPERATOR WITH NOT FROM VAR&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ДBE PABHЫE METKИ BЫБOPA&lt;/td&gt;    &lt;td&gt;TWO EQUAL CASE LABELS&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;PAЗHЫE TИПЫ CASE METOK И BЫPAЖEHИЯ&lt;/td&gt; &lt;td&gt;DIFF TYPES OF CASE LABELS AND EXPR&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;HEЛЬЗЯ ПPИCB ФAЙЛЫ&lt;/td&gt; &lt;td&gt;CANT ASSIGN FILES&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;HEПP HOMEP ДЛЯ BHEШ ФAЙЛA&lt;/td&gt;  &lt;td&gt;ILLEGAL UNIT FOR EXTERNAL FILE&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;HET OUTPUT&lt;/td&gt; &lt;td&gt;NO OUTPUT&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ПPEДOПPEДEЛEH KAК YKAЗATEЛЬ&lt;/td&gt;        &lt;td&gt;PREDEF AS POINTER&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;HE ДOOПPEДEЛEH&lt;/td&gt;     &lt;td&gt;NOT REDEFINED&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;HE OПPEДEЛEH BHEШHИЙ ФAЙЛ&lt;/td&gt;  &lt;td&gt;EXTERNAL FILE NOT DEFINED&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;CЛИШKOM БOЛЬШAЯ BЛOЖEHHOCTЬ ПPOЦEДYP&lt;/td&gt;       &lt;td&gt;TOO HIGH PROCEDURE NESTING&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ПPEДЫДYЩEE OББЯBЛEHИE HE БЫЛO FORWARD&lt;/td&gt;      &lt;td&gt;PREV DECL WAS NOT FORWARD&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ПOBTOP ПPEДOПPEДEЛEHИЯ&lt;/td&gt;     &lt;td&gt;REDEFINITION OF PREDEF&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;OШИБKA B PAЗДEЛE OББЯBЛEHИЙ&lt;/td&gt;        &lt;td&gt;ERROR IN DECL SECTION&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;HE ДOOПPEДEЛ ПPOЦEДYPЫ&lt;/td&gt;     &lt;td&gt;PROC NOT FORWARD DECLARED&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ТРЕБУЕТСЯ &lt;/td&gt; &lt;td&gt;REQUIRED&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;MHOГO BXOД ПPOЦ&lt;/td&gt;    &lt;td&gt;MANY PROC ENTRY&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;PAЗHЫE TИПЫ CASE METOK И BЫPAЖ&lt;/td&gt;     &lt;td&gt;DIFF TYPES CASE LABELS AND EXPR&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ЦEЛOE&lt;/td&gt;      &lt;td&gt;INTEGER&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ОПРЕД МЕТКИ В БЛОКЕ&lt;/td&gt;        &lt;td&gt;DEFINED LABELS IN BLOCK&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ЛЕВАЯ СКОБКА&lt;/td&gt;       &lt;td&gt;LEFT BRACKET&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ПРАВАЯ СКОБКА&lt;/td&gt;      &lt;td&gt;RIGHT BRACKET&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ПРАВ КВ СКОБКА&lt;/td&gt;     &lt;td&gt;RIGHT BRACE&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ЗАПЯТАЯ&lt;/td&gt;    &lt;td&gt;COMMA&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ТОЧКА С ЗАПЯТОЙ&lt;/td&gt;    &lt;td&gt;SEMICOLON&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; TOЧKA&lt;/td&gt;     &lt;td&gt; PERIOD&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ДВОЕТОЧИЕ&lt;/td&gt;  &lt;td&gt;COLON&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ПРИСВАИВАНИЯ&lt;/td&gt;       &lt;td&gt;ASSIGNMENT&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;В нескольких местах был использован знак &amp;gt;, который я заменил на ABOVE, в одном месте слегка переформулировав (&quot;DIGIT AFTER EQ &amp;gt; 3&quot; смысла не имеет, но ему простительно, он контекста не знал).&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=besm6&amp;ditemid=43978&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://besm6.dreamwidth.org/43978.html</comments>
  <lj:security>public</lj:security>
  <lj:poster>spamsink</lj:poster>
  <lj:reply-count>3</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://besm6.dreamwidth.org/43630.html</guid>
  <pubDate>Fri, 30 Jan 2026 11:02:57 GMT</pubDate>
  <title>Как начать работать с эмулятором БЭСМ-6?</title>
  <link>https://besm6.dreamwidth.org/43630.html</link>
  <description>Posted by: &lt;span lj:user=&apos;cobaltmth&apos; style=&apos;white-space: nowrap;&apos; class=&apos;ljuser&apos;&gt;&lt;a href=&apos;https://cobaltmth.dreamwidth.org/profile&apos;&gt;&lt;img src=&apos;https://www.dreamwidth.org/img/silk/identity/user.png&apos; alt=&apos;[personal profile] &apos; width=&apos;17&apos; height=&apos;17&apos; style=&apos;vertical-align: text-bottom; border: 0; padding-right: 1px;&apos; /&gt;&lt;/a&gt;&lt;a href=&apos;https://cobaltmth.dreamwidth.org/&apos;&gt;&lt;b&gt;cobaltmth&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Добрый день! Заранее прошу прощения за расплывчатые и, возможно, глуповатые вопросы. Недавно из интереса небольшой компанией решили приобщиться к истории и пощупать эмулятор БЭСМ-6. Начинания в количестве нескольких дней закончились выводом, что информации в достаточной для понимания полноте мы найти не смогли, даже несмотря на всю имеющуюся документацию на гите, да и в целом ни на что из того, что нам знакомо, это не похоже. Из того, что получилось: по инструкции подключить ОС Диспак, создать пользователя через серп, запустить некую игру, просмотреть паспорта второго уровня. Но не более того. В частности, споткнулись о подключение лент и запуск программ, которые вместе с эмулятором были в папке. Подскажите, пожалуйста, с чего вообще стоит начинать разбираться? Включая теоретические нюансы. Вводить команды из документаций с переменным успехом, конечно, у нас немного получается, но не более того, проблема в том, что нет совершенно никакого понимания, что конкретно мы делаем и как.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=besm6&amp;ditemid=43630&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://besm6.dreamwidth.org/43630.html</comments>
  <lj:security>public</lj:security>
  <lj:poster>cobaltmth</lj:poster>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://besm6.dreamwidth.org/43276.html</guid>
  <pubDate>Fri, 12 Sep 2025 20:23:35 GMT</pubDate>
  <title>Print-on-demand as a fraud facilitator</title>
  <link>https://besm6.dreamwidth.org/43276.html</link>
  <description>Posted by: &lt;span lj:user=&apos;spamsink&apos; style=&apos;white-space: nowrap;&apos; class=&apos;ljuser&apos;&gt;&lt;a href=&apos;https://spamsink.dreamwidth.org/profile&apos;&gt;&lt;img src=&apos;https://www.dreamwidth.org/img/silk/identity/user.png&apos; alt=&apos;[personal profile] &apos; width=&apos;17&apos; height=&apos;17&apos; style=&apos;vertical-align: text-bottom; border: 0; padding-right: 1px;&apos; /&gt;&lt;/a&gt;&lt;a href=&apos;https://spamsink.dreamwidth.org/&apos;&gt;&lt;b&gt;spamsink&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Экспонат 1: &lt;a href=&quot;http://inis.jinr.ru/sl/NTBLIB/1-09-2015/JINR-11-4950.pdf&quot;&gt;http://inis.jinr.ru/sl/NTBLIB/1-09-2015/JINR-11-4950.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Экспонат 2: &lt;a href=&quot;https://www.abebooks.com/Translyator-yazyka-mashiny-BESM-6-avtokod-11-4950-Russian/32183252097/bd&quot;&gt;https://www.abebooks.com/Translyator-yazyka-mashiny-BESM-6-avtokod-11-4950-Russian/32183252097/bd&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hardcover, my ass. И на цену обратите внимание.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://www.abebooks.com/servlet/SearchResults?an=Mazny&amp;amp;bi=0&amp;amp;bx=off&amp;amp;cm_sp=SearchF-_-Advs-_-Result&amp;amp;ds=30&amp;amp;prc=USD&amp;amp;pt=book%2Cmag%2Cms&amp;amp;recentlyadded=all&amp;amp;rgn=ww&amp;amp;rollup=on&amp;amp;sortby=20&amp;amp;xdesc=off&amp;amp;xpod=off&amp;amp;yrh=1999&amp;amp;yrl=1970&quot;&gt;Там ещё немало&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=besm6&amp;ditemid=43276&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://besm6.dreamwidth.org/43276.html</comments>
  <lj:security>public</lj:security>
  <lj:poster>spamsink</lj:poster>
  <lj:reply-count>4</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://besm6.dreamwidth.org/43249.html</guid>
  <pubDate>Tue, 26 Aug 2025 01:58:36 GMT</pubDate>
  <title>Обман трудящихся в Фортране</title>
  <link>https://besm6.dreamwidth.org/43249.html</link>
  <description>Posted by: &lt;span lj:user=&apos;spamsink&apos; style=&apos;white-space: nowrap;&apos; class=&apos;ljuser&apos;&gt;&lt;a href=&apos;https://spamsink.dreamwidth.org/profile&apos;&gt;&lt;img src=&apos;https://www.dreamwidth.org/img/silk/identity/user.png&apos; alt=&apos;[personal profile] &apos; width=&apos;17&apos; height=&apos;17&apos; style=&apos;vertical-align: text-bottom; border: 0; padding-right: 1px;&apos; /&gt;&lt;/a&gt;&lt;a href=&apos;https://spamsink.dreamwidth.org/&apos;&gt;&lt;b&gt;spamsink&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Допустим, захотелось нам в Фортране сделать указатель на функцию PF и сделать его указывающим на функцию F.&lt;br /&gt;Пишем&lt;br /&gt;&lt;pre&gt;
      PROGRAM MAIN
      EXTERNAL F
      PF = F
      END
&lt;/pre&gt;&lt;br /&gt;Так, разумеется, нельзя. Все три компилятора, указывая на строку присваивания, говорят&lt;br /&gt;Форекс: &lt;tt&gt;ФYHKЦ F БEЗ APГ&lt;/tt&gt;&lt;br /&gt;Фортран-Дубна:&lt;tt&gt; &lt;br /&gt;  HEПPABИЛЬHO ИCПOЛЬЗOBAHO HAИMEHOBAHИE ФYHKЦИИ.&lt;br&gt;&lt;br /&gt;  OШИБOЧHЫЙ OПEPATOP ЛИБO ПPOПYЩEH ЗHAK OПEPAЦИИ.&lt;br /&gt;&lt;/tt&gt;&lt;br /&gt;Фортран-ГДР: &lt;tt&gt;IMPROPER USE OF IDENTIFIER &amp;gt;F&amp;lt; &lt;/tt&gt;&lt;br /&gt;&lt;span class=&quot;cut-wrapper&quot;&gt;&lt;span style=&quot;display: none;&quot; id=&quot;span-cuttag___1&quot; class=&quot;cuttag&quot;&gt;&lt;/span&gt;&lt;b class=&quot;cut-open&quot;&gt;(&amp;nbsp;&lt;/b&gt;&lt;b class=&quot;cut-text&quot;&gt;&lt;a href=&quot;https://besm6.dreamwidth.org/43249.html#cutid1&quot;&gt;А дальше?&lt;/a&gt;&lt;/b&gt;&lt;b class=&quot;cut-close&quot;&gt;&amp;nbsp;)&lt;/b&gt;&lt;/span&gt;&lt;div style=&quot;display: none;&quot; id=&quot;div-cuttag___1&quot; aria-live=&quot;assertive&quot;&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=besm6&amp;ditemid=43249&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://besm6.dreamwidth.org/43249.html</comments>
  <lj:security>public</lj:security>
  <lj:poster>spamsink</lj:poster>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://besm6.dreamwidth.org/42942.html</guid>
  <pubDate>Fri, 22 Aug 2025 07:59:03 GMT</pubDate>
  <title>Фальшивый паспорт</title>
  <link>https://besm6.dreamwidth.org/42942.html</link>
  <description>Posted by: &lt;span lj:user=&apos;spamsink&apos; style=&apos;white-space: nowrap;&apos; class=&apos;ljuser&apos;&gt;&lt;a href=&apos;https://spamsink.dreamwidth.org/profile&apos;&gt;&lt;img src=&apos;https://www.dreamwidth.org/img/silk/identity/user.png&apos; alt=&apos;[personal profile] &apos; width=&apos;17&apos; height=&apos;17&apos; style=&apos;vertical-align: text-bottom; border: 0; padding-right: 1px;&apos; /&gt;&lt;/a&gt;&lt;a href=&apos;https://spamsink.dreamwidth.org/&apos;&gt;&lt;b&gt;spamsink&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Насколько можно судить, система DMS (&quot;Диалоговая мониторная система&quot;) позволяла пользователям записывать пакеты задачи полностью в форме МС &quot;Дубна&quot; путем изобретения карт &quot;заказа ресурсов&quot; и преобразовывала их в разделы паспорта при формировании задачи. Это требовало наличия поддержки со стороны &quot;Монитора-80&quot;, который обладал бы ровно тем же знанием о наборе и формате карт заказа ресурсов, чтобы уметь их или игнорировать, или как-то ещё дополнительно обрабатывать.&lt;br /&gt;&lt;br /&gt;Вот какие были карты заказа ресурсов в таблице дешифратора. Для большинства из них соответствующий раздел паспорта Диспака очевиден, но не для всех. Некоторые - явный договорняк между DMS и Монитором-80; остальные - загадка.&lt;br /&gt;&lt;br /&gt;PASS  - это, возможно, механизм указания пароля на шифр&lt;br /&gt;GRIF  - раздел паспорта ГРИФ&lt;br /&gt;REPEA - ПОВТ&lt;br /&gt;RESPO - ???&lt;br /&gt;WAIT  - ЖДЕМ&lt;br /&gt;TIME  - ВРЕМ&lt;br /&gt;LINE  - АЦПУ&lt;br /&gt;PAGE  - ЛИСТ&lt;br /&gt;///// - ???&lt;br /&gt;LIBRA - неясно, зачем она здесь, ведь *LIBRA разрешается в любом месте пакета&lt;br /&gt;ATAPE - ???&lt;br /&gt;FTAPE - ???&lt;br /&gt;LTAPE - ???&lt;br /&gt;DISC  - ДИСК&lt;br /&gt;CHECK - ???&lt;br /&gt;TAPE  - ЛЕНТ&lt;br /&gt;NEW   - ???&lt;br /&gt;DRUM  - ТРАК&lt;br /&gt;MEMO  - ОЗУ&lt;br /&gt;PRIO  - ???&lt;br /&gt;TELE  - ТЕЛЕ&lt;br /&gt;PRINT - ПЕЧ ?&lt;br /&gt;ASSIG - *ASSIGN трактуется как ошибка&lt;br /&gt;BLERR - ???&lt;br /&gt;FILE  - связь с DMS FS?&lt;br /&gt;JSPC  - --&quot;&quot;--&lt;br /&gt;JLIB  - --&quot;&quot;--&lt;br /&gt;JFILE - --&quot;&quot;--&lt;br /&gt;DUMON - ???&lt;br /&gt;BUGJE - явно имелся в виду BUDGET, но такого раздела паспорта я не припомню&lt;br /&gt;BESM  - МАШ&lt;br /&gt;MS    - ???&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=besm6&amp;ditemid=42942&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://besm6.dreamwidth.org/42942.html</comments>
  <lj:security>public</lj:security>
  <lj:poster>spamsink</lj:poster>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://besm6.dreamwidth.org/42695.html</guid>
  <pubDate>Tue, 19 Aug 2025 19:20:45 GMT</pubDate>
  <title>Математики, ау!</title>
  <link>https://besm6.dreamwidth.org/42695.html</link>
  <description>Posted by: &lt;span lj:user=&apos;spamsink&apos; style=&apos;white-space: nowrap;&apos; class=&apos;ljuser&apos;&gt;&lt;a href=&apos;https://spamsink.dreamwidth.org/profile&apos;&gt;&lt;img src=&apos;https://www.dreamwidth.org/img/silk/identity/user.png&apos; alt=&apos;[personal profile] &apos; width=&apos;17&apos; height=&apos;17&apos; style=&apos;vertical-align: text-bottom; border: 0; padding-right: 1px;&apos; /&gt;&lt;/a&gt;&lt;a href=&apos;https://spamsink.dreamwidth.org/&apos;&gt;&lt;b&gt;spamsink&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Вот пишете вы, скажем, компилятор &amp;mdash; для простоты, ассемблер &amp;mdash; с языка, в котором бывают литеральные константы (не таков был покойный Марк Германович Чайковский). &lt;br /&gt;&lt;br /&gt;Как вы организуете уникальность литеральных констант? Посмотрим на БЕМШ и попробуем в нём тест&lt;br /&gt;&lt;pre&gt;
OШИБKИ   HПK  CBOБ ПEPEM AДPEC KOMAHДA    A ИCП N ГEH N ИCX METKA  OПEPAЦИЯ OПEPAHД   KOMMEHTAPИЙ
                                                 0001  0001 TEST   START 1
         001             00001 00 010 0005       0002  0002        XTA   =B’4’
                               00 010 0006       0003  0003        XTA   =B’1’
                         00002 00 010 0007       0004  0004        XTA   =B’7’
                               00 010 0010       0005  0005        XTA   =B’3’
                         00003 00 010 0011       0006  0006        XTA   =B’6’
                               00 010 0012       0007  0007        XTA   =B’2’
                         00004 00 010 0013       0008  0008        XTA   =B’5’
                               00 22
                                                 0009  0009        FIN
                         00005  0000000000000004
                         00006  0000000000000001
         002             00007  0000000000000007
                         00010  0000000000000003
                         00011  0000000000000006
                         00012  0000000000000002
                         00013  0000000000000005
&lt;/pre&gt;&lt;br /&gt;Как видим, в каком порядке литералы были упомянуты в коде, в таком и получились в блоке данных. Если разных литералов не безумные тыщи, то цикл линейного поиска, помещающийся в БРС, вполне адекватен, и добавление нового литерала в конец массива не требует копирования памяти. &lt;br /&gt;&lt;br /&gt;А теперь попробуем Мадлен:&lt;span class=&quot;cut-wrapper&quot;&gt;&lt;span style=&quot;display: none;&quot; id=&quot;span-cuttag___1&quot; class=&quot;cuttag&quot;&gt;&lt;/span&gt;&lt;b class=&quot;cut-open&quot;&gt;(&amp;nbsp;&lt;/b&gt;&lt;b class=&quot;cut-text&quot;&gt;&lt;a href=&quot;https://besm6.dreamwidth.org/42695.html#cutid1&quot;&gt;ну попробуем&lt;/a&gt;&lt;/b&gt;&lt;b class=&quot;cut-close&quot;&gt;&amp;nbsp;)&lt;/b&gt;&lt;/span&gt;&lt;div style=&quot;display: none;&quot; id=&quot;div-cuttag___1&quot; aria-live=&quot;assertive&quot;&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=besm6&amp;ditemid=42695&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://besm6.dreamwidth.org/42695.html</comments>
  <lj:security>public</lj:security>
  <lj:poster>spamsink</lj:poster>
  <lj:reply-count>3</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://besm6.dreamwidth.org/42377.html</guid>
  <pubDate>Mon, 18 Aug 2025 20:17:10 GMT</pubDate>
  <title>Загадка по реверс-инжинирингу</title>
  <link>https://besm6.dreamwidth.org/42377.html</link>
  <description>Posted by: &lt;span lj:user=&apos;spamsink&apos; style=&apos;white-space: nowrap;&apos; class=&apos;ljuser&apos;&gt;&lt;a href=&apos;https://spamsink.dreamwidth.org/profile&apos;&gt;&lt;img src=&apos;https://www.dreamwidth.org/img/silk/identity/user.png&apos; alt=&apos;[personal profile] &apos; width=&apos;17&apos; height=&apos;17&apos; style=&apos;vertical-align: text-bottom; border: 0; padding-right: 1px;&apos; /&gt;&lt;/a&gt;&lt;a href=&apos;https://spamsink.dreamwidth.org/&apos;&gt;&lt;b&gt;spamsink&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;В дампе диска встретился текст:&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;PCAM: O PECYHЯTA П ИЛИ COHЧEHA HE OK````````````ЗАДАЧА&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;Что это значит и зачем так?&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=besm6&amp;ditemid=42377&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://besm6.dreamwidth.org/42377.html</comments>
  <lj:security>public</lj:security>
  <lj:poster>spamsink</lj:poster>
  <lj:reply-count>7</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://besm6.dreamwidth.org/42146.html</guid>
  <pubDate>Sun, 17 Aug 2025 20:13:29 GMT</pubDate>
  <title>Голь на выдумки хитра</title>
  <link>https://besm6.dreamwidth.org/42146.html</link>
  <description>Posted by: &lt;span lj:user=&apos;spamsink&apos; style=&apos;white-space: nowrap;&apos; class=&apos;ljuser&apos;&gt;&lt;a href=&apos;https://spamsink.dreamwidth.org/profile&apos;&gt;&lt;img src=&apos;https://www.dreamwidth.org/img/silk/identity/user.png&apos; alt=&apos;[personal profile] &apos; width=&apos;17&apos; height=&apos;17&apos; style=&apos;vertical-align: text-bottom; border: 0; padding-right: 1px;&apos; /&gt;&lt;/a&gt;&lt;a href=&apos;https://spamsink.dreamwidth.org/&apos;&gt;&lt;b&gt;spamsink&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Смотрите, что нашлось:&lt;br /&gt;&lt;pre&gt;
  BREEDING:,NAME,
C*
C***   1.10.85.   A.П.CAПOЖHИKOB
C*             ( C ПOДAЧИ P.EГИKЯHA )
C*
C*   *CALL BREEDING:NAME(N1,N2,...,NN)
C*   &quot;PAЗMHOЖEHИE&quot; ЗAДAHHOЙ ПPOГPAMMЫ
C*   BO BPEMEHHOЙ БИБЛИOTEKE.
C*
C*   ИЗ-ЗA OTCYTCTBИЯ B ФOPTPAHE PEKYPCИИ
C*   PEKYPCИBHЫE ПO CBOEЙ CYTИ BЫЗOBЫ
C*   ПOДПPOГPAMM ПPИXOДИTCЯ ПOДMEHЯTЬ
C*   OБPAЩEHИEM K KOПИЯM ЭTИX ПOДПPOГPAMM,
C*   ИMEЮЩИM ДPYГИE ИMEHA.  ПPИ ЭTOM
C*   ЧИCЛO KOПИЙ ДOЛЖHO COOTBETCTBOBATЬ
C*   ГЛYБИHE PEKYPCИИ.
C*     ПPOГPAMMA   BREEDING  ПPEДCTABЛЯET
C*   ИЗ CEБЯ MEXAHИЗM ДЛЯ ПOPOЖДEHИЯ HYЖ-
C*   HOГO KOЛИЧECTBA TAKИX KOПИЙ.  ПPOГ-
C*   PAMMA C ИMEHEM  NAME  PAЗЫCKИBAETCЯ
C*   BO BPEMEHHOЙ БИБЛИOTEKE (ИЛИ CPEДИ
C*   ЗAKAЗAHHЫX OБCП).  ЗATEM KATAЛOГ
C*   BPEMEHHOЙ БИБЛИOTEKИ ДOПOЛHЯETCЯ
C*   ИMEHAMИ  N1,N2,...,NN,  ПPИЧEM
C*   &lt;i&gt;YKAЗATEЛИ MECTOПOЛOЖEHИЯ ПPOГPAMM&lt;/i&gt;
C*   &lt;i&gt;N1,N2,...,NN  ДYБЛИPYЮT YKAЗATEЛЬ&lt;/i&gt;
C*   &lt;i&gt;ДЛЯ  NAME.&lt;/i&gt;
C*
&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Вот уж поистине топором брились, рекурсивные процедуры на Фортране писали, вместо более подходящих для этого языков.&lt;br /&gt;&lt;br /&gt;К сожалению, не работает. Отсутствующие в каталоге процедуры диагностирует&lt;pre&gt;
*CALL BREEDING:NOTEXIST(FOO)
  OTCYTCTBYET :
                    NOTEXIST
&lt;/pre&gt;, но если дать существующую, то тихо ничего не делает&lt;pre&gt;
*CALL BREEDING:BREEDING(FOO)
*CALL TCATALOG
                                             17 ABГ 25 14.25
                      TEMPORARY LIBRARY
                     CBOБOДHO  21 03 25
   BREEDING   21 02 00  00106
&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=besm6&amp;ditemid=42146&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://besm6.dreamwidth.org/42146.html</comments>
  <lj:security>public</lj:security>
  <lj:poster>spamsink</lj:poster>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://besm6.dreamwidth.org/41825.html</guid>
  <pubDate>Sun, 10 Aug 2025 00:53:41 GMT</pubDate>
  <title>Всеед без литералов</title>
  <link>https://besm6.dreamwidth.org/41825.html</link>
  <description>Posted by: &lt;span lj:user=&apos;spamsink&apos; style=&apos;white-space: nowrap;&apos; class=&apos;ljuser&apos;&gt;&lt;a href=&apos;https://spamsink.dreamwidth.org/profile&apos;&gt;&lt;img src=&apos;https://www.dreamwidth.org/img/silk/identity/user.png&apos; alt=&apos;[personal profile] &apos; width=&apos;17&apos; height=&apos;17&apos; style=&apos;vertical-align: text-bottom; border: 0; padding-right: 1px;&apos; /&gt;&lt;/a&gt;&lt;a href=&apos;https://spamsink.dreamwidth.org/&apos;&gt;&lt;b&gt;spamsink&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Задача: за минимальное количество команд получить на сумматоре всеед, не используя никаких литеральных констант.&lt;br /&gt;&lt;br /&gt;За 11 команд это делается тривиально:&lt;pre&gt;
 14,vtm,7777b . УИА &apos;7777&apos;(М16)
 ,ita,14      . СЧИ М16
 ,asn,64-12   . СДА 64-12
 ,its,14      . СЧИМ М16
 15,aex,      . НТЖ (М17)
 ,asn,64-12   . СДА 64-12
 ,its,14      . СЧИМ М16
 15,aex,      . НТЖ (М17)
 ,asn,64-12   . СДА 64-12
 ,its,14      . СЧИМ М16
 15,aex,      . НТЖ (М17)
&lt;/pre&gt;&lt;br /&gt;Кто меньше? Если для решения важен конкретный режим АУ, можно считать, что он уже установлен.&lt;br /&gt;&lt;br /&gt;По идее это должно быть можно сократить как минимум на пару-тройку команд (таки можно, попробуйте).&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=besm6&amp;ditemid=41825&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://besm6.dreamwidth.org/41825.html</comments>
  <lj:security>public</lj:security>
  <lj:poster>spamsink</lj:poster>
  <lj:reply-count>3</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://besm6.dreamwidth.org/41483.html</guid>
  <pubDate>Sun, 27 Jul 2025 05:41:16 GMT</pubDate>
  <title>Для памяти</title>
  <link>https://besm6.dreamwidth.org/41483.html</link>
  <description>Posted by: &lt;span lj:user=&apos;spamsink&apos; style=&apos;white-space: nowrap;&apos; class=&apos;ljuser&apos;&gt;&lt;a href=&apos;https://spamsink.dreamwidth.org/profile&apos;&gt;&lt;img src=&apos;https://www.dreamwidth.org/img/silk/identity/user.png&apos; alt=&apos;[personal profile] &apos; width=&apos;17&apos; height=&apos;17&apos; style=&apos;vertical-align: text-bottom; border: 0; padding-right: 1px;&apos; /&gt;&lt;/a&gt;&lt;a href=&apos;https://spamsink.dreamwidth.org/&apos;&gt;&lt;b&gt;spamsink&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Теперь мы умеем писать интроспективные программы (quine) на БЭСМ-6 на всех Фортранах&lt;br /&gt;&lt;pre&gt;
      РRОGRАМQ
      RЕАLХ(14)
      DАТА  Х /84Н(6Х8НРRОGRАМQ/6Х9НRЕАLХ(14)/6Х12НDАТА  Х /84Н9А6/5Х1НС
     С5А6,1Н//6Х9НРRINТ Х,Х/6Х3HЕND)/
      РRINТ Х,Х
      ЕND
&lt;/pre&gt;&lt;br /&gt;(для Форекса, не требующего PROGRAM, можно чуть короче),&lt;br /&gt;на Паскале-Мониторе&lt;br /&gt;&lt;pre&gt;
PROGRAM MAIN(OUTPUT);TYPE STRING=PACKED ARRAY[1..60]OF CHAR;
VAR L:ARRAY[1..6]OF STRING; I,J:INTEGER; Q,S:CHAR; BEGIN
L[1]:=’PROGRAM MAIN(OUTPUT);TYPE STRING=PACKED ARRAY[1..60]OF CHAR;’;
L[2]:=’VAR L:ARRAY[1..6]OF STRING; I,J:INTEGER; Q,S:CHAR; BEGIN    ’;
L[3]:=’Q:=ZZZZ; FOR I:=1 TO 2 DO WRITELN(L[I]); FOR I := 1 TO 6 DO ’;
L[4]:=’WRITELN(ZL[Z,I:1,Z]:=Z,Q,L[I],Q,Z;Z); FOR I:=3 TO 6 DO BEGIN’;
L[5]:=’FOR J:=1 TO 60 DO BEGIN S:=L[I][J]; IF S=ZZZ THEN IF J&amp;lt;&amp;gt;43  ’;
L[6]:=’THEN S:=Q; WRITE(S) END; WRITELN END END.                   ’;
Q:=’’’’; FOR I:=1 TO 2 DO WRITELN(L[I]); FOR I := 1 TO 6 DO
WRITELN(’L[’,I:1,’]:=’,Q,L[I],Q,’;’); FOR I:=3 TO 6 DO BEGIN
FOR J:=1 TO 60 DO BEGIN S:=L[I][J]; IF S=’Z’ THEN IF J&amp;lt;&amp;gt;43
THEN S:=Q; WRITE(S) END; WRITELN END END.
&lt;/pre&gt;&lt;br /&gt;(на Паскале-Автокоде тоже можно, в принципе)&lt;br /&gt;и на АЛГОЛе-ГДР&lt;br /&gt;&lt;pre&gt;
 ’BEGIN’’STRING’’ARRAY’L[1:7];’INTEGER’I,J;’STRING’Q,R,S;
 ’PROCEDURE’P(S);’STRING’S;’BEGIN’’FOR’J:=1’STEP’1’UNTIL’
 LENGTH(S)’DO’PRINT(’IF’J’NE’45’AND’S[J] = ’’/’’ ’THEN’ Q
 ’ELSE’ S[J]); PRINT(NEWLINE) ’END’; R := ’’1234567’’;
 L[1]:=’’/BEGIN//STRING//ARRAY/L[1:7];/INTEGER/I,J;/STRING/Q,R,S;’’;
 L[2]:=’’/PROCEDURE/P(S);/STRING/S;/BEGIN//FOR/J:=1/STEP/1/UNTIL/’’;
 L[3]:=’’LENGTH(S)/DO/PRINT(/IF/J/NE/45/AND/S[J] = ///// /THEN/ Q’’;
 L[4]:=’’/ELSE/ S[J]); PRINT(NEWLINE) /END/; R := //1234567//;’’;
 L[5]:=’’Q:=///47///;/FOR/ I:=1,2,3,4/DO/P(L[I]); /FOR/I:=1,2,3,4,’’;
 L[6]:=’’5,6,7/DO/PRINT(//L[//,R[I],//]:=//,Q,Q,L[I],Q,Q,//;//,’’;
 L[7]:=’’NEWLINE);/FOR/ I:=5,6,7 /DO/ P(L[I]); /END//EOP/’’;
 Q:=’’’47’’’;’FOR’ I:=1,2,3,4’DO’P(L[I]); ’FOR’I:=1,2,3,4,
 5,6,7’DO’PRINT(’’L[’’,R[I],’’]:=’’,Q,Q,L[I],Q,Q,’’;’’,
 NEWLINE);’FOR’ I:=5,6,7 ’DO’ P(L[I]); ’END’’EOP’
&lt;/pre&gt;&lt;br /&gt;На АЛГОЛЕ-БЭСМ им. Курочкина, по-видимому, это невозможно: неизвестен способ напечатать закрывающую кавычку.&lt;br /&gt;На ассемблерах, очевидно, тоже можно, но ломает.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=besm6&amp;ditemid=41483&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://besm6.dreamwidth.org/41483.html</comments>
  <lj:security>public</lj:security>
  <lj:poster>spamsink</lj:poster>
  <lj:reply-count>5</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://besm6.dreamwidth.org/41377.html</guid>
  <pubDate>Mon, 21 Jul 2025 21:03:03 GMT</pubDate>
  <title>Внезапная мысль</title>
  <link>https://besm6.dreamwidth.org/41377.html</link>
  <description>Posted by: &lt;span lj:user=&apos;spamsink&apos; style=&apos;white-space: nowrap;&apos; class=&apos;ljuser&apos;&gt;&lt;a href=&apos;https://spamsink.dreamwidth.org/profile&apos;&gt;&lt;img src=&apos;https://www.dreamwidth.org/img/silk/identity/user.png&apos; alt=&apos;[personal profile] &apos; width=&apos;17&apos; height=&apos;17&apos; style=&apos;vertical-align: text-bottom; border: 0; padding-right: 1px;&apos; /&gt;&lt;/a&gt;&lt;a href=&apos;https://spamsink.dreamwidth.org/&apos;&gt;&lt;b&gt;spamsink&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Подумалось - и удивительно, что раньше никогда не приходило в голову достаточно ясно, чтобы быть сформулированным: а ведь с МС &quot;Дубна&quot; БЕМШ состыковали, а автокод ИТМ - вовсе нет, хотя были люди, кроме М. Г. Чайковского, которые на нём программировали.&lt;br /&gt;&lt;br /&gt;То ли тут личные качества Чайковского сыграли роль, то ли слишком узок был круг тех людей, и не очень-то и хотелось, сейчас уже и не узнаешь.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=besm6&amp;ditemid=41377&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://besm6.dreamwidth.org/41377.html</comments>
  <lj:security>public</lj:security>
  <lj:poster>spamsink</lj:poster>
  <lj:reply-count>14</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://besm6.dreamwidth.org/41070.html</guid>
  <pubDate>Sat, 19 Jul 2025 16:40:17 GMT</pubDate>
  <title>Симлинки в &quot;Дубне&quot;</title>
  <link>https://besm6.dreamwidth.org/41070.html</link>
  <description>Posted by: &lt;span lj:user=&apos;spamsink&apos; style=&apos;white-space: nowrap;&apos; class=&apos;ljuser&apos;&gt;&lt;a href=&apos;https://spamsink.dreamwidth.org/profile&apos;&gt;&lt;img src=&apos;https://www.dreamwidth.org/img/silk/identity/user.png&apos; alt=&apos;[personal profile] &apos; width=&apos;17&apos; height=&apos;17&apos; style=&apos;vertical-align: text-bottom; border: 0; padding-right: 1px;&apos; /&gt;&lt;/a&gt;&lt;a href=&apos;https://spamsink.dreamwidth.org/&apos;&gt;&lt;b&gt;spamsink&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Типичная ситуация: в организации установлено несколько версий некоторого развивающегося продукта.&lt;br /&gt;Желательно, чтобы пользователям не нужно было знать, какая из установленных версий на этой неделе &quot;текущая&quot; и где она находится, а она вызывалась бы по умолчанию просто по имени продукта, и чтобы процесс смены текущей версии делался с минимальными затратами труда.&lt;br /&gt;&lt;br /&gt;Сегодня это делается с помощью символических ссылок, а вот как это делалось 45 лет назад:&lt;br /&gt;&lt;br /&gt;В каталоге стандартных оверлеев Монитора-80 видим цельный компилятор Форекс&lt;br /&gt;&lt;pre&gt;
        FОRЕХ*       60 0044 03   20664   01770
        LО*SУN       60 0046 03   33466   22654
        LО*GЕN       60 0062 35   33712   22654
&lt;/pre&gt;&lt;br /&gt;который, будучи вызван с помощью *FOREX, печатает&lt;br /&gt;&lt;tt&gt;F О R Е Х   ИПМ АН СССР           ВЕРСИЯ  2.02 ОТ  15.07.80&lt;/tt&gt;&lt;br /&gt;и работает. &lt;br /&gt;&lt;br /&gt;Также в каталоге видим&lt;br /&gt;&lt;pre&gt;
        FОRЕХ3*      60 0152 17   00136   01770
        LВ304010     60 0152 22   00011   02126
&lt;/pre&gt;&lt;br /&gt;(подозрительно короткий) и в дампе диска можно увидеть, что оверлей с этим именем вызывается по управляющей карте &lt;tt&gt;*FORX3&lt;/tt&gt;.&lt;br /&gt;&lt;br /&gt;Однако (в режиме *SYSTEM LOAD LIST),&lt;br /&gt;&lt;pre&gt;
           *FОRХ3
                   FОRЕХ3*     01770

   ОТСУТСТВУЕТ  FОRЕХ3*
          СВОБОД   01770
&lt;/pre&gt;&lt;br /&gt;Постойте-ка, как это он отсутствует, когда вот он только что нашёлся и загрузился в 01770? Да точно так же, как сейчас, когда симлинк битый, он в выдаче ls (без -l) виден как файл, а при попытке обратиться к нему получается No such file or directory. &lt;br /&gt;&lt;br /&gt;Вот как это работало: &lt;br /&gt;&lt;br /&gt;Короткая программка длиной 136₈ слов, когда грузится как оверлей, видит в памяти лист с содержимым каталога оверлеев, из которого она загрузилась, ищет в этом каталоге вхождение имени вида LBnnzzzz, читает зону nnzzzz в лист каталога оверлеев, берёт своё имя из своего заголовка оверлея и идёт снова в загрузчик.&lt;br /&gt;Содержимое фиктивного оверлея LBnuzzzz непринципиально, он никогда не загружается.&lt;br /&gt;&lt;br /&gt;Тут же видно, что образ Монитора-80, который достался организации К-71, дрался в другой организации с какого-то 29-мегабайтного диска (зоны 4010₈ на обычном 7.25-Мб диске не бывает). Форекс 3 у нас есть, например, на образе диска 2048 из ИТМиВТ (2148), откуда его надо было вызывать с помощью &lt;tt&gt;*TRANS:FOREX3*,,nu1550&lt;/tt&gt; (кто ж это упомнит, особенно две запятые подряд).&lt;br /&gt;&lt;br /&gt;Корректируем симлинк: закажем в паспорте ДИС 31(2148), правим на диске 2048 ровно одно слово (LB304010 на LB311550), и voil&amp;agrave;:&lt;br /&gt;&lt;pre&gt;
           *FОRХ3
                   FОRЕХ3*     01770
                   FОRЕХ3*     01770
                                                      19.07.25 М1
                   LО*SУN      31561
                   LО*GЕN      31561
F О R Е Х ИПМ АН СССР 4.12 ОТ 25.06.85 ВРЕМЯ:  00.00
&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=besm6&amp;ditemid=41070&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://besm6.dreamwidth.org/41070.html</comments>
  <lj:security>public</lj:security>
  <lj:poster>spamsink</lj:poster>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://besm6.dreamwidth.org/40841.html</guid>
  <pubDate>Fri, 30 May 2025 16:56:58 GMT</pubDate>
  <title>Последнее письмо от Пасынкова</title>
  <link>https://besm6.dreamwidth.org/40841.html</link>
  <description>Posted by: &lt;span lj:user=&apos;vak&apos; style=&apos;white-space: nowrap;&apos; class=&apos;ljuser&apos;&gt;&lt;a href=&apos;https://vak.dreamwidth.org/profile&apos;&gt;&lt;img src=&apos;https://www.dreamwidth.org/img/silk/identity/user.png&apos; alt=&apos;[personal profile] &apos; width=&apos;17&apos; height=&apos;17&apos; style=&apos;vertical-align: text-bottom; border: 0; padding-right: 1px;&apos; /&gt;&lt;/a&gt;&lt;a href=&apos;https://vak.dreamwidth.org/&apos;&gt;&lt;b&gt;vak&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Рылся в старой почте, набрёл на последнее письмо от Игоря Григорьевича Пасынкова. Перепощу его здесь для памяти. Со всеми колоритными авторскими опечатками.&lt;br /&gt;&lt;br /&gt;Две вещи привлекли моё внимание. Первое: что БЭСМ-6 была ответом на &lt;a href=&quot;https://en.wikipedia.org/wiki/Atlas_(computer)&quot;&gt;британский Atlas-2&lt;/a&gt;. Второе - контроллер дисков был подсмотрен у Generаl Electric.&lt;br /&gt;&lt;blockquote&gt;Thu, Aug 27, 2009 at 6:18 PM&lt;br /&gt;&lt;br /&gt;Сергей!&lt;br /&gt;Спасибо за приглашение  в чисто настальгически-воспоминатнльную группу, в которой готова вся инфраструктура для этого.&lt;br /&gt;Прежде, чем перейти в эту группу, сообщаю что я все рассылки чисто технологических проблем &amp;quot;реинкарнации&amp;quot; БЭСМ-6 записал в особый раздел своей почты.&lt;br /&gt;Через Анатолия Леженко я был в курсе  контактов с Сосновым Бором ещё на ранних этапах, когда в это НИИ съездил Томилин.&lt;br /&gt;Прочитал и о Вашей надежде перенести ЭТОТ ЭКЗЕМПЛЯР в Политехнический музей  (тьфу ... тьфу, чтоб это вышло!).&lt;br /&gt;Ты даже звонил по этому поводу к Маргарите Петровичевой!!! От всей Вашей почты веяло добром и радостью от настальгии, от того, что это, ЧЁРТ ПОБЕРИ, работает в эмуляционном режимеме. Если это все О&apos;кэй &amp;quot;in vintro&amp;quot;, тогда будет всё О&apos;кэй &amp;quot;in vivo&amp;quot;. &lt;br /&gt;-------- &lt;br /&gt;Это где-то в других странах и континентах. Но в это &amp;quot;ЕвроЖопии&amp;quot; все шиворот на выворот.&lt;br /&gt;Об этом моя грусть и печаль.&lt;br /&gt;------- &lt;br /&gt;Два года назад мы сформировали рабочую группу по созданию САЙТА истории АТОМНОЙ промышленности СССР-РОССИИ за 70 лет. Была студия в помещении бывшей АТС в Обнинске при ФЭИ. Это там, где была запущена первая АЭС в августе 1954 году по МИРНОМУ ИСПОЛЬЗОВАНИЮ АТОМНОЙ ЭНЕРГИИ.&lt;br /&gt;Чистой воды совковая пропаганда тех и последующих лет!!! На самом деле это был прототип РБМК Чернобольского типа 26 апреля 1986 года.&lt;br /&gt;Но всё же что-то было и позитивное &amp;quot;бомбе для Сталина&amp;quot;. Итоговая ГЕОПОЛИТИЧЕСКАЯ СТАБИЛЬНОСТЬ этого &amp;quot;...ного мира&amp;quot;.&lt;br /&gt;Баз него хотя бы посто Вы, молодое поколение, не родились,&lt;br /&gt;А главное, была группа студентов-практикантов из Обнинского филиала МИФИ. Всего-то надо было 30-50 К$ от целой отрасли РосАтом, где Миллиардные обороты всяких средств.&lt;br /&gt;Фига, ничего не дали!!! Всем всё пофигу, если ЭТО не на личный офшорный счёт на Кипре. &lt;br /&gt; &lt;br /&gt;------ Теперь более свежий пример --------&lt;br /&gt;Из этого музея, из 2-го подъезда &amp;quot;вышибли&amp;quot; группу, точнее фирму, Стаса Клименко как раз в этот понедельник 24 августа, где она за 6 месяцев развернула студию виртуальной реальности, точнее 3-D графики. Планировалось, что этот коллектив обеспечит проведение   экспозиций ДЛЯ ПОСЕТИТЕЛЕЙ как в &amp;quot;живую&amp;quot;(для пенсионеров и других осколков 20 века), так и по Интернету, т.е. с любых точек ПЛАНЕТЫ (&amp;quot;домена Земля-XXI&amp;quot;) по ВИРТУАЛЬНЫМ МУЗЕЯМ любой тематической РОССИЙСКОЙ направленности,&lt;br /&gt;Суть &amp;quot;вышибания&amp;quot; очень проста - гони &amp;quot;МОНЕТУ&amp;quot; в ОДИН МИЛЛИОН ДОЛЛАРОВ В ГОД. Место локализации Музея уникально и каждый метр этой площади дороже ЗОЛОТА воспоминаний  и настальгий!!!&lt;br /&gt;Теперь по новой группе (я это повторю в открытую).&lt;br /&gt;Успех БЭСМ-6 - в её родовитости:&lt;br /&gt;1) Это наш клон ATLAS-2 из UK. Специалисты из KDF UK читали в ИТМиВТ лекции и был выпуск по этой ЭВМ в ИТМиВТ в 1963 году.&lt;br /&gt;2) После 1970 года к ней подсоединили по 32 МД 7.5 Мбайт (в Арзамасе и Снеженски) и к 1974 году завод САМ на м. Бауманское запустил этот контролер в серию.&lt;br /&gt;Взяли всё с двух ЭВМ Generel Electric, купленных для видимости КИАЭ и ИТЭФ.&lt;br /&gt;Контролер на бэсмовских ячейках полностью повторял (по описанию) 12 разрядный контролер для  дисков на GE. У нас в ВЦ Виктор Козик повторил эти спецификации на 155 серии МИС (малые интегральные схемы советского производства), да еще у нас подключили мини ЭВМ HP-2100 (16-разрядная с очень &amp;quot;не ортогональной системой команд&amp;quot; - для прибористов, так как в то время - в 1970 году HP была сугубо приборостроительная фирма по акустики кино, медприборам и т.д. и т.п. В 1974 году, по следам нашей закупки этой мини-МиниЭВМ пошел Северо-Донецк и появилась М-6000 и М-7000 для атомной промышленности).&lt;br /&gt;Потом методом ползучей эволюции в нашем ВЦ  дошли до 16 болгарских дисков  МД-29МГбайт, подключенных к ТРЕМ БЭСМ-6, HP-2100 и М-6000 - такой гетерогенный кластер).&lt;br /&gt;Но для всех заводских БЭСМ-6 был заводской вариант на больших-больших платах БЭСМ-6.&lt;br /&gt;Но важен результат. Тем самым БЭСМ-6, будучи по железу ЭВМ Второго Поколения, по сути обходила наши союзные ЕС ЭВМ, жульнически тянутые с IBM-360, которые были уже Третьего Поколения (на МИС).&lt;br /&gt;Ну и отдельно нужно говорить о программном обеспечении - о двух загранкомандировках двух программистов СССР:&lt;br /&gt;1) о Николае  Николаевиче Говоруне из ЛВТ ОИЯТ (г. Дубна) в ЦЕРН&lt;br /&gt;- результат -&amp;gt; реализация (по машинным распечаткам на CDC-3200 в ВЦ Церна) Фортрана + библиотеки стандартных программ + МС &amp;quot;Дубна&amp;quot;. Толик Волков в 600 раз ускорил ассемблер SiBESM-6  Жоголева (ВЦ МГУ), который написал его заочно, ещё не имея живой машины - только по списку команд в 1966 году. Ассемблер назвали &amp;quot;Madlen&amp;quot;, обидев патриарха из МГУ.&lt;br /&gt; Шесть БЭСМ-6 было у ГДР и их программисты из ОИЯИ, поехав к себе на родину,&lt;br /&gt;сделали  свою версию ассемблера (ускорение в 700 раз) SiBesm-6, Фортан-ГДР (Фортран-4) и Алгол-ГДР.&lt;br /&gt;2) о Всеволоде Штаркмане из ВЦ ИПМ им.Келдыша в США на фирму ИБМ&lt;br /&gt;- результат -&amp;gt; автокод БЭМШ, ОС ДИСПАК и ОС ДИАПАК.&lt;br /&gt;Ничего подобного не было с ЭВМ МИНСК-32. Все прилавки в 1970 году были завалены этой ЭВМ для экономики и наши ребята в ИФВЭ сделали даже Кобол для этой ЭВМ.&lt;br /&gt;Но без постоянной модернизации и по МД и по терминальной сети эта ЭВМ была сметена&lt;br /&gt;ЕС ЭВМ 45. В Японии  же удвоили машинное слово - с 37 до 74  разряда и в режиме Супер ЭВМ  производили до 1995 года&lt;br /&gt;--- А это чистый исторический трёп, но очень Интересный по смыслу!!! ------&lt;br /&gt; На этих ЭВМ GE в США была система разделения времени Maltix, которая &amp;quot;позволяла делать многое и всегда плохо&amp;quot;. Именно эта ОС была на ЭВМ в Bell Labaratory и на которой &amp;quot;игрались&amp;quot; будующие создатели Unix, которые взревели от этого &amp;quot;монстрообразного&amp;quot; шедевра&lt;br /&gt;и поклялись функционально слелать то же самое, т.е. Систему Разделения Времени, но где будет иная архитектура из принципа &amp;quot;каждая программка делает что-то одно, но отлично!!!&amp;quot;&lt;br /&gt;Сначала на ассемблере сделали это на 8-разрядной ЭВМ PDP-8, а через пару лет уже на PDP-11 (16 разрядная), но сначала написали универсальный Ассемблер C+, скрестив BLIS (безтиповый мобильный Ассемблер) с идеями почти неподъемного Algol-68 (шедевр &amp;quot;тёмного немецкого гения&amp;quot;, совсем почти по Гегелю; от Алгола-68 взвыл Н.Вирт и создал Pascal).&lt;br /&gt;&lt;br /&gt;Замечу, что многие GE обслуживали через OS Multics серию товарных фьючерсных бирж в двух небоскребых &amp;quot;близнецах&amp;quot; с 1973  года, и так было лет 10. И я в 1974 году входил из Сокольников по телеграфным линиям на эту биржу - был там такой стенд в год  подготовки к полету &amp;quot;Апполон-Союз&amp;quot; в 1975 году.&lt;br /&gt; &lt;br /&gt;--&lt;br /&gt;Passynkov Igor, igormoscow1@rambler.ru&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=besm6&amp;ditemid=40841&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://besm6.dreamwidth.org/40841.html</comments>
  <lj:security>public</lj:security>
  <lj:poster>vak</lj:poster>
  <lj:reply-count>5</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://besm6.dreamwidth.org/40547.html</guid>
  <pubDate>Tue, 06 May 2025 06:27:10 GMT</pubDate>
  <title>Что нам стоит юникс построить</title>
  <link>https://besm6.dreamwidth.org/40547.html</link>
  <description>Posted by: &lt;span lj:user=&apos;vak&apos; style=&apos;white-space: nowrap;&apos; class=&apos;ljuser&apos;&gt;&lt;a href=&apos;https://vak.dreamwidth.org/profile&apos;&gt;&lt;img src=&apos;https://www.dreamwidth.org/img/silk/identity/user.png&apos; alt=&apos;[personal profile] &apos; width=&apos;17&apos; height=&apos;17&apos; style=&apos;vertical-align: text-bottom; border: 0; padding-right: 1px;&apos; /&gt;&lt;/a&gt;&lt;a href=&apos;https://vak.dreamwidth.org/&apos;&gt;&lt;b&gt;vak&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Если уж мечтать, то по крупному. Не взяться ли нам запустить юникс на БЭСМ-6? На виртуальной машине, конечно, то есть на SIMH. Затея была бы масштабная, но тем и интересная. Что для этого нужно с практической точки зрения?&lt;br /&gt;&lt;br /&gt;1. Сделать ассемблер, выдающий объектный файл в формате a.out. У нас есть аналогичный &lt;a href=&quot;https://github.com/besm6/mesm6/blob/master/toolchain/as/as.c&quot;&gt;ассемблер для Эльбруса-Б&lt;/a&gt; - фактически надо его упростить до системы команд БЭСМ-6.&lt;br /&gt;&lt;br /&gt;2. Сделать линкер, связывающий объектные файлы и библиотеки в формате a.out. Аналогично, переделываем &lt;a href=&quot;https://github.com/besm6/micro-besm/tree/master/toolchain/ld&quot;&gt;линкер от Эльбруса-Б&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;3. Написать на ассемблере начальный старт машины, инициализацию регистров, выдачу на консоль, обработку прерываний. Отладить на SIMH.&lt;br /&gt;&lt;br /&gt;4. Сделать компилятор Си для БЭСМ-6. Это отдельная большая тема. Компилятор должен уметь обработать исходники ядра. Тренироваться можно на исходниках ядра из &lt;a href=&quot;https://edu.anarcho-copy.org/UNIX/unix-version-7/x86-port/www.nordier.com/v7x86/&quot;&gt;проекта v7x86&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;5. Доработать ядро с учётом особенностей БЭСМ-6. Словная адресация штука коварная. &lt;br /&gt;&lt;br /&gt;6. Написать юниксные драйверы для бэсмовской периферии. Оживить таймер, консольный терминал, барабаны, диски.&lt;br /&gt;&lt;br /&gt;7. Переписать libc и libm для БЭСМ-6.&lt;br /&gt;&lt;br /&gt;8. Перенести основные системные бинарники /etc/init, /bin/sh, /etc/getty, /etc/mount, /etc/fsck и прочие.&lt;br /&gt;&lt;br /&gt;9. Сделать утилиту создания образа файловой системы БЭСМ-6 из Линукса. За основу взять fsutil и проекта bkunix.&lt;br /&gt;&lt;br /&gt;10. Перенести остальные утилиты из /bin и /usr/bin.&lt;br /&gt;&lt;br /&gt;Для переноса на БЭСМ-6 лучше всего подойдёт &lt;a href=&quot;https://en.wikipedia.org/wiki/Version_7_Unix&quot;&gt;Unix v7&lt;/a&gt;. Размер его ядра на i486 около 50 килобайт. На БЭСМ увеличится до 100 килобайт - вполне поместится в 192 килобайта адресного пространства БЭСМ. Есть два проекта Unix v7, откуда можно заимствовать исходники: &lt;a href=&quot;https://github.com/calmsacibis995/v7x86&quot;&gt;v7x86&lt;/a&gt; и &lt;a href=&quot;https://github.com/sergev/Unix-32V&quot;&gt;32V&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://github.com/RetroBSD/retrobsd&quot;&gt;RetroBSD&lt;/a&gt; не кандидат, к сожалению. Там размер около 170 килобайт на mips32, да ещё распухнет немного, да ещё данных надо хотя бы килобайт 60 - никак не лезет.&lt;br /&gt;&lt;br /&gt;Фантазий громадьё, но мечты имеют шанс стать реальностью. Мы точно знаем, что юникс на БЭСМ-6 возможен: в конце 80-х Андрей Основич и Коля Молчанов запускали Unix v6. Я своими глазами видел, стоял за пультом той машины. 😀&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=besm6&amp;ditemid=40547&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://besm6.dreamwidth.org/40547.html</comments>
  <lj:security>public</lj:security>
  <lj:poster>vak</lj:poster>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://besm6.dreamwidth.org/40322.html</guid>
  <pubDate>Sat, 26 Apr 2025 05:18:21 GMT</pubDate>
  <title>Страничные буфера в Би</title>
  <link>https://besm6.dreamwidth.org/40322.html</link>
  <description>Posted by: &lt;span lj:user=&apos;vak&apos; style=&apos;white-space: nowrap;&apos; class=&apos;ljuser&apos;&gt;&lt;a href=&apos;https://vak.dreamwidth.org/profile&apos;&gt;&lt;img src=&apos;https://www.dreamwidth.org/img/silk/identity/user.png&apos; alt=&apos;[personal profile] &apos; width=&apos;17&apos; height=&apos;17&apos; style=&apos;vertical-align: text-bottom; border: 0; padding-right: 1px;&apos; /&gt;&lt;/a&gt;&lt;a href=&apos;https://vak.dreamwidth.org/&apos;&gt;&lt;b&gt;vak&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Сейчас в Би внешний массив транслируется в BSS блок, оформленный как отдельная функция. Пример:&lt;blockquote&gt;&lt;pre&gt;
buf[1024];&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;превращается в:&lt;blockquote&gt;&lt;pre&gt;
 buf: ,name,&lt;br /&gt;      ,   ,&lt;br /&gt;      ,   , *+1&lt;br /&gt;      ,bss, 1024&lt;br /&gt;      ,end,&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;Я подумал, а ведь можно маленько хакнуть парсер и сделать страничные массивы похожим образом. Скажем, добавим плюсик: &lt;blockquote&gt;&lt;pre&gt;
buf[1024]+;&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;И пусть это станет:&lt;blockquote&gt;&lt;pre&gt;
 buf: ,name,&lt;br /&gt;   pp ,block, page(1024)&lt;br /&gt;      ,   ,&lt;br /&gt;      ,   , page&lt;br /&gt;      ,end,&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=besm6&amp;ditemid=40322&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://besm6.dreamwidth.org/40322.html</comments>
  <lj:security>public</lj:security>
  <lj:poster>vak</lj:poster>
  <lj:reply-count>1</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://besm6.dreamwidth.org/40083.html</guid>
  <pubDate>Fri, 25 Apr 2025 18:39:46 GMT</pubDate>
  <title>Кодировка ГОСТ</title>
  <link>https://besm6.dreamwidth.org/40083.html</link>
  <description>Posted by: &lt;span lj:user=&apos;vak&apos; style=&apos;white-space: nowrap;&apos; class=&apos;ljuser&apos;&gt;&lt;a href=&apos;https://vak.dreamwidth.org/profile&apos;&gt;&lt;img src=&apos;https://www.dreamwidth.org/img/silk/identity/user.png&apos; alt=&apos;[personal profile] &apos; width=&apos;17&apos; height=&apos;17&apos; style=&apos;vertical-align: text-bottom; border: 0; padding-right: 1px;&apos; /&gt;&lt;/a&gt;&lt;a href=&apos;https://vak.dreamwidth.org/&apos;&gt;&lt;b&gt;vak&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Кодировка ГОСТ на БЭСМ-6 нам дана от бога. Точнее, от разработчиков АЦПУ-128. Расположение символов в таблице в точности соответствует позиции буковок на вращающемся барабане АЦПУ. &lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://vak.dreamwidth.org/file/1672075.jpg&quot;&gt;&lt;img src=&quot;https://vak.dreamwidth.org/file/1672075.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Откуда мы знаем порядок символов? А у нас имеется так называемый диагональный тест. Незадолго до демонтажа последней БЭСМ-6 мне удалось попросить их главного инженера запустить тест АЦПУ и отсканировать результат. Суть теста в том, что в каждой строчке молоточки АЦПУ срабатывают с задержкой ровно на одну букву. Так что мы видим все символы один за одним.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://www.besm6.org/pictures/Drum-printer-test.gif&quot;&gt;&lt;img src=&quot;https://www.besm6.org/pictures/Drum-printer-test.gif&quot; width=&quot;800&quot; height=&quot;564&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Вот таблица кодировки ГОСТ:&lt;br /&gt;&lt;pre&gt;
 000 0  020 ⏨  040 А  060 Р  100 F  120 &amp;or;
 001 1  021 &amp;uarr;  041 Б  061 С  101 G  121 &amp;and;
 002 2  022 (  042 В  062 Т  102 I  122 &amp;sup;
 003 3  023 )  043 Г  063 У  103 J  123 &amp;not;
 004 4  024 &amp;times;  044 Д  064 Ф  104 L  124 &amp;divide;
 005 5  025 =  045 Е  065 Х  105 N  125 &amp;equiv;
 006 6  026 ;  046 Ж  066 Ц  106 Q  126 %
 007 7  027 [  047 З  067 Ч  107 R  127 ◇
 010 8  030 ]  050 И  070 Ш  110 S  130 |
 011 9  031 *  051 Й  071 Щ  111 U  131 ―
 012 +  032 &amp;lsquo;  052 К  072 Ы  112 V  132 _
 013 -  033 &amp;rsquo;  053 Л  073 Ь  113 W  133 !
 014 /  034 &amp;ne;  054 М  074 Э  114 Z  134 &amp;quot;
 015 ,  035 &amp;lt;  055 Н  075 Ю  115 &amp;oline;  135 Ъ
 016 .  036 &amp;gt;  056 О  076 Я  116 ⩽  136 &amp;deg;
 017    037 :  057 П  077 D  117 ⩾  137 &amp;prime;
&lt;/pre&gt;&lt;br /&gt;Получить её можно, запустив &amp;quot;dispak -x &lt;a href=&quot;https://github.com/besm6/besm6.github.io/blob/master/wiki/examples/gost-encoding.b6&quot;&gt;gost-encoding.b6&lt;/a&gt;&amp;quot;. Или &amp;quot;dubna &lt;a href=&quot;https://github.com/besm6/dubna/blob/main/examples/gost-encoding.dub&quot;&gt;gost-encoding.dub&lt;/a&gt;&amp;quot;. &lt;br /&gt;&lt;br /&gt;Между dispak и dubna есть тонкая разница: в форме буквы У. В дубне это Y. Так сделано намеренно, ведь в дубне в основном вывод делается на латинице, и русская буква слишком выпячивала бы.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=besm6&amp;ditemid=40083&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://besm6.dreamwidth.org/40083.html</comments>
  <lj:security>public</lj:security>
  <lj:poster>vak</lj:poster>
  <lj:reply-count>12</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://besm6.dreamwidth.org/39778.html</guid>
  <pubDate>Fri, 25 Apr 2025 06:16:25 GMT</pubDate>
  <title>Как нам улучшить Би</title>
  <link>https://besm6.dreamwidth.org/39778.html</link>
  <description>Posted by: &lt;span lj:user=&apos;vak&apos; style=&apos;white-space: nowrap;&apos; class=&apos;ljuser&apos;&gt;&lt;a href=&apos;https://vak.dreamwidth.org/profile&apos;&gt;&lt;img src=&apos;https://www.dreamwidth.org/img/silk/identity/user.png&apos; alt=&apos;[personal profile] &apos; width=&apos;17&apos; height=&apos;17&apos; style=&apos;vertical-align: text-bottom; border: 0; padding-right: 1px;&apos; /&gt;&lt;/a&gt;&lt;a href=&apos;https://vak.dreamwidth.org/&apos;&gt;&lt;b&gt;vak&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;В симуляторе dubna заработал компилятор с языка программирования Би. Подробности смотрите в списке рассылки: &lt;a href=&quot;https://groups.google.com/g/besm6/c/cRbp6A-dUXc/m/_al8inGlDQAJ&quot;&gt;besm6/c/cRbp6A-dUXc/m/_al8inGlDQAJ&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Чем Би может быть нам полезен? Во первых, в чисто познавательном отношении. Из его исходников многое видно и понятно. Во вторых, Би может помочь разобраться, что и как надо делать в компиляторе Си. &lt;br /&gt;&lt;br /&gt;Стоит ли улучшать сам компилятор Би? Судя по сдержанной реакции публики, никто так и не заглянул в порождаемый ассемблерный код. Там нельзя сказать чтобы совсем ужас-ужас, но можно многое улучшить. Это одно потенциальное направление развития. Другое направление - вместо ассемблерного текста выдавать сразу бинарный объектный модуль. Но честно говоря, я не вижу, кто собирается пользоваться этим компилятором. Так что актуальность низкая.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Как улучшить качество генерируемого кода?&lt;/strong&gt; Сейчас код выдаётся сразу непосредственно из парсера. По этой причине никакая пост-обработка невозможна. Надо вместо немедленной выдачи кода через printf (или write) складывать его в некий буфер. Это может быть массив размером, скажем на 100 машинных команд или больше, там видно будет. Для каждой команды можно хранить четыре слова:&lt;ul&gt;&lt;li&gt;номер индекс регистра&lt;/li&gt;&lt;li&gt;код машинной команды&lt;/li&gt;&lt;li&gt;тип адреса&lt;/li&gt;&lt;li&gt;значение адреса&lt;/li&gt;&lt;/ul&gt;Смысл значения адреса зависит от типа адреса. Для глобальных переменных это индекс в таблице имён. Для локальных переменных это смещение относительно базового регистра r7. Для формальных параметров функции это смещение относительно базового регистра r6. Для литералов это собственно содержимое слова-литерала. Для меток это уникальный индекс метки.&lt;br /&gt;&lt;br /&gt;После каждого добавления машинной команды в этот буфер вызывается функция оптимизации. Она реализует набор эвристик. Смотрит на последнюю команду и на предыдущие, и при возможности заменяет их на более оптимальную последовательность. К примеру, сейчас присваивание &amp;quot;x = y&amp;quot; генерится как:&lt;blockquote&gt;&lt;pre&gt;
  14,VTM,X&lt;br /&gt;    ,ITA,14&lt;br /&gt;  14,VTM,Y&lt;br /&gt;    ,ITS,14&lt;br /&gt;    ,ATI,14&lt;br /&gt;  14,XTA,&lt;br /&gt;  15,WTC,&lt;br /&gt;    ,ATX,&lt;/pre&gt;&lt;/blockquote&gt;Это безобразие должно преобразовываться в:&lt;blockquote&gt;&lt;pre&gt;
    ,XTA,Y&lt;br /&gt;    ,ATX,X&lt;/pre&gt;&lt;/blockquote&gt;&lt;em&gt;&lt;strong&gt;Как выдавать бинарный модуль?&lt;/strong&gt;&lt;/em&gt; У нас имеется реализация формата бэсмовского модуля на Си: &lt;a href=&quot;https://github.com/besm6/mesm6/blob/master/toolchain/ld/stdobj.c&quot;&gt;stdobj.c&lt;/a&gt;, &lt;a href=&quot;https://github.com/besm6/mesm6/blob/master/toolchain/ld/stdobj.h&quot;&gt;stdobj.h&lt;/a&gt;. Переписать это дело на Би и вызывать вместо печати мадленовского текста.&lt;br /&gt;&lt;br /&gt;Придётся переделать размещение строковых литералов. Проще всего писать их на временный барабан, а в конце каждой функции добавлять в конец бинарного модуля.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=besm6&amp;ditemid=39778&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://besm6.dreamwidth.org/39778.html</comments>
  <category>dubna</category>
  <category>b</category>
  <lj:security>public</lj:security>
  <lj:poster>vak</lj:poster>
  <lj:reply-count>3</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://besm6.dreamwidth.org/39441.html</guid>
  <pubDate>Wed, 02 Apr 2025 16:06:23 GMT</pubDate>
  <title>Си для БЭСМ-6 будет хорошей добавкой к компании</title>
  <link>https://besm6.dreamwidth.org/39441.html</link>
  <description>Posted by: &lt;span lj:user=&apos;spamsink&apos; style=&apos;white-space: nowrap;&apos; class=&apos;ljuser&apos;&gt;&lt;a href=&apos;https://spamsink.dreamwidth.org/profile&apos;&gt;&lt;img src=&apos;https://www.dreamwidth.org/img/silk/identity/user.png&apos; alt=&apos;[personal profile] &apos; width=&apos;17&apos; height=&apos;17&apos; style=&apos;vertical-align: text-bottom; border: 0; padding-right: 1px;&apos; /&gt;&lt;/a&gt;&lt;a href=&apos;https://spamsink.dreamwidth.org/&apos;&gt;&lt;b&gt;spamsink&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;Вон, даже для PDP-1 сделали!&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;https://github.com/fkokosinski/pdp1-playground&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=besm6&amp;ditemid=39441&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://besm6.dreamwidth.org/39441.html</comments>
  <lj:security>public</lj:security>
  <lj:poster>spamsink</lj:poster>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://besm6.dreamwidth.org/39367.html</guid>
  <pubDate>Sat, 22 Mar 2025 22:55:53 GMT</pubDate>
  <title>Книжка Мазного в компьютерном музее</title>
  <link>https://besm6.dreamwidth.org/39367.html</link>
  <description>Posted by: &lt;span lj:user=&apos;vak&apos; style=&apos;white-space: nowrap;&apos; class=&apos;ljuser&apos;&gt;&lt;a href=&apos;https://vak.dreamwidth.org/profile&apos;&gt;&lt;img src=&apos;https://www.dreamwidth.org/img/silk/identity/user.png&apos; alt=&apos;[personal profile] &apos; width=&apos;17&apos; height=&apos;17&apos; style=&apos;vertical-align: text-bottom; border: 0; padding-right: 1px;&apos; /&gt;&lt;/a&gt;&lt;a href=&apos;https://vak.dreamwidth.org/&apos;&gt;&lt;b&gt;vak&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Оказывается, книжка Мазного, что я вручил Джону Холлару пятнадцать лет назад, не потерялась, а хранится в компьютерном музее.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://www.computerhistory.org/collections/catalog/102727535&quot;&gt;https://www.computerhistory.org/collections/catalog/102727535&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Жаль нельзя её листать удалённо.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=besm6&amp;ditemid=39367&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://besm6.dreamwidth.org/39367.html</comments>
  <lj:security>public</lj:security>
  <lj:poster>vak</lj:poster>
  <lj:reply-count>3</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://besm6.dreamwidth.org/38961.html</guid>
  <pubDate>Sun, 16 Mar 2025 07:14:25 GMT</pubDate>
  <title>Перепрём Паскалечку на язык родных о&apos;Син</title>
  <link>https://besm6.dreamwidth.org/38961.html</link>
  <description>Posted by: &lt;span lj:user=&apos;spamsink&apos; style=&apos;white-space: nowrap;&apos; class=&apos;ljuser&apos;&gt;&lt;a href=&apos;https://spamsink.dreamwidth.org/profile&apos;&gt;&lt;img src=&apos;https://www.dreamwidth.org/img/silk/identity/user.png&apos; alt=&apos;[personal profile] &apos; width=&apos;17&apos; height=&apos;17&apos; style=&apos;vertical-align: text-bottom; border: 0; padding-right: 1px;&apos; /&gt;&lt;/a&gt;&lt;a href=&apos;https://spamsink.dreamwidth.org/&apos;&gt;&lt;b&gt;spamsink&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;Невзирая на сильное пересечение аудиторий разных бэсмовских форумов, напишу и здесь: проект&amp;nbsp;https://github.com/leobru/pas2c-metamorph посвящен переделке компилятора Паскаль-Монитор в компилятор Си.&lt;br /&gt;&lt;br /&gt;Ограничения, вызванные спецификой архитектуры:&lt;ul&gt;&lt;li&gt;Разрядность целых - 48 бит, но работающий диапазон значений для арифметических операций - 41. Сравнение &amp;quot;меньше 0&amp;quot; проверяет не старший бит, а 41-й.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Для unsigned более или менее эффективными полноразрядными могут быть только сложение и вычитание; желательны два режима: быстрый с использованием СЛЦ (ARX) невзирая на риск циклического переноса, и аккуратное сложение по модулю 2^48. Умножение и деление будут, соответственно, медленным и безумно медленным.&lt;/li&gt;&lt;li&gt;Применение сдвигов влево к целым числам может приводить к UB (полезна будет опция явного зануления 48-42 разрядов).&lt;/li&gt;&lt;li&gt;Т. к. стек растет вверх, компиляция vararg functions потребует двух frame registers.&lt;/li&gt;&lt;li&gt;Объявление register будет полезно только для словных указателей и (в будущем)&amp;nbsp;для &amp;quot;unsigned short&amp;quot;. Регистровый unsigned short будет 15-битный.&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;Ограничения, вызванные спецификой платформы/системы программирования:&lt;ul&gt;&lt;li&gt;При раздельной компиляции для глобальных переменных linkage по умолчанию будет static. Это позволит более эффективное обращение к этим переменным с помощью базового регистра. Глобальные переменные, требующие обращения из нескольких файлов, должны будут быть объявлены как&amp;nbsp; extern везде и быть одной длины (ср. фортрановский common block).&lt;/li&gt;&lt;li&gt;У main (поначалу?) не будет параметров.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Работа с файлами будет рудиментарная.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Последовательность байтов в слове будет для совместимости - от старшего к младшему.&lt;/li&gt;&lt;li&gt;Пребразование между (int*) и (char*) - номинальное. *(int*)charPtr обратится к слову, где-то в котором находится указываемый символ. Обращение *(char*)intPtr, если intPtr не был получен из char*, пойдёт в никуда (прочитается 0, запись не приведет к изменению памяти).&amp;nbsp;&lt;/li&gt;&lt;li&gt;Использование вложенных функций, минимизируя необходимость передавать параметры,&amp;nbsp;экономит много памяти. Это, возможно, стоит сохранить.&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Если что забыл, буду добавлять.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/leobru/pas2c-metamorph/blob/main/TODO.md&quot;&gt;&amp;nbsp;Что пока не сделано&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=besm6&amp;ditemid=38961&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://besm6.dreamwidth.org/38961.html</comments>
  <lj:security>public</lj:security>
  <lj:poster>spamsink</lj:poster>
  <lj:reply-count>24</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://besm6.dreamwidth.org/38671.html</guid>
  <pubDate>Tue, 11 Mar 2025 17:53:19 GMT</pubDate>
  <title>Дошли руки посмотреть</title>
  <link>https://besm6.dreamwidth.org/38671.html</link>
  <description>Posted by: &lt;span lj:user=&apos;spamsink&apos; style=&apos;white-space: nowrap;&apos; class=&apos;ljuser&apos;&gt;&lt;a href=&apos;https://spamsink.dreamwidth.org/profile&apos;&gt;&lt;img src=&apos;https://www.dreamwidth.org/img/silk/identity/user.png&apos; alt=&apos;[personal profile] &apos; width=&apos;17&apos; height=&apos;17&apos; style=&apos;vertical-align: text-bottom; border: 0; padding-right: 1px;&apos; /&gt;&lt;/a&gt;&lt;a href=&apos;https://spamsink.dreamwidth.org/&apos;&gt;&lt;b&gt;spamsink&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Много лет я знал об ошибке&lt;br /&gt;&lt;pre&gt;
 00001    1  0 PROGRAM MAIN(OUTPUT);
 00007    2  2 FUNCTION F:INTEGER; _( F := 5 _);
 00017    3  1 PROCEDURE WR(I, J, K: INTEGER);
 00017    4  2 _( WRITELN(I, J, K) _);
 00035    5  2 _(
 00036    6  2    WRITELN(F, F + 5, 5 + F);
 ******41 HET ЗAПЯT ИЛИ CKOБKИ ИЛИ MAЛO ПAPAMETPOB
 00053    7  2    WR(F, F + 5, 5 + F)
        *****             0
 00065    8  0 _).
&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Казалось бы, почему выражение &quot;F + 5&quot; нормально понимается в WRITELN, но не в вызове процедуры?&lt;br /&gt;Отгадка такова: конкретно при обработке параметров процедур, если первый токен аргумента - имя подпрограммы, а следующий - не открывающая скобка, то это похоже на передачу ссылки на подпрограмму, и нужно проверить, как это соотносится с типом формального параметра.&lt;br /&gt;&lt;br /&gt;Ошибка была в том, что в случае передачи ссылки следующий токен может быть только запятой или закрывающей скобкой, в противном случае это просто выражение. А проверки на запятую или закрывающую скобку не было, отчего любое упоминание функции без параметров в качестве первого токена казалось передачей ссылки, и разбор параметра прекращался.&lt;br /&gt;&lt;br /&gt;Исправлено на гитхабе в besm6/pascal-re/pascompl.cc.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=besm6&amp;ditemid=38671&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://besm6.dreamwidth.org/38671.html</comments>
  <lj:security>public</lj:security>
  <lj:poster>spamsink</lj:poster>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://besm6.dreamwidth.org/38581.html</guid>
  <pubDate>Tue, 11 Mar 2025 15:49:59 GMT</pubDate>
  <title>Ещё улучшение рантайм-библиотеки Паскаля</title>
  <link>https://besm6.dreamwidth.org/38581.html</link>
  <description>Posted by: &lt;span lj:user=&apos;spamsink&apos; style=&apos;white-space: nowrap;&apos; class=&apos;ljuser&apos;&gt;&lt;a href=&apos;https://spamsink.dreamwidth.org/profile&apos;&gt;&lt;img src=&apos;https://www.dreamwidth.org/img/silk/identity/user.png&apos; alt=&apos;[personal profile] &apos; width=&apos;17&apos; height=&apos;17&apos; style=&apos;vertical-align: text-bottom; border: 0; padding-right: 1px;&apos; /&gt;&lt;/a&gt;&lt;a href=&apos;https://spamsink.dreamwidth.org/&apos;&gt;&lt;b&gt;spamsink&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Как мы выяснили в 2019 году, если оператор построения множеств с переменными границами использовался в операторе вывода не в первом аргументе, например,&lt;br /&gt;&lt;pre&gt;
program main(output);
var a, b:integer;
begin
  a := 1; b := 20;
  writeln(&apos; expect true: &apos;, 5 in [a..b]);
end.
&lt;/pre&gt;&lt;br /&gt;значение этого аргумента и всех последующих не печаталось, но бывало и аварийное завершение.&lt;br /&gt;&lt;br /&gt;Не прошло и 6 лет, как я разобрался. 12 регистр - указатель на текущий файл - нельзя использовать при вычислении выражений: на случай, если выражение записано в операторе write с несколькими аргументами, в котором случае между аргументами он ради экономии не переустанавливается.&lt;br /&gt;&lt;br /&gt;В процедуре, конструирующей множества с переменными границами, видим:&lt;br /&gt;&lt;pre&gt;
 p/pi    :      , name,         . dtran  /01.06.84/
                , ntr , 3
            15  , a-x , -1
                , u1a , *0005b
                , sti , 14
                , ati , 12 . надо , ati, 10
             1  , xta , 24b
            14  , asn , 64-47
            12  , asn , 64 . надо 10, asn, 64
            13  , uj  ,

 *0005b  :  15  , utm , -1
                , xta ,
            13  , uj  ,
                , end ,
&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Если внести правки, указанные в комментариях, всё работает штатно.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=besm6&amp;ditemid=38581&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://besm6.dreamwidth.org/38581.html</comments>
  <lj:security>public</lj:security>
  <lj:poster>spamsink</lj:poster>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://besm6.dreamwidth.org/38161.html</guid>
  <pubDate>Tue, 11 Mar 2025 01:06:12 GMT</pubDate>
  <title>Улучшение рантайм-библиотеки Паскаля</title>
  <link>https://besm6.dreamwidth.org/38161.html</link>
  <description>Posted by: &lt;span lj:user=&apos;spamsink&apos; style=&apos;white-space: nowrap;&apos; class=&apos;ljuser&apos;&gt;&lt;a href=&apos;https://spamsink.dreamwidth.org/profile&apos;&gt;&lt;img src=&apos;https://www.dreamwidth.org/img/silk/identity/user.png&apos; alt=&apos;[personal profile] &apos; width=&apos;17&apos; height=&apos;17&apos; style=&apos;vertical-align: text-bottom; border: 0; padding-right: 1px;&apos; /&gt;&lt;/a&gt;&lt;a href=&apos;https://spamsink.dreamwidth.org/&apos;&gt;&lt;b&gt;spamsink&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Имеющаяся в библиотеке Паскаля процедура печати целых чисел написана на отвяжись и приводит к краху при попытке напечатать самое большое по абсолютной величине представимое отрицательное число -2&lt;sup&gt;40&lt;/sup&gt;, а также иногда печатает мусор вместо младшей цифры при печати больших (грубо,  abs(x) &amp;gt; 2&lt;sup&gt;38&lt;/sup&gt;) чисел. &lt;br /&gt;&lt;br /&gt;Было, например:&lt;br /&gt;&lt;pre&gt;
 00001    1  0 PROGRAM HELLO(OUTPUT);
 00001    2  1 VAR I:INTEGER;
 00007    3  2 BEGIN
 00010    4  3         FOR I := 6417777777777777C DOWNTO 6417777777777760C DO _(
 00011    5  3         WRITE(’&amp;lt;’, -I:0, ’&amp;gt; ’);
 00017    6  3         WRITELN(’&amp;lt;’, I: 0, ’&amp;gt;’);
 00025    7  2         _);
 00027    8  2         WRITELN(7777T);
 00033    9  2         WRITELN(’&amp;lt;’, 642T: 0, ’&amp;gt;’);
 00052   10  0 END.
           *EXECUTE
&amp;lt;-1099511627775&amp;gt; &amp;lt;1099511627775&amp;gt;
&amp;lt;-1099511627774&amp;gt; &amp;lt;1099511627774&amp;gt;
&amp;lt;-1099511627773&amp;gt; &amp;lt;1099511627773&amp;gt;
&amp;lt;-1099511627772&amp;gt; &amp;lt;1099511627772&amp;gt;
&amp;lt;-1099511627771&amp;gt; &amp;lt;1099511627771&amp;gt;
&amp;lt;-1099511627770&amp;gt; &amp;lt;1099511627770&amp;gt;
&amp;lt;-109951162777&amp;gt; &amp;lt;109951162777&amp;gt;
&amp;lt;-109951162776.&amp;gt; &amp;lt;109951162777.&amp;gt;
&amp;lt;-109951162776-&amp;gt; &amp;lt;109951162777-&amp;gt;
&amp;lt;-1099511627766&amp;gt; &amp;lt;1099511627766&amp;gt;
&amp;lt;-1099511627765&amp;gt; &amp;lt;1099511627765&amp;gt;
&amp;lt;-1099511627764&amp;gt; &amp;lt;1099511627764&amp;gt;
&amp;lt;-1099511627763&amp;gt; &amp;lt;1099511627763&amp;gt;
&amp;lt;-1099511627762&amp;gt; &amp;lt;1099511627762&amp;gt;
&amp;lt;-1099511627761&amp;gt; &amp;lt;1099511627761&amp;gt;
&amp;lt;-1099511627760&amp;gt; &amp;lt;1099511627760&amp;gt;
*NO INTEGER*
 КОНТРОЛЬ КОМАНДЫ
&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Причина этого - &quot;оптимизированное&quot; целочисленное деление на 10, которое дает неправильный результат при делении отрицательных или больших чисел. Ну и, разумеется, попытка сразу сменить знак числа, если оно было отрицательное.&lt;br /&gt;&lt;br /&gt;Попробуем переписать ответственную за это процедуру P/WI как положено. &lt;br /&gt;&lt;br /&gt;Чтобы не было проблем с самым большим отрицательным числом, и чтобы не возиться с проверкой конкретно на него, будем первым делом делить число на 10 и определять младшую цифру, и только потом заботиться о том, чтобы последующий цикл работал только с неотрицательными числами.&lt;br /&gt;&lt;br /&gt;Получилось даже на пару слов короче, чем оригинал. &quot;А что, так можно было?&quot;&amp;trade;&lt;br /&gt;&lt;pre&gt;
 P/WI    :,NAME,
 P/7A    :,SUBP,
 PASZERO*:,LC,1
 PASMINS*:,LC,1
 SPACE*  :,LC,1
        15,UTM,15    . ALLOCA(15)
         1,AOX,11B   . =I0 ENFORCE INTEGER EXPONENT ON VALUE
          ,ITS,13
          ,ITS,8
         8,BASE,ONETENTH
          ,XTS,=:774 . EXPONENT FIELD
        15,AAX,-3    . &amp; VALUE
         1,AEX,11B   . CHECK FOR STRAY BITS IN EXPONENT
          ,UZA,GOOD  . IF NONE, GOOD
        11,VTM,NOINT . *NO INTEGER*
        10,VTM,14B
        13,VTM,EXIT
          ,UJ,P/7A   . FIELD WIDTH IS IGNORED HERE, AS IN THE ORIGINAL
 GOOD:    ,BSS,
C WITHIN GOOD, AFTER PUSHING R2, THE STACK IS
C -20   -19    -6   -5     -4    -3  -2 -1
C WIDTH DIGITS SIGN CURVAL VALUE R13 R8 R2 
          ,ITA,2
        15,XTS,-4    . &amp;lt;- VALUE
          ,ASN,64+40 . OR ,ASN,64-8; ,YTA, IF FASTER
         1,AAX,10B   . =1
        15,ATX,-6    . -&amp;gt; SIGN
        15,XTA,-4    . &amp;lt;- VALUE
         2,VTM,0
          ,NTR,
          ,A*X,=R0.1
          ,NTR,3
         1,AMX,11B   . =I0 ACC = FLOOR(ABS(VALUE*0.1)))
        15,ATX,-5    . -&amp;gt; CURVAL (GUARANTEED NON-NEGATIVE)
          ,A*X,TEN
          ,YTA,64    . NOW ACC = ABS(VALUE) / 10 * 10
        15,AVX,-4    . RESTORE SIGN
        15,AMX,-4    . SUBTRACT VALUE
         1,AVX,17B   . =I-1 (NEGATE)
 LOOP:   2,UTC,
        15,ATX,-19   . -&amp;gt; DIGITS[R2]
        15,XTA,-5    . &amp;lt;- CURVAL
        15,ATX,-4    . -&amp;gt; VALUE
         2,UTM,1     . INCREMENT NUMBER OF DIGITS WRITTEN
         1,AEX,11B   . =I0
          ,UZA,OUTPUT . NO MORE DIGITS TO PRODUCE
        15,XTA,-4    . &amp;lt;- VALUE
          ,A*X,ONETENTH . NOW WE CAN USE CHEAPER METHODS TO DIVIDE
        15,ATX,-5    . -&amp;gt; CURVAL
          ,A*X,TEN
          ,YTA,64    . ACC = VALUE / 10 * 10
        15,X-A,-4    . ACC = VALUE - ACC
          ,UJ,LOOP
 OUTPUT:  ,ITA,2     . &amp;lt;- NUM_DIGITS
        15,ARX,-6    . + SIGN
         1,AEX,11B   . =I0
        15,A-X,-20   . ACC = NUM_DIGITS + SIGN - WIDTH
          ,CALL,P/SP . IF ACC &amp;lt; 0, WRITE -ACC SPACES
        15,XTA,-6    . &amp;lt;- SIGN
          ,UZA,NOMINUS
          ,UTC,PASMINS*
          ,XTA,
          ,CALL,P/CW . PRNTING MINUS 
 NOMINUS:2,UTC,
        15,XTA,-20   . &amp;lt;- DIGITS[R2]
          ,AAX,=377
          ,UTC,PASZERO*
          ,ARX,
         2,UTM,-1
C ONE WORD LONGER THAN ,CALL,P/CW BUT FASTER (AS IN THE ORIGINAL)
        12,WTC,
          ,ATX,
          ,CALL,P/PF
         2,V1M,NOMINUS
        15,XTA,
          ,ATI,2
 EXIT:  15,XTA,-1
          ,ATI,8
        15,UTM,-19
        15,WTC,17
          ,UJ,
 ONETENTH:,LOG,4001 4631 4631 4632
 TEN:     ,LOG,4000 0000 0000 0012
 NOINT:   ,ISO,12H*NO INTEGER*
          ,END,
&lt;/pre&gt;&lt;br /&gt;Пробуем:&lt;br /&gt;&lt;pre&gt;
 00001    1  0 РRОGRАМ НЕLLО(ОUТРUТ);
 00001    2  1 VАR I:INТЕGЕR;
 00007    3  2 ВЕGIN
 00010    4  3  FОR I := 6417777777777777С DОWNТО 6417777777777760С DО _(
 00011    5  3  WRIТЕ(’&amp;lt;’, -I:0, ’&amp;gt; ’);
 00017    6  3  WRIТЕLN(’&amp;lt;’, I: 0, ’&amp;gt;’);
 00025    7  2  _);
 00027    8  2         WRIТЕLN(7777Т);
 00033    9  2  WRIТЕLN(’&amp;lt;’, 642Т: 0, ’&amp;gt;’);
 00052   10  0 ЕND.
           *LIВRА:13
           *ЕХЕСUТЕ
&amp;lt;-1099511627775&amp;gt; &amp;lt;1099511627775&amp;gt;
&amp;lt;-1099511627774&amp;gt; &amp;lt;1099511627774&amp;gt;
&amp;lt;-1099511627773&amp;gt; &amp;lt;1099511627773&amp;gt;
&amp;lt;-1099511627772&amp;gt; &amp;lt;1099511627772&amp;gt;
&amp;lt;-1099511627771&amp;gt; &amp;lt;1099511627771&amp;gt;
&amp;lt;-1099511627770&amp;gt; &amp;lt;1099511627770&amp;gt;
&amp;lt;-1099511627769&amp;gt; &amp;lt;1099511627769&amp;gt;
&amp;lt;-1099511627768&amp;gt; &amp;lt;1099511627768&amp;gt;
&amp;lt;-1099511627767&amp;gt; &amp;lt;1099511627767&amp;gt;
&amp;lt;-1099511627766&amp;gt; &amp;lt;1099511627766&amp;gt;
&amp;lt;-1099511627765&amp;gt; &amp;lt;1099511627765&amp;gt;
&amp;lt;-1099511627764&amp;gt; &amp;lt;1099511627764&amp;gt;
&amp;lt;-1099511627763&amp;gt; &amp;lt;1099511627763&amp;gt;
&amp;lt;-1099511627762&amp;gt; &amp;lt;1099511627762&amp;gt;
&amp;lt;-1099511627761&amp;gt; &amp;lt;1099511627761&amp;gt;
&amp;lt;-1099511627760&amp;gt; &amp;lt;1099511627760&amp;gt;
*NО INТЕGЕR*
&amp;lt;-1099511627776&amp;gt;
 КОНЕЦ ЗАДАЧИ
&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;То-то же.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=besm6&amp;ditemid=38161&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://besm6.dreamwidth.org/38161.html</comments>
  <lj:security>public</lj:security>
  <lj:poster>spamsink</lj:poster>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://besm6.dreamwidth.org/38068.html</guid>
  <pubDate>Sun, 09 Mar 2025 08:07:33 GMT</pubDate>
  <title>Таблица символов ISO</title>
  <link>https://besm6.dreamwidth.org/38068.html</link>
  <description>Posted by: &lt;span lj:user=&apos;vak&apos; style=&apos;white-space: nowrap;&apos; class=&apos;ljuser&apos;&gt;&lt;a href=&apos;https://vak.dreamwidth.org/profile&apos;&gt;&lt;img src=&apos;https://www.dreamwidth.org/img/silk/identity/user.png&apos; alt=&apos;[personal profile] &apos; width=&apos;17&apos; height=&apos;17&apos; style=&apos;vertical-align: text-bottom; border: 0; padding-right: 1px;&apos; /&gt;&lt;/a&gt;&lt;a href=&apos;https://vak.dreamwidth.org/&apos;&gt;&lt;b&gt;vak&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Фактически это вариант КОИ-7, принятый в качестве основной кодировки в мониторной системе &amp;quot;Дубна&amp;quot;. Таблица зашита в системную процедуру PRINT8, так что менять её не представляется разумным.&lt;br /&gt;&lt;pre&gt;&lt;span style=&quot;font-size: larger;&quot;&gt;  000    020 &amp;lsquo;  040    060 0  100 &amp;deg;  120 P  140 Ю  160 П&lt;br /&gt;  001    021    041 !  061 1  101 A  121 Q  141 A  161 Я&lt;br /&gt;  002    022    042 &amp;quot;  062 2  102 B  122 R  142 Б  162 P&lt;br /&gt;  003    023    043 &amp;ne;  063 3  103 C  123 S  143 Ц  163 C&lt;br /&gt;  004    024    044 ◇  064 4  104 D  124 T  144 Д  164 T&lt;br /&gt;  005 Ъ  025 ―  045 %  065 5  105 E  125 U  145 E  165 Y&lt;br /&gt;  006 &amp;times;  026 &amp;uarr;  046 &amp;and;  066 6  106 F  126 V  146 Ф  166 Ж&lt;br /&gt;  007    027 ⏨  047 &amp;prime;  067 7  107 G  127 W  147 Г  167 B&lt;br /&gt;  010    030 &amp;ne;  050 (  070 8  110 H  130 X  150 X  170 Ь&lt;br /&gt;  011    031 &amp;deg;  051 )  071 9  111 I  131 Y  151 И  171 Ы&lt;br /&gt;  012    032 &amp;divide;  052 *  072 :  112 J  132 Z  152 Й  172 З&lt;br /&gt;  013    033 &amp;rsquo;  053 +  073 ;  113 K  133 [  153 K  173 Ш&lt;br /&gt;  014    034 &amp;sup;  054 ,  074 &amp;lt;  114 L  134 &amp;oline;  154 Л  174 Э&lt;br /&gt;  015    035 &amp;equiv;  055 -  075 =  115 M  135 ]  155 M  175 Щ&lt;br /&gt;  016 ⩽  036 &amp;or;  056 .  076 &amp;gt;  116 N  136 |  156 H  176 Ч&lt;br /&gt;  017 ⩾  037 &amp;not;  057 /  077 &amp;uarr;  117 O  137 _  157 O  177&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;Получить эту таблицу нетрудно с помощью программы на Паскале: &lt;a href=&quot;https://github.com/besm6/dubna/blob/main/examples/iso-encoding.dub&quot;&gt;iso-encoding.dub&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=besm6&amp;ditemid=38068&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://besm6.dreamwidth.org/38068.html</comments>
  <category>dubna</category>
  <lj:security>public</lj:security>
  <lj:poster>vak</lj:poster>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://besm6.dreamwidth.org/37762.html</guid>
  <pubDate>Tue, 25 Feb 2025 21:22:25 GMT</pubDate>
  <title>Cистема программирования для БЭСМ-6</title>
  <link>https://besm6.dreamwidth.org/37762.html</link>
  <description>Posted by: &lt;span lj:user=&apos;vak&apos; style=&apos;white-space: nowrap;&apos; class=&apos;ljuser&apos;&gt;&lt;a href=&apos;https://vak.dreamwidth.org/profile&apos;&gt;&lt;img src=&apos;https://www.dreamwidth.org/img/silk/identity/user.png&apos; alt=&apos;[personal profile] &apos; width=&apos;17&apos; height=&apos;17&apos; style=&apos;vertical-align: text-bottom; border: 0; padding-right: 1px;&apos; /&gt;&lt;/a&gt;&lt;a href=&apos;https://vak.dreamwidth.org/&apos;&gt;&lt;b&gt;vak&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Родилась идея недавно - вытащу из комментов.&lt;br /&gt;&lt;br /&gt;Предлагается разработать утилиту &lt;tt&gt;besmc&lt;/tt&gt;, то есть БЭСМ компилятор. Фактически фронтэнд к &lt;tt&gt;&lt;a href=&quot;https://github.com/besm6/dubna/&quot;&gt;dubna&lt;/a&gt;&lt;/tt&gt;.&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;besmc hello.ftn&lt;/tt&gt; &amp;mdash; компилирует фотрановскую программу и создаёт бинарник &lt;tt&gt;hello.exe&lt;/tt&gt;, который можно непосредственно выполнять. Тот самый бэсмовский оверлей.&lt;br /&gt;&lt;br /&gt;Можно компилить и линковать несколько файлов:&lt;br /&gt;&lt;tt&gt;besmc a.ftn b.assem c.algol&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;С флагом -c можно генерить объектные файлы, то есть perso библиотеки:&lt;br /&gt;&lt;tt&gt;besmc -c foo.assem -o foo.obj&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;И потом линковать объектные файлы в кучу:&lt;br /&gt;&lt;tt&gt;besmc a.obj b.obj c.obj -o result.exe&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;Выбор компилятора определяется расширением файла:&lt;br /&gt;&lt;tt&gt;.ftn&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;.fortran&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;.forex&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;.algol&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;.pascal&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;.assem&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;.madlen&lt;/tt&gt;&lt;br /&gt;&lt;tt&gt;.bemsh&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;Получается законченная система программирования для БЭСМ-6 под Линуксом.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=besm6&amp;ditemid=37762&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://besm6.dreamwidth.org/37762.html</comments>
  <category>dubna</category>
  <lj:security>public</lj:security>
  <lj:poster>vak</lj:poster>
  <lj:reply-count>5</lj:reply-count>
</item>
</channel>
</rss>
