User Tag List

Страница 19 из 20 ПерваяПервая ... 151617181920 ПоследняяПоследняя
Показано с 181 по 190 из 193

Тема: [Поиск 1] Эмуляция

  1. #181

    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,951
    Спасибо Благодарностей отдано 
    81
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    125 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    Если другой BIOS рассчитан на другой контроллер - то понятно. А если на такой-же, то выкладывай свой BIOS, я поковыряю-потрассирую.
    Ну ВГ93 она ж вроде и в африке ВГ93. Порты то не меняются, а как я понимаю, контроллер через них с вгшкой общается. Вот три разных BIOS от флоповых контролллеров, во всех случаях эмуль вываливается в монитор (F1 - работа с кассетой, F2 - работа с ПЗУ). Я понимаю, если бы вис или там с дискеты не грузился, но это странное поведение какое-то.
    Вложения Вложения

  2. #181
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #182

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,926
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    291
    Поблагодарили
    217 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Все три работают, вот только контрольная сумма у всех трёх 0EDh, а не ноль. Биос их даже не пытается запустить. Если подправить регистр al после суммирования - всё работает. Подозреваю, рассчитаны на другой биос, который иначе считает КС.

    ---------- Post added at 20:14 ---------- Previous post was at 19:46 ----------

    А, я понял. Третий байт ПЗУ - длина (количество блоков по 512 байт), в этих ПЗУ указано 16 блоков, хотя реально лишь 4 блока. Если просуммировать 4 блока, то будет ноль. Я разместил ПЗУ подряд, а реально было видимо с дырками, заполненными байтом FF. Если дополнительно просуммировать 256*n байт FF, то КС не изменится.

    Тогда вопрос - по каким адресам реально были размещены ПЗУ?

  4. #183

    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,951
    Спасибо Благодарностей отдано 
    81
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    125 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Контрольная сумма у всех трех = 00h. Считается сложением всех байт файла (последний байт тоже считается). Опкод OR AL,AL устанавливает флаги ZF?

    Ща посмотрю на Поиске по каким адресам

  5. #184

    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,951
    Спасибо Благодарностей отдано 
    81
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    125 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(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 - во первых результативный файл больше по размеру чем если его же сжимать на Поиске, во вторых такой файл конечно не запускается а виснет. И еще наблюдаю иногда глюки с неправильными аттрибутами символов в коммандере.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	hpcmd.png 
Просмотров:	280 
Размер:	5.0 Кб 
ID:	44615  
    Вложения Вложения
    Последний раз редактировалось Tronix; 19.12.2013 в 21:25.

  6. #185

    Регистрация
    22.11.2009
    Адрес
    Москва
    Сообщений
    1,699
    Спасибо Благодарностей отдано 
    84
    Спасибо Благодарностей получено 
    195
    Поблагодарили
    127 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Tronix Посмотреть сообщение
    Ну ВГ93 она ж вроде и в африке ВГ93. Порты то не меняются, а как я понимаю, контроллер через них с вгшкой общается. Вот три разных BIOS от флоповых контролллеров,
    А чем они друг от друга отличаются?

  7. #186

    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,951
    Спасибо Благодарностей отдано 
    81
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    125 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от shattered Посмотреть сообщение
    А чем они друг от друга отличаются?
    А хз.

  8. #187

    Регистрация
    22.11.2009
    Адрес
    Москва
    Сообщений
    1,699
    Спасибо Благодарностей отдано 
    84
    Спасибо Благодарностей получено 
    195
    Поблагодарили
    127 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А прошивка КЖД версии 1.7 есть?

  9. #188

    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,951
    Спасибо Благодарностей отдано 
    81
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    125 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от shattered Посмотреть сообщение
    А прошивка КЖД версии 1.7 есть?
    Ну вон же она, несколькими постами выше. E200h.rom

  10. #189

    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,951
    Спасибо Благодарностей отдано 
    81
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    125 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Короче хотел воспроизвести ошибку, по которой падает Checkit в бенчмарке с
    Код:
    run-time error M6104: MATH
    - floating point error: overflow
    checkit, согласно http://thomas.fach-pedersen.net/compiler-copyrights.txt , скомпилен Microsoft C 5.1, о чем говорит строка с копирайтом в EXE:
    Код:
    MS Run-Time Library - Copyright (c) 1988, Microsoft Corp\x11
    Установил MS C 5.1 (еле нашел), компилял какую-то писькомерку, перемножающую массив рандомных чисел несколько раз:
    Код:
    /*
     * ATFLOAT -- PC Tech Journal Floating-Point Performance Test
     *
     * Version 1.01
     * Last modified 11/04/86
     * Copyright (c) 1986, Ziff Communications Company
     * Program by: Paul Pierce, Ted Forgeron, Steven Armbrust
     *
     * Measures the time it takes to multiply two matrices of
     * double-precision floating-point numbers and compares it
     * to the time it takes an 8MHz PC/AT with an 80287 math
     * coprocessor to do the same.
     */
    
    #include <stdio.h>
    #include <time.h>
    
    /* Number of iterations the test runs for. */
    #define TRIALS 10
    
    /* Dimension of the matrix */
    #define SIZE 20
    
    unsigned rand();
    
    double drand()
    {
    
            return (double)rand() / 32767;
    }
    
    double a[SIZE][SIZE];
    double b[SIZE][SIZE];
    
    main()
    {
            int i;
            register j, k;
            int n;
            unsigned long start;
            unsigned long total;
            unsigned trials;
            double t;
    
            trials = TRIALS;
    
            /*
             * Fill matrix with random numbers.
             */
    
            for (i = 0; i < SIZE; i++)
                    for (j = 0; j < SIZE; j++)
                            a[i][j] = drand();
    
            /*
             * Repeatedly multiply the matrices and
             * report the relative and absolute times.
             */
    
            start = time(NULL);
            printf("\nATFLOAT -- PC Tech Journal AT Floating-Point");
            printf(" Performance Test\n");
            printf("Version 1.01, Copyright (c) 1986 Ziff ");
            printf("Communications Co.\n");
            printf("\nThis test runs for %d iterations ...\n", trials);
            for (n = 1; n <= trials; n++) {
                    printf("%d\r", n);
                    for (i = 0; i < SIZE; i++) {
                            for (j = 0; j < SIZE; j++) {
                                    t = 0;
                                    for (k = 0; k < SIZE; k++)
                                            t += a[k][j] * a[i][k];
                                    b[i][j] = t;
                            }
                    }
            }
    	total = time(NULL) - start;
            printf("\rElapsed time is %ld seconds.\n\n", total, trials);
            printf("Floating-point performance index relative\n");
            printf("to 8MHz IBM PC/AT with 80287 = %2.1f\n",
                    94.0 / (float) total);
    
    }
    Значит у MS C 5.1 есть несколько вариантов как работать с вещественными:
    Код:
    /IFPa Produces floating-point calls and selects alternate math library
    /IFPc Produces floating-point calls and selects emulator library
    /IFPc87 Produces floating-point calls and selects 8087/80287/80387 library
    /IFPi Produces in-line instructions and selects emulator library
    /IFPi87 Produces in-line instructions and selects 8087/80287/80387 library.
    Я пробовал компилить с /FPa, /FPc и соответственно с /FPi, который по дефолту. Все три варианта отрабатывают без ошибок Воспроизвести не смог.

  11. #190

    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,951
    Спасибо Благодарностей отдано 
    81
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    125 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А не, как раз вариант с /FPi (дефолтный ключ) падает так:
    Код:
    run-time error M6101: MATH
    - floating point error: invalid
    Значит /FPi генерит прям в коде опкоды сопроцессора (fld, fmul и тд). Библиотека эмулятора смотрит - если есть сопроцессор, то оставляет все как есть, если нет - то эмулятор вроде устанавливается в NMI (int 02h) и когда происходит invalid opcode обрабатывает его. Самое интересное - исходники флоат пойнт эмулятора с этой ран тайм либы в архиве EMOEM.ASM
    Код:
    By default, IBM C/2 handles floating-point operations by generating
    inline instructions (/FPi option). The emulator library is loaded, but if
    a numeric coprocessor is present at run time, the coprocessor is
    used instead of the emulator. This method of handling floating-point
    operations works whether or not you have a coprocessor installed.

    Так же в архиве ATFLOATI.EXE, ее листинг ATFLOAT.COD.
    Вложения Вложения

Страница 19 из 20 ПерваяПервая ... 151617181920 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. [Поиск 1] поиск информации по модулям
    от Daniil Chislov 86 в разделе Поиск
    Ответов: 7
    Последнее: 25.12.2023, 16:54
  2. [Поиск 3] Восстановление
    от Filin в разделе Поиск
    Ответов: 71
    Последнее: 13.12.2020, 16:23
  3. [Поиск 1] Tandy Sound эмуляция
    от Tronix в разделе Поиск
    Ответов: 2
    Последнее: 21.03.2019, 18:40
  4. [Поиск 2] Поиск информации
    от dk_spb в разделе Поиск
    Ответов: 17
    Последнее: 02.10.2017, 09:00
  5. Эмуляция AY/YM
    от mungo в разделе Эмуляторы
    Ответов: 18
    Последнее: 22.03.2013, 06:14

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •