#include <File.au3>
#include <date.au3>
#include '.\VDT_companion.au3' ; also includes vdt.au3

$bgImage = ".\Vintage_TV.jpg" ; background image
; If is not already present in the script dir then get it from the web.
If Not FileExists($bgImage) Then
	ToolTip("Downloading ..... just a moment please...")
	InetGet("http://i64.tinypic.com/einhh2.jpg", $bgImage)
	ToolTip("")
EndIf

; some samples AsciiArt
Global $asClipArt = _SetAsciiClipArt()


; 1) create GUI
; -------------
$hGUI = GUICreate("Vintage console demo", 800, 560, -1, -1, -1, $WS_EX_COMPOSITED)
GUISetBkColor(0xFFFFFF)
;
$Button1 = GUICtrlCreateButton("Welcome 2019", 690, 20, 100, 60)
$Button2 = GUICtrlCreateButton("Big Fonts", 690, 100, 100, 60)
$Button3 = GUICtrlCreateButton("Calendar", 690, 180, 100, 60)
$Button4 = GUICtrlCreateButton("Colors demo", 690, 260, 100, 60)
$Button5 = GUICtrlCreateButton("random ascii ClipArt", 690, 340, 100, 60)
$Button6 = GUICtrlCreateButton("Clear screen", 690, 420, 100, 60)
;
; 2) embed the TextMode 'control'
; -------------------------------
$My_VDTGui = _VDT_GUICtrl_Create($hGUI, 52, 80, 80, 25, 9, Default, _ANSIcolor($Black), _ANSIcolor($BrightWhite))
;
; 3) Create a Pic control with the background picture
; ---------------------------------------------------
$hPic = GUICtrlCreatePic($bgImage, 0, 0, 670, 565)
GUICtrlSetState(-1, $GUI_DISABLE)
GUISetState(@SW_SHOW, HWnd($hGUI))

; fisrt screen
_VDT_PauseSwitching()
_VDT_PauseRedraw()
_NoSignal()
_VDT_ResumeRedraw()
_VDT_ResumeSwitching()

;
; ----- Main loop, wait for user clicks -----
While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			ExitLoop
		Case $Button1
			; stop flash/blink while printing to speed up printing a bit
			_VDT_PauseSwitching()
			_VDT_PauseRedraw()
			_Welcome()
			_VDT_ResumeRedraw()
			_VDT_ResumeSwitching()
		Case $Button2
			_VDT_PauseSwitching()
			_VDT_PauseRedraw()
			_RandomBigText()
			_VDT_ResumeRedraw()
			_VDT_ResumeSwitching()
		Case $Button3
			_VDT_PauseSwitching()
			_VDT_PauseRedraw()
			_Calendar()
			_VDT_ResumeRedraw()
			_VDT_ResumeSwitching()
		Case $Button4
			_VDT_PauseSwitching()
			_VDT_PauseRedraw()
			_ColorsDemo()
			_VDT_ResumeRedraw()
			_VDT_ResumeSwitching()
		Case $Button5
			_VDT_PauseSwitching()
			_VDT_PauseRedraw()
			_RandomASCII()
			_VDT_ResumeRedraw()
			_VDT_ResumeSwitching()

		Case $Button6
			_VDT_CLS()
	EndSwitch
WEnd
Exit
;
; print the welcome message
Func _Welcome()
	_VDT_ResetToDefaultColors()
	_VDT_Style($Flash, True)
	_VDT_CLS()

	; Draw the edge
	Local $Color1 = $Red ;  $BrightGreen
	Local $Color2 = $BrightGreen ; $BrightMagenta

	If Random(0, 1, 1) Then
		; little blocks edge
		For $col = 1 To 80 Step 2
			_VDT_Print("*", $col, 1, _ANSIcolor($Color1), _ANSIcolor($Color2))
			_VDT_Print("*", $col + 1, 1, _ANSIcolor($Color2), _ANSIcolor($Color1))
			_VDT_Print("*", 80 - $col, 25, _ANSIcolor($Color1), _ANSIcolor($Color2))
			_VDT_Print("*", 80 - $col + 1, 25, _ANSIcolor($Color2), _ANSIcolor($Color1))
		Next

		For $row = 2 To 24 Step 2
			_VDT_Print("*", 1, 26 - $row, _ANSIcolor($Color2), _ANSIcolor($Color1))
			_VDT_Print("*", 1, 26 - $row + 1, _ANSIcolor($Color1), _ANSIcolor($Color2))
			_VDT_Print("*", 80, $row, _ANSIcolor($Color1), _ANSIcolor($Color2))
			_VDT_Print("*", 80, $row + 1, _ANSIcolor($Color2), _ANSIcolor($Color1))

		Next
	Else
		; Bigger blocks edge
		For $col = 1 To 80 Step 4
			_VDT_Print("  ", $col, 1, _ANSIcolor($Color1), _ANSIcolor($Color2))
			_VDT_Print("  ", $col + 2, 1, _ANSIcolor($Color2), _ANSIcolor($Color1))
			_VDT_Print("  ", 78 - $col, 25, _ANSIcolor($Color1), _ANSIcolor($Color2))
			_VDT_Print("  ", 78 - $col + 2, 25, _ANSIcolor($Color2), _ANSIcolor($Color1))
		Next

		For $row = 2 To 24 Step 2
			_VDT_Print("  ", 1, 26 - $row, _ANSIcolor($Color2), _ANSIcolor($Color1))
			_VDT_Print("  ", 1, 26 - $row + 1, _ANSIcolor($Color1), _ANSIcolor($Color2))
			_VDT_Print("  ", 79, $row, _ANSIcolor($Color1), _ANSIcolor($Color2))
			_VDT_Print("  ", 79, $row + 1, _ANSIcolor($Color2), _ANSIcolor($Color1))

		Next
	EndIf
	_VDT_Style($Flash, False)
	Local $iVerticalTab = 2
	_LoadFigFont() ;  set standard Big font (default)

	_BigText("Happy", 7, $iVerticalTab, _ANSIcolor($Green))
	$iVerticalTab += ($aFIGfont[0][0])[2] + 1
	_BigText("New", 5, $iVerticalTab, _ANSIcolor($BrightMagenta))
	$iVerticalTab += ($aFIGfont[0][0])[2] + 1
	_BigText("Year", 3, $iVerticalTab, _ANSIcolor($BrightRed))

	; Change big font
	_LoadFigFont(".\figlet-fonts\larry3d.flf")

	_VDT_Style($Blink, True)
	_BigText("2019", 37, $iVerticalTab, _ANSIcolor($BrightBlue))
	_VDT_Style($Blink, False)

	_vdt_print('wishing you peace on earth and in your heart...', 5, 23, _ANSIcolor($Blue))

	_vdt_print(_StringTransparent($asClipArt[9]), 37, 2, _ANSIcolor($BrightBlack))
EndFunc   ;==>_Welcome

; show some random Big Figlet Fonts
Func _RandomBigText()

	_VDT_ResetToDefaultColors()
	_VDT_CLS()
	Local $aFontList = _FileListToArray(@ScriptDir & "\figlet-fonts\", '*.flf', 1, True), $iNdex
	Local $iVerticalTab = 1

	For $i = 1 To 5
		$iNdex = Random(1, UBound($aFontList) - 1, 1)
		_LoadFigFont($aFontList[$iNdex])
		_vdt_print(StringTrimRight(StringMid($aFontList[$iNdex], StringInStr($aFontList[$iNdex], '\', 0, -1) + 1), 4) & ':', 1, $iVerticalTab)
		$iVerticalTab += 1
		; _BigText("Font: " & StringTrimRight(StringMid($aFontList[$iNdex], StringInStr($aFontList[$iNdex], '\', 0, -1)), 4) + 1, @TAB & @YEAR & "/" & @MON & "/" & @WDAY & @TAB & @HOUR & ":" & @MIN & ":" & @SEC, 1, $iVerticalTab)
		_BigText(StringTrimRight(StringMid($aFontList[$iNdex], StringInStr($aFontList[$iNdex], '\', 0, -1) + 1), 4), 1, $iVerticalTab)
		$iVerticalTab += ($aFIGfont[0][0])[2]
	Next
EndFunc   ;==>_RandomBigText

Func _RandomASCII($iNdex = Null)
	_VDT_ResetToDefaultColors()
	_VDT_CLS()

	Local $x, $y
	Local $iRnd = Random(0, UBound($asClipArt) - 1, 1)
	Switch $iRnd
		Case 0
			$dbStyles = 0 ; _VDT_Style($Normal, True)
			$x = Random(1, 53, 1)
			$y = Random(1, 10, 1)
			_VDT_Print($asClipArt[$iRnd], $x, $y, _ANSIcolor(Random(0, 14, 1)))
			_VDT_Style($Flash, True)
			Local $sMessage = " We where all humans until" & Chr(30) & _
					"  race disconnected us,   " & Chr(30) & _
					"   religion separated us, " & Chr(30) & _
					"   politics divided us,   " & Chr(30) & _
					" and wealth classified us."
			_VDT_Print($sMessage, $x + 1, $y + 3, _ANSIcolor(Random(9, 15, 1)), _ANSIcolor(Random(0, 8, 1)), False)
			_VDT_Style($Flash, False)
		Case Else
			$dbStyles = 0 ; _VDT_Style($Normal, True)
			$x = Random(2, 5, 1)
			$y = Random(1, 3, 1)
			$z = _ANSIcolor(Random(0, 14, 1))
			_VDT_Print(_StringTransparent($asClipArt[$iRnd]), $x, $y, $z)
	EndSwitch

EndFunc   ;==>_RandomASCII

Func _ColorsDemo()
	; Color names and abbreviation
	Local $aColorName = [ _
			'Black', 'bk', _ ;         00 = Black
			'Red', 'rd', _ ;           01 = Red
			'Green', 'gn', _ ;         02 = Green
			'Yellow', 'yl', _ ;        03 = Yellow
			'Blue', 'bl', _ ;          04 = Blue
			'Magenta', 'mg', _ ;       05 = Magenta
			'Cyan', 'cy', _ ;          06 = Cyan
			'White', 'wt', _ ;         07 = White
			'Bright Black', 'BK', _ ;  08 = Bright Black
			'Bright Red', 'RD', _ ;    09 = Bright Red
			'Bright Green', 'GN', _ ;  10 = Bright Green
			'Bright Yellow', 'YL', _ ; 11 = Bright Yellow
			'Bright Blue', 'BL', _ ;    12 = Bright Blue
			'Bright Magenta', 'MG', _ ; 13 = Bright Magenta
			'Bright Cyan', 'CY', _ ;    14 = Bright Cyan
			'Bright White', 'WT' _ ;    15 = Bright White
			]
	_VDT_Print(_CSI_ResetStyles())
	_VDT_ResetToDefaultColors()
	_VDT_CLS()

	_VDT_Rectangle(1, 1, 80, 25, '*=*::*=*') ; last parameter are 8 chars to shape the corners and edges of the rectangle
	Local $sTitle = " Colors Demo "
	_VDT_Print($sTitle, (80 / 2) - StringLen($sTitle) / 2, 1, _ANSIcolor($BrightGreen), _ANSIcolor($Black))

	; we create color blocks to show various
	; Background/Foreground color combinations
	For $iBgd = 0 To 15 ; 16 background color blocks
		$a0_XY = __GetTabsPos(1 + $iBgd * 13, 52) ; calculate horiz. - vert. positions for background block
		_VDT_Print(StringLeft($aColorName[$iBgd * 2], 12), 1 + $a0_XY[0], 2 + ($a0_XY[1] - 1) * 6, _ANSIcolor($iBgd)) ; background color name
		For $iFgd = 0 To 15 ; 16 foreground colors per Color Block
			$a1_XY = __GetTabsPos(1 + $iFgd * 3, 12) ; calculate horiz. - vert. positions for foreground names
			; print foreground color abbreviation
			_VDT_Print($aColorName[1 + $iFgd * 2] & " ", $a0_XY[0] + $a1_XY[0], ($a0_XY[1] - 1) * 6 + $a1_XY[1] + 2, _ANSIcolor($iFgd), _ANSIcolor($iBgd))
		Next
	Next
	; Print colors abbreviation legend
	; _VDT_Rectangle(54, 2, 26, 20) ; create a text frame
	_VDT_Print(_CSI_underline(True) & "Colors legend:" & _CSI_underline(False) & Chr(30) & Chr(30), 56, 3)
	_VDT_Style($Inverse, True)

	For $i = 0 To 15 ; all default colors
		_VDT_Print(_StringSetLen($aColorName[1 + $i * 2] & " = " & $aColorName[$i * 2] & '(' & $i & ')', 22) & Chr(30), Default, Default, _ANSIcolor($i), _ANSIcolor(68))
	Next

	Local $sMessage = _StringSetlen(_StringCenter("-> HIT ESC TO EXIT <-", 26), 26) ; _StringSetLen(_StringCenter("-> HIT ESC TO EXIT <-", 26), 26)
	_VDT_Style($Blink, True)
	_VDT_Print($sMessage, 54, 23, _ANSIcolor($BrightMagenta), _ANSIcolor(68))
	$__g_dbStyles = 0 ;  reset all styles to Normal mode in one shot
EndFunc   ;==>_ColorsDemo

Func _Calendar()
	_VDT_ResetToDefaultColors()
	_VDT_CLS()
	_vdt_print(_CSI_underline(True) & "--> " & _CSI_Italic(True) & @YEAR & _CSI_Italic(False) & " <--" & _CSI_underline(False), (80 / 2) - 6, 1)
	For $iMonth = 1 To 12
		$aMonth = _GenerateMonth(@YEAR, $iMonth)
		$a0_XY = __GetTabsPos($iMonth, 4)
		_vdt_print(_DateToMonth($iMonth, $DMW_LOCALE_LONGNAME), 1 + ($a0_XY[0] - 1) * 20, 2 + ($a0_XY[1] - 1) * 8)

		For $x = 0 To 6
			For $y = 0 To 6
				; _vdt_print(StringLeft($aMonth[$y][$x],2), (1 + ($a0_XY[0]-1) * 20) + ($x * 3) , (2 + ($a0_XY[1]-1) * 8 ) + $y, Default, ($iMonth/2 = Int($iMonth/2)) ? Default : _ANSIcolor($White))
				_vdt_print(StringLeft($aMonth[$x][$y], 2), (1 + ($a0_XY[0] - 1) * 20) + ($x * 3), (3 + ($a0_XY[1] - 1) * 8) + $y)
			Next
		Next
	Next
EndFunc   ;==>_Calendar


; #FUNCTION# ====================================================================================================================
; Author ........: Chimp
; Modified.......:
; https://www.autoitscript.com/forum/topic/139260-autoit-snippets/?do=findComment&comment=1352265
; ===============================================================================================================================
Func _GenerateMonth($iYear = @YEAR, $iMonth = @MON, $ISO = True)
	; this function creates a month calendar into an 7x7 array
	Local $aMonth[7][7], $iDOW
	Local $iFirstDOW = $ISO ? _DateToDayOfWeekISO($iYear, $iMonth, 1) : _DateToDayOfWeek($iYear, $iMonth, 1)
	For $iDay = 1 To 7
		$aMonth[0][$iDay - 1] = $ISO ? _DateDayOfWeek(Mod($iDay, 7) + $ISO, $DMW_LOCALE_SHORTNAME) : _DateDayOfWeek($iDay, $DMW_LOCALE_SHORTNAME)
	Next
	For $iDay = 1 To _DateDaysInMonth($iYear, $iMonth)
		$iDOW = $ISO ? _DateToDayOfWeekISO($iYear, $iMonth, $iDay) : _DateToDayOfWeek($iYear, $iMonth, $iDay)
		$aMonth[Int(($iFirstDOW + $iDay - 2) / 7) + 1][$iDOW - 1] = $iDay
	Next
	Return $aMonth
EndFunc   ;==>_GenerateMonth


Func _SetAsciiClipArt()
	Local $ClipArt = [ _ ; first clipart 0
			"            \|||/" & _
			"            (o.o)" & _
			",~~~oo0~~~~~~(_)~~~~~~~~~~~," & _
			"|                          |" & _
			"|                          |" & _
			"|                          |" & _
			"|                          |" & _
			"|                          |" & _
			"'~~~~~~~~~~~~~~~~~~~~oo0~~~'" & _
			"           |__|__|" & _
			"            || ||" & _
			"           oo0 0oo", _
			"    |\/\/\/|" & _ ; second clipart 1
			"    |      |    ___________________________" & _
			"    |      |   /                           \" & _
			"    | (o)(o)   |       I like AutoIt       |" & _
			"    C      _)  \___________________________/" & _
			"    | ,___|  __/" & _
			"    |   /" & _
			"   /____\" & _
			"  /      \", _
			" ____ ____ ____ ____ ____ ____ " & _ ; third clipart 2
			"||A |||u |||t |||o |||I |||t ||" & _
			"||__|||__|||__|||__|||__|||__||" & _
			"|/__\|/__\|/__\|/__\|/__\|/__\|", _
			Chr(31) & Chr(24) & Chr(27) & "[s" & _ ; 3
			"        ('([u" & @LF & "[s" & _
			"          \ \                    "" Help !!!   Alligators....""[u" & @LF & "[s" & _
			"       d@b | |[u" & @LF & "[s" & _
			"       @@@@' |[u" & @LF & "[s" & _
			"   ('(  Y@P   `--..[u" & @LF & "[s" & _
			"    \ `--'      .' `.[u" & @LF & "[s" & _
			"     `---....__/    |[u" & @LF & "[s" & _
			"               /   . \                     /^^^^\[u" & @LF & "[s" & _
			"             /  .'\  \       /^^\________/0     \[u" & @LF & "[s" & _
			"              \  \  \  \     (                    `~+++,,_____,,++~^^^^^^^[u" & @LF & "[s" & _
			"  -unknown-    \  \  \__\  ...V^V^V^V^V^V^\...............................[u" & @LF & "[s" & _
			"               _`--` `--'     Allen Mullen[u" & @LF & "[s" & _
			"              `---'[u" & @LF & "[s" & _
			"[u" & @LF & "[s" & _
			"------------------------------------------------[u" & @LF & "[s" & _
			"Thank you for visiting https://asciiart.website/[u" & @LF & "[s" & _
			"This ASCII pic can be found at[u" & @LF & "[s" & _
			"https://asciiart.website//index.php?art=animals/reptiles/aligators[u" & @LF & "[s", _
			Chr(31) & Chr(24) & Chr(27) & "[s" & _ ; 4
			"                  ----o-   [u" & @LF & "[s" & _
			" _____________   %%% , ,%_________[u" & @LF & "[s" & _
			"(___________,,)  %c    >) ,________)[u" & @LF & "[s" & _
			"   (_________,,)  )   =  ,______)[u" & @LF & "[s" & _
			"        (_____,,)/ _/__,,____)[u" & @LF & "[s" & _
			"           / \   \__/ /\[u" & @LF & "[s" & _
			"          /\ |        \/\[u" & @LF & "[s" & _
			"         /__\|'   ,   /  \,[u" & @LF & "[s" & _
			"        < -  '====o==,  /_\[u" & @LF & "[s" & _
			"       /    /`       |\ __ \[u" & @LF & "[s" & _
			"      /__,_/    |  _/, \____\[u" & @LF & "[s" & _
			"      //   |     \/  \    \[u" & @LF & "[s" & _
			"    _( \   \      \  \   _/ \[u" & @LF & "[s" & _
			"     //|    \     \  \    |/|[u" & @LF & "[s" & _
			"            < `  _\ -)[u" & @LF & "[s" & _
			"           /    |_/ |[u" & @LF & "[s" & _
			"          |    / |_/[u" & @LF & "[s" & _
			"         /-_,  ' /|[u" & @LF & "[s" & _
			"         \/ \_,--.,[u" & @LF & "[s" & _
			"         '(    )'[u" & @LF & "[s" & _
			"        / |    | \[u" & @LF & "[s" & _
			"        |,/    \,/     b'ger", _
			Chr(31) & Chr(24) & Chr(27) & "[s" & _ ; 5
			"                __------__[u" & @LF & "[s" & _
			"              /~          ~\[u" & @LF & "[s" & _
			"             |    //^\//^\|         Oh..My great god ...     [u" & @LF & "[s" & _
			"           /~~\  ||  o| |o|:~\       Please grant me many many[u" & @LF & "[s" & _
			"          | |6   ||___|_|_||:|    /  bananas .. I want to give them[u" & @LF & "[s" & _
			"           \__.  /      o  \/'       to my dear Mary, then she will[u" & @LF & "[s" & _
			"            |   (       O   )        agree to marry me!![u" & @LF & "[s" & _
			"   /~~~~\    `\  \         /[u" & @LF & "[s" & _
			"  | |~~\ |     )  ~------~`\[u" & @LF & "[s" & _
			" /' |  | |   /     ____ /~~~)\[u" & @LF & "[s" & _
			"(_/'   | | |     /'    |    ( |[u" & @LF & "[s" & _
			"       | | |     \    /   __)/ \[u" & @LF & "[s" & _
			"       \  \ \      \/    /' \   `\[u" & @LF & "[s" & _
			"         \  \|\        /   | |\___|[u" & @LF & "[s" & _
			"           \ |  \____/     | |[u" & @LF & "[s" & _
			"           /^~>  \        _/ <[u" & @LF & "[s" & _
			"          |  |         \       \[u" & @LF & "[s" & _
			"          |  | \        \        \[u" & @LF & "[s" & _
			"          -^-\  \       |        )[u" & @LF & "[s" & _
			"               `\_______/^\______/-jurcy", _
			Chr(31) & Chr(24) & Chr(27) & "[s" & _ ; 6
			"              ,   .-'""'=;_  ,[u" & @LF & "[s" & _
			"              |\.'-~`-.`-`;/|[u" & @LF & "[s" & _
			"              \.` '.'~-.` './[u" & @LF & "[s" & _
			"              (\`,__=-'__,'/)[u" & @LF & "[s" & _
			"           _.-'-.( d\_/b ).-'-._[u" & @LF & "[s" & _
			"         /'.-'   ' .---. '   '-.`\[u" & @LF & "[s" & _
			"       /'  .' (=    (_)    =) '.  `\[u" & @LF & "[s" & _
			"      /'  .',  `-.__.-.__.-'  ,'.  `\[u" & @LF & "[s" & _
			"     (     .'.   V       V  ; '.     )[u" & @LF & "[s" & _
			"     (    |::  `-,__.-.__,-'  ::|    )[u" & @LF & "[s" & _
			"     |   /|`:.               .:'|\   |[u" & @LF & "[s" & _
			"     |  / | `:.              :' |`\  |[u" & @LF & "[s" & _
			"     | |  (  :.             .:  )  | |[u" & @LF & "[s" & _
			"     | |   ( `:.            :' )   | |[u" & @LF & "[s" & _
			"     | |    \ :.           .: /    | |[u" & @LF & "[s" & _
			"     | |     \`:.         .:'/     | |[u" & @LF & "[s" & _
			"     ) (      `\`:.     .:'/'      ) ([u" & @LF & "[s" & _
			"     (  `)_     ) `:._.:' (     _(`  )[u" & @LF & "[s" & _
			"     \  ' _)  .'           `.  (_ `  /[u" & @LF & "[s" & _
			"      \  '_) /   .'""```""'.   \ (_`  /[u" & @LF & "[s" & _
			"       `'""`  \  (         )  /  `""'`[u" & @LF & "[s" & _
			"   ___   jgs  `.`.       .'.'        ___[u" & @LF & "[s" & _
			" .`   ``""""""'''--`_)     (_'--'''""""""``   `.[u" & @LF & "[s" & _
			"(_(_(___...--'""'`         `'""'--...___)_)_)", _
			Chr(31) & Chr(24) & Chr(27) & "[s" & _ ; 7
			"                                                 _..._[u" & @LF & "[s" & _
			"                                       _..._   .'  _  '.[u" & @LF & "[s" & _
			"                                     .'  _  './   (a) .-'-.[u" & @LF & "[s" & _
			"                                    /   (e) .-'-.     '-,-'\`[u" & @LF & "[s" & _
			"                                    |      '-,--'\`     /[u" & @LF & "[s" & _
			"                                    ;       / ;       |[u" & @LF & "[s" & _
			"   _                                /       |/       .\    _[u" & @LF & "[s" & _
			"  (_\                          __..;__      \        ::\ ,/_)._[u" & @LF & "[s" & _
			"   _;\;\`\`\""\""----...___...---:\""\`\`  .-'_ \`'.    \        '::.()\__)[u" & @LF & "[s" & _
			"(\())(\`._'- \`-._  ,:-\""    '.    '.    -  :    ;        '::\--;__[u" & @LF & "[s" & _
			"  _\()\`''----...__ \`-._    '-.    '._   .'    |        .:::|()\_)[u" & @LF & "[s" & _
			" (_/\`;-. jgs _  ()\`-.  \`\""\""--...____..-'\`      ;_       .:::| \`.[u" & @LF & "[s" & _
			"      \_) _;/_)/).;()'._              (\`\.-();/_).__  .::::/().-./\`)[u" & @LF & "[s" & _
			"         (_\\\`;(()(_/(()/(.        __.--;();\`\_)()\__) .::()--;__:()[u" & @LF & "[s" & _
			"            '-;---()_;\_/()\""-._  (_/ (/ /()';();--._\_::'\`.();\_)\`[u" & @LF & "[s" & _
			"             ,()   (_.-(); \._ \`\`\""\""(_.();_().(\`\.-();__)\`(_/ \`--.__[u" & @LF & "[s" & _
			"            (_/       (_/() \_)     __/(_/|\();__\_)\`            \_)[u" & @LF & "[s" & _
			"                        \`          (_/    \_)\`-._);", _
			Chr(31) & Chr(24) & Chr(27) & "[s" & _ ; 8
			"    .   . ,[u" & @LF & "[s" & _
			"    o. .o/ |[u" & @LF & "[s" & _
			"  .---. / /|[u" & @LF & "[s" & _
			"  \~~~/'---+ [u" & @LF & "[s" & _
			"   \ /      \ [u" & @LF & "[s" & _
			"    | PING!  \-.[u" & @LF & "[s" & _
			"    |        |/[u" & @LF & "[s" & _
			"   /_\[u" & @LF & "[s" & _
			"", _
			Chr(31) & Chr(24) & Chr(27) & "[s" & _ ; 9
			"    )    *           )        )  ([u" & @LF & "[s" & _
			"   (                (        (      *[u" & @LF & "[s" & _
			"    )          H     )        )[u" & @LF & "[s" & _
			"              [ ]            ([u" & @LF & "[s" & _
			"       (  *   |-|       *     )    ([u" & @LF & "[s" & _
			" *      )     |_|        .          )[u" & @LF & "[s" & _
			"       (      | |    .[u" & @LF & "[s" & _
			" )           /   \     .    ' .        *[u" & @LF & "[s" & _
			"(           |_____|  '  .    .[u" & @LF & "[s" & _
			" )          | ___ |  \~~~/  ' .   ([u" & @LF & "[s" & _
			"        *   | \ / |   \_/  \~~~/   )[u" & @LF & "[s" & _
			"            | _Y_ |    |    \_/   ([u" & @LF & "[s" & _
			"*     jgs   |-----|  __|__   |      *[u" & @LF & "[s" & _
			"            `-----`        __|__"]
	;
	Return $ClipArt
EndFunc   ;==>_SetAsciiClipArt

Func _NoSignal()
	_vdt_print("" & _
			'[47m            [43m           [46m           [42m           [45m           [41m           [44m             ' & @CRLF & _
			'[47m            [43m           [46m           [42m           [45m           [41m           [44m             ' & @CRLF & _
			'[47m            [43m           [46m           [42m           [45m           [41m           [44m             ' & @CRLF & _
			'[47m            [43m           [46m           [42m           [45m           [41m           [44m             ' & @CRLF & _
			'[47m            [43m           [46m           [42m           [45m           [41m           [44m             ' & @CRLF & _
			'[47m            [43m           [46m           [42m           [45m           [41m           [44m             ' & @CRLF & _
			'[47m            [43m           [46m           [42m           [45m           [41m           [44m             ' & @CRLF & _
			'[47m            [43m           [46m           [42m           [45m           [41m           [44m             ' & @CRLF & _
			'[47m            [43m           [46m           [42m           [45m           [41m           [44m             ' & @CRLF & _
			'[47m            [43m           [46m           [42m           [45m           [41m           [44m             ' & @CRLF & _
			'[47m            [43m           [46m           [42m           [45m           [41m           [44m             ' & @CRLF & _
			'[47m            [43m           [46m           [42m           [45m           [41m           [44m             ' & @CRLF & _
			'[47m            [43m           [46m           [42m           [45m           [41m           [44m             ' & @CRLF & _
			'[47m            [43m           [46m           [42m           [45m           [41m           [44m             ' & @CRLF & _
			'[47m            [43m           [46m           [42m           [45m           [41m           [44m             ' & @CRLF & _
			'[47m            [43m           [46m           [42m           [45m           [41m           [44m             ' & @CRLF & _
			'[44m            [40m           [45m           [43m           [46m           [40m           [47m             ' & @CRLF & _
			'[44m            [40m           [45m           [43m           [46m           [40m           [47m             ' & @CRLF & _
			'[44m            [40m           [45m           [43m           [46m           [40m           [47m             ' & @CRLF & _
			'[41m               [47m             [44m             [47m               [46m           [42m             ' & @CRLF & _
			'[41m               [47m             [44m             [47m               [46m           [42m             ' & @CRLF & _
			'[41m               [47m             [44m             [47m               [46m           [42m             ' & @CRLF & _
			'[47m                        [40;37;5m           NO SIGNAL           [47;25m                         ' & @CRLF & _
			'[43m                              [41m                   [43m                               ' & @CRLF & _
			'[43m                              [41m                   [43m                               ', 1, 1)

EndFunc   ;==>_NoSignal
