\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{DNSGeek} \pdfinfo{ /Title (mmbasic.pdf) /Creator (Cheatography) /Author (DNSGeek) /Subject (MMBasic Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{A3A3A3} \definecolor{LightBackground}{HTML}{F3F3F3} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{MMBasic Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{DNSGeek} via \textcolor{DarkBackground}{\uline{cheatography.com/171119/cs/46930/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}DNSGeek \\ \uline{cheatography.com/dnsgeek} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Not Yet Published.\\ Updated 24th August, 2025.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{3} \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Keywords}} \tn % Row 0 \SetRowColor{LightBackground} {\bf{'}} & Single line comment \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} {\bf{/*}} ... {\bf{*/}} & Multi line comment \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} {\bf{ADC FREQUENCY}} {[}freq{]} & This changes the sampling frequency of the ADC conversion without having to close and re-open \tn % Row Count 7 (+ 5) % Row 3 \SetRowColor{white} {\bf{ADC CLOSE}} & Releases the pins to normal usage \tn % Row Count 9 (+ 2) % Row 4 \SetRowColor{LightBackground} {\bf{ADC OPEN}} freq, n\_channels{[}, interrupt{]} & This allocates up to 4 ADC channels for use and sets them to be converted at the specified frequency \tn % Row Count 14 (+ 5) % Row 5 \SetRowColor{white} {\bf{ADC START}} array1!() {[},array2!(){]} {[},array3!(){]} {[},array4!(){]} {[},C1min{]} {[},C1max{]} {[},C2min{]} {[},C2max{]} {[},C3min{]} {[},C3max{]} {[},C4min{]} {[},C4max{]} & This starts conversion into the specified arrays. The arrays must be floating point and the same size. 'Cxmin' and 'Cxmax' will scale the readings. \tn % Row Count 22 (+ 8) % Row 6 \SetRowColor{LightBackground} {\bf{ADC RUN}} array1\%(), array2\%() & Runs the ADC continuously in double buffered mode. \tn % Row Count 25 (+ 3) % Row 7 \SetRowColor{white} {\bf{ARRAY ADD}} in(), value, out() & This adds (or appends for strings) the value 'value' to every element of the matrix in() and puts the answer in out(). \tn % Row Count 31 (+ 6) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Keywords (cont)}} \tn % Row 8 \SetRowColor{LightBackground} {\bf{ARRAY INSERT}} targetarray(), {[}d1{]} {[},d2{]} {[},d3{]} {[},d4{]} {[},d5{]}, sourcearray() & This is the opposite of {\bf{ARRAY SLICE}} \tn % Row Count 4 (+ 4) % Row 9 \SetRowColor{white} {\bf{ARRAY SET}} value, array() & Sets all elements of array() to value \tn % Row Count 6 (+ 2) % Row 10 \SetRowColor{LightBackground} {\bf{ARRAY SLICE}} sourcearray(), {[}d1{]} {[},d2{]} {[},d3{]} {[},d4{]} {[},d5{]} destinationarray() & This command copies a specified set of values from a multi-dimensional array into a single dimensional array. \tn % Row Count 12 (+ 6) % Row 11 \SetRowColor{white} {\bf{ARC}} x, y, r1, {[}r2{]}, a1, a2 {[}, c{]} & Draws an arc of a circle with a given colour and width between two radials (defined in degrees) \tn % Row Count 17 (+ 5) % Row 12 \SetRowColor{LightBackground} {\bf{AUTOSAVE}} {[}{\bf{CRUNCH}}|{\bf{APPEND}}{]} & Enter automatic program entry mode. {\bf{CRUNCH}} removes all comments and whitespace, {\bf{APPEND}} appends to the end of the existing program \tn % Row Count 24 (+ 7) % Row 13 \SetRowColor{white} {\bf{BIT}}(var\%, bitno) = value & Sets the specified bit {\emph{bitno}} in the 64-bit integer variable {\emph{var\%}} to {\emph{value}} \tn % Row Count 28 (+ 4) % Row 14 \SetRowColor{LightBackground} {\bf{BLIT READ}} {[}\#{]}b, x, y, w, h & Will copy a portion of the display to the memory buffer '\#b'. 32 buffers are available ranging from \#1 to \#32. \tn % Row Count 34 (+ 6) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Keywords (cont)}} \tn % Row 15 \SetRowColor{LightBackground} {\bf{BLIT WRITE}} {[}\#{]}b, x, y {[},mode{]} & Will copy the memory buffer '\#b' to the display. 32 buffers are available ranging from \#1 to \#32. \tn % Row Count 5 (+ 5) % Row 16 \SetRowColor{white} {\bf{BLIT LOAD}}{[}BMP{]} {[}\#{]}b, fname\$ {[},x{]} {[},y{]} {[},w{]} {[},h{]} & Will load a blit buffer from a 24-bit bmp image file. \tn % Row Count 8 (+ 3) % Row 17 \SetRowColor{LightBackground} {\bf{BLIT CLOSE}} {[}\#{]}b & Will close the memory buffer '\#b' \tn % Row Count 10 (+ 2) % Row 18 \SetRowColor{white} {\bf{BLIT FRAMEBUFFER}} from, to, xin, yin, xout, yout, width, height {[},colour{]} & Copies an area of a specific 'from' framebuffer N, F, or L to another different 'to' framebuffer N, F, or L. \tn % Row Count 16 (+ 6) % Row 19 \SetRowColor{LightBackground} {\bf{BLIT MEMORY}} address, x, y {[},col{]} & Copies an area of memory treated as a packed array of colour nibbles to the current graphical output as specified by {\bf{FRAMEBUFFER WRITE}} \tn % Row Count 23 (+ 7) % Row 20 \SetRowColor{white} {\bf{BLIT COMPRESSED}} address\%, x, y {[},col{]} & Acts the same as BLIT MEMORY but assumes the data is compressed and ignores the top bit in the width and height \tn % Row Count 29 (+ 6) % Row 21 \SetRowColor{LightBackground} {\bf{BLIT}} x1, y1, x2, y2, w, h & Copy one section of the display screen to another part of the display \tn % Row Count 33 (+ 4) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Keywords (cont)}} \tn % Row 22 \SetRowColor{LightBackground} {\bf{BOX}} x, y, w, h {[}, lw{]} {[},c{]} {[},fill{]} & Draws a box on the display with the top left hand corner at 'x' and 'y' with a width of 'w' pixels and a height of 'h' pixels \tn % Row Count 7 (+ 7) % Row 23 \SetRowColor{white} {\bf{BYTE}}(var\$, byteno)=value & Sets byte {\emph{byteno}} in string {\emph{var\$}} to integer value {\emph{value}}. {\emph{value}} can be in the range 0- 255. \tn % Row Count 12 (+ 5) % Row 24 \SetRowColor{LightBackground} {\bf{CALL}} usersubname\$ {[},usersubparameters,..{]} & Call subroutine {\emph{usersubname\$}} \tn % Row Count 15 (+ 3) % Row 25 \SetRowColor{white} {\bf{CAT}} S\$, N\$ & Appends {\emph{N\$}} to {\emph{S\$}} \tn % Row Count 16 (+ 1) % Row 26 \SetRowColor{LightBackground} {\bf{CHAIN}} fname\$ {[}cmdline\${]} & Invokes program {\emph{fname\$}} and keeps the variables intact \tn % Row Count 19 (+ 3) % Row 27 \SetRowColor{white} {\bf{CHDIR}} dir\$ & Changes the current working directory to {\emph{dir\$}} \tn % Row Count 22 (+ 3) % Row 28 \SetRowColor{LightBackground} {\bf{CIRCLE}} x, y, r {[},lw{]} {[}, a{]} {[}, c{]} {[}, fill{]} & Draw a circle centered at {\emph{x}} and {\emph{y}} with a radius of {\emph{r}} on the display \tn % Row Count 26 (+ 4) % Row 29 \SetRowColor{white} {\bf{CLEAR}} & Delete all variables \tn % Row Count 27 (+ 1) % Row 30 \SetRowColor{LightBackground} {\bf{CLOSE}} {[}\#{]}fnbr {[},{[}\#{]}fnbr{]} & Closes the file(s) with the specified file number(s) \tn % Row Count 30 (+ 3) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Keywords (cont)}} \tn % Row 31 \SetRowColor{LightBackground} {\bf{CLS}} {[}color{]} & Clears the screen \tn % Row Count 1 (+ 1) % Row 32 \SetRowColor{white} {\bf{CMM2 LOAD|RUN}} & Loads and or runs a program from disk using the CMM2 program loading mechanism \tn % Row Count 5 (+ 4) % Row 33 \SetRowColor{LightBackground} {\bf{COLOR}} fore {[}, back{]} & Sets the default color for commands that display on the screen \tn % Row Count 9 (+ 4) % Row 34 \SetRowColor{white} {\bf{COLOUR MAP}} inarray\%(), outarray\%() {[},colourmap\%(){]} & Generates RGB888 colors in {\emph{outarray\%}} from color codes (0- 15) in {\emph{inarray\%}} \tn % Row Count 13 (+ 4) % Row 35 \SetRowColor{LightBackground} {\bf{CONFIGURE}} cfg & Configures a board as per the {\emph{cfg}} specified equivalent of {\bf{OPTION RESET}} \tn % Row Count 17 (+ 4) % Row 36 \SetRowColor{white} {\bf{CONFIGURE LIST}} & Lists all the various configurations available for the firmware version \tn % Row Count 21 (+ 4) % Row 37 \SetRowColor{LightBackground} {\bf{CONST}} id = expression {[}, id = expression{]}{[}, ...{]} & Creates constant identifier {\emph{id}} and sets it to the value of {\emph{expression}}. This value cannot be changed once set. \tn % Row Count 27 (+ 6) % Row 38 \SetRowColor{white} {\bf{CONTINUE}} & Resume running a program that has been stopped by an END statement, an error, or CTRL-C \tn % Row Count 32 (+ 5) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Keywords (cont)}} \tn % Row 39 \SetRowColor{LightBackground} {\bf{CONTINUE DO|FOR}} & Skip to the end of a DO/LOOP or a FOR/NEXT loop \tn % Row Count 3 (+ 3) % Row 40 \SetRowColor{white} {\bf{COPY}} fname1\$ {\bf{TO}} fname2\$ & Copy file {\emph{fname1\$}} to new file {\emph{fnames2\$}} \tn % Row Count 6 (+ 3) % Row 41 \SetRowColor{LightBackground} {\bf{COPY}} fname\$ {\bf{TO}} dirname\$ & Wildcard copy. The bulk copy is triggered if {\emph{fname\$}} contains a '*' or a '?' character. {\emph{dirname\$}} must be a valid directory name and should NOT end in a slash character \tn % Row Count 15 (+ 9) % Row 42 \SetRowColor{white} {\bf{CPU RESTART}} & Will force a restart of the CPUs. This will clear all variables and reset everything \tn % Row Count 20 (+ 5) % Row 43 \SetRowColor{LightBackground} {\bf{CPU SLEEP}} n & Will cause the processors to sleep for {\emph{n}} seconds \tn % Row Count 23 (+ 3) % Row 44 \SetRowColor{white} {\bf{CSUB}} name {[}type{]}{[}, type{]}{[}, ...{]} & Defines the binary code for an embedded machine code program module written in C or ARM assembler. \tn % Row Count 28 (+ 5) % Row 45 \SetRowColor{LightBackground} {\bf{END CSUB}} & Ends the CSUB definition \tn % Row Count 30 (+ 2) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Keywords (cont)}} \tn % Row 46 \SetRowColor{LightBackground} {\bf{DATA}} constant{[}, constant{]}{[}, ...{[} & Stores numerical and string constants to be accessed by {\bf{READ}} \tn % Row Count 4 (+ 4) % Row 47 \SetRowColor{white} {\bf{DATE\$}} = "DD-MM-YY{[}YY{]}" | "DD/MM/YY{[}YY{]}" | "YYYY-MM-DD" | "YYYY/MM/DD" & Set the date of the internal clock/calendar \tn % Row Count 9 (+ 5) % Row 48 \SetRowColor{LightBackground} {\bf{DEFINEFONT}} \#Nbr & This will define an embedded font which can be used alongside or to replace the built in font(s) used on an attached LCD panel. \tn % Row Count 16 (+ 7) % Row 49 \SetRowColor{white} {\bf{END DEFINEFONT}} & Ends the font definition \tn % Row Count 18 (+ 2) % Row 50 \SetRowColor{LightBackground} {\bf{DEVICE BITSTREAM}} pinno, n\_transitions, array\%() & Generate an extremely accurate bit sequence on pin {\emph{pinno}} \tn % Row Count 21 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.18988 cm} x{2.78712 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Predefined Read Only Variables}} \tn % Row 0 \SetRowColor{LightBackground} {\bf{MM.VER}} & Returns the firmware version number \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} {\bf{MM.CMDLINE\$}} & Returns any command line arguments passed to the current program \tn % Row Count 5 (+ 3) % Row 2 \SetRowColor{LightBackground} {\bf{MM.DEVICE\$}} & The device or platform that MMBasic is running on \tn % Row Count 8 (+ 3) % Row 3 \SetRowColor{white} {\bf{MM.DISPLAY}} & Returns a 1 if a display is configured, else 0 \tn % Row Count 11 (+ 3) % Row 4 \SetRowColor{LightBackground} {\bf{MM.ERRNO}} & A non-zero value means an error occurred \tn % Row Count 13 (+ 2) % Row 5 \SetRowColor{white} {\bf{MM.ERRMSG\$}} & The error message \tn % Row Count 14 (+ 1) % Row 6 \SetRowColor{LightBackground} {\bf{MM.FLAGS}} & Returns the system flags register \tn % Row Count 16 (+ 2) % Row 7 \SetRowColor{white} {\bf{MM.FONTHEIGHT}} & Returns the height of the current font \tn % Row Count 18 (+ 2) % Row 8 \SetRowColor{LightBackground} {\bf{MM.FONTWIDTH}} & Returns the width of the current font \tn % Row Count 20 (+ 2) % Row 9 \SetRowColor{white} {\bf{MM.HRES}} & Returns the horizontal resolution of the configured display \tn % Row Count 23 (+ 3) % Row 10 \SetRowColor{LightBackground} {\bf{MM.VRES}} & Returns the vertical resolution of the configured display \tn % Row Count 26 (+ 3) % Row 11 \SetRowColor{white} {\bf{MM.HEIGHT}} & Returns the number of characters high the configured display is with the current font \tn % Row Count 30 (+ 4) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.18988 cm} x{2.78712 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Predefined Read Only Variables (cont)}} \tn % Row 12 \SetRowColor{LightBackground} {\bf{MM.WIDTH}} & Returns the number of characters wide the configured display is with the current font \tn % Row Count 4 (+ 4) % Row 13 \SetRowColor{white} {\bf{MM.HPOS}} & Returns the current horizontal position \tn % Row Count 6 (+ 2) % Row 14 \SetRowColor{LightBackground} {\bf{MM.VPOS}} & Returns the current vertical position \tn % Row Count 8 (+ 2) % Row 15 \SetRowColor{white} {\bf{MM.INFO\$(AUTORUN)}} & Returns the current setting of {\bf{OPTION AUTORUN}} \tn % Row Count 11 (+ 3) % Row 16 \SetRowColor{LightBackground} {\bf{MM.INFO(ADC)}} & Returns the number of the buffer currently ready to read when using ADC RUN (1 or 2). Returns 0 if nothing ready. \tn % Row Count 17 (+ 6) % Row 17 \SetRowColor{white} {\bf{MM.INFO(ADC DMA)}} & Returns 1 if the {\bf{ADC DMA}} is active \tn % Row Count 19 (+ 2) % Row 18 \SetRowColor{LightBackground} {\bf{MM.INFO(BOOT)}} & Tells you the reason of the last system restart \tn % Row Count 22 (+ 3) % Row 19 \SetRowColor{white} {\bf{MM.INFO(BOOT COUNT)}} & The number of restarts since the last flash ram format \tn % Row Count 25 (+ 3) % Row 20 \SetRowColor{LightBackground} {\bf{MM.INFO\$(CPUSPEED)}} & Returns the current CPU speed \tn % Row Count 27 (+ 2) % Row 21 \SetRowColor{white} {\bf{MM.INFO\$(LCDPANEL)}} & Returns the value of the configured LCD panel, or a blank string if none \tn % Row Count 31 (+ 4) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.18988 cm} x{2.78712 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Predefined Read Only Variables (cont)}} \tn % Row 22 \SetRowColor{LightBackground} {\bf{MM.INFO(LCD320)}} & Returns 1 if the configured LCD panel can run {\bf{OPTION LCD320}} \tn % Row Count 3 (+ 3) % Row 23 \SetRowColor{white} {\bf{MM.INFO\$(SDCARD)}} & Returns the status of the SD card \tn % Row Count 5 (+ 2) % Row 24 \SetRowColor{LightBackground} {\bf{MM.INFO\$(CURRENT)}} & Returns the name of the current program \tn % Row Count 7 (+ 2) % Row 25 \SetRowColor{white} {\bf{MM.INFO\$(PATH)}} & Returns the path of the current program \tn % Row Count 9 (+ 2) % Row 26 \SetRowColor{LightBackground} {\bf{MM.INFO(DISK SIZE)}} & Return the size of the active drive \tn % Row Count 11 (+ 2) % Row 27 \SetRowColor{white} {\bf{MM.INFO\$(DRIVE)}} & Returns active drive "A:" or "B:" \tn % Row Count 13 (+ 2) % Row 28 \SetRowColor{LightBackground} {\bf{MM.INFO(EXISTS FILE fname\$)}} & Returns 1 if the file specified exists, returns -1 if fname\$ is a directory, otherwise returns 0. \tn % Row Count 18 (+ 5) % Row 29 \SetRowColor{white} {\bf{MM.INFO(EXISTS DIR dirname\$)}} & Returns 1 if the directory exists, else 0 \tn % Row Count 20 (+ 2) % Row 30 \SetRowColor{LightBackground} {\bf{MM.INFO(FREE SPACE)}} & Returns the amount of free space available on the current drive \tn % Row Count 23 (+ 3) % Row 31 \SetRowColor{white} {\bf{MM.INFO(FILESIZE file\$)}} & Returns the size of file {\emph{file\$}} or 0 is not found \tn % Row Count 26 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{{\bf{ALL}} variables start with MM., e.g. MM.VER, MM.FLAGS, etc.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}