Игра "Подводное путешествие" |
Главная / ЭКВМ / Программы для ЭКВМ / БРП-4 |
Программа из БРП-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
Примечание. В случае аварийного всплытия необходимо произвести ремонт аппарата, занеся для этого значение предельной глубины погружения в ячейку памяти ПА. Программа адаптированная для ЭКВМВ оригинальной программе использованы недокументированные особенности ПМК. Для её запуска на ЭКВМ следует занести в регистры 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. Инструкция по пользованию программой для ЭКВМ
Тестовый пример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)
Примечание. Считывание программ из БРП в МК-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)
Исходный текст для кросс-компилятораФайл 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 (многоканальный) |