Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 07:10 04.06.24 
Клубове/ Компютри и Интернет / Програмисти Пълен преглед*
Информация за клуба
Тема 6502 [re: Viper X]
АвторCALL-151 (Нерегистриран) 
Публикувано31.03.02 12:47  




Day of the Week

How to compute the day of the week in 6502 assembly.
By Paul Guertin (pg@sff.net), 18 August 2000.



* This routine works for any date from 1900-03-01 to 2155-12-31.
* No range checking is done, so validate input before calling.
*
* I use the formula
* Weekday = (day + offset[month] + year + year/4 + fudge) mod 7
* where the value of fudge depends on the century.
*
* Input: Y = year (0=1900, 1=1901, ..., 255=2155)
* X = month (1=Jan, 2=Feb, ..., 12=Dec)
* A = day (1 to 31)
*
* Output: Weekday in A (0=Sunday, 1=Monday, ..., 6=Saturday)

TMP EQU $6 ; Temporary storage

WEEKDAY:
CPX #3 ; Year starts in March to bypass
BCS MARCH ; leap year problem
DEY ; If Jan or Feb, decrement year
MARCH EOR #$7F ; Invert A so carry works right
CPY #200 ; Carry will be 1 if 22nd century
ADC MTAB-1,X ; A is now day+month offset
STA TMP
TYA ; Get the year
JSR MOD7 ; Do a modulo to prevent overflow
SBC TMP ; Combine with day+month
STA TMP
TYA ; Get the year again
LSR ; Divide it by 4
LSR
CLC ; Add it to y+m+d and fall through
ADC TMP
MOD7 ADC #7 ; Returns (A+3) modulo 7
BCC MOD7 ; for A in 0..255
RTS
MTAB DB 1,5,6,3,1,5,3,0,4,2,6,4 ; Month offsets





Цялата тема
ТемаАвторПубликувано
* Programa na Pascal??? Plamen   30.03.02 19:49
. * Re: Programa na Pascal??? dijkstra   30.03.02 20:01
. * Re: Programa na Pascal??? malkia   30.03.02 21:25
. * Re: Programa na Pascal??? Balam   02.04.02 00:32
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.