Home > CBM > BASIC > Keywords > Window
180 Subpages: (divide), (equal), (less), (minus), (more), (multiply), (plus), (power), Abs, And, Append, Asc, Atn, Auto, Backup, Bank, Begin, Bend, Bload, Boot, Box, Bsave, Bump, Catalog, Char, Chr, Circle, Close, Clr, Cmd, Collect, Collision, Color, Concat, Cont, Copy, Cos, Data, Dclear, Dclose, Dec, Def, Delete, Dim, Directory, Dispose, Dload, Do, Dopen, Draw, Ds, Ds string, Dsave, Dverify, El, Else, End, Envelope, Er, Err, Exit, Exp, Fast, Fetch, Filter, Fn, For, Fre, Get, Get num, Getkey, Go, Gosub, Goto, Graphic, Gshape, Header, Help, Hex, If, Input, Input num, Instr, Int, Joy, Key, Left, Len, Let, List, Load, Locate, Log, Loop, Mid, Monitor, Movspr, New, Next, Not, Off, On, Open, Or, Paint, Peek, Pen, Pi, Play, Pointer, Poke, Pos, Pot, Print, Print num, Pudef, Quit, Rclr, Rdot, Read, Record, Rem, Rename, Renumber, Restore, Resume, Return, Rgr, Right, Rlum, Rnd, Rreg, Rspcolor, Rsppos, Rsprite, Run, Rwindow, Save, Scale, Scnclr, Scratch, Sgn, Sin, Sleep, Slow, Sound, Spc, Sprcolor, Sprdef, Sprite, Sprsav, Sqr, Sshape, St, Stash, Step, Stop, Str, Swap, Sys, Tab, Tan, Tempo, Then, Ti, Ti string, To, Trap, Troff, Tron, Until, Using, Usr, Val, Verify, Vol, Wait, While, Width, Xor

KeywordAbbreviationToken (hex)Version(s)Classification
WINDOWW{Shift+I}FE 1A7.0Command and Statement

 
 Syntax  
WINDOW left , top , right , bottom
 
ParametersTypeLegal Value(s)Default ValueNote(s)
leftUnsigned Byte0 ~ width -1width is 40 for VIC-II or 80 for VDC; whichever is the active text editor
topUnsigned Byte0 ~ 24 
rightUnsigned Byteleft ~ width -1width is 40 for VIC-II or 80 for VDC; whichever is the active text editor
bottomUnsigned Bytetop ~ 24 
 
 
 Purpose 
Editor state management.  Define a text window.

 
 Remarks 
WINDOW allows an easy to way to set-up a text window in BASIC.  Although WINDOW is only valid v7.0, text windows are available on older CBM machines, like the TED series and the CBM-II series.  On those machines, setting up a window is a bit more work in BASIC.  The general method for them is to position the cursor at the top-left corner and PRINT an ESC T and then position the cursor at the bottom-right corner and PRINT an ESC B (see Escape Codes).
 
All parameters are physical (0-based) screen ordinates (not relative to any current window).  If any parameter is omitted or is an invalid expression, or if any extra parameter(s) are given, then SYNTAX ERROR occurs.  If any parameter is not numeric, TYPE MISMATCH ERROR occurs; you may manually convert a string with VAL.  Any floating-point parameter is automatically converted with INT.  If the result is not a Legal Value (see table above), ILLEGAL QUANTITY ERROR occurs.  In particular, the right and bottom parameters must not be less than the left and top parameters, respectively.
 
An important thing to note when setting up a new window (using WINDOW or escape codes) is that all line-links are destroyed.  This is mostly relevant in direct mode.  It means that any lines that extend beyond one physical line (a so-called logical line) will be interpretted as two seperate lines after the new window is set-up.  So if you try to edit an existing program line, half of it will be cut-off (assuming it originally spanned multiple lines).  The screen line-links are maintained by the KERNAL / Editor so you can't blame BASIC for this!
 
Although you can use WINDOW to define the full-screen as the active window, it is much simpler to PRINT HOME HOME [or more verbosely, PRINT CHR$(19) CHR$(19)].
 
Some interesting (perhaps helpful) mathematical relations:
  (new) width = right - left + 1
  (new) height = bottom - top + 1
  right = (desired) width + left - 1
  bottom = (desired) height top - 1
 
BASIC v7.0 provides RWINDOW to determine some properties of the active window; mainly the not-so-useful values of width-1 and height-1.  So in any version of BASIC, if you need to read the current settings of left, top, right, or bottom, then you will have to PEEK at secret variable(s).
 
Examples:
WINDOW 0,0,19,9 : REM 20 column X 10 line window at top-left of screen

READY.
WINDOW 10,5,29,14 : REM 20 column X 10 line window centered on 40-column screen

READY.
WINDOW 0,0,39,24 : REM full-screen (40-columns)

READY.
WINDOW 0,0,79,24 : REM full-screen (80-columns)
?ILLEGAL QUANTITY ERROR            example executed in 40-column mode

READY.
 
 
 Compare With 
 
 Contrast With 
 See Also 

© H2Obsession, 2014