![]() |
Quote:
Арифметические команды выполняются 1-в-1, т.е. деление так и будет выполнено ассемблеровской командой div. Вот только ексепшен я пока не отлавливаю. Об этом я знаю. Будет сделано, когда-нибудь. Quote:
|
Quote:
|
Quote:
|
Quote:
Я понимаю, вставлять асм для ускорения, но для аутентичности, причем сомнительной... |
Quote:
|
Обновил эмуль. Исправил push sp и aad.
Quote:
|
Дамп походу с 80188, поэтому в этих дампах старшие биты нулевые. Вот здесь я тесты выцепил: http://orbides.1gb.ru/80186_tests.zip Ну только перекомпилял FASM'ом под 8Kb и в div вставил STI в начале на всякий случай. На самом деле хз, насколько они правильные и откуда (под чем) снимались дампы. Возможно даже не под реальным процом а в эмуляторе. Поэтому доверять им тоже надо 50/50
Оригинальный тред со ссылкой на тесты: http://forum.osdev.org/viewtopic.php...6a485&start=15 ---------- Post added at 16:54 ---------- Previous post was at 16:47 ---------- Quote:
|
Quote:
|
Quote:
Code:
;--------------------------------------------------------------------------------------- Post added at 17:13 ---------- Previous post was at 17:07 ---------- Еще почему CheckIT пишет NEC V20 - может из-за того, что в 8088 после mul всегда устанавливается ZF, даже если результат не ноль, а в V20 флаги устанавливаются в зависимости от результата. Code:
;--------------------------------------------------------------------------------------- Post added at 17:24 ---------- Previous post was at 17:13 ---------- Наоборот походу, 8086 может сдвигать на сколько хош туда сюда, 186 - ограничено. Кодес: Code:
mov cx,0121h ; If CH can be shifted by 21h, |
А что, подробной доки на 8086 до сих пор нету?
|
Quote:
|
1 Attachment(s)
Ну, у меня тест из архива вообще детектит как 286 проц:
|
1 Attachment(s)
Вот этот тест детектит как 80188
|
Quote:
|
Quote:
|
Добавил сброс флага Z после умножения, теперь детектится как 8088 :)
|
С _mhz я ошибся, он детектит как 188 тоже. И то же по этому же принципу. SHL и SHR 8088 может сдвигать на любое число в то время как 188+ только на "число mod 32"
|
Quote:
---------- Post added at 15:31 ---------- Previous post was at 15:29 ---------- Но это всё мелочи. Надо разбираться с переполнением при запуске теста скорости... |
Все, новая версия все ок. Единственное пожелание - все-таки сделать обработку DIV и IDIV нормальную, чтоб не валила эмуль при делении на ноль. А то не могу PC Doctor тест Interrupts запустить, валится. И да, нужно разбираться с переполнением.
Еще кстати один баг вроде наблюдаю, но пока точно сформировать не могу. Щаз попробую тесты наваять... ---------- Post added at 15:43 ---------- Previous post was at 14:37 ---------- Еще вопрос - а как отлаживать программу во встроенном дебагере? Ну в смысле, как отловить момент запуска? А то я в ком строке набираю например SUPER.EXE, нажимаю Enter и открываю дебаг - а там уже прога завершилась. Может есть какая недокум фишка? Или встроить ее, например при записи в какой-нить порт открывать дебаг или при вызове int ffh или что то в этом духе? Чтоб можно было свои проги отлаживать. Или я чего-то не понимаю? ---------- Post added at 16:32 ---------- Previous post was at 15:43 ---------- И еще вопрос - почему эмулятор не работает с любыми другими FDD BIOS - выкидывает в монитор? |
Quote:
- запустил программу, вышел из неё - открыл отладчик, поиском нашёл начало (несколько байт в точке входа) - поставил туда бряк, запустил эмуль дальше (F5) и снова запустил программу С .com файлами проще, они грузятся и запускаются по одному и тому-же адресу. У меня, например, после загрузки голого ДОСа, точка входа всегда одинаковая 0EBB:0 (ну или 0EAB:100, хотя я использую абсолютное смещение 0xEBB0, привычнее набирать без двоеточия). Ставлю бряк туда сразу после запуска отладчика. Quote:
|
1 Attachment(s)
Quote:
|
Все три работают, вот только контрольная сумма у всех трёх 0EDh, а не ноль. Биос их даже не пытается запустить. Если подправить регистр al после суммирования - всё работает. Подозреваю, рассчитаны на другой биос, который иначе считает КС.
---------- Post added at 20:14 ---------- Previous post was at 19:46 ---------- А, я понял. Третий байт ПЗУ - длина (количество блоков по 512 байт), в этих ПЗУ указано 16 блоков, хотя реально лишь 4 блока. Если просуммировать 4 блока, то будет ноль. Я разместил ПЗУ подряд, а реально было видимо с дырками, заполненными байтом FF. Если дополнительно просуммировать 256*n байт FF, то КС не изменится. Тогда вопрос - по каким адресам реально были размещены ПЗУ? |
Контрольная сумма у всех трех = 00h. Считается сложением всех байт файла (последний байт тоже считается). Опкод OR AL,AL устанавливает флаги ZF?
Ща посмотрю на Поиске по каким адресам |
2 Attachment(s)
E000:0 - FDD
E200:0 - HDD Но я чото запутался, да, FDD репортует о 8кб, и типа если читать 8 кб из памяти - то FDD BIOS там несколько раз повторяется. Наверное такая дешифрация. У HDD все нормально, 2 Kb. На всякий случай снял дамп вот этой прогой: http://www.mess.org/_media/dumping/dumppc.zip - файл DUMP.BIN, а так же своей поделкой - файлы E000.rom и E200.rom UPD: Заработал мой файл-командер. Пока с ним разбирался заметил, что: diet v1.44 (упаковщик EXE файлов) неправильно сжимает EXE - во первых результативный файл больше по размеру чем если его же сжимать на Поиске, во вторых такой файл конечно не запускается а виснет. И еще наблюдаю иногда глюки с неправильными аттрибутами символов в коммандере. |
Quote:
|
Quote:
|
А прошивка КЖД версии 1.7 есть? :)
|
Quote:
|
Короче хотел воспроизвести ошибку, по которой падает Checkit в бенчмарке с
Code:
run-time error M6104: MATHCode:
MS Run-Time Library - Copyright (c) 1988, Microsoft Corp\x11Code:
/*Code:
/IFPa Produces floating-point calls and selects alternate math library |
1 Attachment(s)
А не, как раз вариант с /FPi (дефолтный ключ) падает так:
Code:
run-time error M6101: MATHCode:
By default, IBM C/2 handles floating-point operations by generatingТак же в архиве ATFLOATI.EXE, ее листинг ATFLOAT.COD. |
http://mame.dorando.at/svn/?rev=26689 -- Поиск-1 добавили в MESS.
Восстановил схему клавиатуры 91 года (отдельно не описывал, все в коде), насколько могу судить -- все работает. Родной HDC пока работать не будет, а XT-IDE я не проверял. Флоппи ведут себя странно -- можно загрузиться и нормально работать с A: до смены диска, после этого dos начинает скипать каждую вторую дорожку (в итоге каталог дискеты читается, но файлы уже нет) В патч входят и другие вещи (ЕС-1847, скелет ПК-88 и клавиатуры Искры 1030) -- продолжение следует :) |
.... и вышел релиз MESS 0.152 с этим патчем. XT-IDE таки работает, но т.к. Поиск по-другому считает КС, нужно сначала стукнуть в бубен: "bpset fee68,ds==c800,{do ax=0200;go}" в отладчике перед стартом эмуляции). Итого:
http://img-fotki.yandex.ru/get/9836/...438c1f2_XL.png |
| All times are GMT +4. The time now is 04:56. |
Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.