Login
Back to forumReply to this topicGo to last reply

Posted By

Csabo
on 2009-06-25
18:58:57
 SVS Calc

I ran it. I entered a number to A1 and A2. I entered "=A1+A2"... and it really works!

This is... insane! happy It looks like an incredibly complex thing to undertake. I can't believe you actually made something like this. Congratulations!

Posted By

Luca
on 2009-06-25
20:23:21
 Re: SVS Calc

This stuff runs very clean and straight, still aplying with it, thumbs up for SVS!

Posted By

MikeZ
on 2009-06-26
08:46:52
 Re: SVS Calc

I want to publicly thank SVS for letting me participate in the testing. I tested SVS-CALC over an eight month period. It has been the most fun I've had with the plus/4 since the 1980s. It's powerful and easy to use. BRAVO!

Posted By

SVS
on 2009-06-26
15:34:11
 Re: SVS Calc

I thank you boys, for the good words.
If you have questions or do like to discuss about features/engines/etc. I will be glad to answer.

Posted By

Chronos
on 2009-06-26
16:59:12
 Re: SVS Calc

A fastloader will improve the stuff a lot :D anyway great! congrats!

Posted By

MagerValp
on 2009-06-27
08:00:04
 Re: SVS Calc

I find the project fascinating. A rundown of how it came to be, any interesting challenges along the way, what are the data structures used for representing data and expressions... anything really!

Posted By

JamesD
on 2009-06-27
20:23:15
 Re: SVS Calc

Looks great!
Now if you could just shrink it down so it could load from the ROM in place of the useless built in Plus/4 spreadsheet. happy

Posted By

SVS
on 2009-06-28
02:58:57
 Re: SVS Calc

A few suggestions:
a) You're encouraged to set emulator to 200% of speed (don't worry: it will remain playable);
b) If you are making tests inside the sample spreadsheet BALANCE11, be informed that it has set 2 iterations for recalcule (then it needs twice time to do). Use MENU->SHEET-CALCULATION-ITERATIONS to change.
c) You could find useful to enable blanking while calculating/updating in order to reduce of 35% the processing time (MENU->SHEET->SETTINGS->BLANKING).

Posted By

Degauss
on 2009-06-28
09:46:27
 Re: SVS Calc

What a beast! Great job, SVS!

While everybody noticed that this thing is technically impressive i also think its also great in usability.

Posted By

SVS
on 2009-07-01
07:34:46
 Re: SVS Calc

To MagerValp and who is interested:

The structures of data in SVS-Calc are the following:
- Cells' data: a bimensional string array (columns x rows)
- Formulas: an array with (n x 4) elements. "n" is the index; 0, 1, are column and row where formula resides, 2 is the text of formula, 3 is the formula converted into RPN tokens;
- Formats of data visualization: a bimensional integer array (columns x rows) with flags: 1=centered, 2=right justified, 3=number (using); 4=none, 5=date/time (using). Value is negative to set cell as protected.
- Column sizes: integer vector (26 elements)
- Colors: integer array (6 x 2). Second value is: 0=color 1=luminance.
- Remaining strings for cell propagation feature: string vector (17 elements).

The main challenges were the following:
- Evaluation of formulas. I used the RPN (Reverse Polish Notation) method, after have modified its standard algorythm in order to manage operands longer than one character (like functions) in addition to standard math operators (* / - + ^). When a formula is entered it is parsed and translated into sorted RPN tokens so that further recalculations have not to re-analyze it again, but only execute it.
- Engine for autoadapting referrals of formulas. It applies to all existing formulas of the sheet after you inserted/deleted a new cell (or column, or row), and after you copied/cut a cell with a formula. There may be a lot of different cases, so that I had to build a method able to "understand" what it has to do and where. (For example a formula could have one or more referrals to modified locations and one or more referrals to non-modified locations. Furthermore its location can define if it has or not to be fixed).

I hope you find this info useful and interesting,
have you questions? happy

Posted By

MikeZ
on 2009-07-01
08:30:15
 Re: SVS Calc

OK SVS. Now the data structure is known. So tell us how the program translates row and column coordinates into screen position.

Posted By

SVS
on 2009-07-02
07:14:04
 Re: SVS Calc

>>tell us how the program translates row and column coordinates into screen position

Well:
System keeps note of the current coordinates of top-left corner of visible grid.
Then when it has to redraw the screen it "knows" from where element of array to start. For example: if top-left corner is B5, system will pick element (2,5) from cells array (2 is for B).
Only a few jobs need the screen updating of only a cell (for example cell input). Anyway in these case the whole row of cells is redrawn.
All other cases need to redraw the whole screen. This is obtained by redrawing every column of cells. To draw columns infact has the advantage to calculate the mask for print using only *once* (column title), and then all other cells below will use the same mask.
Every moving of cursor cell, and every scrolling will update the columns/rows titles too, in order to show hilighted the column and row of the cursor. When manage cursor-cell, the visualization routine is deviated to proper special visualization.



Back to topReply to this topic


Copyright © Plus/4 World Team, 2001-2024