Программное отличие 8088 от 80C88

Разработка приложений под ретро системы
Ответить
Аватара пользователя
a2kkv
Junior Member
Сообщения: 128
Зарегистрирован: 13.10.2020,19:45
Откуда: Тамбов
Контактная информация:

Программное отличие 8088 от 80C88

Сообщение a2kkv » 12.09.2023,20:54

i8088 писал(а): 12.09.2023,09:22 Я правильно понял, это когда прерывание во время цепочечной инструкции с REP ломает переназначение сегмента?
Проверю с Intel D8087-2
Определение идет по похожему алгоритму:

https://groups.google.com/g/comp.lang.a ... BHpf5BUs7k
mov cx,2 ; test if following instruction will be
; repeated twice.
db 0F3h,26h,0ACh ; rep es: lodsb
jcxz Yes ; intel non-CMOS chips do not care of rep
jmp Nope ; before segment prefix override, NEC and
; CMOS-tech ones does.
Предполагалось, что ошибка исправлена в Intel 80C88 и NEC V20/V30, но судя по ссылке выше в Intel 8088 (C) 1983 этой ошибки тоже нет. В AMD P8088-2 ошибка тоже исправлена.

Кстати, по этой ссылке есть интересный тест CGA с исходниками

В BIOS Киселева речь идет о Harris / Intersil 80C88
Что он покажет на Intel 8088 (C) 1983 и AMD P8088-2 непонятно. Надо тестировать. У меня таких процессоров нет.

i8088
Advanced Member
Сообщения: 4295
Зарегистрирован: 30.01.2015,17:06
Откуда: г. Баку, Азербайджан

Конкурсы

Вклад в сообщество

Программное отличие 8088 от 80C88

Сообщение i8088 » 13.09.2023,09:50

a2kkv писал(а): 12.09.2023,20:54 Определение идет по похожему алгоритму:

https://groups.google.com/g/comp.lang.a ... BHpf5BUs7k
mov cx,2 ; test if following instruction will be
; repeated twice.
db 0F3h,26h,0ACh ; rep es: lodsb
jcxz Yes ; intel non-CMOS chips do not care of rep
jmp Nope ; before segment prefix override, NEC and
; CMOS-tech ones does.
Предполагалось, что ошибка исправлена в Intel 80C88 и NEC V20/V30, но судя по ссылке выше в Intel 8088 (C) 1983 этой ошибки тоже нет. В AMD P8088-2 ошибка тоже исправлена.
Это немного другое, чем я имел ввиду (а может и то же самое - кто знает было ли у него
прерывание в течении инструкции) - чуть позже займусь проверкой! У меня есть 80C88-2.
Баг возможно пропустили ввиду того, что lods с префиксом повторения формально
бессмысленен, хотя это используется в BIOS для инициализации кеша (во времена 8088 это
было неактуально).

Предлагаю не определять CPU таким ненадежным способом, а просто написать обнаруженные баги:
для опытных пользователей это важная информация, а для обычных особо и не интересен точный тип CPU.
a2kkv писал(а): 12.09.2023,20:54 Кстати, по этой ссылке есть интересный тест CGA с исходниками
О, я недавно тоже написал нечто подобное
viewtopic.php?t=45462
Исходники приложены

Ответить