: _type ( buf -- ) C< DUP 0xd = IF 2DROP EXIT THEN SWAP DUP _zbuf ( c a ) BEGIN ( c a ) C!+ C< TUCK 0x0d = UNTIL ( c a ) C! ; ( user-facing lines are 1-based ) : T 1- DUP 64 * EDPOS ! _pln ; : P IBUF _type IBUF EDPOS @ _cpos 64 MOVE BLK!! ; : _mvln+ ( ln -- move ln 1 line down ) DUP 14 > IF DROP EXIT THEN _lpos DUP 64 + 64 MOVE ; : _mvln- ( ln -- move ln 1 line up ) DUP 14 > IF DROP 15 _lpos _zbuf ELSE 1+ _lpos DUP 64 - 64 MOVE THEN ;