Canal Український геймер 🇺🇦 - @ukrainiangamermemes2001 - №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
82
25-08-03 13:33