Джерело
Український геймер 🇺🇦 | В командному чатіку колега згадав про проблему 2000 року в контексті о...
82 Охват/переглядів
2025-08-03 13:33
Повідомлення №3601
В командному чатіку колега згадав про проблему 2000 року в контексті оновлення старих систем, то ж пропоную почитати про те, як цю проблему вирішували в свій час. Проблема полягає в тому, що MS-DOS та Windows включно з Win98 беруть дату з BIOS, який в свою чергу бере її з регістрів мікросхеми реального часу (RTC), в яких під це відведено 1 байт. І саме відповідальність BIOS, як цей байт інтерпретувати. В якийсь момент виробники обладнання усвідомили цю проблему і домовились, що якщо значення регістру > 80, то інтерпретувати як 1980-1999, а якщо менше - то як 2000-2079, проте сталося це не одразу. Існувала вже купа обладнання, в якому до будь-якого значення регістру, відповідального за рік, додавалося 19 і ми отримували 1900-й рік. Навіть при наявності патчу для BIOS, щоб виправити проблему, в ті часи треба було витягнути мікросхему та перешити її на програматорі. Альтернативним рішенням є окрема плата з власною програмою, яка підключається на шину ISA, реєструє себе в пам'яті, перехоплює та коригує запити до RTC. Багато компаній розробляли схожі рішення, то ж пропоную вашій увазі контролер BIOS-Y2000 PS, розроблений в Києві, який теж виправляє проблему 2000 року. Це невеличка плата, яка містить всього 3 мікросхеми: ROM з підпрограмою корекції, декодер 74138 який декодує значення 3 джамперів та дозволяє зареєструвати підпрограму за різними адресами в пам'яті, та буфер шини даних 74245. При включенні комп'ютера контролер рееструється в заданій джамперами області пам'яті та перенаправляє на себе вектор переривань стандартних функцій запиту дати та часу. Далі він сам взаємодіє з RTC та коригує відповідь за тою самою логікою, все що менше 80 вважається датами 21 сторіччя. Контролер також показує на екрані BIOS повідомлення:BIOS-Y2000 ProblemSolver version 1.7x RTC & BIOS are ready for Year 2000. Product of Ukraine.
Як підберу відповідний сетап, протестую, як саме це працює. Інструкцію від контролера відсканував та закинув на archive.org
Як підберу відповідний сетап, протестую, як саме це працює. Інструкцію від контролера відсканував та закинув на archive.org