display_ith_bar proc near
  push ax
  push bx
  push cx
  push dx
  push di


  mov di,height
  neg di
  add di,200    ; di gets (200 - height)
  mov ax,di
  shl di,8
  shl ax,6
  add di,ax     ; di gets 320 * (200 - height)
  mov ax,i
  shl ax,4      
  add di,ax     
  add di,4      ; di gets 320 * (200 - height) + (16 * i) + 4
  

  mov bx,height
db1:
  mov   cx,8
db2:
  mov   dl,color
  mov   al,i
  cmp   high_bar,al
  je    put_white
  mov   byte ptr es:[video_area+di],dl
  jmp   db3
put_white:
  mov   byte ptr es:[video_area+di],white
db3:
  inc   di
  loop  db2

  add   di,312
  dec   bx
  je    db1

  pop di
  pop dx
  pop cx
  pop bx
  pop ax
  ret
display_ith_bar endp