home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / forth / compiler / fpc / source / blinker.seq < prev    next >
Text File  |  1991-04-08  |  2KB  |  70 lines

  1. \ BLINKER.SEQ           Set blinkable state             Tom Zimmer
  2. comment:
  3. Normally colors 0 through 7 can be used interchangably in either forground
  4. or background, and colors 8 to 15 can be used in forground, but will cause
  5. the character to blink if used in the background.  This file switches off
  6. the blink attribute, so colors 8 to 15 can be used in the background.
  7.  
  8. Also in thie file is a word to set the color palette on VGA type displays,
  9. and words to get and set the border color.
  10.  
  11. comment;
  12.  
  13. code blink!     ( n1 -- )       \ set the background color blink state
  14.                                 \ n1=0=noblink, n1=<>0=blinkable background
  15.                 pop bx
  16.                 mov ax, # $1003
  17.                 int $10
  18.                 next    end-code
  19.  
  20. : blinkoff      ( -- )          \ disable blinking background color 8 - 15
  21.                 0 blink! ;
  22.  
  23. : blinkon       ( -- )          \ enable blinking background colors 8 - 15
  24.                 1 blink! ;
  25.  
  26. code pal!       ( color pallete -- )    \ set the color palette primitive
  27.                                         \ See DOS technical manuals for
  28.                                         \ more information.
  29.                 pop bx
  30.                 pop cx
  31.                 mov bh, cl
  32.                 mov ax, # $1000
  33.                 int $10
  34.                 next    end-code
  35.  
  36. code border!    ( n1 -- )               \ set border color to n1=0-15
  37.                 pop bx
  38.                 mov bh, bl
  39.                 mov ax, # $1001
  40.                 int $10
  41.                 next    end-code
  42.  
  43. code border@    ( -- n1 )               \ get the current border color
  44.                                         \ VALID ON VGA ONLY
  45.                 mov ax, # $1008
  46.                 int $10
  47.                 sub ax, ax
  48.                 mov al, bh
  49.                 1push   end-code
  50.  
  51. \S *************************************************************************
  52.  
  53. \ code to save and restore the border color automatically on entry to and
  54. \ exit from an F-PC application.
  55.  
  56. 0 value borderprev
  57.  
  58. : bordersave    ( -- )                  \ save current border color for later
  59.                 defers initstuff
  60.                 border@ !> borderprev ;
  61.  
  62. ' bordersave is initstuff
  63.  
  64. : borderrestore ( -- )                  \ restore the previous border color
  65.                 defers byefunc
  66.                 borderprev border! ;
  67.  
  68. ' borderrestore is byefunc
  69.  
  70.