Working on Fortran version... L:
This commit is contained in:
parent
ba2a70e842
commit
8215c3767e
86
xscii.f90
Normal file
86
xscii.f90
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
module vt100
|
||||||
|
character, parameter :: EFFECT_NORMAL = "0"
|
||||||
|
character, parameter :: EFFECT_BOLD = "1"
|
||||||
|
character, parameter :: EFFECT_ITALIC = "3"
|
||||||
|
character, parameter :: EFFECT_UNDERLINE = "4"
|
||||||
|
character, parameter :: EFFECT_BLINK = "5"
|
||||||
|
character, parameter :: EFFECT_REVERSE = "7"
|
||||||
|
character, parameter :: COLOUR_GREY = "0"
|
||||||
|
character, parameter :: COLOUR_RED = "1"
|
||||||
|
character, parameter :: COLOUR_GREEN = "2"
|
||||||
|
character, parameter :: COLOUR_YELLOW = "3"
|
||||||
|
character, parameter :: COLOUR_BLUE = "4"
|
||||||
|
character, parameter :: COLOUR_PINK = "5"
|
||||||
|
character, parameter :: COLOUR_CYAN = "6"
|
||||||
|
character, parameter :: COLOUR_WHITE = "7"
|
||||||
|
end module vt100
|
||||||
|
|
||||||
|
program xscii
|
||||||
|
use vt100
|
||||||
|
|
||||||
|
implicit none
|
||||||
|
|
||||||
|
interface
|
||||||
|
subroutine print_colour (colour, effect)
|
||||||
|
character, intent (in) :: colour
|
||||||
|
character, intent (in) :: effect
|
||||||
|
end subroutine print_colour
|
||||||
|
|
||||||
|
subroutine print_cancel
|
||||||
|
end subroutine print_cancel
|
||||||
|
|
||||||
|
subroutine print_bar
|
||||||
|
end subroutine print_bar
|
||||||
|
end interface
|
||||||
|
|
||||||
|
integer :: i
|
||||||
|
|
||||||
|
call print_colour (COLOUR_BLUE, EFFECT_BOLD)
|
||||||
|
write (*, '(a)', advance='no') "Heyo!"
|
||||||
|
call print_cancel
|
||||||
|
print *
|
||||||
|
|
||||||
|
call print_bar
|
||||||
|
print *
|
||||||
|
|
||||||
|
do i = 1, 10
|
||||||
|
print *, "> ", i
|
||||||
|
end do
|
||||||
|
|
||||||
|
end program xscii
|
||||||
|
|
||||||
|
subroutine print_colour (colour, effect)
|
||||||
|
use vt100
|
||||||
|
|
||||||
|
implicit none
|
||||||
|
|
||||||
|
character, intent (in) :: colour
|
||||||
|
character, intent (in) :: effect
|
||||||
|
character (7) :: escape
|
||||||
|
|
||||||
|
escape = char (27) // "[" // effect // ";3" // colour // "m"
|
||||||
|
|
||||||
|
write (*, '(a)', advance='no') escape
|
||||||
|
end subroutine print_colour
|
||||||
|
|
||||||
|
subroutine print_cancel
|
||||||
|
use vt100
|
||||||
|
|
||||||
|
implicit none
|
||||||
|
|
||||||
|
character (4) :: escape
|
||||||
|
|
||||||
|
escape = char (27) // "[0m"
|
||||||
|
|
||||||
|
write (*, '(a)', advance='no') escape
|
||||||
|
end subroutine print_cancel
|
||||||
|
|
||||||
|
subroutine print_bar
|
||||||
|
use vt100
|
||||||
|
|
||||||
|
implicit none
|
||||||
|
|
||||||
|
call print_colour (COLOUR_GREY, EFFECT_BOLD)
|
||||||
|
write (*, '(a)', advance='no') " | "
|
||||||
|
call print_cancel
|
||||||
|
end subroutine print_bar
|
Loading…
Reference in New Issue
Block a user