home *** CD-ROM | disk | FTP | other *** search
/ No Fragments Archive 10: Diskmags / nf_archive_10.iso / MAGS / DBA / ST / DBA_08A.MSA / GFA_SOUR.CES / GFASCROL.LST < prev    next >
File List  |  2010-01-01  |  3KB  |  68 lines

  1. ' EXAMPLE HOW TO DO A SCROLL-TEXT IN G.F.A.
  2. ' THE SIMPLE WAY, AND NOT THE BEST, BUT YOU MUST START SOMEWHERE.
  3. '
  4. ' O.T.M. OF THE D.B.A. 30/12/1992
  5. '
  6. ON BREAK GOSUB einde                                ! STANDARD PROCEDURE FOR ME
  7. ON ERROR GOSUB einde
  8. RESERVE 200000                          ! RESERVE SOME WORKSPACE.
  9. DIM font$(255),fontbuf%(32066 DIV 4)     ! BUFFER FOR FONT AND SOME CHARACTERS
  10. start%=(V:fontbuf%(0)+255) AND &HFFFFFF00! CALCULATE STARTADRES FOR FONTBUFFER
  11. rez%=XBIOS(4)                           ! CHECK REZ
  12. IF rez%=2 THEN                          ! IF HIGH RES
  13.   CLS                                   ! (NO COLOUR MONITOR)
  14.   PRINT "SORRY, ONLY FOR LOW-RES"
  15.   einde
  16. ELSE IF rez%<>0
  17.   ' ELSE CHANGE TO LOW RES
  18.   VOID XBIOS(5,L:-1,L:-1,0)             ! CHANGE TO LOW REZ
  19.   VSYNC                                 ! WAIT TILL MON/TV IS READY
  20. ENDIF
  21. BLOAD "A:\FONT_3.PI1",start%! LOAD THE FONT INTO THE BUFFER
  22. color_zero
  23. get_font
  24. main
  25. PROCEDURE color_zero
  26.   FOR i%=0 TO 15                ! ALL COLOURS "OUT"
  27.     SETCOLOR i%,0
  28.   NEXT i%
  29. RETURN
  30. PROCEDURE get_font
  31.   BMOVE start%+34,XBIOS(3),32000        ! GET FONT ON SCREEN
  32.   count%=65                             ! THE FONT STARTS WITH A
  33.   '                               AND 65 IS THE ASCII VALUE FOR A
  34.   FOR y%=0 TO 96 STEP 33
  35.     FOR x%=0 TO 288 STEP 33             !GET ONLY THE 30 BY 30 PARTS
  36.       GET x%,y%,x%+30,y%+30,font$(count%)
  37.       INC count%                        ! A,B,C,D,E,F,G,.....
  38.     NEXT x%
  39.   NEXT y%
  40.   CLS
  41.   GET 0,0,30,30,font$(32)                 ! GET THE SPACE " "
  42.   VOID XBIOS(6,L:start%+2)        ! INIT COLOURS
  43. RETURN
  44. PROCEDURE main
  45.   text$=" I HOPE YOU UNDERSTAND HOW THE PROGRAM WORKS SO YOU CAN DO SOMETHING SERIOUS AGAIN "
  46.   DO
  47.     FOR i%=0 TO LEN(text$)              ! GO AS LONG AS THE TEXT IS
  48.       IF INP?(2) THEN                   ! IF A KEY IS PRESSED
  49.         einde                           ! GOODBYE
  50.       ENDIF
  51.       x$=MID$(text$,i%,1)               ! GET ONE (1) CHARACTER OUT OF THE TEXT
  52.       PUT 0,100,rest$                   ! PUT REST OF SCROLL ON SCREEN
  53.       PUT 319-32,100,font$(ASC(x$))     ! PUT WANTED CHARACTER ON SCREEN
  54.       GET 32,100,319,100+32,rest$       ! AND GET THE NEXT BIT
  55.       PAUSE 5                           ! WAIT A BIT(CH)
  56.     NEXT i%
  57.   LOOP
  58. RETURN
  59. PROCEDURE einde
  60.   VOID XBIOS(5,L:-1,L:-1,rez%)          ! ALWAYS CHANGE BACK TO OLD REZ
  61.   VSYNC                                 ! WAIT
  62.   CLS                                   ! AND CLEAN UP THE MESS
  63.   RESERVE                               ! GIVE MEM BACK
  64.   SETCOLOR 0,1911                       ! MAKE SURE WE CAN SEE WHAT WE READ
  65.   SETCOLOR 15,0
  66.   EDIT                                  ! AND EXIT
  67. RETURN
  68.