Игра "Подводное путешествие"


Главная / ЭКВМ / Программы для ЭКВМ / БРП-4

координаты реперного гидроакустического буя и цели относительно подводного аппарата

1 - подводный аппарат, 2 - реперный гидроакустический буй, 3 - цель.

Вы - член экипажа универсального исследовательского подводного аппарата "Эльвин". Аппарат может погружаться на глубину 2000 м, его водоизмещение 15 т, полезный груз 650 кг, максимальная скорость 2,5 узла, время автономной работы 8 ч (по электроэнергии) и 72 ч (по средствам жизнеобеспечения). Аппарат оснащен совершенным навигационным оборудованием, различными приспособлениями для подводных работ, в том числе проводимых с помощью манипулятора.

глубина погружения

Ваша задача - поиск затонувших подводных аппаратов с помощью бортового гидролокатора и оказание им помощи. Во время работы возможны аварийные ситуации:

1) превышение допустимой глубины погружения;

2) удар аппарата о дно;

3) превышение допустимого времени пребывания аппарата под водой.


Программа из БРП-4 для МК-52

При аварийных ситуациях на дисплее появляется аварийный сигнал Г и аппарат всплывает не за счет сброса регулируемого балласта, а за счет сброса аккумуляторных батарей и манипулятора. После этого аппарат нуждается в ремонте.

Исходные данные записываются в ячейки памяти: шаг по времени t - в ячейку П2, начальная масса регулируемого балласта P0, при сбросе которого увеличивается плавучесть аппарата, - в ячейку П3, горизонтальные координаты X0 и Y0 реперного гидроакустического буя относительно аппарата - в ячейки П4 и П5 соответственно, горизонтальные координаты X и Y аппарата относительно цели – в ячейки П6 и П7 соответственно, ресурс жизнеобеспечения Т - в ячейку П8, глубина погружения H - в ячейку П9, предельная глубина погружения (число должно заканчиваться на 01) Hпр - в ячейку ПА, глубина моря H0 - в ячейку ПB.

Горизонтальная скорость V в пределах от 0 (стоп) до 10 (полный ход) набирается на клавиатуре. Аварийный сигнал (Г) записывают в ячейку памяти ПС, нажав клавиши Сх, +, ВП, ВП, Х→П, С, сигнал "Цель обнаружена" (E00) - в ячейку ПD, нажав клавиши 1, 0, 0, ВП, 9, 9, ВП, X→П, D.

Результаты вычислений записываются в ячейки памяти: текущая глубина погружения - в ячейку П9, горизонтальная скорость V - в ячейку П0. Координаты буя относительно аппарата отображаются на дисплее.

Инструкция по пользованию программой для МК-52 с БРП-4

  • 1. Наберите адрес 1270298 и введите программу, нажав клавиши А↑, ↑↓.
  • 2. Введите исходные данные.
  • 3. Установите переключатель Р/ГРД/Г в положение Г.
  • 4. Включите счет, нажав клавиши В/0, С/П.
  • 5. Наберите на клавиатуре горизонтальную скорость V и нажмите клавишу ПП.
  • 6. Наберите на клавиатуре угол курса σ и нажмите клавишу ПП.
  • 7. Наберите на клавиатуре массу сбрасываемого балласта Δp и включите счет, нажав клавишу С/П. Время вычисления около 30 с.
  • 8. Повторяйте пп. 5 - 7 до появления на дисплее сообщения Е00, которое означает, что цель обнаружена.

Примечание. В случае аварийного всплытия необходимо произвести ремонт аппарата, занеся для этого значение предельной глубины погружения в ячейку памяти ПА.


Программа адаптированная для ЭКВМ

В оригинальной программе использованы недокументированные особенности ПМК. Для её запуска на ЭКВМ следует занести в регистры RC и RD произвольные числовые значения вместо сигналов "Г" и "Е00" и, из-за наличия большего объёма памяти, заменить все команды "КБПА" на "В/О". Поскольку косвенный безусловный переход по содержимому RA в ЭКВМ не приведёт к переходу на адрес 01.

Можно также воспользоваться приведённым адаптированным вариантом игры.

Аварийные сигналы "Г" и "Е00" на ЭКВМ нельзя записать в регистры памяти, поэтому для вывода сообщений используется строка комментариев. При аварийных ситуациях в строке комментариев выводятся сообщения "Недопустимая глубина", "Удар о дно" или "Превышение времени". При ударе о дно аппарат всплывает не за счет сброса регулируемого балласта, а за счет сброса аккумуляторных батарей и манипулятора. После этого аппарат нуждается в ремонте (восстановлении допустимой глубины погружения).

Исходные данные записываются в ячейки памяти: шаг по времени t - в ячейку П2, начальная масса регулируемого балласта P0, при сбросе которого увеличивается плавучесть аппарата, - в ячейку П3, горизонтальные координаты X0 и Y0 реперного гидроакустического буя относительно аппарата - в ячейки П4 и П5 соответственно, горизонтальные координаты X и Y аппарата относительно цели – в ячейки П6 и П7 соответственно, ресурс жизнеобеспечения Т - в ячейку П8, глубина погружения H - в ячейку П9, предельная глубина погружения (число может быть любым) Hпр - в ячейку ПА, глубина моря H0 - в ячейку ПB. Можно использовать файл brp4_47_ekvm.mkd

Горизонтальная скорость V в пределах от 0 (стоп) до 10 (полный ход) набирается на клавиатуре.

Результаты вычислений записываются в ячейки памяти: текущая глубина погружения - в ячейку П9, горизонтальная скорость V - в ячейку П0. Координаты буя относительно аппарата отображаются на дисплее.

В отличие от оригинальной программы для МК-52 текущая глубина моря является случайной величиной, составляющей от 50 до 100% значения H0.

Инструкция по пользованию программой для ЭКВМ

  • 1. Загрузите программу с нулевого адреса.
  • 2. Введите исходные данные.
  • 3. Кнопкой Р-ГРД-Г установите размерность "Г" - градусы.
  • 4. Включите счет, нажав клавиши В/0, С/П.
  • 5. Наберите на клавиатуре горизонтальную скорость V и нажмите клавишу ПП.
  • 6. Наберите на клавиатуре угол курса σ и нажмите клавишу ПП.
  • 7. Наберите на клавиатуре массу сбрасываемого балласта Δp и включите счет, нажав клавишу С/П.
  • 8. Повторяйте пп. 5 - 7 до появления на дисплее сообщения "Цель обнаружена".

Тестовый пример

t = 3 мин, Р0 = 13000 кг, Y0 = X0 = 1000, Y = X = 1200, Т = 720 мин, H = 0, Hпр = 3001 м, H0 = 3500 м, ΔV = 5, Δp = 100, σ = 45°.

В/0, С/П, 5, ПП, 4, 5, ПП, 1, 0, 0, С/П.

X = Y = 843,467 м.

Координаты реперного гидроакустического буя и цели относительно аппарата показаны на рисунке.

Примечание. Параметры тестового примера не совпадают с перечисленными в условии техническими характеристиками аппарата "Эльвин". Для совместимости установите значения T=480 и Hпр=2000.


Программа "Подводное путешествие"

Программа 47 из блока расширения памяти БРП-4, переключатель "1/2" блока в положении "2", адрес 1270298.

Файл brp4-47.mkp (КС 6277/137)

  0 1 2 3 4 5 6 7 8 9
00 K БП A С/П П 0 П 1 ИП 3 - П 3 3 F 10x
10 - ИП 2 × ИП 9 + F x<0 18 Cx П 9 ИП A
20 - F x<0 85 ИП 9 ИП B - F x<0 85 ИП 0 F √
30 3 3 × П 0 ИП 2 × ИП 1 F cos × ИП 4
40 - П 4 ИП 6 F Bx - П 6 ИП 5 ИП 0 ИП 2
50 × ИП 1 F sin × - П 5 ИП 7 F Bx - П 7
60 ИП 8 ИП 2 - П 8 F x≥0 85 ИП 6 F x2 ИП 7 F x2
70 + F √ 5 0 0 - F x<0 82 ИП 7 ИП 6
80 ИП D K БП A ИП 5 ИП 4 K БП A 8 8 П A ИП C С/П
90 0 П 0 БП 08 0 0 0 0    

Примечание. Считывание программ из БРП в МК-52 производилось блоками по 7 байт. Неиспользуемые команды в конце программы оставлены для совместимости и используются при подсчёте контрольной суммы.


Исходный текст для кросс-компилятора

Файл brp4-47.mkl

.CHARSET 1251

; БРП-4
; 47. Игра "Подводное путешествие" (2 - 1270298)

.ORG 0
	K GOTO A
	R/S
	M 0
	M 1
	RM 3
	<->
	-
	M 3

A8:	 ; с адреса 92
	3 F 10^X 
	-
	RM 2 
	*
	RM 9 
	+
	F X<0 A18
	CX


A18:	 ; с адреса 15
	M 9
	RM A
	-
	F X<0 A85
	RM 9
	RM B
	-
	F X<0 A85
	RM 0
	F SQRT
	33 *
	M 0
	RM 2
	*
	RM 1
	F COS
	*
	RM 4
	<->
	-
	M 4
	RM 6
	F ANS
	-
	M 6
	RM 5
	RM 0
	RM 2
	*
	RM 1
	F SIN
	*
	-
	M 5
	RM 7
	F ANS
	-
	M 7
	RM 8
	RM 2
	-
	M 8
	F X>=0 A85
	RM 6
	F X^2
	RM 7
	F X^2
	+
	F SQRT
	500 -
	F X<0 A82
	RM 7
	RM 6
	RM D
	K GOTO A

A82:	 ; с адреса 76
	RM 5
	RM 4
	K GOTO A

A85:	 ; с адреса 21, 26, 64
	88
	M A
	RM C
	R/S
	0
	M 0
	GOTO A8
	0000
.END 


Программа "Подводное путешествие" - версия для ЭКВМ

Файл brp4-47-ekvm.mkp (КС 42135/123)

  0 1 2 3 4 5 6 7 8 9
000 Cx С/П П 0 П 1 ИП 3 - П 3 F x<0 11
010 Cx 3 F 10x - ИП 2 × ИП 9 + F x<0 21
020 Cx П 9 ИП A - F x<0 33 0 1 3 8
030 P БП 01 31 ИП 9 ИП B 2 ÷ B↑ K СЧ ×
040 + - F x<0 53 Cx П A 0 1 5 9
050 P БП 01 31 ИП 0 F √ 3 3 × П 0 ИП 2
060 × ИП 1 F cos × ИП 4 - П 4 ИП 6 F Bx
070 - П 6 ИП 5 ИП 0 ИП 2 × ИП 1 F sin × -
080 П 5 ИП 7 F Bx - П 7 ИП 8 ИП 2 - П 8 F x<0
090 98 0 1 7 0 P БП 01 31 ИП 6 F x2
100 ИП 7 F x2 + F √ 5 0 0 - F x<0 24
110 0 1 8 9 PP П 90 26 Cx B↑ ИП 7
120 ИП 6 P БП 00 01 Cx B↑ ИП 5 ИП 4 P БП 00
130 01 K ЭКР С/П 0 П 0 P БП 00 11 8Dh A5h
140 A4h AEh AFh E3h E1h E2h A8h ACh A0h EFh
150 20h A3h ABh E3h A1h A8h ADh A0h 00h 93h
160 A4h A0h E0h 20h AEh 20h A4h ADh AEh 00h
170 8Fh E0h A5h A2h EBh E8h A5h ADh A8h A5h
180 20h A2h E0h A5h ACh A5h ADh A8h 00h 96h
190 A5h ABh ECh 20h AEh A1h ADh A0h E0h E3h
200 A6h A5h ADh A0h 00h          

Исходный текст для кросс-компилятора

Файл brp4-47-ekvm.mkl

.CHARSET 1251

; БРП-4
; 47. Игра "Подводное путешествие" для ЭКВМ

.ORG 0
	CX
A_1:	R/S
	M 0 ; горизонтальная скорость
	M 1 ; угол курса
	RM 3 
	<->
	-
	M 3 ; масса балласта оставшаяся
	F X<0 A_2	; Добавлена проверка массы балласта >=0
	CX

A_2:	3 F 10^X 
	-		
	RM 2 ; шаг по времени
	*
	RM 9 ; глубина погружения 
	+
	F X<0 A_3
	CX	; взлетать над поверхностью нельзя

A_3:	M 9
	RM A
	-
	F X<0 A_4	
	.NUM TXT1	; достигнута предельная глубина погружения
	P GOTO A_T

A_4:	RM 9
	RM B
	2 /
	ENT
	K RAN
	*
	+
	-
	F X<0 A_5
	CX
	MA		; поломка аппарата из-за удара о дно	
			; в оригинале использовался адрес перехода 88 на вывод ошибки по КБПА 
	.NUM TXT2	
	P GOTO A_T	; удар о дно - в оригинальной программе не отличался от превышения предельной глубины
			; здесь - определяется СЧ и составляет от 50 до 100% глубины моря

A_5:	RM 0		; горизонтальная скорость 0-10 
	F SQRT
	33 *
	M 0		; преобразованная горизонтальная скорость 0-104
	RM 2
	*
	RM 1
	F COS
	*
	RM 4
	<->
	-
	M 4
	RM 6
	F ANS
	-
	M 6
	RM 5
	RM 0
	RM 2
	*
	RM 1
	F SIN
	*
	-
	M 5
	RM 7
	F ANS
	-
	M 7
	RM 8
	RM 2
	-
	M 8
	F X<0 A_6	
	.NUM TXT3	; выработан ресурс жизнеобеспечения
	P GOTO A_T	

A_6:	RM 6
	F X^2
	RM 7
	F X^2
	+
	F SQRT
	500 -
	F X<0 A_7	; на вывод координат
	.NUM TXT4
	PP M 9026	; вывод в строку комментариев
	CX
	ENT
	RM 7
	RM 6
	P GOTO A_1	; цель достигнута

A_7:	CX
	ENT
	RM 5
	RM 4
	P GOTO A_1	; переход на очередной шаг

A_T:	K SCR
	R/S
	0
	M 0		; обнуление скорости
	P GOTO A_2


TXT1:	.TEXT "Недопустимая глубина\0"	
TXT2:	.TEXT "Удар о дно\0"	
TXT3:	.TEXT "Превышение времени\0"	
TXT4:	.TEXT "Цель обнаружена\0"	
.END 


НПП "СЕМИКО" (383) 271-01-25 (многоканальный)