PRNTCLR PBCC (32-bit) Routine |
PRNTCLR routine displays text starting at the current screen position. Text being displayed may contain color switching codes to highlight its portions. Debugging program provides an example of the PRNTCLR routine usage that is intentionally tailored to resemble the SETCOLOR 4DOS batch script, color codes of which have been implemented by PRNTCLR routine. PRNTCLR Source Program Debugging program Debugging logout |
' PRNTCLR(0.0) Print Colored Text to Screen 09/25/1992-07/08/2005
' --------------------------------------------------------------------------
' Copyright (C) 1992-2005 by Vladimir Veytsel www.davar.net
' Type ---------------------------------------------------------------------
' Routine
' Declaration --------------------------------------------------------------
' DECLARE SUB PRNTCLR(Text$)
' Parameter ----------------------------------------------------------------
' Text$ - Text to be printed starting at current screen position that may
' contain color switching codes in the form of "%<code>%".
' Color Code Sample Usage
' -------------- ---- -------------
' Bright Red R Error message
' Bright Green G Title, info or disk name/letter
' Bright Yellow Y Command name or text accent
' Bright Blue B Status message
' Bright Magenta M Error message highlight
' Bright Cyan C Key, status msg h/l or complex message
' Bright White W Request or text highlight
' Gray: D DOS regular text
' Corresponding PBCC color switching operators:
' COLOR 12,0 ' Bright Red on Black
' COLOR 10,0 ' Bright Green on Black
' COLOR 14,0 ' Bright Yellow on Black
' COLOR 9,0 ' Bright Blue on Black
' COLOR 13,0 ' Bright Magenta on Black
' COLOR 11,0 ' Bright Cyan on Black
' COLOR 15,0 ' Bright White on Black
' COLOR 7,0 ' White on Black (standard DOS)
' Notes --------------------------------------------------------------------
' - Routine is intended for use in processing/conversion procedures running
' from DOS prompt and displaying processing messages on DOS screen.
' - Invalid usage of "%" delimiters could get message distorted; check in
' this case all instances of "%%" entries.
' - Invalid color code is ignored.
' Example ------------------------------------------------------------------
' CALL PRNTCLR("%B%Batch command %C%tracing %B%mode is now %C%OFF%D%")
' External Function --------------------------------------------------------
DECLARE FUNCTION TAILSTR$(Strng$,Delim$)
' Start Routine ------------------------------------------------------------
DEFINT A-Z ' All defaulted variables are integer
SUB PRNTCLR(Text$)
' Print Colored Text to Screen ---------------------------------------------
WHILE (LEN(Text$)>0)
IF (LEFT$(Text$,1)="%") THEN
IF (MID$(Text$,3,1)="%") THEN
Clr.Code$=MID$(Text$,2,1)
Text$=MID$(Text$,4)
IF (VERIFY(Clr.Code$,"RGYBMCWD")=0) THEN
IF (Clr.Code$="D") THEN
Clr.Numb=7
ELSE
Clr.Numb=8+INSTR("BGCRMYW",Clr.Code$)
END IF
COLOR Clr.Numb,0
END IF
ELSE
Text$=MID$(Text$,2)
END IF
ELSE
Text.Piece$=EXTRACT$(Text$,"%")
Text$ =TAILSTR$(Text$,"%")
IF (LEN(Text$)>0) THEN
Text$="%"+Text$
END IF
PRINT Text.Piece$;
END IF
WEND
' Finish Routine ------------------------------------------------------------
PRINT
END SUB
PRNTCLR Debugging Program Source program Debugging logout |
' PRNTCLR(0.0) Print Colored Text to Screen 09/25/1992-07/08/2005 ' -------------------------------------------------------------------------- $INCLUDE "PRNTCLR" $LINK "MODULE.PBL" DECLARE SUB PRNTCLR(Text$) CLS PRINT "PRNTCLR(0.0) Print Colored Text to Screen ";DATE$; PRINT " ";LEFT$(TIME$,5) PRINT STRING$(61,"-") PRINT CALL PRNTCLR("%G%PRNTCLR(0.0) Color Codes Demo") CALL PRNTCLR("-----------------------------------") CALL PRNTCLR("%R%Bright Red: R - Error message") CALL PRNTCLR("%G%Bright Green: G - Title, info or disk name/letter") CALL PRNTCLR("%Y%Bright Yellow: Y - Command name or text accent") CALL PRNTCLR("%B%Bright Blue: B - Status message") CALL PRNTCLR("%M%Bright Magenta: M - Error message highlight") CALL PRNTCLR("%C%Bright Cyan: C - Key, status msg h/l or complex message") CALL PRNTCLR("%W%Bright White: W - Request or text highlight") CALL PRNTCLR("%D%Gray: D - DOS regular text") PRINT CALL PRNTCLR("%G%Several examples follow:%D%") PRINT CALL PRNTCLR("%W%Insert %G%DDDD %W%disk into floppy drive %G%A: %W%and hit %C%[Enter]%D%") CALL PRNTCLR("%W%Hit %C%[Enter] %W%to play %Y%next %W%tune or %C%[Esc] %W%to %Y%quit%D%") CALL PRNTCLR("%R%Wrong disk %M%XXXX %R%is inserted instead of requested %M%DDDD%D%") CALL PRNTCLR("%R%Free space on disk %M%DDDD %R%is only %M%12 %R%Kilobytes%D%") CALL PRNTCLR("%B%Batch command %C%tracing %B%mode is now %C%OFF%D%") CALL PRNTCLR("%G%Execution will take some time, please wait...%D%") CALL PRNTCLR("Reading source file(s)...") COLOR 7,0 ' Gray PRINT PRINT "Execution completed - hit [Enter] to continue..."
PRNTCLR Debugging Logout Source program Debugging program |
PRNTCLR(0.0) Print Colored Text to Screen 07-08-2005 18:39 ------------------------------------------------------------- PRNTCLR(0.0) Color Codes Demo ----------------------------------- Bright Red: R - Error message Bright Green: G - Title, info or disk name/letter Bright Yellow: Y - Command name or text accent Bright Blue: B - Status message Bright Magenta: M - Error message highlight Bright Cyan: C - Key, status msg h/l or compl message Bright White: W - Request or text highlight Gray: D - DOS regular text |
View [and save] PRNTCLR.BAS text View [and save] ZPRNTCLR.BAS text (Use [Back] button or [Alt]+[CL] to return here from the viewed text) Copyright © 1992–2005 by Go to: Davar site entry | Site contents | Site index | Personal Computer | PBCC | Text top |