Календарь-2 (152)

«Календарь-2» (КС 16437/175) — очень практичная программа, т.к. в отличии от своих предшественников позволяет не только любоваться датами, но и устанавливать её на календаре, встроенном в МК-152. Для использования этой новой возможности достаточно набрать сегодняшнюю дату (например 24,112007) и нажать кнопку /—/ перед запуском программы (В/О С/П). Остальные тестовые примеры такие же, как для предыдущей программы (включая Cx В/О С/П для получения текущей даты). Не забудьте поместить в регистр B год перехода на новый стиль (1918 ПB).

 00.ПП    01.12    02.С/П   03.БП     04.00    05.8f    06.82   07.91    08.97    09.8f
 10.91    11.82    12.9     13.0      14.5     15.5     16.П6   17.Cx    18.2     19.ВП
 20.3     21.ПA    22.FO    23.Fx=0   24.75    25.КИП6  26.П5   27.П7    28.КИП6  29.П4
 30.КИП6  31.ИПA   32.+     33.П2     34.ПП    35.D8    36.КП6  37.БП    38.A2    39.Kmax
 40.FO    41.K[x]  42.1     43.Kmax   44.XY    45.FO    46.В/О  47.K{x}  48.ВП    49.2
 50.FВх   51.3     52.1     53.ПП     54.39    55.П5    56.П7   57.XY    58.K{x}  59.ВП
 60.4     61.П2    62.FВх   63.1      64.2     65.ПП    66.39   67.П4    68.В/О   69.ПП
 70.47    71.ПП    72.D8    73.БП     74.A2    75.Fx<0  76.69   77./-/   78.ПП    79.47
 80.ИП2   81.ИПA   82.Kmax  83.2      84.0     85.9     86.9    87.Kmax  88.XY    89.П2
 90.ПП    91.D8    92.ИП7   93.КП6    94.ИП4   95.КП6   96.ИП2  97.ИПA   98.-     99.КП6
100.ИП8  101.КП6  102.3    103.F10x  104.ПE   105.П6   106.+   107.П9   108.7    109.П0
110.1    111.0    112.КПE  113.4     114.5    115.КП6  116.FL0 117.15   118.Cx   119.КП6
120.4    121.ИП8  122.+    123.КИПРГ 124.КП9  125.ИПE  126.PPП 127.90   128.27   129.ИП4
130.ВП   131.2    132./-/  133.ИП7   134.+    135.ИП2  136.ИП8 137.В/О  138.ИП2  139.П3
140.ИПB  141.-    142.Fx≥0 143.45    144.KИП5 145.ИП4  146.3   147.-    148.Fx<0 149.54
150.KИП3 151.ИП4  152.9    153.+     154.1    155.3    156.x   157.2    158.+    159.5
160.%    161.K[x] 162.5    163.ИП3   164.x    165.4    166.%   167.K[x] 168.+    169.ИП5
170.+    171.В↑   172.В↑   173.7     174.%    175.K[x] 176.7   177.x    178.-    179.Fx=0
180.82   181.7    182.П8   183.В/О

Программа использует шестнадцатеричные адреса переходов — особенность, использовать которую не советует руководство по эксплуатации. Это (и невинный трюк с использованием В/О на шаге 137 для возврата со второй странички) позволяет сделать программу «Календарь-2» перемещаемой, достаточно на шаге 120 разместить, скажем, ИПC. А в регистр C занести адрес массива первых букв дней недели (шаги 05—11) минус один. Если загружать с нулевой странички, то он равен 4, а если загружать с 4-й — 404.

Основной цикл расположен по шагам 00—04. Шаги 12—22 инициализируют используемые регистры. Три режима работы программы (узнать текущую дату, узнать день недели и установить текущую дату) обрабатываются в ветвях 23—38, 69—74 и 75—101. Подпрограмма 39—46 осуществляет грубую проверку "на дурака": 30 февраля она не отсечёт, но и 14-й месяц не допустит. С помощью неё подпрограмма 47-68 расфасовывает по регистрам введённую в компактном формате дату.

Подпрограмма 102—137 взята из «Календаря-1» и занимается красивым выводом даты. Расчётный блок 138—183 вам тоже уже должен быть знаком, он мало изменился за прошедшие 20 лет.

Оценка: 4.5 (Голосов 2)

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".
А программы-то растут Автор: Serguei_Tarassov
Растут, но Автор: AtH