Здравствуйте!
Для преобразования из BCD в десятичные данные использую макрос (может кому пригодиться быстро найти):
Для возвращения обратно в регистры PSW[3х], кроме года, использую такой макрос:Код:PSW[320] = (PSW[33] / 16) * 10 + PSW[33] % 16; // Hour PSW[321] = (PSW[34] / 16) * 10 + PSW[34] % 16; PSW[322] = (PSW[35] / 16) * 10 + PSW[35] % 16; PSW[323] = (PSW[32] / 16) * 10 + PSW[32] % 16; //Day PSW[324] = (PSW[31] / 16) * 10 + PSW[31] % 16; PSW[325] = 2000 + (LOBYTE(PSW[30]) / 16) * 10 + LOBYTE(PSW[30]) % 16;
А для года как?Код:WORD WORD_TO_BCD( WORD DecValue ) { if (DecValue > 99 || DecValue < 0 ) return 255; return ((DecValue/10)*6+DecValue); } PSW[33] = WORD_TO_BCD(PSW[320]); // Hour ....




