32 lines
999 B
QBasic
32 lines
999 B
QBasic
' *** CHR_EX.BAS ***
|
||
'
|
||
DEFINT A-Z
|
||
' Display two double-sided boxes.
|
||
CALL DBox(5,22,18,40)
|
||
CALL DBox(1,4,4,50)
|
||
END
|
||
|
||
' Subroutine to display boxes.
|
||
' Parameters:
|
||
' Urow%, Ucol% : Row and column of upper-left corner.
|
||
' Lrow%, Lcol% : Row and column of lower-right corner.
|
||
' Constants for extended ASCII graphic characters.
|
||
CONST ULEFTC=201, URIGHTC=187, VERTICAL=186, HORIZONTAL=205
|
||
CONST LLEFTC=200, LRIGHTC=188
|
||
|
||
SUB DBox (Urow%, Ucol%, Lrow%, Lcol%) STATIC
|
||
' Draw top of box.
|
||
LOCATE Urow%, Ucol% : PRINT CHR$(ULEFTC);
|
||
LOCATE ,Ucol%+1 : PRINT STRING$(Lcol%-Ucol%,CHR$(HORIZONTAL));
|
||
LOCATE ,Lcol% : PRINT CHR$(URIGHTC);
|
||
' Draw body of box.
|
||
FOR I=Urow%+1 TO Lrow%-1
|
||
LOCATE I,Ucol% : PRINT CHR$(VERTICAL);
|
||
LOCATE ,Lcol% : PRINT CHR$(VERTICAL);
|
||
NEXT I
|
||
' Draw bottom of box.
|
||
LOCATE Lrow%, Ucol% : PRINT CHR$(LLEFTC);
|
||
LOCATE ,Ucol%+1 : PRINT STRING$(Lcol%-Ucol%,CHR$(HORIZONTAL));
|
||
LOCATE ,Lcol% : PRINT CHR$(LRIGHTC);
|
||
END SUB
|
||
|