Forever Young
#01
21 июля 1998 |
![]() |
Программирование - процедура на Бейсике "КАЛЕНДАРЬ".

================================ ░▒▓█ ПРОЦЕДУРКА "КАЛЕНДАРЬ" █▓▒░ ================================ * * * В журнале "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 ***
Другие статьи номера:
Похожие статьи:
В этот день... 31 марта