Terminal control/Dimensions: Difference between revisions

m
m (→‎{{header|Wren}}: Minor tidy)
 
(6 intermediate revisions by 6 users not shown)
Line 4:
=={{header|AArch64 Assembly}}==
{{works with|as|Raspberry Pi 3B version Buster 64 bits}}
<syntaxhighlight lang="aarch64 assembly">
<lang AArch64 Assembly>
/* ARM assembly AARCH64 Raspberry PI 3B */
/* program terminalSize64.s */
Line 98:
/* for this file see task include a file in language AArch64 assembly */
.include "../includeARM64.inc"
</syntaxhighlight>
</lang>
<pre>
Program start
Line 104:
Program normal end.
</pre>
=={{header|Action!}}==
<syntaxhighlight lang="action!">PROC Main()
BYTE ROWCRS=$0054 ;Current cursor row
CARD COLCRS=$0055 ;Current cursor column
CARD width
BYTE height
 
Graphics(0)
Position(0,0) ;go to the top-left corner
Put(28) Put(30) ;go up and left - the bottom-right corner
width=COLCRS+1
height=ROWCRS+1
 
Position(2,1)
PrintF("Number of colums: %U%E",width)
PrintF("Number of rows: %B%E",height)
RETURN</syntaxhighlight>
{{out}}
[https://gitlab.com/amarok8bit/action-rosetta-code/-/raw/master/images/Terminal_control_dimensions.png Screenshot from Atari 8-bit computer]
<pre>
Number of colums: 40
Number of rows: 24
</langpre>
 
=={{header|AppleScript}}==
<syntaxhighlight lang="AppleScript">local numColumns, numRows
tell application "Terminal"
if not running then activate
set {numColumns, numRows} to {number of columns, number of rows} of tab 1 of window 1
end tell
</syntaxhighlight>
 
=={{header|Applesoft BASIC}}==
<langsyntaxhighlight ApplesoftBasiclang="applesoftbasic">WIDTH = PEEK(33)
HEIGHT = PEEK(35) - PEEK(34)</langsyntaxhighlight>
 
=={{header|Arturo}}==
 
<langsyntaxhighlight lang="rebol">print ["Terminal width:" terminal\width]
print ["Terminal height:" terminal\height]</langsyntaxhighlight>
 
=={{header|AutoHotkey}}==
Line 117 ⟶ 149:
{{trans|C}}
AutoHotkey is not built for the console (it is GUI oriented) so we must call the WinAPI directly.
<langsyntaxhighlight AHKlang="ahk">DllCall( "AllocConsole" ) ; create a console if not launched from one
hConsole := DllCall( "GetStdHandle", int, STDOUT := -11 )
 
Line 131 ⟶ 163:
columns := right - left + 1
rows := bottom - top + 1
MsgBox %columns% columns and %rows% rows</langsyntaxhighlight>
 
=={{header|Axe}}==
Line 139 ⟶ 171:
BaCon supports functions to retrieve the current number of <code>ROWS</code> and <code>COLUMNS</code>.
 
<langsyntaxhighlight lang="freebasic">' ANSI terminal dimensions
X = COLUMNS
Y = ROWS
 
PRINT "X,Y: ", X, ",", Y</langsyntaxhighlight>
 
=={{header|Batch File}}==
'''Screen Buffer Size:'''
<langsyntaxhighlight lang="dos">@echo off
 
for /f "tokens=1,2 delims= " %%A in ('mode con') do (
Line 156 ⟶ 188:
echo Lines: %line%
echo Columns: %cols%
exit /b 0</langsyntaxhighlight>
{{Out}}
<pre>>Size.Bat
Line 166 ⟶ 198:
=={{header|BBC BASIC}}==
{{works with|BBC BASIC for Windows}}
<langsyntaxhighlight lang="bbcbasic"> dx% = @vdu.tr%-@vdu.tl% : REM Width of text viewport in pixels
dy% = @vdu.tb%-@vdu.tt% : REM Height of text viewport in pixels</langsyntaxhighlight>
{{works with|all BBC BASIC}}
<langsyntaxhighlight lang="bbcbasic"> PRINT:VDU 8:dx%=POS+1:PRINT : REM Width of text viewport in characters
REPEAT:dy%=VPOS:PRINT:UNTIL VPOS=dy%:dy%=dy%+1 : REM Height of text viewport in characters</langsyntaxhighlight>
This has the side effect of scrolling the viewport up one line.
{{works with|BBC BASIC where VDU() is supported}}
<langsyntaxhighlight lang="bbcbasic"> dx% = VDU(10)-VDU(8)+1 : REM Width of text viewport in characters
dy% = VDU(9)-VDU(11)+1 : REM Height of text viewport in characters</langsyntaxhighlight>
This has the side effect of scrolling the viewport up one line.
 
Line 186 ⟶ 218:
 
{{works with|BSD|4.4}}
<langsyntaxhighlight lang="c">#include <sys/ioctl.h> /* ioctl, TIOCGWINSZ */
#include <err.h> /* err */
#include <fcntl.h> /* open */
Line 212 ⟶ 244:
close(fd);
return 0;
}</langsyntaxhighlight>
 
=== [[Windows]] ===
Line 218 ⟶ 250:
 
{{works with|MinGW}}
<langsyntaxhighlight lang="c">#include <windows.h>
#include <wchar.h>
 
Line 245 ⟶ 277:
 
return 0;
}</langsyntaxhighlight>
 
=={{header|C sharp|C#}}==
Line 252 ⟶ 284:
WindowHeight and WindowWidth are simply the size of the window, it only represents the active viewing area which may be larger or more commonly smaller than the size of the buffer.
 
<langsyntaxhighlight lang="csharp">
static void Main(string[] args)
{
Line 270 ⟶ 302:
Console.ReadLine();
}
</syntaxhighlight>
</lang>
 
On the author's system this results in the following output:
Line 283 ⟶ 315:
=={{header|COBOL}}==
{{works with|OpenCOBOL}}
<langsyntaxhighlight lang="cobol"> IDENTIFICATION DIVISION.
PROGRAM-ID. terminal-dimensions.
 
Line 309 ⟶ 341:
 
GOBACK
.</langsyntaxhighlight>
 
=={{header|Common Lisp}}==
==={{header|ncurses}}===
To interface the ncurses C library from Lisp, the ''croatoan'' library is used.
<langsyntaxhighlight lang="lisp">(defun screen-dimensions ()
(with-screen (scr :input-blocking t :input-echoing nil :cursor-visible nil)
(let ((width (width scr))
Line 321 ⟶ 353:
(refresh scr)
;; wait for keypress
(get-char scr))))</langsyntaxhighlight>
 
=={{header|Euphoria}}==
<langsyntaxhighlight Euphorialang="euphoria">include graphics.e
 
sequence vc
Line 335 ⟶ 367:
 
printf(1,"Terminal height is %d\n",term_height)
printf(1,"Terminal width is %d\n",term_width)</langsyntaxhighlight>
 
=={{header|F_Sharp|F#}}==
{{trans|C#}}
<langsyntaxhighlight lang="fsharp">open System
 
let bufferHeight = Console.BufferHeight
Line 354 ⟶ 386:
Console.Write("Window Width: ")
Console.WriteLine(windowWidth)
Console.ReadLine()</langsyntaxhighlight>
 
=={{header|Forth}}==
{{works with|GNU Forth}} {{works with|SwiftForth}}
 
<langsyntaxhighlight lang="forth">variable term-width
variable term-height
 
Line 367 ⟶ 399:
get-size ( width height ) swap
[then]
term-width ! term-height !</langsyntaxhighlight>
 
 
=={{header|FreeBASIC}}==
<langsyntaxhighlight lang="freebasic">Dim As Integer w, h, p, bpp, tasa
Dim driver_name As String
Screeninfo w, h, p, bpp, , tasa
Line 392 ⟶ 424:
Print " Tasa de refresco: "; tasa; " (Hz)"
Print " Nombre del driver: "; driver_name
Sleep</langsyntaxhighlight>
 
=={{header|Go}}==
===Sub-repository===
{{libheader|Go sub-repositories}}
<langsyntaxhighlight lang="go">package main
 
import (
Line 413 ⟶ 445:
}
fmt.Println(h, w)
}</langsyntaxhighlight>
 
===External command===
<langsyntaxhighlight lang="go">package main
 
import (
Line 431 ⟶ 463:
fmt.Sscan(string(d), &h, &w)
fmt.Println(h, w)
}</langsyntaxhighlight>
===Ncurses===
{{libheader|curses}}
<langsyntaxhighlight lang="go">package main
 
import (
Line 451 ⟶ 483:
height, width := s.MaxYX()
fmt.Println(height, width)
}</langsyntaxhighlight>
 
=={{header|J}}==
Line 459 ⟶ 491:
Nevertheless, assuming J version 6 in its usual environment, to determine its width and height, in pixels, you can use:
 
<syntaxhighlight lang ="j">_2 {.qsmsize_jijs_''</langsyntaxhighlight>
 
Note also that this will typically include 37 extra pixels horizontally and 79 extra pixels vertically, which are not available to display text. In other words, if the result was 700 500 you would really have 663 pixels of width and 421 pixels of height.
 
=={{header|Julia}}==
<langsyntaxhighlight lang="julia">
julia> using Gtk
 
Line 471 ⟶ 503:
 
julia>
</syntaxhighlight>
</lang>
 
=={{header|Kotlin}}==
{{Works with|Ubuntu|14.04}}
<langsyntaxhighlight lang="scala">// version 1.1.2
 
/*
Line 487 ⟶ 519:
println("Lines = $lines")
println("Columns = $columns")
}</langsyntaxhighlight>
 
{{out}}
Line 499 ⟶ 531:
Locomotive BASIC has no built-in command to get window dimensions, but there is a firmware call to &bb69 (TXT_GET_WINDOW) for this. So we have to use a snippet of Z80 machine code to call the firmware and copy the results from the DE and HL registers to RAM. It looks like this when disassembled:
 
<langsyntaxhighlight lang="z80">4000 d5 push de
4001 e5 push hl
4002 cd 69 bb call &bb69
Line 506 ⟶ 538:
400c e1 pop hl
400d d1 pop de
400e c9 ret</langsyntaxhighlight>
 
This routine gets POKEd into RAM (starting at address &4000) and CALLed from Locomotive BASIC, then the results are retrieved with PEEK:
 
<langsyntaxhighlight lang="locobasic">10 s=&4000:SYMBOL AFTER 256:MEMORY s-1
20 FOR i=0 to 14:READ a:POKE s+i,a:NEXT
30 DATA &d5,&e5,&cd,&69,&bb,&ed,&53,&20,&40,&22,&22,&40,&e1,&d1,&c9
Line 516 ⟶ 548:
50 h=PEEK(&4020)-PEEK(&4022)+1
60 w=PEEK(&4021)-PEEK(&4023)+1
70 PRINT "window width:"; w; ", height:"; h</langsyntaxhighlight>
 
In practice, one would prefer to write the machine code routine as a slightly more elaborate RSX ('''r'''esident '''s'''ystem e'''x'''tension) which is a freely relocatable and therefore more reusable Locomotive BASIC extension. The RSX routine might be called "getwh" and accept pointers to integers, which would simplify the BASIC code to:
 
<langsyntaxhighlight lang="locobasic">10 w%=0:h%=0 ' initialize and force integer type
20 |getwh,@w%,@h% ' call RSX and pass variables as pointers
30 PRINT "window width:"; w%; ", height:"; h%</langsyntaxhighlight>
 
But the fastest way is still to use the system values ​​for the current window :
 
<syntaxhighlight lang="locobasic">10 PRINT "window width:"PEEK(&B72C)+1", height:"PEEK(&B72B)+1
</syntaxhighlight>
 
=={{header|Mathematica}}/{{header|Wolfram Language}}==
<langsyntaxhighlight Mathematicalang="mathematica">WIDTH=RunThrough["tput cols", ""];
HEIGHT=RunThrough["tput lines", ""];</langsyntaxhighlight>
 
=={{header|Nim}}==
 
<langsyntaxhighlight lang="nim">import terminal
 
let (width, height) = terminalSize()
 
echo "Terminal width: ", width
echo "Terminal height: ", height</langsyntaxhighlight>
 
{{out}}
Line 545 ⟶ 582:
Using the library [http://forge.ocamlcore.org/projects/ansiterminal/ ANSITerminal] in the interactive loop:
 
<langsyntaxhighlight lang="ocaml">$ ocaml unix.cma -I +ANSITerminal ANSITerminal.cma
 
# let width, height = ANSITerminal.size () ;;
val width : int = 126
val height : int = 47</langsyntaxhighlight>
 
=={{header|Perl}}==
 
<langsyntaxhighlight lang="perl">use Term::Size;
 
($cols, $rows) = Term::Size::chars;
print "The terminal has $cols columns and $rows lines\n";</langsyntaxhighlight>
 
=={{header|Phix}}==
The buffer is usually somewhat larger (and never smaller) than the current physical screen size. I would guess that most applications are more interested in the latter.
<!--<syntaxhighlight lang="phix">(notonline)-->
<lang Phix>sequence vc = video_config()
<span style="color: #008080;">without</span> <span style="color: #008080;">js</span> <span style="color: #000080;font-style:italic;">-- (video_config)</span>
printf(1,"Terminal buffer height is %d\n",vc[VC_LINES])
<span style="color: #004080;">sequence</span> <span style="color: #000000;">vc</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">video_config</span><span style="color: #0000FF;">()</span>
printf(1,"Terminal buffer width is %d\n",vc[VC_COLUMNS])
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"Terminal buffer height is %d\n"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">vc</span><span style="color: #0000FF;">[</span><span style="color: #000000;">VC_LINES</span><span style="color: #0000FF;">])</span>
printf(1,"Terminal screen height is %d\n",vc[VC_SCRNLINES])
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"Terminal buffer width is %d\n"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">vc</span><span style="color: #0000FF;">[</span><span style="color: #000000;">VC_COLUMNS</span><span style="color: #0000FF;">])</span>
printf(1,"Terminal screen width is %d\n",vc[VC_SCRNCOLS])</lang>
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"Terminal screen height is %d\n"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">vc</span><span style="color: #0000FF;">[</span><span style="color: #004600;">VC_SCRNLINES</span><span style="color: #0000FF;">])</span>
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"Terminal screen width is %d\n"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">vc</span><span style="color: #0000FF;">[</span><span style="color: #000000;">VC_SCRNCOLS</span><span style="color: #0000FF;">])</span>
<!--</syntaxhighlight>-->
{{out}}
<pre>
Line 574 ⟶ 614:
 
=={{header|PicoLisp}}==
<langsyntaxhighlight PicoLisplang="picolisp">(setq
Width (in '(tput cols) (read))
Height (in '(tput lines) (read)) )</langsyntaxhighlight>
 
=={{header|PureBasic}}==
Line 582 ⟶ 622:
 
This code is for Windows only.
<langsyntaxhighlight PureBasiclang="purebasic">Macro ConsoleHandle()
GetStdHandle_( #STD_OUTPUT_HANDLE )
EndMacro
Line 606 ⟶ 646:
;
Print(#CRLF$+"Press ENTER to exit"):Input()
EndIf</langsyntaxhighlight>
 
=={{header|Python}}==
Line 614 ⟶ 654:
This uses the [http://python.net/crew/theller/ctypes/ ctypes library] in order to get the console dimensions on Windows. This code is a slight refactoring of an [http://code.activestate.com/recipes/440694-determine-size-of-console-window-on-windows/ ActiveState Recipe]. For Linux, the tput utility is used.
 
<langsyntaxhighlight lang="python">import os
 
def get_windows_terminal():
Line 640 ⟶ 680:
 
print get_linux_terminal() if os.name == 'posix' else get_windows_terminal()
</syntaxhighlight>
</lang>
 
=={{header|Racket}}==
<langsyntaxhighlight lang="racket">
#lang racket
(require (planet neil/charterm:3:0))
(with-charterm
(charterm-screen-size))
</syntaxhighlight>
</lang>
 
=={{header|Raku}}==
(formerly Perl 6)
Using <i>stty</i> just for the heck of it.
<syntaxhighlight lang="raku" perl6line>my $stty = qx[stty -a];
my $lines = $stty.match(/ 'rows ' <( \d+/);
my $cols = $stty.match(/ 'columns ' <( \d+/);
say "$lines $cols";</langsyntaxhighlight>
 
=={{header|Retro}}==
This information is provided by Retro in the '''ch''' (height) and '''cw''' (width) variables. You can manually obtain it using the io ports.
 
<langsyntaxhighlight Retrolang="retro">-3 5 out wait 5 in !cw
-4 5 out wait 5 in !ch</langsyntaxhighlight>
 
=={{header|REXX}}==
Line 671 ⟶ 711:
 
Some REXX interpreters don't provide basic [[terminal control]] as part of the language. However, it's possible to determine the size of the terminal window by using external system commands:
<langsyntaxhighlight lang="rexx">width = 'tput'( 'cols' )
height = 'tput'( 'lines' )
 
say 'The terminal is' width 'characters wide'
say 'and has' height 'lines'</langsyntaxhighlight>
 
===LINESIZE===
The <code>LINESIZE</code> built-in function returns the (terminal) screen's width. &nbsp; It is supported by most (classic) REXX interpreters (and some others) such as: CMS REXX, TSO REXX, VSE REXX, the IBM REXX compiler, PC/REXX, Personal REXX, REXX/imc, R4 and ROO. &nbsp; A sample usage of it is:
<langsyntaxhighlight lang="rexx">width=linesize()</langsyntaxhighlight>
The above example makes use of &nbsp; '''LINESIZE''' &nbsp; REXX program (or BIF) which is used to determine the screen width (or linesize) of the terminal (console).
<br>The &nbsp; '''LINESIZE.REX''' &nbsp; REXX program is included here ──► [[LINESIZE.REX]].
Line 685 ⟶ 725:
===SCRSIZE===
<code>SCRSIZE</code> is another built-in function, and returns two integers: the screen depth and the screen width. &nbsp; A few classic REXX interpreters support it: &nbsp; PC/REXX, Personal REXX, R4 and ROO.
<langsyntaxhighlight lang="rexx"> parse value scrsize() with sd sw</langsyntaxhighlight>
The above example makes use of &nbsp; '''SCRSIZE''' &nbsp; REXX program (of BIF) which is used to determine the screen size of the terminal (console).
<br>The &nbsp; '''SCRSIZE.REX''' &nbsp; REXX program is included here ──► [[SCRSIZE.REX]].<br>
 
=={{header|Ring}}==
<langsyntaxhighlight lang="ring">
system("mode 50,20")
</syntaxhighlight>
</lang>
 
=={{header|Ruby}}==
<langsyntaxhighlight lang="ruby">def winsize
# Ruby 1.9.3 added 'io/console' to the standard library.
require 'io/console'
Line 706 ⟶ 746:
 
rows, cols = winsize
printf "%d rows by %d columns\n", rows, cols</langsyntaxhighlight>
 
==={{libheader|curses}}===
<code>Curses.lines</code> and <code>Curses.cols</code> return the size of the terminal. The program ''must'' call <code>Curses.init_screen</code>, because without this call, Curses might report 0 lines and 0 columns. Beware that <code>Curses.init_screen</code> also switches the terminal to screen-oriented mode, and fails on those terminals that cannot support curses.
 
<langsyntaxhighlight lang="ruby">require 'curses'
 
begin
Line 723 ⟶ 763:
ensure
Curses.close_screen
end</langsyntaxhighlight>
 
=={{header|Scala}}==
{{Works with|Ubuntu|14.04}}
<langsyntaxhighlight Scalalang="scala"> /*
First execute the terminal command: 'export COLUMNS LINES'
before running this program for it to work (returned 'null' sizes otherwise).
Line 733 ⟶ 773:
 
val (lines, columns) = (System.getenv("LINES"), System.getenv("COLUMNS"))
println(s"Lines = $lines, Columns = $columns")</langsyntaxhighlight>
 
=={{header|Seed7}}==
Line 741 ⟶ 781:
''Height'' and ''width'' are based on terminfo respectively the Windows console API.
 
<langsyntaxhighlight lang="seed7">$ include "seed7_05.s7i";
include "console.s7i";
 
Line 755 ⟶ 795:
# the program waits until Return/Enter is pressed.
readln;
end func;</langsyntaxhighlight>
 
=={{header|Sidef}}==
{{trans|Raku}}
<langsyntaxhighlight lang="ruby">var stty = `stty -a`;
var lines = stty.match(/\brows\h+(\d+)/);
var cols = stty.match(/\bcolumns\h+(\d+)/);
say "#{lines} #{cols}";</langsyntaxhighlight>
{{out}}
<pre>
Line 770 ⟶ 810:
=={{header|Tcl}}==
{{trans|UNIX Shell}}
<langsyntaxhighlight lang="tcl">set width [exec tput cols]
set height [exec tput lines]
puts "The terminal is $width characters wide and has $height lines"</langsyntaxhighlight>
 
=== Alternative ===
'''Requires''': GNU coreutils
<langsyntaxhighlight lang="tcl">lassign [exec stty size] width height
puts "The terminal is $width characters wide and has $height lines"</langsyntaxhighlight>
 
=={{header|UNIX Shell}}==
{{works with|Bourne Shell}}
<langsyntaxhighlight lang="bash">#!/bin/sh
WIDTH=`tput cols`
HEIGHT=`tput lines`
echo "The terminal is $WIDTH characters wide and has $HEIGHT lines."</langsyntaxhighlight>
 
==={{libheader|termcap}}===
<div style="background-color: #ffc;">termcap is obsolete.</div>
<langsyntaxhighlight lang="bash">#!/bin/sh
WIDTH=`tput co`
HEIGHT=`tput li`
echo "The terminal is $WIDTH characters wide and has $HEIGHT lines."</langsyntaxhighlight>
 
==={{header|C Shell}}===
<langsyntaxhighlight lang="csh">#!/bin/csh -f
set WIDTH=`tput cols`
set HEIGHT=`tput lines`
echo "The terminal is $WIDTH characters wide and has $HEIGHT lines."</langsyntaxhighlight>
 
=={{header|Visual Basic .NET}}==
{{trans|C#}}
<langsyntaxhighlight lang="vb">Module Module1
 
Sub Main()
Line 819 ⟶ 859:
End Sub
 
End Module</langsyntaxhighlight>
{{Out}}
I put the built application in Desktop:
Line 840 ⟶ 880:
=={{header|Wren}}==
As there is currently no way to obtain this information via Wren CLI, we instead embed a Wren script in a C application and ask the host program to get it for us.
<langsyntaxhighlight ecmascriptlang="wren">/* terminal_control_dimensionsTerminal_control_Dimensions.wren */
 
class C {
Line 851 ⟶ 891:
System.print("The dimensions of the terminal are:")
System.print(" Width = %(w)")
System.print(" Height = %(h)")</langsyntaxhighlight>
<br>
We now embed this Wren script in the following C program, compile and run it.
<syntaxhighlight lang="c">/* gcc Terminal_control_Dimensions.c -o Terminal_control_Dimensions -lwren -lm */
<lang c>#include <stdlib.h>
 
<lang c>#include <stdlib.h>
#include <stdio.h>
#include <string.h>
Line 929 ⟶ 971:
WrenVM* vm = wrenNewVM(&config);
const char* module = "main";
const char* fileName = "terminal_control_dimensionsTerminal_control_Dimensions.wren";
char *script = readFile(fileName);
WrenInterpretResult result = wrenInterpret(vm, module, script);
Line 945 ⟶ 987:
free(script);
return 0;
}</langsyntaxhighlight>
 
{{out}}
Line 955 ⟶ 997:
 
=={{header|XPL0}}==
<langsyntaxhighlight XPL0lang="xpl0">include c:\cxpl\codes;
int W, H;
[W:= Peek($40, $4A); \IBM-PC BIOS data
Line 961 ⟶ 1,003:
Text(0, "Terminal width and height = ");
IntOut(0, W); ChOut(0, ^x); IntOut(0, H);
]</langsyntaxhighlight>
 
Output:
Line 969 ⟶ 1,011:
 
=={{header|Yabasic}}==
<langsyntaxhighlight lang="yabasic">clear screen
w = peek("screenwidth")
h = peek("screenheight")
Line 982 ⟶ 1,024:
print " Ancho de la pantalla: ", w, " (pixel)"
print "Altura de la pantalla: ", h, " (pixel)\n"
close window</langsyntaxhighlight>
 
 
Line 988 ⟶ 1,030:
Unix specific solution:
{{trans|GO}}
<langsyntaxhighlight lang="zkl">h,w:=System.popen("stty size","r").readln().split();
println(w," x ",h);</langsyntaxhighlight>
{{out}}<pre>91 x 24</pre>
 
9,476

edits