Inspired by EccoPro, EccoExt and How is StoryServer built?

On this page, you’ll learn:

  • Key facts about EccoPro

  • About Copyright Law.

  • What can and can’t be copied.

  • Key differences on how StoryServer is designed.

  • What is Visual C++, Delphi, VB, FairCom.

  • How does StoryServer implement APIs?

  • How does StoryServer read EccoPro files?

Key Facts

The company behind EccoPro have not released the source-code nor made any updates to EccoPro for 21+ years.

This meant, the community has made binary-patching, fixes, updates to EccoPro to extend it’s usability.

PolywickStudio made a ground-up huge coding effort to make StoryServer.

PolywickStudio is aware of issues with the method of how StoryServer is implemented.

Copyright Case: Lotus Dev Corp vs. Borland.

The Lotus decision establishes a distinction in copyright law between the interface of a software product and its implementation. The implementation is subject to copyright. The public interface may also be subject to copyright to the extent that it contains expression (for example, the appearance of an icon). However, the set of available operations and the mechanics of how they are activated are not copyrightable.[1]:211–215

The court made an analogy between the menu hierarchy and the arrangement of buttons on a VCR. The buttons are used to control the playback of a video tape, just as the menu commands are used to control the operations of Lotus 1-2-3. Since the buttons are essential to operating the VCR, their layout cannot be copyrighted. Likewise, the menu commands, including the textual labels and the hierarchical layout, are essential to operating Lotus 1-2-3. [2]

What can and cannot be copied, and how StoryServer is implemented

What can be copied

User-interfaces are copyrighted, unless for compatibility reasons - general user-interface can look similar. Labels can be same.

What can’t be copied and what was done…​

All EccoPro and EccoExt code is copyrighted and/or outdated, therefore StoryServer had to be developed from the ground up with 100% custom algorithms and custom controls. The outliner control, the tab control, and the grid are all hand-rolled.

None of the original graphics can be used. All of the graphics contained herein are all drawn by the artists at Polywick Studio.

Tools used and Design Tooling

StoryServer is made totally different from EccoPro.

Tools used to make EccoPro

EccoPro is written in Visual C++, Visual Studio.

EccoPro uses the Microsoft Visual C++ Run-Time, MFC (Microsoft Foundation Code), parts of EccoPro is made using Visual Basic.

Visual Basic is a language made by Microsoft.
FairCom is a database product. It is used to store data. How Ecco-Pro uses CTree v6.xx is unknown.

Tools used to make StoryServer.

StoryServer is written in Delphi and compiled as both x64 and x86 target.

StoryServer code builds a single EXE.

StoryServer does not use MSVCRT, MFC, FairCom, Visual Basic Run-Time and whatever DLLs used by both EccoPro and EccoExt.

StoryServer uses all proprietary custom-controls.

Key Differences

Method of Operation EccoPro, EccoExt Story-Server

I/O

int32

uint64, When a file is open, the file-pointer returned uses 64-bit file-pointers. [3]

List

int16 (65535 items)

int64 (9,223,372,036,854,775,807 items) [4]

Code-Page

ANSI

16-bit UTF16 Unicode (Allows Chinese Simplified, Chinese Complex, Russian, Korean, Japanese)

Calendar

2K compliant using EccoExt

up-to 4000 AD

DDE

ANSI

Unicode with fall-back to ANSI

Render

GDI

GDI+

OS

Windows 95, 97, ME and above

Windows XP, Vista, 7, 10 Not supported: Windows 95, Windows 97, Windows ME, Windows Vista

How does StoryServer develop API Compatibility?

Copyright law allows interoperability of different systems, provided the implementation are totally different.

StoryServer implements an API that is compatible with EccoPro and EccoExt.

In other words, the developers had to implement, based on publicly available information, a server that reads/writes EccoAPI commands, along with all the fixes the community made in EccoExt.
An analogy is a HTTP server. If you want to substitute Apache with a different web-server, you have to replace all the Apache commands with a compatible command-set that serves web-pages.

EccoPro File Format

There is no compatibility with EccoPro File Format.

In order to interchange data between EccoPro and StoryServer, EccoPro must be running.
If you are using Windows 8, please upgrade to Windows 10.
The names "Ecco-Pro", "EccoExt" are used for data-compatibility purposes.

Last updated: 2019 Jan 19th 05:08:06


1. Lotus Dev. Corp. v. Borland Int’l, Inc., 49 F.3d 807, 817 (1st Cir. 1995)
2. Whong, Jason A.; Lee, Andrew T. S. (1996). "Lotus v. Borland: Defining the Limits of Software Copyright Protection". Santa Clara High Technology Law Journal. 12 (1): 207–217.
4. 63-bit is defined as “9,223,372,036,854,775,807”