home *** CD-ROM | disk | FTP | other *** search
-
- { Copyright (c) 1985, 87 by Borland International, Inc. }
-
- unit MCVARS;
-
- interface
-
- uses Crt;
-
- {$IFOPT N+}
-
- type
- Real = Extended;
-
- const
- EXPLIMIT = 11356;
- SQRLIMIT = 1E2466;
- MAXPLACES = 8;
- MAXEXPLEN = 4;
-
- {$ELSE}
-
- const
- EXPLIMIT = 88;
- SQRLIMIT = 1E18;
- MAXPLACES = 4;
- MAXEXPLEN = 3;
-
- {$ENDIF}
-
- const
- MSGHEADER = 'MICROCALC - A Turbo Pascal Demonstration Program';
- MSGKEYPRESS = 'Press any key to continue.';
- MSGCOMMAND = 'Press / for the list of commands';
- MSGMEMORY = 'Memory Available:';
- MSGLOMEM = 'Not enough memory to allocate cell.';
- MSGERRORTXT = 'ERROR';
- MSGEMPTY = 'Empty';
- MSGTEXT = 'Text';
- MSGVALUE = 'Value';
- MSGFORMULA = 'Formula';
- MSGAUTOCALC = 'AutoCalc';
- MSGFORMDISPLAY = 'Form';
- MSGFILENAME = 'Enter the file name of the spreadsheet:';
- MSGNAME = 'Turbo Pascal MicroCalc Spreadsheet';
- MSGCOLWIDTH = 'Enter the new column width:';
- MSGNOOPEN = 'Can''t open the file.';
- MSGOVERWRITE = 'The file exists. Do you want to overwrite it?';
- MSGFILELOMEM = 'Not enough memory for entire spreadsheet.';
- MSGNOMICROCALC = 'That is not a Turbo Pascal MicroCalc spreadsheet.';
- MSGBADREALS = 'The reals in the file are in a different format.';
- MSGNOEXIST = 'The file does not exist.';
- MSGGOTO = 'Enter the cell to go to:';
- MSGBADNUMBER = 'You must enter a number from';
- MSGBADCELL = 'That is not a legal cell.';
- MSGCELL1 = 'Enter the first cell to format:';
- MSGCELL2 = 'Enter the last cell to format:';
- MSGDIFFCOLROW = 'The row or the column must be the same.';
- MSGRIGHTJUST = 'Do you want the cell right-justified?';
- MSGDOLLAR = 'Do you want numbers in a dollar format?';
- MSGCOMMAS = 'Do you want commas in numbers?';
- MSGPLACES = 'How many decimal places should the number be rounded to?';
- MSGCOLUMNS = 'Do you want to print in 132 columns?';
- MSGPRINT = 'Enter the file name to print to, or press ENTER to print on the printer.';
- MSGBORDER = 'Print the border?';
- MSGLOADING = 'Loading...';
- MSGSAVING = 'Saving...';
- MSGSAVESHEET = 'Save current spreadsheet?';
- MSGSTACKERROR = 'Parser stack overflow.';
-
- MNU = 'Spreadsheet, Format, Delete, Goto, Col, Row, Edit, Utility, Auto, Quit';
- COMMAND = 'SFDGCREUAQ';
- SMNU = 'Load, Save, Print, Clear';
- SCOMMAND = 'LSPC';
- CMNU = 'Insert, Delete, Width';
- CCOMMAND = 'IDW';
- RMNU = 'Insert, Delete';
- RCOMMAND = 'ID';
- UMNU = 'Recalc, Formula display, Toggle 43-line mode';
- UCOMMAND = 'RFT';
-
- MAXCOLS = 100; { Maximum is 702 }
- MAXROWS = 100;
- LEFTMARGIN = 3;
- MINCOLWIDTH = 3;
- MAXCOLWIDTH = 77;
- SCREENCOLS = 26;
- DEFAULTWIDTH = 10;
- DEFAULTFORMAT = $42;
- MAXINPUT = 79;
- TOPMARGIN = 5;
- PARSERSTACKSIZE = 20;
-
- TXTCOLOR = White;
- ERRORCOLOR = 140; { LightRed + Blink }
- VALUECOLOR = LightCyan;
- FORMULACOLOR = LightMagenta;
- BLANKCOLOR = Black;
- HEADERCOLOR = 79; { White on Red }
- HIGHLIGHTCOLOR = 31; { White on Blue }
- HIGHLIGHTERRORCOLOR = 159; { White + Blink on Blue }
- MSGAUTOCALCCOLOR = LightCyan;
- MSGFORMDISPLAYCOLOR = LightMagenta;
- MSGMEMORYCOLOR = LightGreen;
- MSGHEADERCOLOR = LightCyan;
- PROMPTCOLOR = Yellow;
- COMMANDCOLOR = LightCyan;
- LOWCOMMANDCOLOR = White;
- MEMORYCOLOR = LightRed;
- CELLTYPECOLOR = LightGreen;
- CELLCONTENTSCOLOR = Yellow;
-
- HIGHLIGHT = True;
- NOHIGHLIGHT = False;
- UPDATE = True;
- NOUPDATE = False;
- DOFORMAT = True;
- NOFORMAT = False;
- LEFT = 0;
- RIGHT = 1;
- UP = 2;
- DOWN = 3;
- TXT = 0;
- VALUE = 1;
- FORMULA = 2;
- COLADD = 0;
- COLDEL = 1;
- ROWADD = 2;
- ROWDEL = 3;
- OVERWRITE = $80;
- RJUSTIFY = $40;
- COMMAS = $20;
- DOLLAR = $10;
- LETTERS : set of Char = ['A'..'Z', 'a'..'z'];
-
- NULL = #0;
- BS = #8;
- FORMFEED = #12;
- CR = #13;
- ESC = #27;
- HOMEKEY = #199;
- ENDKEY = #207;
- UPKEY = #200;
- DOWNKEY = #208;
- PGUPKEY = #201;
- PGDNKEY = #209;
- LEFTKEY = #203;
- INSKEY = #210;
- RIGHTKEY = #205;
- DELKEY = #211;
- CTRLLEFTKEY = #243;
- CTRLRIGHTKEY = #244;
- F1 = #187;
- F2 = #188;
- F3 = #189;
- F4 = #190;
- F5 = #191;
- F6 = #192;
- F7 = #193;
- F8 = #194;
- F9 = #195;
- F10 = #196;
-
- type
- IString = String[MAXINPUT];
- CellRec = record
- Error : Boolean;
- case Attrib : Byte of
- TXT : (T : IString);
- VALUE : (Value : Real);
- FORMULA : (Fvalue : Real;
- Formula : IString);
- end;
- CellPtr = ^CellRec;
-
- var
- Cell : array [1..MAXCOLS, 1..MAXROWS] of CellPtr;
- CurCell : CellPtr;
- Format : array [1..MAXCOLS, 1..MAXROWS] of Byte;
- ColWidth : array [1..MAXCOLS] of Byte;
- ColStart : array [1..SCREENCOLS] of Byte;
- LeftCol, RightCol, TopRow, BottomRow, CurCol, CurRow, LastCol,
- LastRow : Word;
- Changed, FormDisplay, AutoCalc, Stop, ColorCard : Boolean;
- ColorTable : array [0..255] of Byte;
- ScreenRows : Byte;
- OldMode : Word;
- UMenuString : String[80];
- UCommandString : String[3];
-
- implementation
-
- begin
- end.