$CPU 8086 ' make compatible with XT systems $LIB ALL OFF ' turn off all PowerBASIC libraries $ERROR ALL OFF ' turn off all PowerBASIC error checking $OPTIMIZE SIZE ' optimize for smaller code $COMPILE UNIT ' compile to a UNIT (.PBU) '$COMPILE EXE ' compile to a UNIT (.PBU) DEFINT A-Z ' Required for all numeric functions, forces PB to not ' include floating point in UNIT (makes it smaller) '/*------------------------------------------------------------------*/ DECLARE SUB TBOX(BYVAL ROW,BYVAL COL,BYVAL ROWS,BYVAL COLS,BYVAL ATTR,BYVAL OPT,BYVAL SHAD) DECLARE SUB SAY(BYVAL Row AS INTEGER, BYVAL Col AS INTEGER, BYVAL Text AS STRING, BYVAL Attr AS INTEGER) DECLARE SUB GETFB(ATTR,CF,CB) DECLARE FUNCTION MKTATTR(CF,CB) AS INTEGER '/*------------------------------------------------------------------*/ $CODE SEG "MLIB1" '/*------------------------------------------------------------------*/ SUB SAYB(BYVAL ROW,BYVAL COL,BYVAL T$,BYVAL ATTR,BYVAL HATTR,OPT) PUBLIC IF ATTR = 0 THEN ATTR = SCREEN(ROW,COL,1) GETFB ATTR,FC,BC IF HATTR = 0 THEN HFC = 12 ELSE HFC = HATTR HFC = HATTR LC = 15 DC = 0 TL = LEN(REMOVE$(T$,"@")) IF OPT = 3 THEN BATTR = MKTATTR(DC,BC) TATTR = MKTATTR(FC,BC) HATTR = MKTATTR(HFC,BC) ABATTR = MKTATTR(LC,BC) GOSUB DISPLAYBUTTON EXIT SUB END IF IF OPT = 1 THEN BATTR = MKTATTR(DC,BC) TATTR = MKTATTR(FC,BC) HATTR = MKTATTR(HFC,BC) ABATTR = MKTATTR(LC,BC) GOSUB DISPLAYBUTTON DELAY .2 OPT = 0 END IF IF OPT = 0 THEN BATTR = MKTATTR(LC,BC) TATTR = MKTATTR(FC,BC) HATTR = MKTATTR(HFC,BC) ABATTR = MKTATTR(DC,BC) GOSUB DISPLAYBUTTON EXIT SUB END IF EXIT SUB DISPLAYBUTTON: TBOX ROW,COL,3,TL+2,BATTR,1,0 SAY ROW+1,COL+1,REMOVE$(T$,"@"),TATTR S = INSTR(1,T$,"@") IF S > 0 THEN SAY ROW+1,COL+S,MID$(T$,S+1,1),HATTR SAY ROW,COL+TL+1,CHR$(191),ABATTR SAY ROW+1,COL+TL+1,CHR$(179),ABATTR SAY ROW+2,COL+1,STRING$(TL,196),ABATTR SAY ROW+2,COL+TL+1,CHR$(217),ABATTR RETURN END SUB '/*------------------------------------------------------------------*/ ' $INCLUDE "C:\CODE\MLIB\MLIB.INC" ' SATTR 31 ' CLS ' ROW = 15 ' COL = 10 ' T$ = "@And Again" ' ATTR = 0 ' HATTR = 12 ' OPT = 0 ' SAYB ROW,COL,T$,ATTR,HATTR,OPT ' Y$ = GETKEY ' OPT = 1 ' SAYB ROW,COL,T$,ATTR,HATTR,OPT ' Y$ = GETKEY ' OPT = 3 ' SAYB ROW,COL,T$,ATTR,HATTR,OPT ' Y$ = GETKEY '/*------------------------------------------------------------------*/