[Back to EGAVGA SWAG index]  [Back to Main SWAG index]  [Original]

{
> im coding a program at the moment that needs to have a scrolly bar
> menu. I have got all the movement's worked out, however! I cannot
> work out how to have some sort of bar (like in PowerMenu)... you press
> enter when the scrolly bar hits your desired selection and it
> executes another procedure or function...

As I understand your problem, you need to know how to display a bar on
the screen where the screen and text have different colors, and then,
after moving away, restore the original colors in that bar. I hope
you have found out how to handle the cursor keys.
... searching for routines ... loading ... clipping
}

Procedure Colorbar(X,Y,Count: Word;Color: Byte); Assembler;
Asm
  MOV AX,80
  MUL Y
  ADD AX,X
  SHL AX,1
  INC AX
  MOV DI,AX
  MOV AX,Vidseg
  MOV ES,AX
  MOV CX,Count
  MOV AL,Color
@@1: STOSB
     INC DI
   LOOP @@1
End;
{

Give that procedure the vidseg ($B000 for Hercules or $B800 for the rest),
then call it. It sets a part of the screen to the color given to it.
The color values are 16*Backgroundcolor + Forgroundcolor, using the
color constants of the unit CRT. Add $80 to get it blink.
To delete the bar, just set the neutral color you have used while drawing
the screen.
BTW, there is no error checking in that routine, so giving bad values will
cause problems. You can use it for painting many lines by giving a larger
"count" parameter to it.
}

[Back to EGAVGA SWAG index]  [Back to Main SWAG index]  [Original]