Press ALT+Enter when theprog runs ;*)
'I am crazy!!!
'Plasma and Floormapper in TextMode!!!
'Relsoft 2003
DECLARE SUB BlobsTxt (Intensity%)
DECLARE SUB DrawBlob (bx%, by%)
DECLARE SUB Mode7Text (sx%, sy%, sz%, horz%)
DEFINT A-Z
RANDOMIZE TIMER
CLS
SCREEN 0
WIDTH 80, 50
CONST PI = 3.14151693#
CONST FALSE = 0, TRUE = NOT FALSE
DIM SHARED Lsin1%(-1024 TO 1024)
DIM SHARED Lsin2%(-1024 TO 1024)
DIM SHARED Lsin3%(-1024 TO 1024)
DIM SHARED Lsin!(-10 TO 370)
DIM SHARED Lcos!(-10 TO 370)
 Â
  FOR i% = -1024 TO 1024
    Lsin1%(i%) = SIN(i% / (16)) * 16
    Lsin2%(i%) = SIN(i% / (32)) * 64
    Lsin3%(i%) = SIN(i% / (32)) * 8
  NEXT i%
  j! = 255 / 360 * 2
  k! = 255 / 360 * 8
  l! = 255 / 360 * 4
  FOR i% = 0 TO 255
    m% = INT(a!)
    n% = INT(b!)
    o% = INT(c!)
    r% = 63 * ABS(SIN(m% * PI / 180))
    g% = 63 * ABS(SIN(n% * PI / 180))
    b% = 63 * ABS(SIN(o% * PI / 180))
    a! = a! + j!
    b! = b! + k!
    c! = c! + l!
    OUT &H3C8, i%
    OUT &H3C9, r%
    OUT &H3C9, g%
    OUT &H3C9, b%
  NEXT
Dir% = 1
DEF SEG = &HB800
DO
  counter& = (counter& + Dir%)
  IF counter& > 600 THEN Dir% = -Dir%
  IF counter& < -600 THEN Dir% = -Dir%
  offset% = 0
  FOR y% = 1 TO 50
    FOR x% = 1 TO 80
      c% = Lsin3%(x%) + Lsin1%(x% + counter&) + Lsin2%(y% + counter&)
      c% = c% + Lsin3%(c%) + Lsin1%(c% + counter&) + Lsin2%(counter& - y% + x%)
      POKE offset%, 177 + (c% AND 1)
      POKE offset% + 1, c% AND 15
      offset% = offset% + 2
    NEXT x%
  NEXT y%
  WAIT &H3DA, 8
LOOP UNTIL INKEY$ <> ""
CLS
horz% = 10
sx% = 30
sy% = 30
sz% = 40
Mode7Text sx%, sy%, sz%, horz%
END
SUB Mode7Text (sx%, sy%, sz%, horz%)
'256*126 = 32256
'((256*126)+4)\2 =16130
'256*8 =2048
'32256\2=16128
FOR i% = 0 TO 359
  RA! = i% * (3.141593 / 180)
  Lcos!(i%) = COS(RA!)
  Lsin!(i%) = SIN(RA!)
NEXT i%
  FOR i% = -1024 TO 1024
    Lsin1%(i%) = SIN(i% / (16)) * 32
    Lsin2%(i%) = SIN(i% / (32)) * 16
    Lsin3%(i%) = SIN(i% / (32)) * 32
  NEXT i%
  j! = 255 / 360 * 8
  k! = 255 / 360 * 8
  l! = 255 / 360 * 16
  FOR i% = 0 TO 255
    m% = INT(a!)
    n% = INT(b!)
    o% = INT(c!)
    r% = 63 * ABS(SIN(m% * PI / 180))
    g% = 63 * ABS(SIN(n% * PI / 180))
    b% = 63 * ABS(SIN(o% * PI / 180))
    a! = a! + j!
    b! = b! + k!
    c! = c! + l!
    OUT &H3C8, i%
    OUT &H3C9, r%
    OUT &H3C9, g%
    OUT &H3C9, b%
  NEXT
SpaceZ! = sz%
ScaleY! = sy%
ScaleX! = sx%
Horizon% = horz%
countdir% = 1
counter% = 50
t# = TIMER
DO
  F& = (F& + 1) AND &H7FFFFFFF
  counter% = (counter% + countdir%)
  IF counter% < 2 THEN
    countdir% = -countdir%
  ELSEIF counter% > 700 THEN
    countdir% = -countdir%
  END IF
  pd% = (pd% + 1) AND 1023
  ci% = (ci% + 1) AND (3)
  px% = SIN(ci% / counter%) * 4
  py% = COS(ci% / counter%) * 8
  Angle = (Angle + 1) MOD 359
  xv! = Lcos!(Angle)
  yv! = Lsin!(Angle)
  offset% = (80 * 4)
  FOR ya% = 4 TO 50
      Distance! = (SpaceZ! * ScaleY!) / (ya% + Horizon%)
      HorizScale! = (Distance! / ScaleX!)
      LineDX! = (-yv! * HorizScale!)
      LineDy! = (xv! * HorizScale!)
      SpaceX! = ((Distance! * xv!)) - (40 * LineDX!)
      SpaceY! = ((Distance! * yv!)) - (25 * LineDy!)
      ldx& = LineDX! * 1024
      ldy& = LineDy! * 1024
      sx& = SpaceX! * 1024
      sy& = SpaceY! * 1024
      pxysin% = Lsin3%(px% + py%)
  FOR xa% = 1 TO 80
      xx% = sx& \ 1024' + (pd%)
      yy% = sy& \ 1024' + (pd%)
      c% = Lsin1%(xx% + px%) + Lsin2%(yy% + py%) + pxysin%
      c% = Lsin2%(xx% - counter%) + Lsin3%(Lsin1%(yy% - counter%) - Lsin3%(xx% - counter% - c%))
      POKE offset%, 177 + (c% AND 1)
      POKE offset% + 1, c% AND 15
      offset% = offset% + 2
      sx& = sx& + ldx&
      sy& = sy& + ldy&
  NEXT xa%
  NEXT ya%
  WAIT &H3DA, 8
LOOP UNTIL INKEY$ <> ""
END SUB
Exe in attachment.....