program Macarena; { Programmed by: Jonas Emil M. Enriquez (jeme@gsilink.com) Based from the text graphics of Buhrnheim (buhrn@DADOSNET.COM.BR) } uses crt,dos; type STR03 = STRING[3]; const Dance : array[1..3,1..16] of STR03 = ((' o ', ' o ', ' o ', ' o ', ' o ', ' o ', '', ' o>', ' o ', ' o ', ' o ', ' o ', ' o ', ' o ', ' o '), ('^|\', '^|^', 'v|^', 'v|v', '|/v', '|X|', ' \|', ' | ', ' \ ', ' x ', '', '', '<\>', '<)>', ' |\'), (' /\', ' >\', '/< ', ' >\', '/< ', ' >\', '/< ', ' >\', '/< ', ' >\', '/< ', ' >\', '/< ', ' >\', ' >>', ' L ')); var x : byte; Reg : registers; procedure Norm_Cursor; begin Reg.AH := $01; Reg.CH := $06; Reg.CL := $07; intr($10, Dos.registers(Reg)); end; procedure Cursor_Off; begin Reg.AH := $01; Reg.CH := $0F; Reg.CL := $00; intr($10, Dos.registers(Reg)); end; begin Clrscr; Cursor_Off; GotoXY(27,14); Write('Mr. Ascii dancing Macarena...'); repeat x := 1; repeat GotoXY(39,10); Write(Dance[1,x]); GotoXY(39,11); Write(Dance[2,x]); GotoXY(39,12); Write(Dance[3,x]); Delay(500); x := x + 1; until keypressed or (x>16); until keypressed; Norm_Cursor; end.