$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 SAY(BYVAL Row AS INTEGER, BYVAL Col AS INTEGER, BYVAL Text AS STRING, BYVAL Attr AS INTEGER) $CODE SEG "MLIB12" '/*------------------------------------------------------------------*/ SUB TSPREAD(ROW, COL, TEXT$, ATTR, DX!) PUBLIC '**************************************************************************** 'SPREADS TEXT ON THE SCREEN IN BOTH DIRECTIONS STARTING FROM THE SPECIFIED 'COORDINATES. DELAY IS MEASURED IN 100THS OF A SECOND. '**************************************************************************** D! = DX! 'CONVERT DELAY FROM AN INTEGER TO A 'SINGLE PRECISION VARIABLE. IF D! < 1 THEN D! = 5 'ASSIGN THE DEFAULT DELAY OF 1/20TH 'OF A SECOND (5/100). D! = D! / 100 'CHANGE DELAY TO 100THS OF A SECOND. IF TEXT$ = "" THEN EXIT SUB 'QUIT IF TEXT$ IS A NULL STRING. TXT$ = TEXT$ 'USE A TEMP VARIABLE TO MODIFY TEXT$. IF LEN(TXT$) MOD 2 = 1 THEN 'IF THE LENGTH OF TEXT$ IS NOT EVEN, TXT$ = TXT$ + " " 'ADD A SPACE TO MAKE IT EVEN. END IF LT$ = LEFT$(TXT$, LEN(TXT$) \ 2) 'BREAK IT INTO LEFT & RIGHT SIDES. RT$ = RIGHT$(TXT$, LEN(TXT$) \ 2) FOR X = 1 TO LEN(RT$) 'COULD ALSO USE LT$, THEY'RE EQUAL. '/* LOCATE ROW, COL 'PRINT A LETTER FROM THE RIGHT SIDE. '/* PRINT RIGHT$(RT$, X); SAY ROW,COL,RIGHT$(RT$,X),ATTR IF (COL - X) >= 1 THEN 'ONLY PRINT THE LEFT SIDE WHILE THE 'VALUE OF COLUMN IS STILL VALID. '/* LOCATE ROW, COL - X '/* PRINT LEFT$(LT$, X); 'PRINT A LETTER FROM THE LEFT SIDE. SAY ROW,COL-X,LEFT$(LT$,X),ATTR END IF NOW! = TIMER 'GET CURRENT VALUE OF TIMER. WHILE TIMER < (NOW! + D!): WEND 'WAIT FOR TIMER TO INCREASE BY D! IF INKEY$ <> "" THEN D! = 0 'IF A KEY IS PRESSED, STOP DELAYING. NEXT X END SUB '/*------------------------------------------------------------------*/ ' $INCLUDE "C:\CODE\MLIB\MLIB.INC" ' CLS ' TSPREAD 10,40,"This is a test to see if this works, IT appears that it doses work well",32,.05 ' Y$ = GETKEY