home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / database / dbanner.zip / BANNER.PRG
Text File  |  1987-02-07  |  3KB  |  99 lines

  1. ******************************************************************************
  2. * (C) JOHN A. BRISTOR ,1987
  3. * ALL RIGHTS RESERVED
  4. *
  5. * 8414 Williamsburg Circle
  6. * Pensacola, FL 32514
  7. * Voice (904) 478-7658
  8. * Data (704) 264-7381    FIDO : 151/305
  9. *
  10. * BANNER.PRG : Procedure SC428 from Screen Control Procedure Archives
  11. *
  12. * BANNER.PRG : Standard "running" left to right message scroller.
  13. *
  14. *      This is a standard routine for displaying scrolling messages from left
  15. * to right.
  16. *
  17. * PARAMETERS :
  18. *           PBANNER --> String containing message
  19. *               MIN. Length - 2 chars
  20. *               MAX. Length - 78 chars
  21. *
  22. *           PWAIT ----> Whether routine waits for keypress or not.
  23. *               VALUES - Y or N
  24. *
  25. *           PTIMER ---> Variable for time delay length
  26. *               EXAMPLE -  15 works good for 8mhz, 80286 CPU
  27. *
  28. *           PLINE ----> Line (Row) on screen used for scrolling message
  29. *               MIN -  0
  30. *               MAX - 24
  31. *
  32. * EXAMPLE of how to call procedure from another program
  33. *
  34. *       STORE "Y" TO PWAIT
  35. *       STORE "Press any key to continue..." TO PBANNER
  36. *       STORE 15 TO PTIMER
  37. *       STORE 23 TO PLINE
  38. *       SET PROCEDURE TO BANNER
  39. *       DO PRESS1 WITH PBANNER,PWAIT,PTIMER,PLINE
  40. *       CLOSE PROCEDURE
  41. *
  42. *
  43. * COMPILER - Clipper, Winter'85, Autumn'86
  44. * LINKING -  Must be Linked with SCRL.OBJ (SCRL.ASM by Thomas E. Link
  45. *
  46. *****************************************************************************
  47.  
  48. PROCEDURE PRESS1
  49. PARAMETERS QBANNER,QWAIT,QTIMER,QLINE,QLAST
  50.  
  51. STORE LEN(QBANNER) TO NUMCHARS
  52. STORE (80-LEN(QBANNER))/2 TO STARTPT
  53. STORE "N" TO PRESSFLAG
  54. DO WHILE LASTKEY() = QLAST .AND. PRESSFLAG = "N"
  55.      IF QWAIT = "N"
  56.       STORE "Y" TO PRESSFLAG
  57.      ENDIF
  58.      FOR KOUNT = NUMCHARS TO 1 STEP -1
  59.       STORE SUBSTR(QBANNER,KOUNT,1) TO PCHAR
  60.       IF PCHAR = "." .AND. (NUMCHARS - KOUNT) <=3
  61.            SET COLOR TO W*/N
  62.       ENDIF
  63.       @ 23, 0 SAY PCHAR
  64.       SET COLOR TO W/N
  65.       call ascroll with chr(2),chr(1),chr(15),chr(QLINE),chr(0),chr(QLINE),chr(79)
  66.       DO DELAY WITH QTIMER
  67.       INKEY(.03)
  68.       IF LASTKEY() <> QLAST .AND. QWAIT = "Y"
  69.            RETURN
  70.       ENDIF
  71.      NEXT KOUNT
  72.  
  73.      FOR I = 1 to 79
  74.       IF I = STARTPT .AND. QWAIT = "Y"
  75.            FOR NEAT = 1 TO INT(QTIMER/2)
  76.             DO DELAY WITH QTIMER*4
  77.             INKEY(.03)
  78.             IF LASTKEY() <> QLAST
  79.              RETURN
  80.             ENDIF
  81.            NEXT NEAT
  82.       ENDIF
  83.       call ascroll with chr(2),chr(1),chr(15),chr(QLINE),chr(0),chr(QLINE),chr(79)
  84.       DO DELAY WITH QTIMER
  85.       INKEY(.03)
  86.       IF LASTKEY() <> QLAST .AND. QWAIT = "Y"
  87.            RETURN
  88.       ENDIF
  89.      NEXT I
  90. ENDDO
  91. STORE " " TO QWAIT
  92. RETURN
  93.  
  94. PROCEDURE DELAY
  95. PARAMETERS ZTIMER
  96. FOR TIMER = 1 TO ZTIMER
  97. NEXT TIMER
  98. RETURN
  99.