VGAclocks


Author Message
javavi

Guru

Joined: 01/10/2023
Location: Ukraine
Posts: 437
Posted: 09:53am 02 Apr 2025      



Const Mode.N=2
Const Font.N=1
Const T.Scale=4
Const T.Size=Len(Time$)
MODE  Mode.N
Const X.Res=MM.HRES,Y.Res=MM.VRES
Font  Font.N
Const X.FSize=MM.Info(FONTWIDTH)
Const Y.FSize=MM.Info(FONTHEIGHT)
Const X.Offset=X.FSize*T.Scale*T.Size\2
Const Y.Offset=Y.FSize*T.Scale\2
Dim integer X.Dir=1,Y.Dir=1
Dim integer X.Pos=MM.HRES\2,Y.Pos=MM.VRES\2
Dim Clr(15)=(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)
Colour Map Clr(),Clr()
'=================================================
FRAMEBUFFER LAYER 0
FRAMEBUFFER WRITE L
Font 9
Print @(0,0);
For n=1 To (X.Res\8)*(Y.Res\8)
 Print Chr$(32+Int(Rnd*3));
Next
'------------------------------------------------
Do
Blit READ  1, 0,0,MM.HRES,1
Blit 0,1,0,0,MM.HRES,MM.VRES-1
Blit Write 1, 0,MM.VRES-1
Blit Close 1
Pause 20
FRAMEBUFFER WRITE N
If C=0 Then C=Int(Rnd*15)+1
Text X.Pos,Y.Pos,Time$,"CM",Font.N,T.Scale,Clr(C)
Inc X.Pos,X.Dir:Inc Y.Pos,Y.Dir
If X.Pos-X.Offset<0 Then X.Dir=1
If X.Pos+X.Offset>MM.HRES Then X.Dir=-1
If Y.Pos-Y.Offset<0 Then Y.Dir=1:C=0
If Y.Pos+Y.Offset>MM.VRES Then Y.Dir=-1:C=0
FRAMEBUFFER WRITE L
Loop While Inkey$=""
'================================================
DefineFont 9
04200808
80402010 08040201
01020408 10204080
08080808 08080808
End DefineFont