..
Не таких уж и страшных расчётов требует дата RT:
Код:
inline word MakeRT11_Date( int year, int month, int day )
{
if( year < 1972 ) { year = 1972; }
word dec_year = year-1972;
return (dec_year & 0140)<<9 | (month & 017)<<10 | (day & 037)<<5 | dec_year & 037;
}
Код:
SetDate:
MovB Day, R1
MovB Month, R2
MovB DecYear, R3
Mov R3, R0
SwaB R0
ASL R0
BiC #^B0011111111111111, R0
BiC #^B1111111111100000, R3
SwaB R1
ASR R1
ASR R1
ASR R1
BiS R3, R1
SwaB R2
ASL R2
ASL R2
BiS R2, R1
BiS R0, R1
Mov R1, NewDate
Return