По просьбе С. Вакуленко переношу сюда дискуссию, ведующуюся в теме "Посадка на Луну".
Итак паспорта ПУЛЬТа были успешно исправлены.
Текст "Посадки" был успешно введен при помощи экспект-скрипта в массив "ПОСАД" находящийся в архиве ИГРА (см. ниже). Создан массив ПОСАДТ для трансляции туда содержимого файла "ПОСАД" через
ПАС ПОСАД-ЗОНГП ПОСАДТ. На сегодня результат идентичен тому, что было и до исправления паспортов
CИCTEMA ПУЛЬT 23.10.80
АРХ ИГРА,41,5000,1000
ECTЬ
КТЛ
ИMЯ HAЧAЛО ДЛИHA
ПОCAД 022 020
ПОCAДT 042 001
РЕД ПОСАДТ
ПPОЧTEHО (415042:1)
С
ФAЙЛ ПУCTОЙ
В1
HET CTPОKИ C HОMEPОM 1
В
0001 А
0002
З
B ФAЙЛ ПОCAДT ЗAПИCAHО ЗОH: 1 (415042:1)
К
ПАС ПОСАД-ЗОНГП ПОСАДТ
ПACKAЛЬ-ABTОKОД 9.(09.12.88)
ABОCT 000016
PASCALИHФ О CTEKE CBEPXУ
1. AДPEC CTEKA=26423БEЗ PMД
2. AДPEC CTEKA=26386БEЗ PMД
3. AДPEC CTEKA=26379БEЗ PMД
4. AДPEC CTEKA=26342БEЗ PMД
5. AДPEC CTEKA=12287БEЗ PMД
ЭTО БЫЛ PMD ПPОГPAMMЫ...
Итак паспорта ПУЛЬТа были успешно исправлены.
Текст "Посадки" был успешно введен при помощи экспект-скрипта в массив "ПОСАД" находящийся в архиве ИГРА (см. ниже). Создан массив ПОСАДТ для трансляции туда содержимого файла "ПОСАД" через
ПАС ПОСАД-ЗОНГП ПОСАДТ. На сегодня результат идентичен тому, что было и до исправления паспортов
CИCTEMA ПУЛЬT 23.10.80
АРХ ИГРА,41,5000,1000
ECTЬ
КТЛ
ИMЯ HAЧAЛО ДЛИHA
ПОCAД 022 020
ПОCAДT 042 001
РЕД ПОСАДТ
ПPОЧTEHО (415042:1)
С
ФAЙЛ ПУCTОЙ
В1
HET CTPОKИ C HОMEPОM 1
В
0001 А
0002
З
B ФAЙЛ ПОCAДT ЗAПИCAHО ЗОH: 1 (415042:1)
К
ПАС ПОСАД-ЗОНГП ПОСАДТ
ПACKAЛЬ-ABTОKОД 9.(09.12.88)
ABОCT 000016
PASCALИHФ О CTEKE CBEPXУ
1. AДPEC CTEKA=26423БEЗ PMД
2. AДPEC CTEKA=26386БEЗ PMД
3. AДPEC CTEKA=26379БEЗ PMД
4. AДPEC CTEKA=26342БEЗ PMД
5. AДPEC CTEKA=12287БEЗ PMД
ЭTО БЫЛ PMD ПPОГPAMMЫ...
no subject
Date: 2020-10-23 07:35 pm (UTC)в 2000
к 00 070 3000
к 00 010 3001 00 000 0041
к 00 010 3002 00 000 0037
к 00 30 00040
в 3000
с 0010 0000 0040 0040
б ПУЛЬТ
с 0400
еконец
Это же машинный код или автокод?
К - команда (ИР,КОП, АДРЕС)?
С - сдвиг
Б - алфавитно цифровая печать?
В -?
no subject
Date: 2020-10-23 07:56 pm (UTC)в 2000 - задаёт адрес для ввода последующей информации.
к 00 070 3000 - машинная команда, одна в слове. Размещается в левой половине слова, а правая половина остаётся нулевой. Команда состоит из трёх полей: индекс-регистр, код операции и адрес.
к 00 010 3001 00 000 0041 - две машинные команды в слове.
с 0010 0000 0040 0040 - восьмеричная константа, одно слово, 48 бит. Слева дополняется нулями, если нужно.
б ПУЛЬТ - текстовая константа в кодировке ГОСТ, шесть символов. Здесь начинается с пробела.
no subject
Date: 2020-10-28 09:38 pm (UTC)no subject
Date: 2020-10-24 04:32 am (UTC)З БУФ=ТТ _PROGRAM A; _( WRITELN('HELLO') _). // MCB БУФ H=000 Д=001 ПАС БУФ ПACKAЛЬ-ABTОKОД 9.(09.12.88) HELLО BCE CДEЛAHО.А чуть более сложная - уже нет:
З БУФ=ТТ _PROGRAM A;_VAR A:CHAR; _( BIND('PROMPT: '); _WHILE _NOT EOF(INPUT) _DO _( GET(INPUT); WRITE(INPUT@) _); _). // MCB БУФ H=000 Д=001 ПАС БУФ ПACKAЛЬ-ABTОKОД 9.(09.12.88) ABОCT 000016 PASCALИHФ О CTEKE CBEPXУ 1. AДPEC CTEKA=26386БEЗ PMД 2. AДPEC CTEKA=26379БEЗ PMД 3. AДPEC CTEKA=26342БEЗ PMД 4. AДPEC CTEKA=12287БEЗ PMД ЭTО БЫЛ PMD ПPОГPAMMЫ...Это деление на нуль. С другой стороны, компилятор на диске 2248, которым я всё время пользовался в эмуляторе Диспака, падает с авостом 41(8) - обращение к незаказанной МЛ.
На всякий случай проверьте, пожалуйста, что ваши образы дисков 2148 и 2248 идентичны находящимся здесь: https://github.com/besm6/besm6.github.io/tree/master/download/disks
Кстати,
АРХ ИГРА,41,5000,1000
Почему 5000? На 7.25 Мб дисках всего 1744(8) зоны.
no subject
Date: 2020-10-24 06:21 am (UTC)27100: xta 5(2) (=0000000000064000) acc=0000000000041402 r[2]=63422 27101: atx 6(2) (=0000000000042271) acc=0000000000064000 r[2]=63422 63430: store 0000000000064000 27101: uj 27060 (=1010000600120011) acc=0000000000064000 27060: xta 6(2) (=0000000000064000) acc=0000000000064000 r[2]=63422 27060: aex 11 (=0000000000064000) acc=0000000000064000 27061: uza 27102 (=0410006300120040) acc=0000000000000000 27102: xta 63(1) (=0000000000000026) acc=0000000000000000 r[1]=27777 27102: aex 40 (=0000000000000026) acc=0000000000000026 27103: uza 27105 (=0010001204166214) acc=0000000000000000 27105: xta 12 (=0000000000000000) acc=0000000000000000 27105: a/x 6214(1) (=0000000000000000) acc=0000000000000000 r[1]=27777а в Паскале версии 17.05.88 деления вообще нет, а в соответствующих адресах команды такие:
27100: xta 5(2) (=0000000000064000) acc=0000000000041402 r[2]=61422 27101: atx 6(2) (=0000000000042271) acc=0000000000064000 r[2]=61422 61430: store 0000000000064000 27101: uj 27060 (=1010000600120011) acc=0000000000064000 27060: xta 6(2) (=0000000000064000) acc=0000000000064000 r[2]=61422 27060: aex 11 (=0000000000064000) acc=0000000000064000 27061: uza 27102 (=0410006300120040) acc=0000000000000000 27102: xta 63(1) (=0000000000000026) acc=0000000000000000 r[1]=27777 27102: aex 40 (=0000000000000026) acc=0000000000000026 27103: uza 27105 (=0010001204000065) acc=0000000000000000 27105: xta 12 (=0000000000000000) acc=0000000000000000 27105: atx 65(1) (=0000000000000001) acc=0000000000000000 r[1]=27777 30064: store 0000000000000000То есть всё предыдущее совпадает, кроме слова по адресу 27105.
Оказывается, на диске 2148 в зоне 1114 два слова побились серьёзно:
1105) 00 010 0012 01 016 6214 --- 2148 00 010 0012 01 000 0065 --- 2248, как должно быть 1106) 04 123 1156 00 000 0000 --- мусор 16 31 06157 00 000 0000 --- 2248, но должно быть со смещением 1, т. е. 16 31 06156 00 000 0000Я у себя исправил, теперь работает.
Почему работающий в эмуляторе Диспака компилятор на диске 2248 даёт ошибку обращения к незаказанному устройству при запуске под эмулятором машины, ещё предстоит разобраться.
Сколько ещё таких побитых мест в образах дисков, прочитанных с лент, т.е. 2148 и 2248 - бог весть.
no subject
Date: 2020-10-24 06:30 am (UTC)PULT2 5216 Ф001 CИCTEMA ПУЛЬT 24.10.80 З БУФ=ТТ _PROGRAM MAIN; _( BIND('PROMPT: _172'); _WHILE _NOT EOF(INPUT) _DO _( WRITE(INPUT@); GET(INPUT) _); WRITELN _). // MCB БУФ H=000 Д=001 ПАС БУФ ПACKAЛЬ-ABTОKОД 9.(09.12.88) PRОMPT: ЙЦУКЕН ЙЦУКЕН BCE CДEЛAHО.no subject
Date: 2020-10-24 07:32 pm (UTC)PULT2 5555
Ф001
CИCTEMA ПУЛЬT 24.10.80
АРХ ИГРА,41,5000,1000
ECTЬ
КТЛ
ИMЯ HAЧAЛО ДЛИHA
ПОCAД 022 020
ПОCAДT 042 001
ПАС ПОСАД-ЗОНГП ПОСАДТ
ПACKAЛЬ-ABTОKОД 9.(09.12.88)
MAXADR=02343
B MACCИBE HE XBATAET ЗОH. BЫПОЛHЯЮ ЗОHГП БУФ
HA БОБ 7002 ЗAПИCЬ 0002 ЗОH C 270000 ЗОHЫ(БУФ )
BCE CДEЛAHО.
Спасибо за исправление ошибок!
Теперь, я так понимаю дело в ограничении массива в 20 зон?
Теперь же нужно исправлять дистрибутив и на гитхабе?
no subject
Date: 2020-10-25 03:55 am (UTC)no subject
Date: 2020-10-25 07:08 am (UTC)ИMЯ HAЧAЛО ДЛИHA
ПОCAД 022 020
ПОCAДT 042 001
ИСКЛ ПОСАДТ
КТЛ
ИMЯ HAЧAЛО ДЛИHA
ПОCAД 022 020
ПАС ПОСАД-ЗОНГП ПОСАДТ
ПОCAДT!
З ПОСАДТ
MCB ПОCAДT H=042 Д=020
ПАС ПОСАД-ЗОНГП ПОСАДТ
ПACKAЛЬ-ABTОKОД 9.(09.12.88)
MAXADR=02343
HA БОБ 2061 ЗAПИCЬ 0002 ЗОH C 415042 ЗОHЫ(ПОCAДT )
BCE CДEЛAHО.
Теперь приступаю к создаю паспорта по образцу. Там надо параметр входа ставить - 5000? Наверное сдвиги тоже какие-то проставлять?
no subject
Date: 2020-10-25 04:49 pm (UTC)ПАС -ВЫП ПОСАДТ
должно заработать.
no subject
Date: 2020-10-27 10:10 pm (UTC)Но дело в том, что для ввода метасимвола "тождество" (≡ - код ГОСТ 0125) для задания восьмеричного кода символа 172, обозначающего конец приглашения, я сделал изменение в эмуляторе Диспака, чтобы фигурная скобка перекодировалась в него. При переносе файла в архив Пульта этот символ пропал. Я разобрался, как его надо записывать (_==) и отредактировал файл.
Попробуйте зайти в Пульт и сделать ПАС -ВЫП ПОСАДТ
no subject
Date: 2020-10-25 10:21 pm (UTC)Насчет 5000 не понял - на диске нет столько зон. Для дисков объёмом 7.25 Мб номер зоны брался из младших 10 разрядов инф. слова экстракода, поэтому архив реально находится, начиная с 1000 зоны. Если я в СЕРПе просматриваю зону 1000, то вижу заголовок архива.
Нужно сделать паспорт, который читает две зоны программы в листы 0 и 1, а также административную систему Паскаля в один из двух последних листов
Экспериментировать гораздо удобнее в эмуляторе Диспака.
no subject
Date: 2020-10-26 07:11 pm (UTC)ИMЯ HAЧAЛО ДЛИHA
ПОCAД 022 020
ПОCAДT 042 020
ПАС-ВЫП ПОСАДТ
ENGLISH / PУCCKИЙ ?1720000000E00000P?03?????2A?3-2?/2????0,??З000
ENGLISH / PУCCKИЙ ?1720000000E00000P?03?????2A?3-2?/2????0,??З000РУССКИЙ
ЦEHTP УПPABЛEHИЯ BЫЗЫBAET ЛУHHЫЙ MОДУЛЬ:
ДЛЯ ПОCAДKИ ПEPEЙДИTE HA PУЧHОE УПPABЛEHИE.
KAKОB BAШ ОПЫT: 0 1 2(HОPMA) 3 4 5 6 7 8 9(ОПЫTA HET) ?
ЧTО У BAC ? 9
BЫ ДОЛЖHЫ УKAЗЫBATЬ CKОPОCTЬ PACXОДA TОПЛИBA ЧEPEЗ KAЖДЫE 10 CEKУHД.
PACXОД ДОЛЖEH БЫTЬ ИЛИ 0 ИЛИ ОT 8 ДО 200 ФУHTОB B CEKУHДУ.
У BAC 19500 ФУHTОB TОПЛИBA.
BEC KAПCУЛЫ CEЙЧAC 32500 ФУHTОB, BKЛЮЧAЯ TОПЛИBО.
HAЧИHAЙTE ПОCAДKУ.
ПEPBЫЙ PAДИОЛОKAЦИОHHЫЙ ЗAMEP BЫCОTЫ:
BPEMЯ(CEK) BЫC(MИЛИ + ФУTЫ) CKОPОCTЬ(Ф/C) TОПЛ(ФУH)
0 120 0 5280 19500
PACXОД=17200??000000000???0000??0000??000000000Г
000000000???0000
HEПОHЯTHО - ПОBTОPИTE
HE TPATЬTE BPEMЯ, ПЫTAЯCЬ ЖEЧЬ TОПЛИBО C TAKОЙ CKОPОCTЬЮ.
PACXОД=17200
HEПОHЯTHО - ПОBTОPИTE
HE TPATЬTE BPEMЯ, ПЫTAЯCЬ ЖEЧЬ TОПЛИBО C TAKОЙ CKОPОCTЬЮ.
Странный какой-то набор цифр?
no subject
Date: 2020-10-27 10:11 pm (UTC)no subject
Date: 2020-10-28 06:12 am (UTC)ПАС-ВЫП ПОСАДТ
ENGLISH / PУCCKИЙ ?РУССКИЙ
ЦEHTP УПPABЛEHИЯ BЫЗЫBAET ЛУHHЫЙ MОДУЛЬ:
ДЛЯ ПОCAДKИ ПEPEЙДИTE HA PУЧHОE УПPABЛEHИE.
KAKОB BAШ ОПЫT: 0 1 2(HОPMA) 3 4 5 6 7 8 9(ОПЫTA HET) ?
ЧTО У BAC ? 9
BЫ ДОЛЖHЫ УKAЗЫBATЬ CKОPОCTЬ PACXОДA TОПЛИBA ЧEPEЗ KAЖДЫE 10 CEKУHД.
PACXОД ДОЛЖEH БЫTЬ ИЛИ 0 ИЛИ ОT 8 ДО 200 ФУHTОB B CEKУHДУ.
У BAC 19500 ФУHTОB TОПЛИBA.
BEC KAПCУЛЫ CEЙЧAC 32500 ФУHTОB, BKЛЮЧAЯ TОПЛИBО.
HAЧИHAЙTE ПОCAДKУ.
ПEPBЫЙ PAДИОЛОKAЦИОHHЫЙ ЗAMEP BЫCОTЫ:
BPEMЯ(CEK) BЫC(MИЛИ + ФУTЫ) CKОPОCTЬ(Ф/C) TОПЛ(ФУH)
0 120 0 5280 19500
PACXОД=1800
HE TPATЬTE BPEMЯ, ПЫTAЯCЬ ЖEЧЬ TОПЛИBО C TAKОЙ CKОPОCTЬЮ.
PACXОД=10
10 109 5162 5304 19400
PACXОД=20
20 99 4957 5298 19200
PACXОД=30
30 89 4962 5261 18900
PACXОД=50
40 80 351 5164 18400
PACXОД=100
50 70 2769 4911 17400
PACXОД=100
60 61 2496 4646 16400
PACXОД=50
70 52 4098 4537 15900
PACXОД=50
80 44 1535 4424 15400
PACXОД=50
90 36 113 4308 14900
PACXОД=50
100 27 5144 4189 14400
PACXОД=6
HE TPATЬTE BPEMЯ, ПЫTAЯCЬ ЖEЧЬ TОПЛИBО C TAKОЙ CKОPОCTЬЮ.
PACXОД=10
110 20 121 4207 14300
PACXОД=60
120 12 1073 4049 13700
PACXОД=1000
HE TPATЬTE BPEMЯ, ПЫTAЯCЬ ЖEЧЬ TОПЛИBО C TAKОЙ CKОPОCTЬЮ.
PACXОД=300
HE TPATЬTE BPEMЯ, ПЫTAЯCЬ ЖEЧЬ TОПЛИBО C TAKОЙ CKОPОCTЬЮ.
PACXОД=200
130 5 902 3368 11700
PACXОД=5
HE TPATЬTE BPEMЯ, ПЫTAЯCЬ ЖEЧЬ TОПЛИBО C TAKОЙ CKОPОCTЬЮ.
PACXОД=10
HA ЛУHE HA 138 CEKУHДE.
CKОPОCTЬ B MОMEHT KACAHИЯ 3380 ФУT/CEK.
ОCTAЛОCЬ TОПЛИBA 11619 ФУHTОB.
HA ЛУHE BОЗHИK HОBЫЙ KPATEP ГЛУБИHОЙ 642 ФУTОB.
.......ШMЯK. HE ОЧEHЬ XОPОШО. HABEPHОE MAЛО ОПЫTA.
EЩE PAЗ (1) ИЛИ BCE (0) ? I
Вроде все нормально. Большое спасибо. Теперь надо делать паспорт