'=========================================================================== ' Subject: PRINT HUGE CHARACTERS Date: 09/95 ' Author: Unknown Author(s) Code: QB, QBasic, PDS ' Origin: FidoNet QUIK_BAS Echo Packet: TEXT.ABC '=========================================================================== CONST MaxSlides = 65 '<<-- Enter Number of Slides Here (65) CONST MaxPause = 90 '<<-- Enter Number of Seconds to Pause (90) DECLARE SUB GetVideoSeg () DECLARE SUB BigChar (CharCode%) DECLARE SUB BigPrint (Text$) DECLARE SUB CountTime () DIM SHARED VideoSeg& SCREEN 0: WIDTH 80, 25: CLS CALL GetVideoSeg FOR a% = MaxSlides TO 1 STEP -1 CLS LOCATE 1, 50: PRINT " Press SPACE to PAUSE" LOCATE 3, 50: PRINT "Press ENTER for NEXT SLIDE" LOCATE 5, 50: PRINT " Press ESC to EXIT" LOCATE 1, 1: CALL BigPrint(LTRIM$(STR$(a%))) CALL CountTime SOUND 200, 2: SOUND 32000, 1: SOUND 200, 2 NEXT a% END SUB BigChar (CharCode%) '--- Displays a BIG Character at current Cursor Location --- Xpos% = POS(0): Ypos% = CSRLIN DEF SEG = &HF000 FOR ScanLine% = 0 TO 7 BitCode% = PEEK(&HFA6E + ScanLine% + CharCode% * 8) LOCATE Ypos% + ScanLine%, Xpos% FOR Bits% = 1 TO 8 IF BitCode% < 128 THEN Show$ = " " ELSE Show$ = CHR$(219) + CHR$(178) PRINT Show$; IF BitCode% > 127 THEN BitCode% = BitCode% - 128 BitCode% = BitCode% * 2 NEXT Bits% NEXT ScanLine% DEF SEG LOCATE Ypos%, Xpos% END SUB SUB BigPrint (Text$) '--- Displays a BIG String at current Cursor Location --- Xpos% = POS(0): Ypos% = CSRLIN FOR a% = 1 TO LEN(Text$) Xtemp% = (a% - 1) * 16 + Xpos% LOCATE Ypos%, Xtemp% CALL BigChar(ASC(MID$(Text$, a%, 1))) NEXT a% LOCATE Ypos%, Xpos% END SUB SUB CountTime '--- Counts the time for Each Slide. Includes Pausing --- FOR a% = MaxPause TO 1 STEP -1 T! = TIMER LOCATE 10, 1: PRINT "You Have"; a%; "Seconds Left... " IF a% = 10 THEN LOCATE 14, 25: PRINT "**** 10 Second Warning! ****" SOUND 130, 2 END IF DO: I$ = INKEY$ LOOP UNTIL (TIMER > T! + 1) OR (I$ <> "") '<-- Pause for 1 Second IF I$ = " " THEN '--- Press SPACE to Pause --- LOCATE 15, 1: CALL BigPrint("Pause") I$ = INPUT$(1) CALL BigPrint(" ") ELSEIF I$ = CHR$(13) THEN '--- Press ENTER to Skip to Next Slide --- EXIT SUB ELSEIF I$ = CHR$(27) THEN '--- Press ESC to Exit Program --- CLS : LOCATE 8, 12 CALL BigPrint("Bye!") END END IF NEXT a% END SUB SUB GetVideoSeg '--- Just Does some Setting Up Stuff... --- VideoSeg& = 0 DEF SEG = &H40: VideoMode% = PEEK(&H49) IF VideoMode% = 7 THEN VideoSeg& = &HB000 IF VideoMode% < 4 THEN VideoSeg& = &HB800 IF VideoSeg& = 0 THEN LOCATE 12, 25: PRINT "ERROR: Unfamiliar video mode!" END END IF END SUB