home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
World of Shareware - Software Farm 2
/
wosw_2.zip
/
wosw_2
/
CPROG
/
CEXPRESS.ZIP
/
SCREEN.ASM
/
FOREGRND.ASM
< prev
next >
Wrap
Assembly Source File
|
1989-05-03
|
2KB
|
59 lines
;void foreground(code);
; unsigned char code;
EXTRN _memory_model:byte
EXTRN _text_attr:byte
_TEXT SEGMENT BYTE PUBLIC 'CODE'
ASSUME CS:_TEXT
PUBLIC _foreground
_foreground proc near
push bp ;save BP
mov bp,sp ;set stack frame
cmp _memory_model,0 ;near or far?
jle begin ;jump if near
inc bp ;else add 2 to BP
inc bp ;
begin: mov al,_text_attr ;get _text_attr
and al,11110000B ;turn off four low bits
mov bl,[bp+4] ;get the code
cmp bl,97 ;lower case?
jae L1 ;jump ahead if so
or al,1000B ;set intensity bit
add bl,32 ;make it lower case
L1: sub bh,bh ;use BH as mask
cmp bl,107 ;black?
je L2 ;jump if so
inc bh ;increase mask value
cmp bl,98 ;blue?
je L2 ;jump if so
inc bh ;increase mask value
cmp bl,103 ;green?
je L2 ;jump if so
inc bh ;increase mask value
cmp bl,99 ;cyan?
je L2 ;jump if so
inc bh ;increase mask value
cmp bl,114 ;red?
je L2 ;jump if so
inc bh ;increase mask value
cmp bl,109 ;magenta?
je L2 ;jump if so
inc bh ;increase mask value
cmp bl,121 ;yellow?
je L2 ;jump if so
inc bh ;increase mask value
cmp bl,119 ;white?
je L2 ;jump if so
jmp short L3 ;else don't change color
L2: or al,bh ;set the bits
mov _text_attr,al ;change _text_attr
pop bp ;restore BP
L3: cmp _memory_model,0 ;quit
jle quit ;
db 0CBh ;RET far
quit: ret ;RET near
_foreground endp
_TEXT ENDS
END