SVGA, LBE, C + Asm

Тема в разделе "WASM.BEGINNERS", создана пользователем den_2006, 29 окт 2006.

  1. den_2006

    den_2006 New Member

    Публикаций:
    0
    Регистрация:
    29 окт 2006
    Сообщения:
    2
    Чтобы перевести в гр. режим 112h с использование LBE надо примерно это:
    В сегменте данных
    Ib db 256 dup(0) - иформация о режиме
    код:
    mov ax,4F01h ;4F01h - получить инфу про режим, 4112h - режим
    mov cx,4112h
    mov es:edi,offset Ib ; в es:edi - адрес на буфер с инфо-цией
    int 10h
    Теперь адрес Ib+028h - адрес начала LBE

    Можно ли сделать что-нибудь подобное на с++:

    char *b;
    char a[256] = {0};
    main(){
    b = a;
    _asm{
    mov ax, ds
    mov es, ax
    mov edi, offset b
    mov ax,4F01h
    mov cx,4112h
    int 10h
    }
    //a[40] a[41] a[42] a[43] - адрес LBE (?)
    }
    Но это не работает
     
  2. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    1 ошибка VBE(VESA BIOS EXTENSION). VESA(Video Electronics Standards Association)
    2 ошибка чтобы перевести в гр. режим 112h нужно 4F02, а для получения информации 4F01

    3 ошибка mov di, offset a
    Или
    заместа 3 команд les di,b

    4 ошибка LFB (Line Frame Buffer) или PhysBasePtr

    Нет только паскаль и асм. =)