Forever Young #01
21 июля 1998

Программирование - процедура на Бейсике "КАЛЕНДАРЬ".

<b>Программирование</b> - процедура на Бейсике
================================
░▒▓█ ПРОЦЕДУРКА "КАЛЕНДАРЬ" █▓▒░
================================
             * * *
  В журнале "ZX-РЕВЮ'97,7/10" бы
ла статья (С) Jеssicа Justicе, в
которой он приводил BASIC-проце-
дуру календаря и предложил "пере
кинуть" её в коды. Так как BASIC
я практически не знаю, а с каль-
кулятором никогда не разбирался,
то написал аналогичную процедур-
ку в кодах, которая не использу-
ет ни калькулятор, ни ПЗУ. Вооб-
ще-то, эту процедурку нельзя наз
вать "изящной", да и длина ( 313
байт без учёта BC и DE ) велико-
вата, зато год можно выбирать от
1 до 65535. На входе: D - месяц,
E - число, BC - год. На выходе в
A - номер дня недели (1 - воскре
сенье, 2 - понедельник, 3 - втор
ник, еtc.). Если нужно знать, яв
ляется ли год високосным, или же
нет,- это можно вычислить, напри
мер, так:
           LD BC,#0704
           LD A,(YEARS+1)
    YEAR0  CP #1B
           JR Z,ВИСОКОСНЫЙ
           ADD A,C
           DJNZ YEAR0
           ... НЕВИСОКОСНЫЙ

  Другими словами, если содержи-
мое (YEARS+1) = 3,7,11,15,19,23,
27, значит год високосный. Учти-
те, что это "современный" кален-
дарь ( и не пугайтесь ;) ...

************************ TOP ***
YEARS LD A,#17
      INC A
      CP #1C
      JR NZ,YEAR1
      XOR A
YEAR1 LD (YEARS+1),A
      DEC BC
      LD A,B
      OR C
      JR NZ,YEARS
      LD HL,TABLE
      LD C,D
      DEC C
      ADD HL,BC
      LD C,#0C
      LD D,#11
      LD A,(YEARS+1)
      OR A
      JR Z,YEAR2
      CP #06
      JR Z,YEAR2
      CP D
      JR Z,YEAR2
      ADD HL,BC
      DEC A
      JR Z,YEAR2
      CP #0B
      JR Z,YEAR2
      CP D
      JR Z,YEAR2
      ADD HL,BC
      DEC A
      JR Z,YEAR2
      CP #0B
      JR Z,YEAR2
      CP #16
      JR Z,YEAR2
      ADD HL,BC
      DEC A
      JR Z,YEAR2
      ADD HL,BC
      DEC A
      JR Z,YEAR2
      CP #06
      JR Z,YEAR2
      CP D
      JR Z,YEAR2
      ADD HL,BC
      DEC A
      JR Z,YEAR2
      CP #0B
      JR Z,YEAR2
      CP D
      JR Z,YEAR2
      ADD HL,BC
      SUB #02
      JR Z,YEAR2
      ADD HL,BC
      DEC A
      JR Z,YEAR2
      CP #06
      JR Z,YEAR2
      CP D
      JR Z,YEAR2
      ADD HL,BC
      DEC A
      JR Z,YEAR2
      CP #0B
      JR Z,YEAR2
      CP D
      JR Z,YEAR2
      ADD HL,BC
      SUB #02
      JR Z,YEAR2
      ADD HL,BC
      SUB #04
      JR Z,YEAR2
      ADD HL,BC
      SUB #04
      JR Z,YEAR2
      ADD HL,BC
      SUB #04
      JR Z,YEAR2
      ADD HL,BC
YEAR2 LD A,(HL)
      ADD A,E
YEAR3 CP #08
      RET C
      SUB #07
      JR YEAR3
TABLE DB 5,1,1,4,6,2,4,0,3,5,1,3
      DB 6,2,2,5,0,3,5,1,4,6,2,4
      DB 0,3,3,6,1,4,6,2,5,0,3,5
      DB 1,4,5,1,3,6,1,4,0,2,5,0
      DB 3,6,6,2,4,0,2,5,1,3,6,1
      DB 4,0,0,3,5,1,3,6,2,4,0,2
      DB 6,2,3,6,1,4,6,2,5,0,3,5
      DB 1,4,4,0,2,5,0,3,6,1,4,6
      DB 2,5,5,1,3,6,1,4,0,2,5,0
      DB 4,0,1,4,6,2,4,0,3,5,1,3
      DB 2,5,6,2,4,0,2,5,1,3,6,1
      DB 0,3,4,0,2,5,0,3,6,1,4,6
      DB 5,1,2,5,0,3,5,1,4,6,2,4
      DB 3,6,0,3,5,1,3,6,2,4,0,2
************************ END ***




Другие статьи номера:

Добро пожаловаться - о первом номере газеты.

Control keys - управления в газете.

Greeting - приветы.

Программирование - процедура на Бейсике "КАЛЕНДАРЬ".

Пять ролей на выбор - психологический тест-сказка.

Игры - прохождение игры "Venturama".

Софт - описание boot'a "SCARLET" OR "SHITVER".

Игры - описание новой игры "NUMBEROLOGY N1&2".

Игры - описание новой игры "JAZZY RABBIT".

Epilogue - юмор.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Ликбез - полный дизассемблер ПЗУ (часть 25).
Interview - интервью взятое у slider/izhewsk.
Прикол - Сyть данной статьи,немного вас развеселить.

В этот день...   8 декабря