;; -*- mode: emacs-lisp; unibyte: t; -*- ;; Copyright (C) 1992 - 1999 Ehud Karni ;; ekdosfns.el: Ehuds Karni added DOS functions ;; ;; Edition History: ;; 1.1 91/12/07 Manabu Higashida Creation. ;; Modified by Darryl Okahata. ;; (defun disk-free-space (&optional drive) "Return a list of free space information of current drive.\n\ List elements are:\n\ 0. Number of unused sectors.\n\ 1. Number of bytes per sector.\n\ 2. Number of sectors per cluster." (let ((regs (make-register))) ; union REGS regs (set-register-value regs 'ah 54) ; regs.h.ah = 0x36 /* 54 */ (set-register-value regs 'dl (or (numberp drive) 0)) (intdos regs) (list (register-value regs 'bx) (register-value regs 'cx) (register-value regs 'ax)))) (defun get-cursor-mode () "Return a list of current cursor mode information.\n\ List elements are:\n\ 0. Start line.\n\ 1. End Line.\n\ 2. Blink mode.\n\ \n\ If this function can't get the info, returns nil." (let ((blink-mode) (start-line) (end-line) (regs (make-register))) ; union REGS regs (set-register-value regs 'ah 3) ; regs.h.ah = 0x03 (set-register-value regs 'bh 0) ; regs.h.bh = 0 (int86 16 regs) ; int86 (0x10 /* 16 */,...) (setq start-line (register-value regs 'ch)) (setq end-line (register-value regs 'cl)) (list start-line end-line blink-mode))) (defun set-cursor-mode (start-line end-line &optional blink-mode) "Set cursor shape for DOS Machine, specified from STARTPOS to ENDPOS.\n\ Optional third arg non-nil means cursor blinks." (and (numberp start-line) (numberp end-line) (let ((regs (make-register))) ; union REGS regs (set-register-value regs 'ah 1) ; regs.h.ah = 0x01 (set-register-value regs 'ch start-line) (set-register-value regs 'cl end-line) (int86 16 regs)) ; int86 (0x10 /* 16 */,...) nil)) ;;========================== end of ekdosfns.el ===============================