Now this I've had quite a few headaches with, first one being that there's no Load / Set Font command like in Blitz. And I don't really know what the default font is or it's dimensions are. Im guess it's 8x8. Also, found that with certain calculations there's this annoying 'beep'. I presume it's linked to a certain Chr() number, but can't find the source of it. Also I've had to leave a 1 place border around the effect, due to getting odd results with having it as a full screen render. Probably due to the font not being a fixed width, and the Print Chr();
Also I've tried to make this as simple as possible due to time and life comitments, but I recon it's not turned out too badly. I could of course, cheated and loaded in and converted a fixed width font to use as the rendering, and do it in the old fashion of using a customized Bitmap Font lib, but I wanted to experiment with the standard printing. I've also opted for using GFXlib, as I found that the easiest way of going about it.
Hope it inspires people with their entries, and also hope it works on your systems. And a big thanks to Optimus for inspiring the Plasma method.
Ok then here goes:
'
' ASCII Render Engine V1.01
' Credits: Code By Clyde
' Plasma Inspired By Optimus
'
Option Static
Option Explicit
Const XRES=640
Const YRES=480
Const PI = 3.14151693
Dim Shared Vel
Dim Shared ScreenNo
Dim Shared Pal(255)
Dim Shared Sin1(4095),Sin2(4095),Sin3(4095)
Declare Sub CreatePal(Â Byval Val1 As Integer, Byval Val2 As Integer, Byval Val3 As Integer )
Declare Sub InitializeASCII()
Declare Sub RunASCII()
Declare Sub UpdateASCIIPlasma()
InitializeASCII()
RunASCII()
Sub CreatePal(Â Byval Val1 As Integer, Byval Val2 As Integer, Byval Val3 As Integer )
 Â
  '
  ' Local variables.
  '
  Dim As Integer a, m, r, g, b
Â
  For a=0 To 255
   Â
    m = a*( 360/255 )
    r = Cos(( m+Val1 )*( PI/180 )) *127+127
    g = Cos(( m+Val2 )*( PI/180 )) *127+127
    b = Cos(( m+Val3 )*( PI/180 )) *127+127
   Â
    Pal( a ) = ( r Shl 16 ) Or ( g Shl 8 ) Or ( b Shl 0 )
 Â
  Next
End Sub
Sub InitializeASCII()
  ScreenRes XRES,YRES,32,3,1 : Screenset 1, 0 : SetMouse  ,,0
  WindowTitle "ASCII Plasma!"
  Randomize Timer()
 Â
  ScreenNo = 1
 Â
  Dim i
 Â
  For i=0 To 4095
    Sin1(i)=Sin(i/ 10)* 96+ 96
    Sin2(i)=Sin(i/ 20)*112+112
    Sin3(i)=Sin(i/ 70)*128+128
Next
 Â
  CreatePal( 10, 40, 120 )
 Â
End Sub
Sub RunASCII()
 Â
  Dim Key As String
 Â
  While Key<>Chr(27)
   Â
    Cls
   Â
    Screencopy 2, ScreenNo
   Â
    Vel=Timer()*10
   Â
    UpdateASCIIPlasma()
Â
    Screensync
    ScreenNo Xor = 1
Screenset ScreenNo, ScreenNo xor 1
   Â
    Key=Inkey()
 Â
  Wend
 Â
End Sub
Sub UpdateASCIIPlasma()
 Â
  Dim x, y, c
  Dim Vel1, Vel2
  Dim Char, RChar, BChar, GChar
   Â
  Vel1= Vel
  Vel2=6*Vel
 Â
  If Vel1>503 then Vel1=Vel1-(Vel1\503)*503
  If Vel2>880 then Vel2=Vel2-(Vel2\880)*880
 Â
  For y=1 To (YRES\8)-1
    For x=1 To (XRES\8)-1
      c=(sin1(x)+sin2(y+Vel1)+sin3(x+y+Vel2)) And 255
     Â
      Color Pal(c),0
     Â
      RChar= ((Pal(c) shr 16) and &HFF )Â
      BChar= ((Pal(c) shr 8) And &HFF )
      GChar= ((Pal(c) shr 0) and &HFF )
     Â
      Char = (RChar + BChar + GChar) \ 3
     Â
      If Char<0  then Char=0
      If Char>255 then Char=255
     Â
      Locate y,x : Print Chr(Char);
     Â
    Next
Next
 Â
End Sub
Cheers and all the best,
Clyde.