Профиль пользователя заблокирован сроком «навсегда» без указания причины
  • Забивается буфер клавиатуры как быть?

    MegaCraZy6
    @MegaCraZy6 Автор вопроса
    Я в цикл задержки затолкал очистку буффера, чтоб оставлялась только последняя нажатая буква, но при этом почему, когда зажимаю клавишу, оно ее как-бы с задержкой замечает что-ли
    - Нажато
    - Не нажато
    - Нажато.

    Хотя я при этом ее просто держу зажатой.

    Впринципе если так будет понятней вот код
    #make_boot#
    
    org 7c00h 
    use16 
    
    push ds
    push ds
    push ds
    jmp start 
    
    e: 
    ret
    
    e1:
    pop ds
    ret    
         
    put_pix_box: 
    push ax
    push bx
    push cx
    push dx
    
    push dx
    mov ax, 8000h 
    mov es, ax 
    mov ax,320 
    mul cx 
    pop dx 
    add ax,dx 
    mov di,ax 
    mov al,[boxc]
    stosb  
    pop dx
    pop cx
    pop bx
    pop ax
    ret 
    
    put_box_new_line:
    inc cx
    cmp cx,bx
    jz e  
    dec cx
    inc cx
    mov dx,[bxr]
    jmp ppb0 
    
    put_box: 
    mov [bxr],dx 
    ppb0:   
    call put_pix_box  
    cmp cx,bx
    jz e    
    cmp ax,dx
    jz put_box_new_line
    inc dx
    jmp ppb0 
    
    ;; AX - x2
    ;; DX - x1
    
    ;; CX - y1
    ;; BX - y2
    
    
    boxc db 0
    bxr  dw 0
    
    
    put_pix: 
    push ax 
    push dx 
    mov ax, 8000h 
    mov es, ax 
    mov ax,320 
    mul cx 
    pop dx 
    add ax,dx 
    mov di,ax 
    pop ax 
    stosb 
    ret 
    
    fill_disp: 
    push ds
    push ax 
    mov ax,8000h 
    mov ds,ax 
    pop ax 
    mov ah,al 
    mov bx,0000h 
    mov [bx],ax 
    p0: 
    add bx,2 
    mov [bx],ax 
    cmp bx,0FFFEh 
    jz e1 
    jmp p0 
    
    e_draw: 
    pop dx 
    pop bx 
    mov [x],dx 
    mov [y],bx
    pop ds 
    ret 
    
    draw_sprite_nexline: 
    inc si 
    mov al,00h 
    cmp al,[bx+si] 
    jz e_draw 
    dec si 
    add [y],01h 
    mov ax,[x_ret] 
    mov [x],ax 
    inc si 
    jmp draw_sprite_1 
    
    draw_sprite: 
    push ds
    mov ax,bx 
    mov dx,[x] 
    mov bx,[y] 
    push bx 
    push dx 
    mov bx,ax 
    mov ax,[x] 
    mov [x_ret],ax 
    mov si,0000h 
    draw_sprite_1: 
    mov ax, 8000h 
    mov es, ax 
    mov ax,320 
    mov cx,[y] 
    mul cx 
    mov dx,[x] 
    add ax,dx 
    mov di,ax 
    mov al,[bx+si] 
    cmp al,255 
    jz draw_sprite_2 
    stosb 
    draw_sprite_2: 
    inc si 
    mov al,00h 
    cmp al,[bx+si] 
    jz draw_sprite_nexline 
    add [x],1 
    jmp draw_sprite_1 
    
    draw_display:
    push ds 
    mov di,0000h 
    mov bx,0000h 
    mov si,0000h 
    mov ax,8000h 
    mov ds,ax 
    mov ax,0A000h 
    mov es,ax 
    draw_display_1: 
    cmp bx,0FFFFh 
    jz draw_display_2 
    mov al,[bx] 
    stosb 
    inc bx 
    jmp draw_display_1 
    draw_display_2: 
    jz e1
    
    
    color_clear db 0      
    clor_clear  db 0
    move_left:  
    cmp [x1],70+2+20
    jbe p3
    sub [x1],2
    jmp p3
    
    move_right:
    cmp [x1],140+80-13+20-1
    jae p3
    add [x1],2
    jmp p3  
    
    fsg:
    mov ah,00h
    int 1Ah
    mov [commet2],01h  
    mov [commet_2_x],140   
    mov [commet_2_y],00h
    mov [first_start],01h    
    mov [commet1],01h  
    mov [commet_1_x],0
    mov [commet_1_y],120
    jmp fsg1
    
    wait_spawn dw 0 
    commet1 db 0
    commet2 db 0  
    
    
    
    new_cometa_1:   
    mov [commet_1_y],0
    mov ax,[x1]
    mov [commet_1_x],ax
    jmp commets_con            
    
    cometa_1:
    cmp [commet_1_y],195
    ja new_cometa_1  
    mov ax,[commet_1_y]
    add ax,03h
    mov [commet_1_y],ax  
    mov ax,[commet_1_x]
    mov cx,[commet_1_y]
    mov [x],ax
    mov [y],cx         
    mov si,0000h
    mov di,si
    mov bx,commet1_sprite
    call draw_sprite 
    jmp commets_con
    
    new_cometa_2:
    mov [commet_2_y],0
    mov ax,[x1]
    mov [commet_2_x],ax
    ret
    
    cometa_2:
    cmp [commet_2_y],195
    ja new_cometa_2
    mov ax,[commet_2_y]
    add ax,03h
    mov [commet_2_y],ax   
    mov ax,[commet_2_x]
    mov cx,[commet_2_y]
    mov [x],ax
    mov [y],cx         
    mov si,0000h
    mov di,si
    mov bx,commet2_sprite
    call draw_sprite
    ret
    
    
    commets:
    cmp [commet1],01h
    jz cometa_1  
    commets_con:
    cmp [commet2],01h
    jz cometa_2
    ret           
    
    commets_draw:
    mov ax,[commet_2_x]
    mov cx,[commet_2_y]
    mov [x],ax
    mov [y],cx         
    mov si,0000h
    mov di,si
    mov bx,commet2_sprite
    call draw_sprite 
    mov ax,[commet_1_x]
    mov cx,[commet_1_y]
    mov [x],ax
    mov [y],cx         
    mov si,0000h
    mov di,si
    mov bx,commet1_sprite
    call draw_sprite 
    ret            
    
    colision_1: 
    mov ax,[commet_1_y]
    mov cx,[y1]
    add cx,18
    cmp ax,cx
    ja e
    mov ax,[commet_1_x]
    mov cx,[commet_1_y]
    cmp cx,150-8
    jb e  
    add ax,08h
    cmp ax,[x1]
    jnae e
    sub ax,08h
    mov dx,[x1]
    add dx,13
    cmp ax,dx
    jnbe e
    jmp foul  
    
    colision_2:   
    mov ax,[commet_2_y]
    mov cx,[y1]
    add cx,18
    cmp ax,cx
    ja e
    mov ax,[commet_2_x]
    mov cx,[commet_2_y]
    cmp cx,150-07h
    jb e  
    add ax,07h
    cmp ax,[x1]
    jnae e
    sub ax,09h
    mov dx,[x1]
    add dx,13
    cmp ax,dx
    jnbe e
    jmp foul 
    
    foul:
    mov [x],160
    mov [y],100
    mov bx,fouls
    mov di,0000h
    mov si,di
    call draw_sprite
    call draw_display
    foul0:  
    mov ah,0
    int 16h  
    jmp foul0
    
    
    
    commets_colision:
    call colision_1
    call colision_2
    ret
    
    
    
    start:  
    mov ah,00h
    int 1Ah   
    mov [wait_commets],dx  
    cld 
    mov ah, 0 
    mov al, 13h 
    int 10h 
    mov [x],160-23
    mov [y],100-3
    mov bx,pak
    mov di,0000h
    mov si,di
    call draw_sprite
    call draw_display
    mov ah,0
    int 16h
    p4:     
    mov ah,01h 
    int 16h 
    jz p7 
    mov ah,00h 
    int 16h 
    pkr0:
    cmp al,'a'
    jz move_left
    cmp al,'d'  
    jz move_right
    cmp ah,1Ch
    jnz p3             
    p7: 
    p3: 
    cmp [first_start],00h
    jz fsg
    fsg1:
    mov di,0000h 
    mov si,0000h 
    mov al,11h
    call fill_disp 
    mov ax,[x1]
    mov cx,[y1]
    mov [x],ax
    mov [y],cx
    mov di,0000h                                 
    mov si,0000h 
    mov bx,sprite     ;; Offset of sprite begin  
    call draw_sprite  ;; Draw sprite    
    ;; call draw_titles               
    mov ah,0
    int 1Ah
    mov [wait_commets],dx 
    pcomm1:
    mov ah,00h
    int 1Ah    
    cmp dx,[wait_commets]
    jz pcomm1
    call commets 
    pcomm:     
    call commets_draw  
    mov di,0000h
    mov si,di
    mov ax,240
    mov dx,89
    mov cx,0
    mov bx,20
    mov [boxc],11h 
    call put_box  
    mov di,0000h
    mov si,di
    mov ax,71+20
    mov dx,70+20
    mov cx,0
    mov bx,200
    mov [boxc],02h 
    call put_box     
    mov di,0000h
    mov si,di
    mov ax,140+80+20
    mov dx,139+80+20
    mov cx,0
    mov bx,200
    mov [boxc],02h 
    call put_box  
    call commets_colision  
    ;; _________________
             
    call draw_display ;; Display all     
    jmp p4         
    
    
    ;; AX - x2
    ;; DX - x1
    
    ;; CX - y1
    ;; BX - y2
    
    
    wait_commets dw 0
    ;; ------------------------------------------
    x_ret dw 0                                 ;-
    x dw 0                                     ;-
    y dw 0                                     ;-
                                               ;-
    tx dw 0                                    ;-
    ty dw 0                                    ;-
    ;; Global offsets for procedure draw_sprite;-
    ;------------------------------------------;-   
    
    x1 dw 160 ;; player
    y1 dw 150 ;; player
    
    fouls:
    db 28h,255,255,28h,28h,28h,255,28h,28h,255,28h,28h,0
    db 28h,255,255,28h,255,28h,255,28h,255,255,28h,255,0
    db 28h,255,255,28h,255,28h,255,28h,28h,255,28h,28h,0
    db 28h,255,255,28h,255,28h,255,255,28h,255,255,28h,0
    db 28h,28h,255,28h,28h,28h,255,28h,28h,255,28h,28h,0,0
    
    commet_1_x dw 90
    commet_1_y dw 199
    
    commet_2_x dw 100
    commet_2_y dw 20
    
    first_start db 0
    
    commet1_sprite:
    db 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0
    db 255,255,255,255,15,255,255,255,255,255,255,255,255,255,255,0
    db 255,255,255,15,15,15,15,15,15,15,255,255,255,255,255,0
    db 255,255,255,15,15,15,15,15,15,15,15,15,255,255,255,0
    db 255,255,15,15,15,15,15,15,15,15,15,15,255,255,255,0
    db 255,255,255,15,15,15,15,15,15,15,15,255,255,255,255,0
    db 255,255,255,255,255,15,15,15,15,255,255,255,255,255,255,0
    db 255,255,255,255,255,255,15,15,255,255,255,255,255,255,255,0,0 
    
    commet2_sprite:
    db 255,255,255,255,255,255,255,255,255,0
    db 255,255,15,15,15,255,255,255,255,0
    db 255,255,15,15,15,15,15,255,255,0
    db 255,15,15,15,15,15,15,15,255,0
    db 255,15,15,15,15,15,15,255,255,0
    db 255,255,15,15,15,15,255,255,255,0
    db 255,255,255,255,15,255,255,255,255,0,0
    
    sprite: 
    db 255,255,255,255,255,04h,255,04h,255,255,255,255,255,0
    db 255,255,255,255,255,17h,255,17h,255,255,255,255,255,0
    db 255,255,255,255,17h,17h,255,17h,17h,255,255,255,255,0
    db 255,255,255,255,17h,17h,255,17h,17h,255,255,255,255,0
    db 255,255,255,255,17h,17h,255,17h,17h,255,255,255,255,0
    db 255,255,255,17h,17h,17h,255,17h,17h,17h,255,255,255,0
    db 255,255,255,17h,17h,20h,20h,20h,17h,17h,255,255,255,0
    db 255,255,255,17h,17h,20h,20h,20h,17h,17h,255,255,255,0
    db 255,255,17h,17h,17h,20h,20h,20h,17h,17h,17h,255,255,0
    db 255,255,17h,17h,17h,15h,20h,15h,17h,17h,17h,255,255,0
    db 255,17h,17h,17h,17h,15h,17h,15h,17h,17h,17h,17h,255,0
    db 255,17h,17h,17h,17h,15h,17h,15h,17h,17h,17h,17h,255,0
    db 255,17h,17h,17h,17h,15h,17h,15h,17h,17h,17h,17h,255,0
    db 17h,17h,17h,17h,17h,15h,17h,15h,17h,17h,17h,17h,17h,0
    db 17h,17h,17h,17h,15h,15h,17h,15h,15h,17h,17h,17h,17h,0
    db 17h,17h,17h,15h,17h,15h,17h,15h,17h,15h,17h,17h,17h,0
    db 255,255,15h,17h,17h,15h,17h,15h,17h,17h,15h,255,255,0
    db 255,255,28h,28h,28h,255,255,255,28h,28h,28h,255,255,0,0        
               
    
    pak:
    db 15,15,15,255,15,15,15,255,15,15,15,255,15,15,15,255,15,15,15,255,255,15,15,15,255,15,255,255,15,255,15,255,15,255,255,15,255,255,15,255,15,15,15,255,15,255,15,0
    db 15,255,15,255,15,255,15,255,15,255,255,255,15,255,255,255,15,255,255,255,255,15,255,15,255,15,15,255,15,255,15,255,15,255,255,15,255,15,255,255,15,255,255,255,15,255,15,0
    db 15,15,15,255,15,15,15,255,15,15,15,255,15,15,15,255,15,15,15,255,255,15,255,15,255,15,15,255,15,255,15,15,15,255,255,15,15,255,255,255,15,15,15,255,255,15,255,0
    db 15,255,255,255,15,15,255,255,15,255,255,255,255,255,15,255,255,255,15,255,255,15,15,15,255,15,255,15,15,255,255,15,255,255,255,15,255,15,255,255,15,255,255,255,255,15,255,0
    db 15,255,255,255,15,255,15,255,15,255,255,255,255,255,15,255,255,255,15,255,255,15,255,15,255,15,255,15,15,255,255,15,255,255,255,15,255,255,15,255,15,255,255,255,255,15,255,0
    db 15,255,255,255,15,255,15,255,15,15,15,255,15,15,15,255,15,15,15,255,255,15,255,15,255,15,255,255,15,255,255,15,255,255,255,15,255,255,15,255,15,15,15,255,255,15,255,0,0      
           
    ;; New line of sprite -  ,0
    ;; End of sprite      -  ,0,0
    
    ;; 16 - black
    ;; 25 - white_black
    ;; 30 - white  
    ;; 43 - yellow
    ;; 40 - red
    ;; 32 - blue


    Разбираться в чужом кривом коде сложно поэтому.
    Есть другие варианты решить, или я не так делал?
  • Assemlber где найти палитру цветов?

    MegaCraZy6
    @MegaCraZy6 Автор вопроса
    Сергей Горностаев, Спасибо, я искал под другими запросами... "8 битний цвет" "Палитра 8 бит" И в том духе...
  • C++ как создавать обьэкты класса через указатель?

    MegaCraZy6
    @MegaCraZy6 Автор вопроса
    Olek1, Не учили и не учат. Все-равно же в переводе, а не в оригинале.
  • C++ как создавать обьэкты класса через указатель?

    MegaCraZy6
    @MegaCraZy6 Автор вопроса
    Olek1, Ну не всем.. пощасливилось... жить в России :D
  • C++ как создавать обьэкты класса через указатель?

    MegaCraZy6
    @MegaCraZy6 Автор вопроса
    Пожалуй надо будет по книге учить. Я то просто нашел какой-то "супер" ускореный курс изучения азов С++...

    Спасибо за ответ, уже какой раз спасаете :D
  • C++ как создавать обьэкты класса через указатель?

    MegaCraZy6
    @MegaCraZy6 Автор вопроса
    Александр, Почему-то правда не работает... :D выводит ID 4 елемента вроде
  • Assembler как работать со спикером на прямую?

    MegaCraZy6
    @MegaCraZy6 Автор вопроса
    Ех и в итоге ничего не понятно, да большинство иза моей тупости, но все-же

    MOV     AL, 10110110B    ; The Magic Number (use this binary number only)


    Как мне это понять...
  • Где найти игры на Assembly?

    Ну, я как-раз недавно тоже делал работу с графикой и у меня там примитивная програмка но работает.
    А вот и сам код

    org 7c00h 
    use16   
    push ds
    push ds
    push ds
    jmp start 
    
    e: 
    ret 
    
    
    put_pix: 
    push ax 
    push dx 
    mov ax, 8000h 
    mov es, ax 
    mov ax,320 
    mul cx 
    pop dx 
    add ax,dx 
    mov di,ax 
    pop ax 
    stosb 
    ret 
    
    fill_disp: 
    push ax 
    mov ax,8000h 
    mov ds,ax 
    pop ax 
    mov ah,al 
    mov bx,0000h 
    mov [bx],ax 
    p0: 
    add bx,2 
    mov [bx],ax 
    cmp bx,0FFFEh 
    jz e 
    jmp p0 
    
    e_draw: 
    pop dx 
    pop bx 
    mov [x],dx 
    mov [y],bx 
    ret 
    
    draw_sprite_nexline: 
    inc si 
    mov al,00h 
    cmp al,[bx+si] 
    jz e_draw 
    dec si 
    add [y],01h 
    mov ax,[x_ret] 
    mov [x],ax 
    inc si 
    jmp draw_sprite_1 
    
    draw_sprite: 
    mov ax,bx 
    mov dx,[x] 
    mov bx,[y] 
    push bx 
    push dx 
    mov bx,ax 
    mov ax,[x] 
    mov [x_ret],ax 
    mov si,0000h 
    draw_sprite_1: 
    mov ax, 8000h 
    mov es, ax 
    mov ax,320 
    mov cx,[y] 
    mul cx 
    mov dx,[x] 
    add ax,dx 
    mov di,ax 
    mov al,[bx+si] 
    cmp al,255 
    jz draw_sprite_2 
    stosb 
    draw_sprite_2: 
    inc si 
    mov al,00h 
    cmp al,[bx+si] 
    jz draw_sprite_nexline 
    add [x],1 
    jmp draw_sprite_1 
    
    draw_display: 
    mov di,0000h 
    mov bx,0000h 
    mov si,0000h 
    mov ax,8000h 
    mov ds,ax 
    mov ax,0A000h 
    mov es,ax 
    draw_display_1: 
    cmp bx,0FFFFh 
    jz draw_display_2 
    mov al,[bx] 
    stosb 
    inc bx 
    jmp draw_display_1 
    draw_display_2: 
    jz e 
    
    
    left_sprite: 
    sub [x],02h 
    jmp p3 
    right_sprite: 
    add [x],02h 
    jmp p3
    up_sprite:
    sub [y],02h
    jmp p3
    down_sprite:
    add [y],02h
    jmp p3 
    
    start:
    cld 
    mov ah, 0 
    mov al, 13h 
    int 10h 
    p4: 
    mov ah,01h 
    int 16h 
    jz p7 
    mov ah,00h 
    int 16h 
    cmp al,'a' 
    jz left_sprite 
    cmp al,'d' 
    jz right_sprite  
    cmp al,'w'
    jz up_sprite
    cmp al,'s'
    jz down_sprite
    
    p7: 
    p3: 
    mov di,0000h 
    mov si,0000h 
    mov al,200   
    push ds
    call fill_disp
    pop ds 
    mov di,0000h 
    mov si,0000h 
    mov bx,sprite  
    push ds
    call draw_sprite
    pop ds
    push ds 
    call draw_display
    pop ds 
    jmp p4 
    
    
    
    
    x_ret dw 0 
    x dw 160 
    y dw 100 
    
    
    sprite db 15,15,15,15,15,15,15,15,15,0,15,15,15,15,15,15,15,15,15,0,15,15,255,15,15,15,40,15,15,0,15,15,15,15,15,15,15,15,15,0,15,15,15,15,15,15,15,15,15,0,15,15,40,40,40,40,40,15,15,0,15,15,15,15,15,15,15,15,15,0,0
  • Сегмент и смещение, сколько где и чего?

    MegaCraZy6
    @MegaCraZy6 Автор вопроса
    Хммм ну как я разобрался по этому A = S * 16 + O.
    Получается что да следующий сегмент не лежит в диапазоне первого. А раньше казалось что сегмент и смещение это всего-лишь
    A = S + O

    Как же много это меняет.
  • Сегмент и смещение, сколько где и чего?

    MegaCraZy6
    @MegaCraZy6 Автор вопроса
    А сегмент 0001:0000 Уже не лежит в диапазоне сегмента 0000:0000? Если нет тогда получаеться что очень много памяти ( ну по моим меркам ) доступно в реальном режиме
  • Не выводит пару пикселей, через двойную буферизацию, в чем дело ( в дебагере и в виртуалке работает)?

    MegaCraZy6
    @MegaCraZy6 Автор вопроса
    jcmvbkbc, спасибо большое итак CS не равно DS когда ставил так DS все ломалось скорее всего иза загрузчика я с єго кодом не знаком, а если push pop DS , все красиво работает! :D Будет урок на будощее
  • Не выводит пару пикселей, через двойную буферизацию, в чем дело ( в дебагере и в виртуалке работает)?

    MegaCraZy6
    @MegaCraZy6 Автор вопроса
    jcmvbkbc, :DDDDDDDDDDDDD ХМммммммммммм спасибо. Чето я сильно затупил... надо что-то да придумать.
  • Не выводит пару пикселей, через двойную буферизацию, в чем дело ( в дебагере и в виртуалке работает)?

    MegaCraZy6
    @MegaCraZy6 Автор вопроса
    MegaCraZy6, тоесть цвет совсем рандомный. А спрайт совсем кривой и цвета не те. ( тоесть походу даже не тот спрайт )
  • Не выводит пару пикселей, через двойную буферизацию, в чем дело ( в дебагере и в виртуалке работает)?

    MegaCraZy6
    @MegaCraZy6 Автор вопроса
    jcmvbkbc, Провел пару тестов и понял что
    mov ax,cs
    mov ds,ax

    Делает что-то страшное и все ломается.

    Переделал так
    ( в самом начале )
    mov ax,ds
    mov [sg],ax
    ;; ...
    mov ds,[sg]


    Как-то больше пикселей вывело в примере с спрайтом в виде линии вроде даже вывело полностю линию но что-то с цветом не так...

    А я уж думал решение близко...

    PS:
    Код вывод спрайта линии
    #make_boot#
    
    org 7c00h 
    use16             
    mov ax,ds
    mov [cssegment],ax
    jmp start 
    
    cssegment dw 0
    
    e:
    mov ax,[cssegment]
    mov ds,ax
    mov es,ax
    ret
    
    put_clear:
    mov ax,8000h
    mov ds,ax
    mov al,200
    mov ah,al  
    mov bx,0000h
    put_clear0:
    mov [bx],ax 
    cmp bx,0FFFEh
    jz e     
    add bx,02h
    jmp put_clear0      
    
    put_sprite:
    mov ax,[cssegment]
    mov ds,ax
    mov ax,8000h
    mov es,ax
    mov di,420
    mov bx,sprite 
    put_sprite0:
    mov al,[bx] 
    cmp al,00h
    jz e  
    mov cl,al
    push ds
    mov ax,8000h
    mov ds,ax 
    mov al,cl
    mov [di],al
    pop ds
    inc bx  
    inc di
    jmp put_sprite0
    
    draw:
    mov ax,8000h
    mov ds,ax
    mov ax,0A000h
    mov es,ax
    mov bx,0000h
    mov di,0000h
    draw0:   
    mov al,[bx]
    mov cl,al
    push ds
    mov ax,0A000h
    mov ds,ax 
    mov al,cl
    mov [di],al
    pop ds
    cmp bx,0FFFFh
    jz e   
    inc bx   
    inc di
    jmp draw0
    
    start:  
    cld
    call e   
    mov ax,0013h
    int 10h  
    call put_clear
    cld
    call put_sprite
    cld
    call draw           
    mov ah,0
    int 16h
    
    db 250
    db 250
    db 250
    db 200
    db 200
    db 200
    sprite db 50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,0
  • Не выводит пару пикселей, через двойную буферизацию, в чем дело ( в дебагере и в виртуалке работает)?

    MegaCraZy6
    @MegaCraZy6 Автор вопроса
    jcmvbkbc, ввел в самом начале
    mov ax,0000h
    mov sp,ax
    mov ss, ax


    Никак не повлияло
    PS: Я думаю должен скачать как я проверяю работоспособность, я беру бинар, и через UltraICO собираю образ, там есть пунк, утановить загрузочным файлом, после чего этот ISO файл через easyBCD суну в MBR. Может это как-то повлияло. Хотя в моей мини все так-же сделано но работает отлично. разве был один баг тоже почему-то работало в виртуалке, а на железе нет. Но как-то да исправил.
  • Не выводит пару пикселей, через двойную буферизацию, в чем дело ( в дебагере и в виртуалке работает)?

    MegaCraZy6
    @MegaCraZy6 Автор вопроса
    jcmvbkbc, Я его по сто раз перезаписывал да и уже много вариантов проверял, ну как по минимуме цвет заливки менял
  • Не выводит пару пикселей, через двойную буферизацию, в чем дело ( в дебагере и в виртуалке работает)?

    MegaCraZy6
    @MegaCraZy6 Автор вопроса
    jcmvbkbc, Вот еще код, тоже работает на виртуалках, на железе, нет походу про графику мне можно забыть

    org 7c00h 
    use16
    jmp start
    
    e:
    mov ax,cs
    mov ds,ax
    mov es,ax
    ret
    
    put_clear:
    mov ax,8000h
    mov ds,ax
    mov al,200
    mov ah,al  
    mov bx,0000h
    put_clear0:
    mov [bx],ax 
    cmp bx,0FFFEh
    jz e     
    add bx,02h
    jmp put_clear0      
    
    put_sprite:
    mov ax,cs
    mov ds,ax
    mov ax,8000h
    mov es,ax
    mov di,420
    mov bx,sprite 
    put_sprite0:
    mov al,[bx] 
    cmp al,00h
    jz e  
    mov cl,al
    push ds
    mov ax,8000h
    mov ds,ax 
    mov al,cl
    mov [di],al
    pop ds
    inc bx  
    inc di
    jmp put_sprite0
    
    draw:
    mov ax,8000h
    mov ds,ax
    mov ax,0A000h
    mov es,ax
    mov bx,0000h
    mov di,0000h
    draw0:   
    mov al,[bx]
    mov cl,al
    push ds
    mov ax,0A000h
    mov ds,ax 
    mov al,cl
    mov [di],al
    pop ds
    cmp bx,0FFFFh
    jz e   
    inc bx   
    inc di
    jmp draw0
    
    start:  
    cld
    call e   
    mov ax,0013h
    int 10h  
    call put_clear
    cld
    call put_sprite
    cld
    call draw           
    mov ah,0
    int 16h
    
    db 250
    db 250
    db 250
    db 200
    db 200
    db 200
    sprite db 50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,0