ОС-XXI (Орбитальная станция-XXI)


Главная / ЭКВМ / Программы для ЭКВМ / Игры

Программы ОС-1 и ОС-2 для ПМК были опубликованы в номерах 10-1985 и 11-1985 журнала "Техника-Молодёжи". Они соответствуют частям 3 ("Прощайся с этой луной") и 4 ("Прыжок в высоту") фантастической повести Михаила Пухова "Путь к Земле". Приведённая программа позволяет совершить стыковку с лунной орбитальной станцией "Юрий Гагарин" при помощи ЭКВМ.

Инструкция

1. Запуск - 0 B/O C/П для комплекта данных Кон-Тики/Юрий Гагарин, или 1 B/O C/П с предварительным заполнением регистров 0, 4, 7, А, В, С, D (см. описание "ОС-1" в ТМ 10/85). Первоначально программа находится в "режиме взлёта", в котором, как и в "ОС-1", размеры станции не учитываются.

2. Стек при останове:

Т - гориз.скорость относительно станции

Z - расстояние по горизонтали от центра станции

Y - вертикальная скорость

X - расстояние по вертикали от центра станции

3. Маневр вводится аналогично Лунолёту-XXI: угол В↑ расход В↑ время С/П

Команда -1 С/П подаётся в окрестностях станции (10-20 км) и переводит программу в "режим причаливания".

Стек при останове

4. Станция - типа "ЮГ", т.е. вертикальный цилиндр длиной 600 м и диаметром 60. В режиме причаливания стек и маневр аналогичны режиму взлета, но расстояния по горизонтали и вертикали являются расстоянием до поверхности станции.

На графическом дисплее (К ГРФ) можно видеть картину окрестностей станции (точка - лунолет или человек в скафандре).

Орбитальная станция Юрий Гагарин

После стыковки со станцией (выполняется аналогично программе "ОС-2" - то есть только на торцевые площадки, при успехе выводится сообщение "Стыковка") можно:

а) заправиться и взлететь снова (топливо ПD С/П, перейти к п. 4)

б) повторить прыжок Коршунова. Для этого:

5) Ввести время в прыжке и C/П. Перейти к п.5. Останов аналогичен п.4.

Автор программы: paul-161.

Опубликовано: http://community.livejournal.com/mk_152/44827.html


Программа "ОС-XXI" версия 1.0

Файл OS.mkp (КС 40049/33)

  0 1 2 3 4 5 6 7 8 9
000 П E 2 2 5 0 П 5 3 6 6 0
010 П 6 1 7 3 8 ВП 3 П 7 5 ВП
020 4 + П 1 1 , 6 2 ИП 1 ÷ F √
030 × /-/ П 4 ИП E P x=0 00 54 ИП 7 П A ИП 4
040 П 0 1 5 0 0 П D 1 8 /-/ ВП
050 4 П C Cx П B 2 PP П 90 10 1 6
060 B↑ 6 2 PP П 90 00 3 0 B↑ 3
070 PP П 90 13 Cx П E П 8 PP П 90 45 B↑
080 2 ÷ ИП A + П A ИП 7 - P x<0 01 02
090 0 5 7 0 PP П 90 26 Cx B↑ B↑
100 ИП B С/П ИП 8 9 , 8 1 B↑ 3 ×
110 - P x≥0 01 40 K [x] П 2 0 5 5 8
120 PP П 90 26 Cx B↑ ИП 8 9 , 8 1
130 ÷ ИП 2 С/П ИП 2 B↑ Cx P БП 01 55
140 0 5 4 2 PP П 90 26 ИП C ИП B ИП A
150 ИП 1 - ИП 0 F O С/П P x≥0 02 46 П 2 F O
160 П 8 F O П 9 ИП 2 ИП E + П E ИП 8 ИП 2 ÷
170 ИП 6 × ИП D ИП 8 - P x≥0 01 40 П D ИП 5
180 + ÷ П 8 ИП 0 ИП 8 ИП 9 F sin × ИП 4 ИП 0
190 - ИП B × P ПП 02 39 П 0 + 2 ÷
200 ИП 4 - ИП A ÷ ИП 1 × ИП 4 + ИП 2 ×
210 ИП C + П C ИП B ИП 8 ИП 9 F cos × ИП 4 ИП A
220 ÷ F x2 ИП 1 × - ИП 4 ИП 0 - F x2 P ПП
230 02 39 П B + ИП 2 × P БП 00 80 ИП A
240 ÷ + ИП 2 × + В/О 3 0 0 /-/
250 П 7 ИП 0 ИП 4 - ИП 4 ИП 1 ÷ /-/ П 4 ИП A
260 × - П 0 ИП C ИП 1 ÷ ИП A × П C ИП A
270 ИП 1 - П A 3 0 /-/ П 1 4 PP П 90
280 01 P ИП 19 P ИП 18 PP П 90 11 0 PP П
290 90 01 ИП A 2 0 ÷ /-/ 3 1 +
300 P П 19 ИП C 2 0 ÷ 6 3 + P П
310 18 PP П 90 11 ИП 7 ИП A K |x| + P П 17
320 ИП 1 ИП C K |x| + P П 16 P x<0 03 65 P ИП
330 17 P x≠0 03 48 P x<0 03 65 ИП B F x2 ИП 0
340 F x2 + F √ ÷ П 2 P БП 04 60 0 5
350 7 9 PP П 90 26 ИП 0 P ИП 16 ИП B P ИП
360 17 С/П P БП 05 17 ИП 8 9 , 8 1
370 B↑ 3 × - P x≥0 04 03 K [x] П 2 0
380 5 5 8 PP П 90 26 Cx B↑ ИП 8 9
390 , 8 1 ÷ ИП 2 С/П ИП 2 B↑ Cx
400 P БП 04 28 ИП D P x=0 04 14 0 5 8
410 9 P БП 04 18 0 5 4 2 PP П 90
420 26 ИП 0 P ИП 16 ИП B P ИП 17 С/П П 2 F O
430 П 8 F O П 9 ИП D P x=0 04 40 0 П 8 П 9
440 ИП 2 ИП E + П E ИП 8 ИП 2 ÷ ИП 6 × ИП D
450 ИП 8 - P x≥0 04 03 П D ИП 5 + ÷ П 8
460 ИП 0 ИП 8 ИП 9 F sin × ИП B /-/ P ПП 05 09
470 + П 0 P ПП 05 13 2 ÷ ИП C + П C
480 ИП B ИП 9 F cos ИП 8 × ИП 4 F x2 ИП A × 3
490 × + ИП 0 P ПП 05 09 + П B P ПП 05
500 13 2 ÷ ИП A + П A P БП 02 77 2
510 × ИП 4 × + ИП 2 × В/О 3 0 0
520 /-/ П 7 1 - П A 3 0 П C /-/ П 1
530 1 5 0 П 5 0 П 0 П B П D П 6 P БП
540 04 03 82h A2h A5h A4h A8h E2h A5h 20h
550 ACh A0h ADh A5h A2h E0h 3Ah 00h 8Fh 85h
560 90h 85h 83h 90h 93h 87h 8Ah 80h 21h 00h
570 8Fh 8Eh 91h 80h 84h 8Ah 80h 21h 00h 91h
580 92h 9Bh 8Ah 8Eh 82h 8Ah 80h 21h 00h 8Fh
590 E0h EBh A6h AEh AAh 21h 00h      

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

Файл OS.mkl

; ОС-XXI
; Версия 1.0, 07.12.09

; Исходные данные
	M E
	2250
	M 5
	3660 
	M 6
	1738 EE 3
	M 7
	5 EE 4
	+
	M 1
	1,62
	RM 1
	/
	F SQRT
	*
	+/-
	M 4
	RM E
	P X=0 INIT_DATA
	RM 7
	M A
	RM 4
	M 0
	1500
	M D
	18 +/- EE 4
	M C
	CX
	M B
INIT_DATA:
	2
	PP M 9010
	16
	ENT
	62
	PP M 9000
	30
	ENT
	3
	PP M 9013
	CX
	M E
	M 8
	PP M 9045
	ENT
BEGIN:
	2
	/
	RM A
	+
	M A
	RM 7
	-	
	P X<0 LBL1
	.NUM MESS2
	PP M 9026
	CX
	ENT
	ENT
	RM B
	R/S
LBL1:
	RM 8
	9,81
	ENT
	3
	*
	-
	P X>=0 LBL3
	K INT
	M 2
	.NUM MESS1
	PP M 9026
	CX
	ENT
	RM 8
	9,81 /
	RM 2
	R/S
	RM 2
	ENT
	CX
	<->
	P GOTO TIME
LBL3:
	.NUM MESS0
	PP M 9026
PRINT:
	RM C
	RM B
	RM A
	RM 1
	-
	RM 0
	F R
	R/S
TIME:
	P X>=0 BUFFER
	M 2
	F R
	M 8
	F R
	M 9
	RM 2
	RM E
	+
	M E
	RM 8
	RM 2
	/
	RM 6
	*
	RM D
	RM 8
	-
	P X>=0 LBL3
	M D
	RM 5
	+
	/
	M 8
	RM 0
	RM 8
	RM 9
	F SIN
	*
	RM 4
	RM 0
	-
	RM B
	*
	P GSB SUB1
	M 0
	+
	2
	/
	RM 4
	-
	RM A
	/
	RM 1
	*
	RM 4
	+
	RM 2
	*
	RM C
	+
	M C
	RM B
	RM 8
	RM 9
	F COS
	*
	RM 4
	RM A
	/
	F X^2
	RM 1
	*
	-
	RM 4
	RM 0
	-
	F X^2
	P GSB SUB1
	M B
	+
	RM 2
	*
	P GOTO BEGIN
SUB1:
	RM A
	/
	+
	RM 2
	*
	+
	RTN

BUFFER:
	300
	+/-
	M 7
	RM 0
	RM 4
	-
	RM 4
	RM 1
	/
	+/-
	M 4
	RM A
	*
	-
	M 0
	RM C
	RM 1
	/
	RM A
	*
	M C
	RM A
	RM 1
	-
	M A
	30
	+/-
	M 1

OS2:
	4
	PP M 9001
	P RM 19
	P RM 18
	PP M 9011
	0
	PP M 9001
	RM A
	20 /
	+/-
	31 +
	P M 19
	RM C
	20 /
	63 +
	P M 18
	PP M 9011
	RM 7
	RM A
	K ABS
	+
	P M 17
	RM 1
	RM C
	K ABS
	+
	P M 16
	P X<0 LBL4
	P RM 17
	P X!=0 LINK1
	P X<0 LBL4
	RM B
	F X^2
	RM 0
	F X^2
	+
	F SQRT
	/
	M 2
	P GOTO FAIL
LINK1:
	.NUM MESS3
	PP M 9026
	RM 0
	P RM 16
	RM B
	P RM 17
	R/S
	P GOTO JUMP
LBL4:
	RM 8
	9,81
	ENT
	3
	*
	-
	P X>=0 LBL5
	K INT
	M 2
	.NUM MESS1
	PP M 9026
	CX
	ENT
	RM 8
	9,81 /
	RM 2
	R/S
	RM 2
	ENT
	CX
	<->
	P GOTO TIME1
LBL5:
	RM D
	P X=0 LBL6
	.NUM MESS4
	P GOTO PRINT1
LBL6:
	.NUM MESS0
PRINT1:
	PP M 9026
	RM 0
	P RM 16
	RM B
	P RM 17
	R/S
TIME1:
	M 2
	F R
	M 8
	F R
	M 9
	RM D
	P X=0 NO_JUMP
	0
	M 8
	M 9
NO_JUMP:
	RM 2
	RM E
	+
	M E
	RM 8
	RM 2
	/
	RM 6
	*
	RM D
	RM 8
	-
	P X>=0 LBL5
	M D
	RM 5
	+
	/
	M 8
FAIL:
	RM 0
	RM 8
	RM 9
	F SIN
	*
	RM B
	+/-
	P GSB SUB3
	+
	M 0
	P GSB SUB4
	2
	/
	RM C
	+
	M C
	RM B
	RM 9
	F COS
	RM 8
	*
	RM 4
	F X^2
	RM A
	*
	3
	*
	+
	RM 0
	P GSB SUB3
	+
	M B
	P GSB SUB4
	2
	/
	RM A
	+
	M A
	P GOTO OS2
SUB3:
	2
	*
	RM 4
	*
SUB4:
	+
	RM 2
	*
	RTN
		
JUMP:
	300
	+/-
	M 7
	1
	-
	M A
	30
	M C
	+/-
	M 1
	150
	M 5
	0
	M 0
	M B
	M D
	M 6
	P GOTO LBL5	

MESS0:
.TEXT "Введите маневр:\0"
MESS1:
.TEXT "ПЕРЕГРУЗКА!\0"
MESS2:
.TEXT "ПОСАДКА!\0"
MESS3:
.TEXT "СТЫКОВКА!\0"
MESS4:
.TEXT "Прыжок!\0"
.END


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