| Home CBM ASCII-X BASIC Disk Commands Enter RUN mode Program Format Secret Variables Variable Format Expressions Keywords (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 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 Window Xor Syntax Tokens C128 D64plus Disk Escape Codes Hardware PCxface PETSCII Pet2asc Futurama IBM PC-AT Contact Games Glossary Hall of fame Hall of shame Miscellaneous Privacy policy Programming Twisty puzzles |
WINDOW left , top , right , bottom
Editor state management. Define a text window.
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:
© H2Obsession, 2014 |