| 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 |
DIM variable [ ( dimension1 [ , dimensionN ] ... ) ] [ , variable [ ( dimension1 [ , dimensionN ] ... ) ] ]...
Variable declaration and initialization.
This statement is always optional for scalar (non-array) variables. However, because variable look-up speed is based on their order of creation, it may be benefitial (sometimes dramatically) to list the most-often used variable(s) near the beginning of the program. For 1-dimensional arrays, this statement is again optional if the array needs 11 or fewer elements (i.e., an array index from 0 to 10). If more than 1 dimension is needed, or the single dimension needs more than 11 elements, then DIM is required. Because arrays begin indexing with zero, DIM always creates one extra element than the numbered specified for each dimension. For example, DIM A(20) would allocate 21 elements, accessed with A(1) to A(20) and also A(0). In theory, any (every) dimension of an array could contain up to 32768 elements, but you would get an OUT OF MEMORY error long before that value is reached for a single dimension. In theory, an array could have 255 dimensions, but the limit of BASIC line lengths, together with the syntax used, means far fewer dimensions are possible (for example, less than 40 dimensions with an 80-character line limit). Numeric arrays are initialized to zero; string arrays are initialized as an empty string. The same applies to scalars (non-arrays) if they have not been created already; their value is un-changed if the have been previously created. If an array already exists, then specifying it in a DIM statement (wheather the dimensions are the same or not), will generate a REDIM'D ARRAY ERROR. Example:
|