In modes 43 and 50 lines, the cursor is invisible. Proposed solution: 
FASMD.ASM    ; line 1696 / upd 1696
        mov ah,3
        xor bh,bh
        int 10h
        mov [stored_cursor],cx
        movzx ax,cl ; new lines {
        test ax, ax
        jnz overwrite_cursor_ok
        mov ax,0x000F
        mov cx,0x060F
    overwrite_cursor_ok:
        mov [overwrite_cursor],ax
        mov [normal_cursor],cx ; }
...
; line 2923 / upd 2931
        mov ah,1
        mov cx,[normal_cursor];instead 0x0D0E
        int 10h
        retn
    block_cursor:
        mov ah,1
        mov cx,[overwrite_cursor];instead 0x000F
        int 10h
        retn
    cursor_out_of_sight:
        mov ah,1
        mov cx,0x3031;instead 0x1000
        int 10h
        retn
...
; line 6669 / upd 6677
  stored_cursor dw ?
  normal_cursor dw ? ; new line
  overwrite_cursor dw ? ; new line