home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / CLIPPER / MISC / FFA.ZIP / IBMCURSR.SEQ < prev    next >
Encoding:
Text File  |  1987-12-07  |  1.5 KB  |  68 lines

  1. \ IBMCURSR      IBM Specific display       Enhancements by Tom Zimmer
  2.  
  3. DECIMAL
  4.  
  5. CODE IBM-AT   ( col row -- )
  6.         POP AX
  7.         POP DX
  8.         MOV DH, AL
  9.         XOR BH, BH
  10.         MOV AH, # 2
  11.         INT 16
  12.         NEXT   C;
  13.  
  14. CODE IBM-DARK   ( -- )
  15.         MOV AX, # 2
  16.         INT 16
  17.         NEXT   C;
  18.  
  19. CODE IBM--LINE   ( -- )
  20.         PUSH BP
  21.         XOR BH, BH
  22.         MOV AH, # 3
  23.         INT   16 ( Read Cursor Position )
  24.         MOV CH, DH
  25.         XOR CL, CL ( Upper left corner )
  26.         MOV DX, # 24 256 * 79 + ( Lower right corner )
  27.         MOV BH, # 7
  28.         MOV AX, # 6 256 * 1 +
  29.         INT 16
  30.         POP BP
  31.         NEXT   C;
  32.  
  33. : >IBM   ( -- )
  34.         ['] IBM-AT   IS AT
  35.         ['] IBM-DARK IS DARK
  36.         ['] IBM--LINE IS -LINE ;        >IBM
  37.  
  38. \ Cursor shape control words by Tom Zimmer
  39.  
  40. CODE SET-CURSOR ( N1 --- )
  41.         POP CX
  42.         MOV AH, # 1
  43.         INT 16
  44.         NEXT C;
  45.  
  46. : GET-CURSOR    ( --- SHAPE ) 0 1120 ( 460h ) @L ;
  47.  
  48. HEX
  49.  
  50. : CURSOR-OFF    ( --- ) GET-CURSOR 2000  OR SET-CURSOR ;
  51.  
  52. : CURSOR-ON     ( --- ) GET-CURSOR 0F0F AND SET-CURSOR ;
  53.  
  54. : NORM-CURSOR   ( --- ) ?VMODE 7 = IF 0C0D ELSE 0607 THEN
  55.                         SET-CURSOR ;
  56.  
  57. : BIG-CURSOR    ( --- ) ?VMODE 7 = IF 020B ELSE 0106 THEN
  58.                         SET-CURSOR ;
  59.  
  60. : MED-CURSOR    ( --- ) ?VMODE 7 = IF 0A0D ELSE 0507 THEN
  61.                         SET-CURSOR ;
  62.  
  63. \ : SPLIT-CURSOR  ( --- ) ?VMODE 7 = IF 0C01 ELSE 0701 THEN
  64. \                        SET-CURSOR ;
  65.  
  66. DECIMAL
  67.  
  68.