MODULE ANSI ! This module was created M. Yas'ko http://ftf.dsu.dp.ua/~yasko IMPLICIT NONE CHARACTER(*), PARAMETER :: CursorSave="", CursorRestore="", CLS="",& BackBlack="40", BackRed="41", BackGreen="42", BackYellow="43",& BackBlue="44", BackMagenta="45", BackCyan="46", BackWhite="47",& ForeBlack="30", ForeRed="31", ForeGreen="32", ForeYellow="33",& ForeBlue="34", ForeMagenta="35", ForeCyan="36", ForeWhite="37" CONTAINS FUNCTION LOCATE(I,J) CHARACTER(8) :: LOCATE INTEGER, INTENT(IN) :: I,J LOCATE="["//CHAR(48+I/10)//CHAR(48+MOD(I,10))//";"// & & CHAR(48+J/10)//CHAR(48+MOD(J,10))//"H" RETURN END FUNCTION LOCATE FUNCTION CursorUp(I) CHARACTER(5) :: CursorUp INTEGER, INTENT(IN) :: I CursorUp="["//CHAR(48+I/10)//CHAR(48+MOD(I,10))//"A" RETURN END FUNCTION CursorUp FUNCTION CursorDown(I) CHARACTER(5) :: CursorDown INTEGER, INTENT(IN) :: I CursorDown="["//CHAR(48+I/10)//CHAR(48+MOD(I,10))//"B" RETURN END FUNCTION CursorDown FUNCTION CursorRight(I) CHARACTER(5) :: CursorRight INTEGER, INTENT(IN) :: I CursorRight="["//CHAR(48+I/10)//CHAR(48+MOD(I,10))//"C" RETURN END FUNCTION CursorRight FUNCTION CursorLeft(I) CHARACTER(5) :: CursorLeft INTEGER, INTENT(IN) :: I CursorLeft="["//CHAR(48+I/10)//CHAR(48+MOD(I,10))//"D" RETURN END FUNCTION CursorLeft FUNCTION Color(CHR2) CHARACTER(5) :: Color CHARACTER(2), INTENT(IN) :: CHR2 Color="["//CHR2//"m" RETURN END FUNCTION Color END MODULE ANSI PROGRAM ANSI_DEMO USE ANSI WRITE(*,*) CLS,LOCATE(10,12),Color(BackBlue),Color(ForeYellow),'Hello, WORLD' STOP END PROGRAM ANSI_DEMO