home *** CD-ROM | disk | FTP | other *** search
/ World of Shareware - Software Farm 2 / wosw_2.zip / wosw_2 / CPROG / CEXPRESS.ZIP / SCREEN.ASM / BACKGRND.ASM next >
Assembly Source File  |  1989-05-03  |  2KB  |  61 lines

  1. ;void  background(code);
  2. ;  unsigned char  code;
  3.  
  4.     EXTRN  _memory_model:byte
  5.     EXTRN  _text_attr:byte
  6.  
  7. _TEXT    SEGMENT BYTE PUBLIC 'CODE'
  8.     ASSUME CS:_TEXT
  9.     PUBLIC _background
  10. _background proc near
  11.     push bp            ;save BP
  12.     mov  bp,sp        ;set stack frame
  13.     cmp  _memory_model,0    ;near or far?
  14.     jle  begin        ;jump if near
  15.     inc  bp            ;else add 2 to BP
  16.     inc  bp            ;
  17. begin:    mov  al,_text_attr    ;get _text_attr
  18.     and  al,1111B        ;turn off four high bits
  19.     mov  bl,[bp+4]        ;get the code
  20.     cmp  bl,97        ;lower case?
  21.     jae  L1            ;jump ahead if so
  22.     or   al,10000000B    ;set intensity bit
  23.     add  bl,32        ;make it lower case
  24. L1:    sub  bh,bh        ;use BH as mask
  25.     cmp  bl,107        ;black?
  26.     je   L2            ;jump if so
  27.     inc  bh            ;increase mask value
  28.     cmp  bl,98        ;blue?
  29.     je   L2            ;jump if so
  30.     inc  bh            ;increase mask value
  31.     cmp  bl,103        ;green?
  32.     je   L2            ;jump if so
  33.     inc  bh            ;increase mask value
  34.     cmp  bl,99        ;cyan?
  35.     je   L2            ;jump if so
  36.     inc  bh            ;increase mask value
  37.     cmp  bl,114        ;red?
  38.     je   L2            ;jump if so
  39.     inc  bh            ;increase mask value
  40.     cmp  bl,109        ;magenta?
  41.     je   L2            ;jump if so
  42.     inc  bh            ;increase mask value
  43.     cmp  bl,121        ;yellow?
  44.     je   L2            ;jump if so
  45.     inc  bh            ;increase mask value
  46.     cmp  bl,119        ;white?
  47.     je   L2            ;jump if so
  48.     jmp  short L3        ;else don't change color
  49. L2:    mov  cl,4        ;shift left by four bits
  50.     shl  bh,cl        ;make the shift
  51.     or   al,bh        ;set the bits
  52.     mov  _text_attr,al    ;change _text_attr
  53.     pop  bp            ;restore BP
  54. L3:    cmp  _memory_model,0    ;quit
  55.     jle  quit        ;
  56.     db   0CBh        ;RET far
  57. quit:    ret            ;RET near
  58. _background endp
  59. _TEXT    ENDS
  60.     END
  61.