spamsink: (Default)
[personal profile] spamsink posting in [community profile] besm6
Наконец-то, можно нормально играть в посадку на Луну: https://github.com/besm6/bega-re/blob/master/landing.pas
https://github.com/besm6/bega-re/blob/master/landing.sh

Дело было в том, что по умолчанию вывод на экран в Паскаль-автокоде делается через Пульт, который всё печатает в сокращенном наборе символов для телетайпа (например, ! превращается в .I), и принудительно делая перевод строки после 72 символов. "Посадка" пыталась это обойти с помощью выдачи экстракода вывода на экран, указывая предполагаемый адрес буфера файла output, но почему-то в нашем случае это не работало.

Я эти мелочи проигнорировал. Теперь с помощью этой программы можно давать задачки по физмату и программированию:

1) Покажите, что на уровне 0 (15000 фунтов топлива) сесть невозможно.
2а) Напишите программу, за короткое время находящую последовательность действий, приводящих к мягкой посадке на уровне 1 (15500 фунтов топлива).
2б) Максимизируйте количество оставшегося при посадке топлива.
Page 1 of 3 << [1] [2] [3] >>

Date: 2020-08-09 07:44 am (UTC)
vak: (Default)
From: [personal profile] vak
О, класс! Надо будет на досуге переписать на Си или Питон.

Date: 2020-08-09 07:38 pm (UTC)
vak: (Default)
From: [personal profile] vak
Я думал, ты скрипт гонял типа expect.

Date: 2020-08-15 05:31 pm (UTC)
vak: (Default)
From: [personal profile] vak
Нашёлся оригинальный текст на Фокале, 1969 год:

Edited Date: 2020-08-15 05:43 pm (UTC)

Date: 2020-08-15 05:46 pm (UTC)
vak: (Default)
From: [personal profile] vak
Ты глянь, кто-то уже перепёр посадку на Rust!

https://gist.github.com/kristopherjohnson/83c6a6b8a1b7c6929ced83e922abccc1

Date: 2020-08-19 12:26 pm (UTC)
From: [personal profile] azizz8618
А как запустить данную игру в эмуляторе?

Date: 2020-08-19 08:50 pm (UTC)
vak: (Default)
From: [personal profile] vak
Расшифрую маленько. :)

Бинарник dispak собирается так:
$ git clone https://github.com/besm6/dispak.git
$ cd dispak
$ ./configure
$ make
$ make install

Date: 2020-08-19 08:58 pm (UTC)
vak: (Default)
From: [personal profile] vak
Теперь берём скрипты и исходники игры:
$ git clone https://github.com/besm6/bega-re.git
В файле langing.sh во второй строке убираем путь к dispak, пусть вызывается через PATH:
spawn dispak -s pult2.b6
В файле pult2.b6 убираем строку 5: "лент 50(1234-ЗП)^". Эта лента не нужна.

Запускаем:
$ ./landing.sh
spawn dispak -s pult2.b6
                                                                                                        000
  СИСТЕМА ПУЛЬТ   19.08.80    
...
 ПАСКАЛЬ-АВТОКОД 9.(17.05.88) 
________________________________________________________________________________________________________________________________
                АВТОКОД  00.00.70. БЛОК           N 000001 ЛИСТ 000000

ЕNGLISН / РУССКИЙ ?р
ЦЕНТР УПРАВЛЕНИЯ ВЫЗЫВАЕТ ЛУННЫЙ МОДУЛЬ:
ДЛЯ ПОСАДКИ ПЕРЕЙДИТЕ НА РУЧНОЕ УПРАВЛЕНИЕ.
КАКОВ ВАШ ОПЫТ: 0 1 2(НОРМА) 3 4 5 6 7 8 9(ОПЫТА НЕТ) ? 
ЧТО У ВАС ? 2
ВЫ ДОЛЖНЫ УКАЗЫВАТЬ СКОРОСТЬ РАСХОДА ТОПЛИВА ЧЕРЕЗ КАЖДЫЕ 10 СЕКУ
НД.
РАСХОД ДОЛЖЕН БЫТЬ ИЛИ 0 ИЛИ ОТ 8 ДО 200 ФУНТОВ В СЕКУНДУ. 
У ВАС 16000 ФУНТОВ ТОПЛИВА.
ВЕС КАПСУЛЫ СЕЙЧАС 32500 ФУНТОВ, ВКЛЮЧАЯ ТОПЛИВО.
НАЧИНАЙТЕ ПОСАДКУ. 
ПЕРВЫЙ РАДИОЛОКАЦИОННЫЙ ЗАМЕР ВЫСОТЫ:
ВРЕМЯ(СЕК) ВЫС(МИЛИ  + ФУТЫ) СКОРОСТЬ(Ф/С) ТОПЛ(ФУН) 
    0          120       0     5280        16000 
РАСХОД=
Ну и так далее.
Edited Date: 2020-08-19 08:59 pm (UTC)

Date: 2020-08-19 09:06 pm (UTC)
vak: (Default)
From: [personal profile] vak
2. Ссылки на диски делать не нужно, "make install" скачает их в /usr/local/share/besm6.

Date: 2020-08-20 12:02 am (UTC)
vak: (Default)
From: [personal profile] vak
Да, конечно. Просто у меня на домашней машине изначально сделано "sudo chown -R $USER /usr/local", так что я не замечаю.
Edited Date: 2020-08-20 12:03 am (UTC)

Date: 2020-08-20 05:11 pm (UTC)
From: [personal profile] azizz8618
А собственно в эмуляторе Бэсм-6 ее можно запустить.или в крайнем случае ввести в текстовом формате через редактор КРАБа и пропустить через интерпретатор. Там же должна быть среда для программировани?

Date: 2020-08-20 06:48 pm (UTC)
vak: (Default)
From: [personal profile] vak
Через simh/besm6 тоже можно. Только КРАБ тут не поможет, так как данный конкретный компилятор работает только из Пульта.

Сам по себе КРАБ через simh можно запускать так:
https://github.com/besm6/besm6.github.io/blob/master/wiki/examples/besm6-krab.expect

Или так:
https://github.com/besm6/besm6.github.io/blob/master/wiki/examples/besm6-run.expect

Подробности здесь: https://groups.google.com/d/msg/besm6/WnK7JIx-QoI/CSduoZABMxsJ

Date: 2020-08-20 08:06 pm (UTC)
From: [personal profile] azizz8618
Я, конечно, извиняюсь за дилетантство, но неужели в КРАБЕ не было компилятора Фокаля?
Edited Date: 2020-08-20 08:13 pm (UTC)

Date: 2020-08-20 08:29 pm (UTC)
vak: (Default)
From: [personal profile] vak
Фокала вообще на БЭСМ-6 не было. Здесь исходник на Паскале. Но КРАБ не имел прямого отношения к компиляторам. Это только текстовый редактор, из которого можно запустить пакетную задачу. Задача может использовать одну из доступных (пакетных) систем программирования, чаще всего мониторную систему "Дубна". Там есть несколько компиляторов для разных языков. Но для игры нужен диалоговый режим, а не пакетный, поэтому ни мониторная система "Дубна", ни КРАБ не помогают.

Поэтому для игр использовалась диалоговая система Пульт. В ней был компилятор Паскаля. Программу можно было скомпилировать и тут же запустить. Ничего подобного КРАБ не умел.
Edited Date: 2020-08-20 08:46 pm (UTC)

Date: 2020-08-21 04:00 am (UTC)
From: [personal profile] azizz8618
А сам Пульт, что из себя представляет?

Все же ,то мне нужно сделать, чтоьы запустить игру из симулятора, т.е. из Диспака, а не из под Линукса.?

Date: 2020-08-21 06:59 am (UTC)
vak: (Default)
From: [personal profile] vak
Доработать скрипт landing.sh, чтобы он запускал не dispak, а подключался к simh командой telnet. Как здесь: https://github.com/besm6/besm6.github.io/blob/master/wiki/examples/besm6-run.expect

Но вызывать не КРАБ, а Пульт, как в landing.sh.

Date: 2020-08-21 08:45 pm (UTC)
vak: (Default)
From: [personal profile] vak
От Пульта сохранилось только описание редактора:

http://www.besm6.org/wiki/Pult-editor.html

Вызывается Пульт командой PULT. Ну и шифр пользователя надо добавить. Есть команда "дай" с кучей разнообразных параметров. Если параметры неверные, отвечает "не дам". Выход по команде "конец":
PULT 555555
  CИCTEMA ПУЛЬT   21.08.80    
ДАЙ РУБЛЬ
HE ДAM
КОНЕЦ
21.08.80    BPEMЯ PEШ:   00000 CEK
 KОHEЦ CEAHCA

Date: 2020-08-23 06:11 am (UTC)
vak: (Default)
From: [personal profile] vak
Насчёт configure я совершенно согласен. Давай заменим на cmake.

Наверное, диски надо копировать в ~/.besm6, а дальше пусть сам юзер разбирается.
Edited Date: 2020-08-23 06:13 am (UTC)

Date: 2020-10-07 02:14 pm (UTC)
From: [personal profile] azizz8618
Наконец-то освоил ввод при помощи скрипта expect.
Вроде весь файл ввёлся.
Далее происходит следующее
ПАС ПОСАД
П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Ы...

При попытке трансляции с записью в другой файл ЗОНГП, происходит АВОСТ 000016 при этом записи в конечный файл не происходит
ПАС ПОСАД-ЗОНГП ПОСАДТ
П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Ы...
РЕД ПОСАДТ
ПPОЧTEHО (670121:20)
С
ФAЙЛ ПУCTОЙ
Однако если после ввода ПАС ПОСАД, ввести приказ С, то получаем
С
1. U07_31200_25209_354_3_206U_2007900_23200_Ю_200Ж_22000_Ю_200З_22001*_200
*_Ю_201Г_22002F_2005_220030_200._220040_2009_22005F_2004_22007F_2007*_200*_Ю1
ГF_200(-_Ю_XF_20050_2409-_220@F_2007U_2004003/_Ю)F_2007U_20050020000_200+F0(F
_200,0_2409-_220[F_2007F0,/_Ю*F_2007U_2006005000F_2007F06_354_214_156000_354_257_343000_Ю_200У0_240[- _367_Ю_200У0_240Й-_ЮA0_200/_354_217_342_372_20030_200-0P+U08_332002P,0P+_354_220_350_354_257_343000U_20080_2005F0.F_2004_Ю0^000F_200,0_2409-_ЮTF_2008U_200,006U_20030_2000U_200,008U_20030_2000FF.U_2003000U_200,0_2005F0,/_ЮИ000_Ю_200У0_240A- _357/_170+_Ю_200Ф0_240/-_220Ш_Ю_200Ж0_240?-_220Ш/_ЮЩ0000_200,_354_217_3420_200,_Ю0X_354_214_156000_354_257_343000_Ю_200Ф0_240@-_ЮD0_200._354_217_342000_Ю_200ЖF0@_Ю_200*F0 _Ю_200WF0/U07_31200_25209_354_3_206U_2007900_23200_Ю_200Ж_22000_Ю_200З_22001F_2005_220030_200 _220040_2009_22005F_2004_22007U_20030_2000_22008F_200(-_Ю%0_200+F0(F_20050_2409-_220_ГF_2007U_2004003/_Ю_==000F_2007U_2005002000/_Ю_VE000F_2007U_2007005000_354_214_156000_354_257_343000_Ю_200У0_240Й-_220_151F_200/0_2409-_Ю?0_200=_354_217_342U_200 _Ю_201ГU_2007002F_2007U_200 _Ю1Г_372_20030_200/0P+U08_332002P,0P+_354_220_350000_354_257_3430000_200-F0 /_Ю_205000U_200 _Ю_200_243F0/0_200+F0 000F_200/0_2409-_Ю_201U_200/0_2000F_240@-_Ю_162U_200/0_2002F0//_Ю_200000U_200/0_20040_240+-_Ю_1660_200;_354_217_342/_Ю
2. 000U_200/0_20060_240@-_220U_200/0_2003F0/000U_200/0_20060_240+-_Ю
Это оттранслированный текст в буфере?
Если далее ввести ПАС-ВЫП, то получим
ПАС-ВЫП
**ЛEKCEMA=04 ОШ=07
IDENT BЫП QU
Что я делаю неправильно?


Page 1 of 3 << [1] [2] [3] >>

Profile

Сообщество любителей БЭСМ-6

January 2026

S M T W T F S
    123
45678910
11121314151617
18192021222324
2526272829 3031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 30th, 2026 07:04 pm
Powered by Dreamwidth Studios