CPCWiki forum

General Category => Applications (CPC and CPC-related) => Topic started by: Prodatron on 19:23, 25 May 24

Title: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Prodatron on 19:23, 25 May 24
In 2008 I started an engine for a spreadsheet application, but due to another (stupid) hobby these routines collected dust for many many years.
Now finally I restarted the work on this spreadsheet application for SymbOS again, which is currently called "SymCalc" (not sure about the final name).
SymCalc should provide all usual functions of a more or less modern spreadsheet application. Memory and display/format handling is nearly finished now (only date/time stuff is missing), GUI stuff is mostly finished as well (like navigating, marking cells etc.).
The next big step is implementing formula handling. Yes, the most important stuff of course.
The plan is to have a full automatic recalculation of cells in any direction which wasn't usual for 80ies spreadsheet applications.
SymCell is already able to handle a field of 64x125 cells with a maximum amount of 1024 used cells. Maybe this can be extended to 64x250 and 2048 used cells, but let's see.
Currently the bottom line on the screen shots is a dummy one. The right part will be implemented. But currently I am not sure, if multiple sheets within the same file will be possible in the future, using references between sheets.

symcalc-1a.png

symcalc-1b.png

symcalc-1c.png

symcalc-1d.png

symcalc-1e.png

symcalc-1f.png

symcalc-1g.png

Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Gryzor on 19:40, 25 May 24
Ok, this is seriously impressive and ambitious! 

Can you explain the bit about calculation in any direction? I didn't know it was a limitation back in the day, but why was it so?
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: St-BeidE(DE/GB) on 21:07, 25 May 24
Prodatron,  you are insane...  :o
I run into trouble,  next time I give students a guest lecture. How to explain, the CPC is from the 80s ?  ;)

Steven
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: McArti0 on 21:54, 25 May 24
Handle the SLK (sylk) format as it is in Multiplan under CPM as well as in the new Excel
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Prodatron on 11:16, 26 May 24
Quote from: Gryzor on 19:40, 25 May 24Can you explain the bit about calculation in any direction? I didn't know it was a limitation back in the day, but why was it so?
This is what I saw at least in VisiCalc (Apple 2) and Mastercalc (CPC).

The recalculation usually starts at A1, then A2, A3 etc, then B1, B2, B3 and so on.
You could change the setting, that it does first A1,B1,C1 etc. then A2,B2,C2 and so on.

Usually this is fine, but when you have some chained references, which are hopping forward and backward, it won't update the sheet correctly automatically. In this case you could trigger an additional recalculation process manually. And if you have multiple references which are going in the wrong direction, you have to do this multiple times. Of course this is not the normal way how you create a table, so in most cases this was not an issue.
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Gryzor on 11:41, 26 May 24
Quote from: Prodatron on 11:16, 26 May 24
Quote from: Gryzor on 19:40, 25 May 24Can you explain the bit about calculation in any direction? I didn't know it was a limitation back in the day, but why was it so?
This is what I saw at least in VisiCalc (Apple 2) and Mastercalc (CPC).

The recalculation usually starts at A1, then A2, A3 etc, then B1, B2, B3 and so on.
You could change the setting, that it does first A1,B1,C1 etc. then A2,B2,C2 and so on.

Usually this is fine, but when you have some chained references, which are hopping forward and backward, it won't update the sheet correctly automatically. In this case you could trigger an additional recalculation process manually. And if you have multiple references which are going in the wrong direction, you have to do this multiple times. Of course this is not the normal way how you create a table, so in most cases this was not an issue.
Interesting. I can see how it can be an issue when you first think of it ("oh, how will we scan the table to update stuff?") but... It's not like you don't already have a matrix of what values are dependent on other values so that you can do it in an arbitrary way?
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Prodatron on 12:51, 26 May 24
So you suggest to generate something like pathes, which define, in which order the cells have to be recalculated as soon as something has been updated. You check, if a cell is included in such a path, and when you find it, you follow the remaining part of the path and update all mentioned cells in the correct order. This would result in a very fast and always correct recalculation. As soon as you change references inside a formula you have to regenerate one of these pathes.

My current approach was to find all affected cells in realtime again and again after each update, but maybe this will become slow when having a lot of cells. Then you could at least cache the recalculation order.

Anyway that is an interesting problem :)
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Gryzor on 13:00, 26 May 24
I was thinking more along the lines of your own solution (which, if I understand it correctly, does include creating some paths on the fly). But I see no need to do it realtime; you could just run it when a cell is changed?
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Prodatron on 17:05, 26 May 24
Yes, you are right, only when a cell is changed. I just wonder, if changing a cell could take a while as soon as you have a few hundrets of them, and it always has to generate the whole path again. In this case pre-generated pathes could be a solution. Then only changing formulas would take some time, but some additional memory for storing the pathes will be required as well.
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Gryzor on 17:22, 26 May 24
On one hand, the grid is comparatively small so you can run through it rather quickly. On the other hand, I guess it's going to introduce *some* delay when it runs, but hey, I wouldn't be bothered by it if I had a fully graphical spreadsheet on my z80 😁 Especially if there was an option to run it manually when needed.
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Prodatron on 20:30, 26 May 24
Quote from: McArti0 on 21:54, 25 May 24Handle the SLK (sylk) format as it is in Multiplan under CPM as well as in the new Excel
Thanks for the hint! Phew let's see!
https://en.wikipedia.org/wiki/Symbolic_Link_(SYLK)
Maybe a basic SLK import/export function can be done when there is enough time.
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: m_dr_m on 00:41, 27 May 24
Slick and Sick. @Overflow will be able to start coding on CPC again!
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: menegator on 22:29, 02 June 24
Woah. Just woah!
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: norecess464 on 23:56, 02 June 24
Awesome. It really looks like Microsoft Excel !! Plus, multi-sheets. Congrats !
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Prodatron on 00:14, 03 June 24
Formula calculation is now implemented including cell references.
Here you can see some of the current existing features of SymCalc:

https://www.youtube.com/watch?v=AyLze2kfo4M


Main Todo:
- automatic recalculation
- cell copy and moving, while considering absolute and relative cell references
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: abalore on 00:24, 03 June 24
Looks amazing. What are the hardware requirements?
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: HAL6128 on 11:16, 03 June 24
A CRTC & GA GPU hardware accelerator  :P

Just kidding... I assume at least a 256 kB (or more) memory expansion.
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Prodatron on 11:56, 03 June 24
Quote from: abalore on 00:24, 03 June 24Looks amazing. What are the hardware requirements?
All you need is RAM.
Like for all larger applications a minimum of 192KB ram is required, if not much more else is running at the same time.
Of course a mouse would be nice as well :)
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: BSC on 15:34, 03 June 24
Quote from: Prodatron on 00:14, 03 June 24Formula calculation is now implemented including cell references.
Here you can see some of the current existing features of SymCalc:

https://www.youtube.com/watch?v=AyLze2kfo4M


Main Todo:
- automatic recalculation
- cell copy and moving, while considering absolute and relative cell references

Alter, krass! 

I also love the awesome music that is part of the prog ;-) 

Seriously, this is mind-blowing... 
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: zhulien on 17:13, 03 June 24
Personally I found i rarely had so many columns but more rows. Perhaps if it cannot be user defined column numbers and whatever rows fit, a couple of alternatives could be provided? E.g. 8, 16, 32, 64 columns and rows expanding as appropriate?

64x125
32x250
16x500
8x1000

That would allow a lot more rows for people who like their spreadsheets to be databases.

Then you could perhaps have an upload to Google docs via a proxy server.
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Prodatron on 22:20, 03 June 24
Quote from: zhulien on 17:13, 03 June 24Personally I found i rarely had so many columns but more rows. Perhaps if it cannot be user defined column numbers and whatever rows fit, a couple of alternatives could be provided? E.g. 8, 16, 32, 64 columns and rows expanding as appropriate?

64x125
32x250
16x500
8x1000

That would allow a lot more rows for people who like their spreadsheets to be databases.

Then you could perhaps have an upload to Google docs via a proxy server.
Currently it is around 64 columns x 126 rows (see screenshot, cell range display at the left upper side).

symcalc-2a.png

I guess it will be extended to around 64x250 at the end.
SymCalc wont support more than 64 colums, as currently I am thinking about using the upper 2 bits for accessing additional sheets (up to 4, which should be enough, see status bar at the bottom).
Same for rows, around 250 will be the maximum. It is more easy to stay with 8bit in this case.
Currently the total amount of used cells is 1024, I will try to increase this to 2048.
There is one limitation: The SymbOS GUI can't display more than 252 ACTIVE cells at the same time in the visible area. For this I have to add a smart algorithm, which checks, what area is currently visible and what not, so it can remove or re-define old/new controls for the GUI.
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: zhulien on 00:00, 04 June 24
Quote from: Prodatron on 22:20, 03 June 24Currently it is around 64 columns x 126 rows (see screenshot, cell range display at the left upper side).

symcalc-2a.png

I guess it will be extended to around 64x250 at the end.
SymCalc wont support more than 64 colums, as currently I am thinking about using the upper 2 bits for accessing additional sheets (up to 4, which should be enough, see status bar at the bottom).
Same for rows, around 250 will be the maximum. It is more easy to stay with 8bit in this case.
Currently the total amount of used cells is 1024, I will try to increase this to 2048.
There is one limitation: The SymbOS GUI can't display more than 252 ACTIVE cells at the same time in the visible area. For this I have to add a smart algorithm, which checks, what area is currently visible and what not, so it can remove or re-define old/new controls for the GUI.

The 252 cell limitation is interesting if you ever increase screen resolution and allow for maximizing.  Symcalc looks awesome though same with your video if it.
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Prodatron on 18:15, 04 June 24
Quote from: zhulien on 00:00, 04 June 24The 252 cell limitation is interesting if you ever increase screen resolution and allow for maximizing.  Symcalc looks awesome though same with your video if it.
Well spotted :D
Here is how it looks on a Spectrum Next at a screen resolution of 640x256:

436360378_366336979282586_376057440063942267_n.jpg

But even in this resolution it will be hard to display around 250 active cells at the same time (you will have to shrink the width of the columns).
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Prodatron on 21:26, 04 June 24
Quote from: McArti0 on 21:54, 25 May 24Handle the SLK (sylk) format as it is in Multiplan under CPM as well as in the new Excel
I just did some tries with SYLK in LibreOffice, and it looks really easy to implement. LibreOffice just ignores all the formatting stuff, which makes it very easy.
So yes, this is on the TODO list now, thanks for the hint/idea!
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Prodatron on 21:40, 04 June 24
Quote from: Prodatron on 19:23, 25 May 24The plan is to have a full automatic recalculation of cells in any direction which wasn't usual for 80ies spreadsheet applications.

Quote from: Gryzor on 11:41, 26 May 24Interesting. I can see how it can be an issue when you first think of it ("oh, how will we scan the table to update stuff?") but... It's not like you don't already have a matrix of what values are dependent on other values so that you can do it in an arbitrary way?
I finished the auto recalculation today, and it seems to work quite nice!
I combined 10 cells in a very random way (some are below, some are above) as a chain, each of these cells were dependant on one other one.
When changing the value of the first cell in the chain, it takes not much more than one frame (around 21000 microseconds) to find and fully recalculate all other 9 cells (of course without updating the display).
I think it is still possible to do some optimizations, but now it already works better and faster than in most (early?) 80ies spreadsheet applications.
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: zhulien on 07:52, 05 June 24
i can envisage an A-Rexx (Amstrad Rexx) port one day in Symbos.
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: VincentGR on 12:57, 05 June 24
Quote from: zhulien on 07:52, 05 June 24i can envisage an A-Rexx (Amstrad Rexx) port one day in Symbos.
AmsRexx or SymRexx would be better cause Arexx is for the Amiga  ;D
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Prodatron on 18:52, 11 June 24
Here is a speed comparison between SymCalc and Multiplan:

https://www.youtube.com/watch?v=YDL0TZR_OWY

In this comparison they all do exactly the same recalculation: Around 110-130 cells are all connected to each other with the formula x^1.5 and dependant as a chain from one origin cell. When changing the origin cell, all other will be recalculated automatically.

Results:

#4: Amstrad CPC, 8bit, 4MHz (CP/M, Multiplan): 49.7 seconds
#3: Spectrum +3, 8bit, 4MHz (CP/M, Multiplan): 43.6 seconds
#2: IBM XT comp., 16bit 4,8MHz (MS-DOS, Multiplan): 7.7 seconds
#1: Amstrad CPC, 8bit, 4MHz (SymbOS, SymCalc): 6.7 seconds

The comparison may not be 100% correct. In SymCalc a total of 109 cells are recalculated (11*10-1), while in Multiplan it seem to be up to 132 (19*7-1), but some (around 21) show an overflow, so maybe at the end it is about the same.
Anyway the differences between the same 8bit machine is crazy, and SymCalc still beats the 16bit XT PC (however running at only 4,xMHz it seems to be quite fast for an 8088).

You will also recognize the differences in updating the sheet during the recalculation. While Multiplan seems to go through every single cell, SymCalc is doing the whole recalculation in the background and then refreshes the whole part of the screen with the changes in one step. This is done, when the amount of updated cells exceeds a limit of about 10, otherwise it would do it one by one as well.
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Maniac on 19:55, 11 June 24
Simply astounding! I keep telling my team at work that innovation comes from limiting factors and restrictions. This is the very definition of this!
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: McArti0 on 21:48, 11 June 24
@Prodatron 

Is it possible to enable CPM virtual with Multiplan and SymCalc with an expansion of 256kB or 512kB RAM?

How much memory does SymCalc take with one Sheet?
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: HAL6128 on 22:27, 11 June 24
Do you know why there are timing differences between the CPC and the Spectrum? Aren't they technically similar?

Impressive result to SymCalc by the way.
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: andycadley on 23:07, 11 June 24
Quote from: HAL6128 on 22:27, 11 June 24Do you know why there are timing differences between the CPC and the Spectrum? Aren't they technically similar?

Impressive result to SymCalc by the way.
The spectrum display is faster to write to. And, if you can keep everything in uncontended RAM, it runs faster than the CPC too (where all RAM has some degree of contention).
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Prodatron on 11:11, 12 June 24
Quote from: McArti0 on 21:48, 11 June 24@Prodatron

Is it possible to enable CPM virtual with Multiplan and SymCalc with an expansion of 256kB or 512kB RAM?

How much memory does SymCalc take with one Sheet?
Multiplan in SymbOS under CP\/M would require around 128K (64K TPA + CP\/M + SymShell).
SymCalc is currently using around 60K for 1024 cells. As some things are still missing, I expect the final size for one single sheet with up to 2000 cells at around 100K. I am planning to add multi-sheet support (up to 4) in one document, then of course it will take more, if they are all full of data.
So if you want to run both spreadsheet applications at the same time in SymbOS you probably need a 6128 with a 256K ram expansion or more.
Maybe it's a fun idea, and I should try this :)
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: McArti0 on 12:06, 12 June 24
And have You thought about swapfile in SymbOS?  When changing RAM banks, you could check the flag to see if the memory is occupied and then save and load another bank.  xls 256x65536 cells
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Prodatron on 13:36, 12 June 24
Quote from: McArti0 on 12:06, 12 June 24And have You thought about swapfile in SymbOS?  When changing RAM banks, you could check the flag to see if the memory is occupied and then save and load another bank.  xls 256x65536 cells
That will probably be hard to implement. Let's think about it...

- all processes in one 64K bank would have to be in sleep mode, so that the bank can be swapped to disc; to optimize this, an application should first tell the system, if it is usually sleeping, when the user is not using it; so the system could try to bundle such apps in the same banks
- you can't swap a single process/application to disc, as it is relocated once after loading, and can't be relocated again when it was already running
- a far-address in SymbOS is 20bit, 4bit are used for the 64K bank number. If you would swap one 64K bank to disc, fill it with other stuff, then another bank gets free, and you load the old 64K bank from disc there again, all far-addresses to this bank would be wrong; so the kernel would have to work with physical and virtual bank numbers and translate them, when handling far-addresses
- applications can use a secondary ram bank for storing data or executing code; the system has to know, that they are connected; this might be a show-stopper

It looks interesting from an engineering aspect, but no idea if it will be possible and requires a lot of additional work. Today RAM isn't an issue, most of the time you can get a ram expansion somewhere, so I don't think that makes sense.


Quote from: McArti0 on 12:06, 12 June 24xls 256x65536 cells
Today even 16384 x 1048576 cells (17 billion in total)  :o I am afraid, that this is too much for an 8bit machine :D
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: zhulien on 10:18, 14 June 24
maybe you can make a physical release of the latest symbos with symcalc and a printed manual? add me to the list.
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: m_dr_m on 16:13, 14 June 24
@Prodatron  I wish I were as excellent and productive as you. What is your secret? Legit question! I want to improve myself.
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Prodatron on 10:58, 17 June 24
Quote from: m_dr_m on 16:13, 14 June 24@Prodatron  I wish I were as excellent and productive as you. What is your secret? Legit question! I want to improve myself.

@m_dr_m , thanks for these nice words! Well, tbh, no idea, I just love to code in Z80. You know, this little thing is just so cool, sometimes I like to spend most of my free time for this :)
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Prodatron on 14:13, 17 June 24
Formulas with functions, including those with range references have been implemented as well as copy & paste of cell ranges.

An alpha release of SymCalc is available now:

http://symbos.org/download/preview/prv240617-symcalc.zip
A readme (symcalc.txt) and some example spreadsheet files (*.SCS) are included.

SymCalc requires the last version of SymbOS 4.0, which can be downloaded here:
http://symbos.org/download/preview/prv240617-symcpc.zip
(just copy "sym." and "symbos.bin" to your existing installation and RUN"SYM." )

Here is a list of the features, which are already implemented.
At the bottom of the list you will also find known bugs and planned features for the final release.


S y m C a l c   0.1_240617 ALPHA
SPREADSHEET APPLICATION FOR SYMBOS
-------------------------------------------------------------------------------

Features

- cell types
    - text cells
    - numeric cells
    - formulas with numeric results

- cell formatting
    - alignment
        - "General": left for text, right for numeric values
        - left
        - right
        - centered
    - font style
        - normal
        - bold
        - italic
    - fixed decimal places (optional)
    - 1000 separator (optional)
    - number format
        - float
        - scientific
        - percentage
        - boolean
        - binary
        - hexadecimal
    - pen colour, background colour

- cell sizes
    - width and height can be modified for each column and row
    - both by context menu (right click row/column bar) or main menu (see
      format -> column/row -> width/height)
    - multiple columns and rows can be resized when selecting a range of
      columns or rows

- cell range selection
    - by keyboard (using cursor and shift) or mouse
    - select a whole column by left clicking on column bar; select multiple by
      holding shift
    - same for selecting rows

- copy & paste
    - copy single cell or cell range with keyboard or mouse right-click
    - paste into cell range
    - relative cell references will be relocated during pasting
    - extend and repeat cell ranges when pasting to a destination with a
      different range

- formulas
    - start a formula with "=" at the beginning
    - use e.g. A1 for single cell reference
    - use e.g. A1:B4 for a cell range reference (can only be used in list
      functions; see below)
    - use e.g. $A1, A$1 or $A$1 for (partially) absolute references, which
      won't be relocated during pasting
    - use +, -, *, /, ^ and brackets for calculations; conventional order of
      operations is followed
    - automatic recalculation of all connected cells without limitations
    - several functions are available, see below
    - function parameters are separated using the semicolon ";"
    - lists may contain multiple values, single cell references or cell range
      references;
      example: =SUM($A$2;10;PI();D3:F7) returns value of A2 + 10 + PI + all
      values in the range from D3 to F7

- functions currently available
    - MIN(list) - returns the smallest value of a list
    - MAX(list) - returns the largest value of a list
    - SUM(list) - returns the sum of all values in a list
    - AVERAGE(list) - returns the average of the values in a list
    - COUNT(list) - returns the count of numeric values in a list
    - COLUMN() - returns the column (A=1, B=2 etc.)
    - ROW() - returns the row
    - SQRT(x) - returns square root
    - LN(x) - returns natural logarythm
    - LOG10(x) - returns base10 logarythm
    - SIN(x) - returns sinus
    - COS(x) - returns cosinus
    - TAN(x) - returns tangent
    - ATAN(x) - returns arcus tangent
    - EXP(x) - returns e^x (natural exponential function)
    - SIGN(x) - returns the sign of a value; -1 (if negative), 0 (if zero), +1
      (if positive)
    - ABS(x) - returns the absolute value (positive number)
    - PI() - returns PI

- keyboard shortcuts
    - cursor - select single cell
    - cursor+shift - select cell range
    - return - down
    - tab - right
    - tab+shift - left
    - F2 - edit cell
    - clr - clear actual cell or marked cell range
    - esc - cancel cell range marking
    - ctrl+A - mark all cells
    - alt+0 - open cell format dialogue
    - ctrl+C - copy cell(s)
    - ctrl+V - paste cell(s)


Upcoming missing features
- cut & paste cells (will relocate other cell references)
- click on cells and ranges while editing a formula
- working status bar
- display up to 250 cells at the same time in a dynamic way
- use full memory potential for supporting up to 2000 active cells
- support for up to 4 sheets in one document


Known bugs and glitches
- fast cursor movement may leave remains
- bold/italics font won't fill full cell with paper (missing SymbOS GUI
  feature)
- cells with bold/italics font may display garbage after an update
- cells with large texts may overlap
- no round-up when using fixed decimal places
- switch from keybard cell marking to mouse cell marking will result in screen
  garbage


I have to stop working on SymCalc for a while now, so I decided to release this alpha version, if someone wants to try and play around with it.

Any bug reports are very welcome!
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Prodatron on 21:26, 18 June 24
Quote from: m_dr_m on 16:13, 14 June 24@Prodatron  I wish I were as excellent and productive as you. What is your secret? Legit question! I want to improve myself.
Btw as you are one of my CPC gods and probably one of the best Z80 coders (you are always the most crazy optimization guy), I wish you will come back with some CPC/Z80 stuff :) Hope to see you again in autumn in France at Eliot. Btw, I wish to talk to you about different things anyway (so not going too offtopic here), missed you at the Revision Demoparty for several years, so I am looking forward! :)
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Prodatron on 21:49, 18 June 24
SymCalc on a CPC with the Graphics 9000 (V9990) graphic card:

symcalc-g9k1.png

Yeah, finally I got this: :)

geocalc1.jpg

http://www.neef-online.de/home/c64/geos4.htm
(still have much respect to Geoworks/Berkeley Softworks)
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: GUNHED on 23:36, 18 June 24
Excel(lent), looks great!  :) :) :)
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: zhulien on 11:50, 20 June 24
new function:  fn(<functionname>,<parameters>) and inbuilt SymBASIC to code them in ;)

half kidding, you have so much in there already that it's beyond any commercial spreadsheet of the 80s making it already the most powerful 8bit spreadhseet on the market - minus a fiew features I think... 

honestly, I'd consider using it like a database if it gave a choice of less columns and more rows :D

you might even be able to have a disc-based sheet as an option with an unlimited number of random-access rows but your existing column count.  it's possible that it will STILL be faster than the competition - image a 10,000 row Z80-based spreadsheet with random-access fetching / calculations etc
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Gryzor on 12:29, 20 June 24
I really dig the look of Geocalc!
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Prodatron on 22:06, 08 September 24
The final beta will be released soon, probably tomorrow or so. Besides many new features compared to the first alpha version, an extensive documentation in HLP SymbOS help browser format has been added. I plan to develop a tool that will also generate an HTML and a PDF version from the same source.

symcalc-help1.pngsymcalc-help2.pngsymcalc-help3.pngsymcalc-help4.pngsymcalc-help5.pngsymcalc-help6.pngsymcalc-help0.png
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: McArti0 on 22:28, 08 September 24
Now ALT+F11  ;D
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Gryzor on 06:33, 09 September 24
What a well-rounder package!!

@McArti0 : :D
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: McArti0 on 07:23, 09 September 24
Quote from: Gryzor on 06:33, 09 September 24What a well-rounder package!!
The most important thing is that the schortcut remains identical. Prodatron needs to find the ALT key on the CPC keyboard and then the F11 key.  :laugh:
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Prodatron on 09:26, 09 September 24
Quote from: McArti0 on 07:23, 09 September 24
Quote from: Gryzor on 06:33, 09 September 24What a well-rounder package!!
The most important thing is that the schortcut remains identical. Prodatron needs to find the ALT key on the CPC keyboard and then the F11 key.  :laugh:
In SymbOS, "Alt" is assigned to the "Copy" key (on the CPC). The actual key combinations are identical to Excel.
Unfortunately, the CPC does not have an F11 key, so I cannot implement VBA macros, haha ;D 
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: HAL6128 on 09:27, 09 September 24
Quote from: McArti0 on 07:23, 09 September 24
Quote from: Gryzor on 06:33, 09 September 24What a well-rounder package!!
The most important thing is that the schortcut remains identical. Prodatron needs to find the ALT key on the CPC keyboard and then the F11 key.  :laugh:
You can use Quigs instead. It's a nice development tool for SymbOS and similar to VBA.
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Gryzor on 09:28, 09 September 24
Quote from: Prodatron on 09:26, 09 September 24
Quote from: McArti0 on 07:23, 09 September 24
Quote from: Gryzor on 06:33, 09 September 24What a well-rounder package!!
The most important thing is that the schortcut remains identical. Prodatron needs to find the ALT key on the CPC keyboard and then the F11 key.  :laugh:
In SymbOS, "Alt" is assigned to the "Copy" key (on the CPC). The actual key combinations are identical to Excel.
Unfortunately, the CPC does not have an F11 key, so I cannot implement VBA macros, haha ;D

Ah, the hardware limitations... 😁
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: McArti0 on 09:54, 09 September 24
Quote from: HAL6128 on 09:27, 09 September 24You can use Quigs instead. It's a nice development tool for SymbOS and similar to VBA..
:o Why haven't I seen this before?
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Prodatron on 10:17, 09 September 24
Quote from: McArti0 on 09:54, 09 September 24
Quote from: HAL6128 on 09:27, 09 September 24You can use Quigs instead. It's a nice development tool for SymbOS and similar to VBA..
:o Why haven't I seen this before?
The website for Quigs is still a little bit rudimentary:

https://www.symbos.org/quigs.htm

If you have any questions I will ask @Edoz(MSX) , he knows everything.
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: McArti0 on 10:50, 09 September 24
When I solder both chips to 512kB expansion. I'll want to write a RAM-disc for SymbOS.
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: dodogildo on 12:53, 09 September 24
@Prodatron, is the name final? Did you ever consider Symsheet? 8)
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Prodatron on 13:57, 09 September 24
Quote from: dodogildo on 12:53, 09 September 24@Prodatron, is the name final? Did you ever consider Symsheet? 8)
Or maybe SymCell? (sounds similiar to Excel)
Hm... no idea, what do you think?
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: McArti0 on 14:34, 09 September 24
SymbiPlan (like Multiplan)

Symbius 1-2-3 (like Lotus 1-2-3)

SymCalc (like SuperCalc)

Symbony Spreadsheets (like Lotus Symphony Spreadsheets)

:D
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Prodatron on 19:59, 09 September 24
I liked SymSheet a lot but then I wondered why no other spreadsheet application ever used this as a part of the name.
Well, it is similiar to SymShit, and sheet is pronounced in nearly the same way like the dutch/north german "shit" ;D
That remembers me about the "Audi Etron", one of the first full electrical cars from Audi, which means "shit heap" in the french language.

@McArti0 , thanks, your suggestions are nice and playful. But I guess I will stay with SymCalc first. I recognized, that it would be a big amount of work to rename all the sources etc haha. And I am just a big fan of VisiCalc and GeoCalc...
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: McArti0 on 20:05, 09 September 24
SymSith is equally sinister   :-X
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Prodatron on 21:22, 09 September 24
;D

I finished the SymbOS HLP to website converter, here is the generated html version of the actual documentation:

https://symbos.org/help/symcalc

It's nearly exactly like the help browser in SymbOS.

I am afraid, that it will take one more day to release the SymCalc beta version.
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Prodatron on 22:08, 10 September 24
SymCalc 0.8 beta has been released:

2024-09-10-00.gif

http://www.symbos.org/appinfo.htm?00060
Thanks to prevtenet for the cool icon!
The package contains several example SymCalc spreadsheets (*SCS) as well as all source codes.

Online help:
http://www.symbos.org/help/symcalc

You will need the most actual SymbOS 4.0 beta version. Just update your binary or rom files. Nothing else is required for your current installation:

http://www.symbos.org/download.htm#marke3

New features:

V0.8 (2024-09-09)

First beta release.
→ date/time/datetime, boolean, binary and hexadecimal support
→ contains more than 50 functions including full date and time computation and financial formulas
→ handles cut & paste with full relocation of inner and outer cell references
→ table functions like insert and remove cells, rows and columns
→ mouse-based cell-reference-selection while editing a cell
→ load and save documents
→ document meta informations like author, subject, keywords etc.
→ user-defined number, date and time formats
→ super fast hash-based cell-lookup for quick auto-recalculation

Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: norecess464 on 22:25, 10 September 24
I'm not your first customer for a spreadsheet program on the Amstrad CPC, but I have to say I'm truly impressed!
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: McArti0 on 14:10, 09 November 24
Could you add NOW or TIMER functions? I'll need it to measure speed.
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Prodatron on 15:04, 09 November 24
Quote from: McArti0 on 14:10, 09 November 24Could you add NOW or TIMER functions? I'll need it to measure speed.
Ok, I can add the NOW() function. If I got it correctly it will use the time at the moment when you entered or changed the cell.
It seems, that as long as you don't change the cell or a reference, the time won't change. But when you save and load the sheet again, the time is updated (isn't that inconsistent?).
Anyway, yes, now I will add NOW() :D

Regarding TIMER: that is a VBA thing, at least in Excel. But there is currently no scripting language in SymCalc :D I wonder how I could implement something, which could be useful for measuring something?
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: McArti0 on 15:23, 09 November 24
In Excel works fine...

You could add time calculate raport field too (or only)
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Prodatron on 15:32, 09 November 24
Here is the NOW() function.

E.g. type
=NOW()
or
=NOW()+A1
or whatever.

Could you attach your Excel example so that I can see the details?

Maybe that could be an issue for you:
Datetimes in SymCalc have seconds as the smallest unit.
I could add a TICK() function, which returns the system timer, which counts up every 1/50 second.
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: McArti0 on 16:00, 09 November 24
Quote from: Prodatron on 15:32, 09 November 24Could you attach your Excel example so that I can see the details?
No, It has 78MB  :picard:

Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Prodatron on 16:33, 09 November 24
Ok, TICKS() has been added as well.
It just resturns the system counter, which is increased every 1/50 seconds.


An example spreadsheet has been attached for demonstrating it.
If you change the value in A1 it will recalculate all 30 cells in A4:E9.
It will also update the cells A2 and E10, which contain the TICKS() function.

symcalc-ticks1.png

E10 will now show the tick difference between start and end of reclaculation.
On a normal CPC this should usually be around 12, so the whole recalculation takes about 12/50s=0,24 seconds (this does not include the redrawing process).
When switching WinApe to TurboMode, it shows between 4 and 6, so it's 2x or 3x faster.

An issue with this is, that E10 should be really the last cell in the internal memory organization, and A2 should be one of the first ones, otherwise it will not measure the full recalculation process.

symcalc-ticks2.png

The HLP file has been updated as well.
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: McArti0 on 10:53, 11 November 24
Excel F9 recalculate needed.  ;) Could you please fit this in too? (Ctrl+9 ?)
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: McArti0 on 12:47, 11 November 24
SINtestSpeed...
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Prodatron on 21:57, 11 November 24
Quote from: McArti0 on 10:53, 11 November 24Excel F9 recalculate needed.  ;) Could you please fit this in too? (Ctrl+9 ?)
Cool, thanks for this suggestion. Ok, I will add this.
Do you prefer F9 or Ctrl+9 or should I just use both shortcuts? (why not...)
Ctrl+[0-9] is currently not defined, but this could be added for 4.0. (why not...)

What I wonder is:
As everything is usually auto-recalculated, when anything changed, is this F9 thing really only for updating NOW() (and ticks() ) cells? Or is there any other use case for it? Or is it just an old remnant from Multiplan or so?
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: Prodatron on 21:58, 11 November 24
Quote from: McArti0 on 12:47, 11 November 24SINtestSpeed...
What the hell is this? :D
Oh wow, that is amazing!
It's full of SINs (a LOT for every cell) and you made a great speed test, really cool! Interesting that this is working.
Title: Re: "Excel" for the CPC - SYMCALC spreadsheet application
Post by: McArti0 on 22:15, 11 November 24
In Excel when you press DELETE all sheet is recalculate.
Powered by SMFPacks Menu Editor Mod