$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) '/*------------------------------------------------------------------*/ $CODE SEG "MLIB11" '/*------------------------------------------------------------------*/ FUNCTION SCRREAD(BYVAL XROW AS INTEGER, BYVAL XCOL AS INTEGER, BYVAL LTH AS INTEGER, BYVAL OPT AS STRING) PUBLIC AS STRING XRET$ = "" FOR XX = XCOL TO (XCOL + LTH) '/* --- Get Text? ---*/ IF OPT = "T" OR OPT = "B" THEN XT = SCREEN(XROW,XX,0) XRET$ = XRET$ + CHR$(XT) END IF '/* --- Get Attribute ---*/ IF OPT = "A" OR OPT = "B" THEN XT = SCREEN(XROW,XX,1) XRET$ = XRET$ + CHR$(XT) END IF SCRREAD = XRET$ NEXT XX END FUNCTION '/*---------------------------------------------------------------*/ SUB GVA(BYVAL ROW AS INTEGER, BYVAL COL AS INTEGER, BYVAL HIEGTH AS INTEGER, BYVAL W AS INTEGER, BYVAL OPT AS STRING, D$()) PUBLIC TR = ROW + HIEGTH ECNT = 0 FOR RCNT = ROW TO TR ECNT = ECNT + 1 D$(ECNT) = SCRREAD(RCNT,COL,W,OPT) NEXT RCNT D$(0) = STR$(ECNT) END SUB '/*---------------------------------------------------------------*/ ' $INCLUDE "C:\CODE\MLIB\MLIB.INC" ' DIM A$(50) ' CLS ' SATTR 12 ' ATTR = -1 ' TBOX 4,14, 19, 62, 12,1 ' LOCATE 4,27 ' PRINT "MICRO-HELP COLOR CHART" ' FOR ROW = 1 TO 16 ' LOCATE ROW+4,15 ' FOR COL = 1 TO 16 ' ATTR = ATTR + 1 ' X$ = RIGHT$(STR$(ATTR),LEN(STR$(ATTR))-1) ' L = LEN(X$) ' X$ = STRING$(3-L,32) + X$ ' SATTR ATTR ' PRINT X$; ' NEXT COL ' PRINT "" ' NEXT ROW ' GVA 4,14,17,49,"B",A$() ' T = VAL(A$(0)) ' CLS ' FOR CNT = 1 TO T ' SCRPUT CNT,1,A$(CNT),"B" ' NEXT CNT ' Y$ = GETKEY