 (defn execute-decstr [{:keys [height] :as vt}]
   (if (= (get-intermediate vt 0) 0x21)
     (-> vt
+        show-cursor
+        (set-margin 0 (dec height))
         (assoc :insert-mode false
                :origin-mode false
                :char-attrs {}
-               :top-margin 0
-               :bottom-margin (dec height)
-               :saved initial-saved-cursor)
-        (assoc-in [:cursor :visible] true))
+               :saved initial-saved-cursor))
     vt))
 
 (defn execute-decstbm [{:keys [height] :as vt}]

           [nil 4] (assoc vt :insert-mode false)
           [0x3f 6] (-> vt (assoc :origin-mode false) move-cursor-to-home)
           [0x3f 7] (assoc vt :auto-wrap-mode false)
           [0x3f 25] (assoc-in vt [:cursor :visible] false)
           :else vt)))

(defn reset-attrs [vt]

        bottom (dec (get-param vt 1 height))]
    (if (< -1 top bottom height)
      (-> vt
          (set-margin top bottom)
          move-cursor-to-home)
      vt)))

