DOS VGA

Тема в разделе "WASM.GRAPHICS", создана пользователем Andrei, 15 май 2018.

  1. Andrei

    Andrei Member

    Публикаций:
    0
    Регистрация:
    13 апр 2018
    Сообщения:
    322
    В режиме 1h, пишу в 1 станицу переключаюсь на неё, затем пишу в нулевую страницу переключаюсь на неё все работает норм ..., кроме одного при переключении на 1 страницу не правильно работает gotoxy(),
    из библиотеки conio.h.

    В чем может быть причина ???
     
  2. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    7
    Регистрация:
    25 июн 2008
    Сообщения:
    2.648
    Andrei,
    использовать push/pop не пробовал? Работа идет в DOSBox или на "чистом" DOS, или под WindowsXP?
     
  3. Andrei

    Andrei Member

    Публикаций:
    0
    Регистрация:
    13 апр 2018
    Сообщения:
    322
    Да вроде все в стек сохраняю, win7 или DOSbox ...
    Код (Text):
    1.  
    2. void PutChar ()
    3.       {
    4.        int sm=((((y-1)*40)+x)*2)-2;
    5.       asm {
    6. //   mov ax,1
    7. //   int 10h
    8.       //
    9.      //    mov al,40
    10.      //    mov ah,25
    11.    mov dl,symbol
    12.    mov dh,attribute
    13.    mov cl,pn
    14.       //     mov ch,ah
    15.      //      mul ch
    16.       //      shl ax,1
    17.    //  shl ax,1
    18.        //      sub ax,2
    19.    //      push di
    20.      push di
    21.      mov di,sm
    22.      push dx
    23.      mov ax,2048
    24.      xor ch,ch
    25.      mul cx
    26.      pop dx
    27.      add di,ax
    28.    //  ret
    29.    push es
    30.       //    push di
    31.    mov ax,0B800h
    32.    mov es,ax
    33. //    pop es
    34.    //  jmp CharAddr
    35.     // mov di,2100;
    36. mov es:[di],dx
    37. pop di
    38. pop es
    39.    // ret
    40.     }
    41.        return ;
    42.     //   CharAddr:
    43.     //    asm     {
    44.       //     }
    45.        }
    46.  
     
  4. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    7
    Регистрация:
    25 июн 2008
    Сообщения:
    2.648
    Andrei,
    а мне кажется, что количество попов не соответствует количеству пушей
     
  5. Andrei

    Andrei Member

    Публикаций:
    0
    Регистрация:
    13 апр 2018
    Сообщения:
    322
    Ок,
     
  6. Andrei

    Andrei Member

    Публикаций:
    0
    Регистрация:
    13 апр 2018
    Сообщения:
    322
    Все равно не помогает, в нулевой gotoxy() правильно координаты выставляет, а в первой все пишет по адресу (1,1)++
    То есть, первый пишет (1,1) второй на смещение от первого, ... в независимости от того что указано в GOTOXY(), т.е. GOTOXY() на 1 странице вообще в принципе не работает ...