home *** CD-ROM | disk | FTP | other *** search
/ RUN Flagazine: Run 12 / run12.zip / DEMPIXQB.BAS < prev    next >
BASIC Source File  |  1994-03-12  |  7KB  |  278 lines

  1. ' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  2. 'Program: DEMPIX.BAS (QBasic 4.5) Runnen gaat alléén met: QB /L
  3. 'Functie: Het maken van letters in elke richting met QBasic.
  4. 'DWE voor RUN in het AD en/of SUPERLINER van KIJK (Maart 1994)
  5. 'Minimale systeemeisen VGA en kleur.              [FREEWARE]
  6. ' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  7.  
  8. DEFINT A-Z
  9. DIM A(18)
  10. TOP$ = "DWE-PRODUCTIONS - MAATWERK in SOFTWARE - TEL: 010-4585805"
  11. E$ = CHR$(27)
  12.  
  13. GOSUB TEKST
  14. SCREEN 12
  15. Y1 = 0: Y2 = 680
  16. FOR I = 1 TO 10
  17.   X1 = 2 + 63 * I
  18.   X2 = X1 - 63
  19.   LINE (X1, Y1)-(X2, Y2), I, BF
  20. NEXT
  21. FOR I = 1 TO 10
  22.    READ X, y, X$: co = 15
  23.    GOSUB HOOG
  24. NEXT I
  25.  
  26. X = 10: y = 470: co = 14
  27. X$ = TOP$
  28. GOSUB VERTIKAAL
  29.  
  30. X = 30: X$ = "FreeWare"
  31. GOSUB VERTIKAAL
  32.  
  33. WHILE INKEY$ <> E$: WEND: CLS
  34.  
  35. Y1 = 100: Y2 = 380
  36. FOR I = 1 TO 7
  37.   X1 = 37 + 63 * I
  38.   X2 = X1 + 63
  39.   LINE (X1, Y1)-(X2, Y2), I, BF
  40. NEXT
  41.  
  42. LOCATE 8, 15: COLOR 7
  43. PRINT " Normale schrijfwijze (Achtergrondkleur is weg!) "
  44.  
  45. READ X, y, co, X$
  46. GOSUB NORMAAL
  47.  
  48. X = 180: y = 200: co = 0: X$ = "3D - SUPERLINER voor KIJK en/of RUN"
  49. GOSUB NORMAAL:                 ' De tekst in het zwart voor de SHADUW !!!
  50.  
  51. X = X - 2: y = y + 2: co = 14: ' En de kleur van 3D (Geel) 2 pixels verzet
  52. GOSUB NORMAAL
  53.  
  54. X = 170: y = 270: co = 0
  55. X$ = LEFT$(TOP$, 38)
  56. GOSUB NORMAAL
  57.  
  58. X = X - 1: y = y + 1: co = 14
  59. GOSUB NORMAAL
  60.  
  61. READ X, y, co, X$
  62. GOSUB VERTIKAAL
  63.  
  64. READ X, y, co, X$
  65. GOSUB KLEIN
  66.  
  67. READ X, y, co, X$
  68. GOSUB CURSIEF
  69.  
  70. X = 450: y = 220: co = 0
  71. X$ = "HOGE TEKST"
  72. GOSUB HOOG
  73.  
  74. X = 350: y = 250: co = 9
  75. X$ = "BREDE TEKST"
  76. GOSUB BREED
  77.  
  78. X = 500: y = 450: co = 13
  79. X$ = "VOLGENDE = <ESC>"
  80. GOSUB KLEIN
  81. WHILE INKEY$ <> E$: WEND
  82.  
  83. CLS :
  84. Y1 = 100: Y2 = 380
  85. FOR I = 1 TO 7
  86.   X1 = 37 + 63 * I
  87.   X2 = X1 + 63
  88.   LINE (X1, Y1)-(X2, Y2), I, BF
  89. NEXT
  90.  
  91. READ X, y, co, X$
  92. GOSUB KLEIN
  93.  
  94. READ X, y, co, X$
  95. GOSUB KLEIN
  96.  
  97. READ X, y, co, X$
  98. GOSUB HOOG
  99.  
  100. READ X, y, co, X$
  101. GOSUB KLEIN
  102.  
  103. READ X, y, co, X$
  104. GOSUB CURSIEF
  105.  
  106. X = 170: y = 300: co = 0
  107. X$ = LEFT$(TOP$, 38)
  108. GOSUB NORMAAL
  109. X = X - 1: y = y + 1: co = 14
  110. GOSUB NORMAAL
  111.  
  112. X = 165: y = 330: co = 0:                       ' Deze tekst is 3-Dimensi-
  113. X$ = "TEL: 010-458.58.05 - FAX: 010-442.26.73": ' onaal door een verschuiving
  114. GOSUB NORMAAL:                                  ' van slechts 1 pixel op
  115. X = X - 1: y = y + 1: co = 11:                  ' <---            deze regel.
  116. GOSUB NORMAAL
  117.  
  118. X = 110: y = 360: co = 14
  119. X$ = "RUN / KIJK"
  120. GOSUB VERTIKAAL
  121.  
  122. X = 500: y = 450: co = 14
  123. X$ = "EIND = <ESC>"
  124. GOSUB KLEIN
  125. WHILE INKEY$ <> E$: WEND: GOTO EIND
  126.  
  127. 'Laden van de Assembler-routine
  128. 'en berekenen FONT-Adressen
  129.  
  130. TEKST:
  131. SE = VARSEG(A(0)): DEF SEG = SE
  132. FOR I = 4 TO 35
  133.    READ X
  134.    POKE I, X
  135. NEXT I
  136. '------------------------------ DATABLOK ------------------------------------
  137. DATA 80,83,81,82,6,85,87,191,0,0,184,48,17,183,2,205,16
  138. DATA 46,140,5,46,137,109,2,95,93,7,90,89,91,88,203
  139. DATA 65,50,"DEMPIX.BAS geeft u grote hulp bij het maken van grafieken"
  140. DATA 65,80,"die u van teksten wilt voorzien, bijvoorbeeld vertikaal maar,"
  141. DATA 65,110,"ook met behoud van de achtergrondkleur!"
  142. DATA 65,170,"Omdat u daarvoor een 'PIXEL_GEWIJZE' positionering nodig heeft."
  143. DATA 65,200,"Dit programma biedt u de oplossing. Maar nog veel meer....."
  144. DATA 65,260,"DEMPIX.BAS geeft u de beschikking van vrije keuze in kleur en"
  145. DATA 65,290,"lettertype_keuze in VGA-MODE."
  146. DATA 65,350,"Aan u dus de keus; VERTIKAAL, HORIZONTAAL, CURSIEF of 3D."
  147. DATA 65,380,"Veel plezier ermee, D.Wim Engelfriet"
  148. DATA 450,400,"Vervolg=<ESC>"
  149. DATA 200,170,11,"Horizontale tekst (8x14-pixels)"
  150. DATA 110,360,12,"Vertikale tekst (8x14pixels)"
  151. DATA 200,360,15,"Horizontale tekst (8x8pixels)"
  152. DATA 200,300,15,"Cursief gedrukte letters"
  153. DATA 120,110,14,"Om leuke effecten te krijgen moet u nog wel even"
  154. DATA 120,130,14,"oefenen met de mogelijkheden."
  155. DATA 120,170,15,"Nieuwe toepassingen lees ik graag in: KIJK en/of RUN"
  156. DATA 105,220,11,"Dit in antwoord op de vraag over functies in KIJK 4/94"
  157. DATA 130,250,14,"Ben benieuwd naar wat ik nog meer te zien krijg!"
  158. '--------------------------- EIND DATABLOK ----------------------------------
  159.  
  160. POKE 18, 2: CALL ABSOLUTE(4)
  161. SEN = A(0): OFN = A(1)
  162. POKE 18, 3: CALL ABSOLUTE(4)
  163. SEK = A(0): OFK = A(1)
  164. RETURN
  165.  
  166. ' FONTS 8x14 HORIZONTAAL
  167. NORMAAL:
  168. DEF SEG = SEN
  169. l = LEN(X$)
  170. FOR TEKEN = 1 TO l
  171.   X1 = ASC(MID$(X$, TEKEN, 1))
  172.   AD = OFN + 14 * X1
  173.   X0 = X + 8 * (TEKEN - 1)
  174.     FOR VE = 0 TO 13
  175.       Z = PEEK(AD + VE)
  176.         FOR HO = 0 TO 7
  177.           IF (Z AND 2 ^ HO) > 0 THEN PSET (X0 + 7 - HO, y + VE), co
  178.         NEXT HO
  179.     NEXT VE
  180. NEXT TEKEN
  181. RETURN
  182.  
  183. ' FONTS 8x14 VERTIKAAL
  184. VERTIKAAL:
  185. DEF SEG = SEN
  186. l = LEN(X$)
  187. FOR TEKEN = 1 TO l
  188.   X1 = ASC(MID$(X$, TEKEN, 1))
  189.   AD = OFN + 14 * X1
  190.   Y0 = y - 8 * (TEKEN - 1)
  191.     FOR VE = 0 TO 13
  192.       Z = PEEK(AD + VE)
  193.         FOR HO = 0 TO 7
  194.           IF (Z AND 2 ^ HO) > 0 THEN PSET (X + VE, Y0 + HO - 7), co
  195.         NEXT HO
  196.     NEXT VE
  197. NEXT TEKEN
  198. RETURN
  199.  
  200. 'FONTS 8x14 CURSIEF
  201. CURSIEF:
  202. DEF SEG = SEN
  203. l = LEN(X$)
  204. FOR TEKEN = 1 TO l
  205.   X1 = ASC(MID$(X$, TEKEN, 1))
  206.   AD = OFN + 14 * X1
  207.   X0 = X + 8 * (TEKEN - 1)
  208.     FOR VE = 0 TO 13
  209.       Z = PEEK(AD + VE)
  210.         FOR HO = 0 TO 7
  211.           IF (Z AND 2 ^ HO) > 0 THEN PSET (X0 + 13 - VE - HO, y + VE), co
  212.         NEXT HO
  213.     NEXT VE
  214. NEXT TEKEN
  215. RETURN
  216.  
  217. 'FONTS 8x28 HOOG
  218. HOOG:
  219. DEF SEG = SEN
  220. l = LEN(X$)
  221. FOR TEKEN = 1 TO l
  222.   X1 = ASC(MID$(X$, TEKEN, 1))
  223.   AD = OFN + 14 * X1
  224.   X0 = X + 8 * (TEKEN - 1)
  225.     FOR VE = 0 TO 13
  226.       Z = PEEK(AD + VE)
  227.       FOR HO = 0 TO 7
  228.         IF (Z AND 2 ^ HO) = 0 THEN GOTO N1
  229.         LINE (X0 + 7 - HO, y + 2 * VE)-(X0 + 7 - HO, y + 2 * VE - 1), co
  230. N1:
  231.       NEXT HO
  232.     NEXT VE
  233. NEXT TEKEN
  234. RETURN
  235.  
  236. 'FONTS 16x14 BREED
  237. BREED:
  238. DEF SEG = SEN
  239. l = LEN(X$)
  240.   FOR TEKEN = 1 TO l
  241.     X1 = ASC(MID$(X$, TEKEN, 1))
  242.     AD = OFN + 14 * X1
  243.     X0 = X + 16 * (TEKEN - 1)
  244.       FOR VE = 0 TO 13
  245.         Z = PEEK(AD + VE)
  246.         FOR HO = 0 TO 7
  247.           IF (Z AND 2 ^ HO) = 0 THEN GOTO N2
  248.           LINE (X0 + 14 - 2 * HO, y + VE)-(X0 + 14 - 2 * HO + 1, y + VE), co
  249. N2:
  250.         NEXT HO
  251.       NEXT VE
  252.   NEXT TEKEN
  253. RETURN
  254.  
  255. 'FONTS 8x8 KLEIN
  256. KLEIN:
  257. DEF SEG = SEK
  258. l = LEN(X$)
  259.   FOR TEKEN = 1 TO l
  260.   X1 = ASC(MID$(X$, TEKEN, 1))
  261.   AD = OFK + 8 * X1
  262.   X0 = X + 8 * (TEKEN - 1)
  263.     FOR VE = 0 TO 7
  264.     Z = PEEK(AD + VE)
  265.       FOR HO = 0 TO 7
  266.         IF (Z AND 2 ^ HO) > 0 THEN PSET (X0 + 7 - HO, y + VE), co
  267.       NEXT HO
  268.     NEXT VE
  269.   NEXT TEKEN
  270. RETURN
  271.  
  272. 'Einde program
  273. EIND:
  274. SCREEN 0
  275. COLOR 7, 0
  276. END
  277.  
  278.