Home > CBM > BASIC > Keywords > Close 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, 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, Window, Xor |
| Keyword | Abbreviation | Token (hex) | Version(s) | Classification | | CLOSE | CL{Shift+O} | A0 | 1.0+ | Command and Statement |
CLOSE fileNumber [ , deviceNumber [ , flags [ , commandString ] ] ] | Parameters | Type | Legal Value(s) | Default Value | Note(s) | | fileNumber | Unsigned Byte | 0 to 255 | | Should be a previously OPEN'd file# | | deviceNumber | Unsigned Byte | 0 ~ 255 | | ignored | | flags | Unsigned Byte | 0 ~ 255 | | ignored | | commandString | String | 0 ~ 255 chars | | ignored |
Close an open "file". The CLOSE statement should be used after all communication has ended following a previous OPEN. For most devices, CLOSE will flush any buffer. Failure to use CLOSE often results in corrupt "files" due to the final bytes (whatever is buffered) not being flushed. Note the BASIC command CLR (which is called by NEW, RUN, and in direct mode, LOAD) commits this dangerous mistake! The deviceNumber, flags, and commandString can have any value of the appropriate type. They are (generally) ignored. However, if their type is wrong, a TYPE MISMATCH ERROR is generated, and otherwise if the values are not legal (see table above) an ILLEGAL QUANTITY ERROR occurs. CLOSE will silently "succeed" if fileNumber refers to a file that was never opened. If the fileNumber refers to an RS-232(C) device of a previous OPEN statement (regardless of this statement's deviceNumber) then any/all character(s) buffered for output will be "lost"; you have to check a secret variable to determine if the transmit buffer is empty (see ST). CLOSE will also de-allocate RS-232(C) buffers on most systems. Most printers (both IEEE/IEC bus and RS-232) buffers data by line. You often need to use an "empty" PRINT# to flush the line they have buffered. Examples:
CLOSE 1
READY.
CLOSE 2,-17
?ILLEGAL QUANTITY ERROR
READY.
CLOSE 2, 17
READY.
OPEN 4,4 : CMD 4 : REM prepare printer to receive 'direct output'
LIST : REM list program to printer
PRINT #4 : REM flush last line
READY.
CLOSE 4
READY. |
© H2Obsession, 2014 |