Stan Sykora's Software
Publications and Posters | EduNotes | Courses & Talks Stan's Library | Stan's HUB

Note: This list of my major software projects is an attachment to my CV.
The indicated dates specify the period during which I have actively maintained each package.

  • SpinStar - A library to simulate and fit HR-NMR spectra of coupled spin systems (2006-)
  • SpinWhip Diagnostics - Windows driver and a package for testing a Stelar FPGA NMR board (2004-2006)
  • EbSysInsp - Windows System Inspector utility (2004-)
  • BIOX - Biofouling Monitor & Control Package (2003-2004)
  • AcqNmr - Win32 NMR Data Acquisition & Evaluation Package (1996-2006)
  • AQM96 - Z180 Software for Stelar Acquisition & Control Manager (1996-)
  • ASPIM - ASPECT Intelligent Monitor (1989-1997)
  • VTC - Z80 Firmware for Variable Temperature Controllers (1989-1995)
  • TDML Emulator - TDML Cross Compiler/Emulator (1989-1993)
  • STEFIT - Universal Data-Fitting Package (1988-1997)
  • DATARES - Z80 Firmware for Geophysical EVS (1987-1997)
  • DISDAT - 1D Data Display & Evaluation Package (1986-1997)
  • EPR3 - EPR Data Acquisition & Evaluation Package (1985-1997)
  • NMR3 - NMR Data Acquisition & Evaluation Package (1985-1997)
  • AQM85 - Z80 Software for Stelar Acquisition & Control Manager (1985-1997)
  • AmalgamMeter - Z80 Firmware for Sodium-Amalgam Meters (1984-1987)
  • TDML - TD-Mate Language for Z80 Firmware (1983-1993)
  • FORTRAN 77 Compiler (1980-81)
  • PANIC - Parameter Adjustment in NMR by Iteration Calculation (1977-78)
  • STREAK - Automatic HR-NMR Spectra Fitting (1975-76)
  • VIBR-NMR - HR-NMR Spectra Fitting with Vibrational Corrections (1974-75)
  • VIBR - Calculation of Molecular Vibrations (1974-75)
  • NMRIT - Iterative Fitting of HR-NMR spectra (1974-75)
  • NmrSHAPE - Fitting Molecular Geometry to Oriented HR-NMR Data (1974-75)
  • THALES - Molecular Geometry Builder (1974-75)
  • PROKL - Universal Data-Fitting Package (1968-74)
  • Molecular Energy Evaluation (1966-68)
  • HR-NMR Spectra Simulation (1965-67)
  • MINSK Formula Compiler (1966-67)
  • ZUSE Formula Compiler (1964-65)

SpinStar - A library to simulate and fit HR-NMR spectra of coupled spin systems

(2006-)

At this moment, the internal structure of this sophisticated package is confidential.

Language & platforms: C++, all 32 bit platforms.
SpinStar is an internal component of the MestreNova package produced and distributed by Mestrelab.

SpinWhip Diagnostics - a package for testing the Stelar FPGA NMR board nicknamed SpinWhip

with Ernesto Bonardi (2004-2006)

The SpinWhip Diagnostics package, developed for Stelar, allows hardware engineers to test the complex SpinWhip board and efficiently debug their VHDL code. It gives the engineers full access to all the board's registers and RAM. In addition, it features sophisticated register & RAM testing routines (including speed tests), execution of user-scripted testing procedures, graphic displays of RAM contents, etc.

The SpinWhip board contains a Virtex II chip with over 3 MGates, a PCI interface (PLX), a 210 MHz ADC converter, 1M of static RAM, and other devices. Its purpose is a complete control of multi-nuclear, multi-channel NMR instruments and experiments.

Language & platforms: C++, Windows 98/Me/2000/XP.
SpinWhip Diagnostics is a non-commercial program used internally by Stelar.

EbSysInsp - Windows System Inspector

(2004-)

The EbSysInsp package (an Extra Byte product) is an Application crammed with system-inspection tools for serious Windows programmers. Apart from programmers, PC maintenance technicians will also benefit from the package since it includes a number of hardware inspection tools which are either novel or not easy to find elsewhere.

Language & platforms: C++, Windows 95/98/Me/2000/XP/7/8.

Biox - Biofouling Monitor & Control package

with Ernesto Bonardi, who is now in charge of its maintenance and further development (2003-2005)

The Biox package, developed for the Stelar Company, can monitor a number of the Biox probes produced by Stelar, as well as any number of User-supplied signal channels of various analog and digital types.

It is primarily a data logger oriented towards long-term monitoring and prevention of biofouling in industrial plants and water-distribution systems.

It features sophisticated data displays, administrator-defined formulas, triggering of external actions (such as security alarms), three-level security management (operator/backup operator/administrator), ...

Language & platforms: C++, Windows 98/Me/2000/XP with standard IO interface or a touch-screen.
Biox is a licensed program distributed by Stelar.

AcqNmr - Win32 NMR Data Acquisition and Evaluation Package

(1998-)

The AcqNmr package, developed and maintained within Stelar, is structured to be able to control any NMR instrument and accomodate any NMR technique. Consequently, it embodies a large chunk of physics and a lot of engineering knowledge. It is deployed on all modern Stelar LR-NMR instruments (the Spinmaster series) and on all Stelar FFC-NMR relaxometers.

From the programmer's point of view, AcqNmr is an example of almost pure object-oriented programming (OOP). It incorporates a novel method of OOP virtualization of complex devices (such as, in this case, NMR instruments), a number of original data-representation algorithms and many innovative data evaluation procedures.

Language & platforms: C++, Windows 98/Me/2000/XP.
AcqNmr is a licensed program distributed by Stelar.

Z180 Software for Stelar Acquisition & Control Managers

(1996-2006)

AQM96 is a single-board Data Acquisition & Control Manager produced by Stelar. It contains a Z180 micro, four FPGA's, lots of RAM and a number of specific hardware devices, such generic interfaces, dual-channel ADC's with fast buffers, real-time pulser/sequencer, acquisition sweep generator and transient data accumulation. Its CPU operates under the supervision of an external Host (a PC) but maintains a considerable degree of autonomy. Until 2006, the AQM96 was used on all Stelar LR-NMR instruments and, in particular, on the Stelar fast-field cycling (FFC) NMR relaxometers.

The on-board firmware of the AQM96 can be overridden by downloading an updated version from the Host during an Application boot. In this way, the maintenance and further development of the software can be done on the PC with the aid of a suitable cross-compiler.

Language: Z180 Assembler.
AQM96 assembly sources are a property of Stelar.

ASPIM - ASPect Intelligent Monitor

(1989-97)

ASPIM was a Stelar product consisting of a DOS package and a couple of communication cables.

It allows the operator to use the PC as an ASPECT's primary or secondary terminal, transfer any file (or a group of files) from the ASPECT's disk to the PC disk and vice versa, transform such "image" files into a number of formats compatible with the Bruker Win-Nmr PC software as well as with the Stelar DISDAT software, etc.

The communication between the PC and ASPECT is achieved either through a serial port (Slow-Link option) or through a parallel port (Fast-Link option) or both.

The product has been phased out of production due to the obsolescence and declining numbers of the ASPECTs. In case of interest, however, I could still dust it off.

Language & platforms: QuicBasic + 80286 Assembler, DOS.
ASPIM sources are no longer maintained.

VTC - Z80 Firmware for Variable Sample-Temperature Controller

(1989-95)

The VTC firmware is another major Z80 package written using the TDML language and the TDML Cross Compiler/Emulator. It controls all the Stelar sample temperature controllers for NMR and/or EPR instruments. The controllers are build to 0.1°C specification (both in stability and reproducibility) and offer a sophisticated menu-driven User interface including plain monitoring, active temperature control with 12-parameter PID-type algorithm, diagnostic procedures, sensor and set-point calibration procedures, current-source and power-source operating modes, ...

The VTC instruments are still in production and the firmware is still used, though active maintenance has been phased out.

Language: TDML + Z80 Assembler.
VTC sources are a property of Stelar.

TDML Cross Compiler/Emulator

(1987-97)

Considering the laboriousness of programming the DATARES package and the fact that at Stelar we were planning to write other Z80 firmware, I have decided to boost my productivity by writing a DOS-based Z80 Cross Compiler/Emulator of the Z80 TDML language, including the emulation of many aspects of the related hardware.

The package was written quite fast (first version in about 3 months) and proved to be very useful for about one decade.

Language & platforms: QuickBasic, DOS.
TDML Emulator sources are a property of Stelar.

STEFIT - Universal Data-Fitting Package

(1988-97)

In the DOS days, STEFIT was a very nice Stelar program for non-linear fitting of data of almost any kind. Today it is still operative as a console application running under most Windows systems but, of course, it is already quite obsolete because of the operating system.

Its rather unique feature is the possibility to fit simultaneously several experimental curves with shared adjustable parameters. Worth mentioning is also the possibility of defining arbitrary User functions, choosing among several fiting algorithms, choosing among a number of optimization criteria (square deviation, max.deviation, various norm functions, signature of residues, ...) and providing a rigorous statistical analysis of the final fit (hypothesis testing).

Language & platforms: QuickBasic, DOS.
STEFIT, though no longer maintained, is still available.

DATARES - Z80 Firmware for Geophysical EVS

(1987-97)

The DATARES firmware was the second large Z80 package written using the TDML language. The homonymous transportable instruments, designed and produced by Stelar, are used to conduct Electric Vertical Surveys (EVS) of geological formations, terrains, potential building sites, archeological sites, etc.

For a mere Z80, the DATARES firmware is a surprizingly powerful and complete package, featuring a number of data acquisition modes, over a dozen of electrode layout types, acquisition and evaluation techniques to eliminate slow signal drifts, ... The adoption of the TDML language was crucial in order to cram all these capabilities into the mere 64 Kbytes of ROM and RAM addressable by the micro.

The instruments are still on Stelar catalog and the firmware is still used, though active maintenance has been phased out.

Language: TDML + Z80 Assembler.
DATARES sources are a property of Stelar.

DISDAT - 1D Data Display & Evaluation

(1985-97)

DISDAT was a DOS program which Stelar used as a constituent part of the NMR3 and EPR3 packages (see above) as well as a self-standing program for one-dimensional evaluation of experimental data.

It included a large set of data evaluation procedures, such as highly optimized FFT (written in Assembler), many types of apodization and filtering, numerical derivatives of noisy data, spectroscopic techniques, including resolution enhancement, integration, etc. A rather unique feature of DISDAT was the possibility to automate all multi-step evaluation tasks by means of User-scripted macros.

A version of DISDAT, named NMR1D, was specifically cut for handling spectroscopic NMR data. It was adapted to read raw data from Siemens MRI instruments and allow their off-line evaluation using a complete set of data-evaluation techniques characteristic of NMR spectroscopy.

Language & platforms: QuickBasic + 80286 Assembler, DOS.
DISDAT, though no longer maintained, is still available.

EPR3 - EPR Data Acquisition & Evaluation Package

(1985-97)

EPR3 was a DOS program which Stelar used for data-station retrofits of EPR (Electron Paramagnetic Resonance) of EPR spectrometers born without an incorporated data system, such as the old, but immensly popular, Varian E-series and the Bruker ER200 instruments.

Like NMR3 it included the data display-and-evaluation package DISDAT (see above) and relied on the AQM85 software for hardware interfaces. Using EPR3, many Users could for the first time accumulate multiple spectral scans and carry out a number of attractive data-handling procedures such as FFT, various types of filtering, resolution enhancement, integration, numerical derivatives, etc.

Language & platforms: QuickBasic + 80286 Assembler, DOS.
EPR3 sources are a property of Stelar.

NMR3 - NMR Data Acquisition & Evaluation Package

(1985-97)

NMR3 was the DOS program which for more than a decade powered all Stelar LR-NMR instruments and data upgrades for HR-NMR instruments.

It included many features of much more powerful NMR instruments, such as nearly arbitrary pulse-sequence programming, accumulation phase cycles and X-device cycles, multiblock (2D) acquisition procedures, three levels of automation, very complete 1D data display-and-evaluation package DISDAT (see above) and, in particular, unheard-of versatility in adapting to any real instrument (for hardware interfaces, the package relied on the AQM85 software).

Apart from about a dozen versions of Stelar SPINMASTERS, we have used it, in fact, to completely replace all digital and data handling subsystems of several tens of HR-NMR spectrometers such as Varian FT80 and XL200, Bruker WP80, WH90 and CXP300, and Jeol FX90. At the top of its glory, the package could even run novel sub-varieties of CP-MAS (Cross-Polarization with Magic Angle Spinning) experiments on a Bruker 300 MHz machine.

Language & platforms: QuickBasic + 80286 Assembler, DOS.
NMR3 sources are a property of Stelar.

Z80 Software for Stelar Acquisition & Control Managers

(1985-97)

The AQM85 was a Data Acquisition & Control Manager produced by Stelar. It consisted of up to 8 eurocards on a shared Z80 bus and was used primarily to control the Stelar LR-NMR instruments. It featured, apart from generic interfaces, dual-channel analog filters/amplifiers, ADC's with fast buffers, real-time pulser/sequencer, acquisition sweep generator and transient data accumulation. It was managed by a Z80 CPU which operated under the supervision of an external Host (a PC).

The on-board firmware of the AQM85 CPU consisted of a modest cold-start program and a simple communication bootstrap written in pure Z80 assembler. The main application program used to be downloaded from the Host during the Application boot. This allowed me to develop the AQM85 software on the PC and load it dynamically, easily adapt the AQM85 operation to different Applications and, within a single Application, to different instruments (in the end, the software could handle over 70 distinct hardware interfaces).

Language: Z80 Assembler.
AQM85 sources are a property of Stelar.

Z80 Firmware for Sodium-Amalgam Meters

(1983-95)

The AmalgamMeter was the first Z80 firmware written using the TDML language. It controlled the homonymous portable instruments, designed and produced by Stelar, which measured sodium concentration in mercury-sodium amalgams. They were used by an Italian chemical group (EniChem) to monitor amalgams in old-type industrial electrolytical cells for the electrolysis of sodium chloride.

The instruments used a highly non-linear electrochemical transducer (EniChem patent) and had to (i) measure the transducer voltage with a precision and reproducibility better than 10 µV, (ii) transform it into sodium concentration and (iii) print out a measurement report. In order to achieve the required precision, the firmware featured a self-calibration trick applied automatically during each single measurement.

The instruments went out of production since electrolytical cells now no longer use mercury but semipermeable membranes.

Language: TDML + Z80 Assembler.
AmalgamMeter sources are no longer available.

TDML - Special Language for Z80

(1983-1995)

This custom-designed language for the Z80 micro was developed within the Stelar Company in order to simplify the development of Z80 firmware packages for a number of instruments (see above) conforming to a common software-and-hardware standard nick-named TDM (Transducer-Mate).

The purpose of the TDML language went well beyond a simple programmer's convenience. It is essentially an interpreter, written in Z80 Assembler, which uses a large number of custom commands tailored to carry out specific - and often quite complex - software and hardware tasks. It thus manages to squeeze a surprizing amount of intelligence into a very limited EPROM space which, of course, is essential when trying to do complex things with a micro like Z80 whose addressing space is limited to 64 Kbytes.

The language has been used within Stelar for many years until, inevitably, the underlying hardware became obsolete. Pieces of the code were carried over into a couple of Z181 projects. In particular, the package includes a BCD-coded floating point package and a number of math functions like exp, log, sin, cos, tan, atan, etc - a feature which is rather rare to find in 8-bit micros. Pity that they are nowadays so terribly outdated.

Language: Z80 Assembler.
TDML assembly source code still exists but is no longer maintained.

FORTRAN 77 Compiler

for ASPECT (1979-81)

This compiler was developed under commission for the ASPECT minis produced by the BRUKER Company. Those were a bit unusual machines using a 24-bit wide data bus. Implementing the FORTRAN 77 compiler was a relatively straightforward job. I have first translated the FORTRAN 77 syntax from Backus-Naur formulation to a Touring finite-states machine (adding a handy sub-machine concept), encoded the state nodes (about 1800 of them), the input-alphabet branching tests, and the output-alphabet actions as a large array of structures and then implemented all the little pieces of actions code which glue it all together.

I was told recently by the computer science afficionados that this approach, though by no means unique, is still considered quite efficient. Which pleases me since, at the time, I did not care much about being modern. I just had to finish the job.

Language: ASPECT Assembler.
Since ASPECT computers are out of production since many years, the compiler is no longer maintained (I still keep the FORTRAN 77 Touring machine diagrams).

PANIC - Parameter Adjustment in NMR by Iteration Calculation

written with Jurg Vogt (1977-78)

This eminently successful package was developed for the ASPECT minis produced by the BRUKER Company and, form late 70's to early 90's, mounted on all Bruker NMR spectrometers. It gave the ASPECT users the possibility to simulate HR-NMR spectra and iteratively modify their parameters to match experimental spectral data. The following is a citation from the program's manual:

PANIC is a minicomputer version of the LAOCOON type programs used in large computer systems. Utilizing PANIC, nuclear spin systems of up to eight magnetically inequivalent nuclids may be calculated. The spectral parameters defining the system not only comprise the chemical shifts and scalar coupling constants (J-coupling), but also contain direct dipole-dipole coupling constants (D-coupling), observable in axially oriented spin systems, and quadrupolar coupling constants for nuclids with spins greater than one half. In addition, PANIC includes the weak coupling algorithm (X-approximation), a technique for handling magnetic equivalence (such as in CH3 groups) and error estimates for the adjusted parameters.

Language: ASPECT Assembler.
ASPECT computers are out of production since many years. Consequently, PANIC is no longer maintained (I only keep its flow-charts).

STREAK - Automatic HR-NMR Spectra Fitting

written with Jurg Vogt (1975-76)

This was a completely novel approach to NMR spectra fitting, deviating qualitatively from the then ubiquitous principles of the LAOCOON-type programs originated by Prof.Castellano.

It consists in converting the spectrum to a relatively limited number (3-5 times the number of parameters to be fitted) of integral transforms (polynomial, harmonic, ...) and then fitting the transforms rather than the spectrum itself. This eliminates most of the problems of getting trapped in local minima which represents a major drawback of the LAOCOON approach.

The work resulted in a paper [20] and was later taken up and continued by Prof.Binsch et al. (the DAVINS package, distributed through the QCPE initiative).

Language: FORTRAN.
Listing of STREAK is still available.

VIBR-NMR - Vibrational Corrections in HR-NMR Spectra of Oriented Molecules

written with Jurg Vogt (1974-75)

A package which combines the calculus of molecular vibrations (see VIBR) with that of HR-NMR spectra (see NMRIT) to determine the vibrational corrections to the direct coupling constants obtained from the HR-NMR spectra of partially oriented molecules.

The code is based on the physical principles published in [23].

Language: FORTRAN.
Listing of VIBR-NMR is still available.

VIBR - Calculation of Molecular Vibrations

written with Jurg Vogt (1974-75)

This program accepts a script which defines the vibrational force field of a molecule and its geometry (to be passed to THALES) and calculates its vibrational energies and normal coordinates.

It then proceeds to calculate, for any given temperature, the mean-square deviations of atomic positions from their equilibrium positions and other parameters of this type.

VIBR was a constituent block of the VIBR-NMR package (see above).

Language: FORTRAN.
Listing of VIBR is still available.

NMRIT - Iterative Fitting of HR-NMR spectra

written with Jurg Vogt (1974-75)

A FORTRAN version of HR-NMR spectra simulation and fitting. It follows, more or less, the LAOCOON type of approach. Since we have used it to calculate the spectra of partially oriented molecules, however, we had to include also direct coupling constants and, given the general complexity of such spectra, exploits as much as possible everything that can simplify the calculations (notably weak couplings and symmetry). The standard LAOCOON package would therefore not do.

To handle the iterative fitting, NMRIT uses the package PROKL (slightly modified) which turns out to have in this case surprisingly good convergence behavior.

NMRIT was a constituent block of the VIBR-NMR package (see above).

Language: FORTRAN.
Listing of NMRIT is still available.

NmrSHAPE - Fitting Molecular Geometry to Oriented HR-NMR Data

written with Jurg Vogt (1974-75)

Given a set of experimental direct couplings of a molecule, one uses this program to adjust the molecular geometry until it fits the data. The direct couplings are determined by analysing HR-NMR spectra of the molecule, dissolved in an axially oriented liquid crystal (using the packages NMRIT or STREAK).

For the direct run, the program relies on the package THALES, while the fitting itself is done using the PROKL package.

Language: FORTRAN.
Listing of NmrSHAPE is still available.

THALES - Molecular Geometry Builder

written with Jurg Vogt (1974-75)

THALES accepts a script which encodes the structure and the local-geometry data for each fragment of a larger molecule. The data include, in particular, bond lengths, geminal bond angles and dihedral angles. It then builds up the whole molecule, associating space coordinates to each atom. Thereafter, it is possible to determine any interatomic distance or, in particular, any NMR dipolar coupling averaged over a given axial distribution of molecule-to-field orientations (the direct couplings).

THALES was a constituent block of the NmrSHAPE program (see above).

Language: FORTRAN.
Listing of THALES is still available.

PROKL - Universal data-fitting package

(1968-75)

This was the first decent-size program I wrote in a high-level language. I kept fine-tuning it for many years, using it for a large number of practical tasks of all kinds, from small curve-fitting tasks up to fitting of HR-NMR spectra of oriented molecules with hundreds of spectral lines fittable by dozens of parameters.

Geographically, PROKL followed me from Prague (Academy of Sciences) to Milano (Polytecnico, CNR) to Urbana (University of Illinois) to Basel (Inst.of Physics) and back to Milano (Bruker Company). I have also handed it out to many friends. It never failed to adapt to local computers - a fact which amounts to a healthy tribute to FORTRAN portability!

The package could handle almost any non-linear least-squares fitting or minimization problem with any number of adjustable parameters. It used the linearized conjugate-gradients method whose drawbacks were mitigated by the adoption of 'damping'. The latter consisted in adding a positive 'damping factor' to the diagonal elements of the Gramm's matrix (this pushes the algorithm in the direction of the 'safer' steepest descent method with reduced steps).

Through trial-and-error, I have devised an empirical method for a dynamic self-adjustment of the damping factor. This usually lead to a considerable improvement of the programs convergence behaviour.

Language: FORTRAN.
Listing of PROKL is still available.

Molecular Energy Evaluation

for ZUSE-25 (1966-67) and Minsk-22 (1967-68)

A package to calculate, using semi-empirical interaction formulas, the molecular energies of various poly-substituted hydrocarbons. It also permitted to minimize the molecular energy by adjusting the molecular geometry, thus anticipating future molecular dynamics programs.

We have used the package to determine the most stable conformers of various di-substituted pentanes, interpreted as stereospecific dimer models for synthetic polymers such as PVC. With Minsk-22 we went up to tri-substituted heptanes, used as stereospecific trimer models for the same polymers [4,6,10,11].

Language: Zuse25 and Minsk22 Formula Compilers.
No part of this package has survived.

HR-NMR Spectra Simulation

for ZUSE-25 (1965-67) and Minsk-22 (1966-69).

The first of my many packages dedicated to computing high-resolution Nuclear Magnetic Resonance spectra. It included chemical shifts and coupling constants, but had no provision for symmetry.

On the ZUSE-25 it was able to accomodate spin systems with up to six spin-1/2 nuclides. Minsk-22, being a more powerful computer than Zuse-25, could handle spin systems with up to seven spin-1/2 nuclei (it is a rule in HR-NMR spectra simulation that adding one nuclide amounts to an about ten-fold increase in computational requirements).

The packages were amply used by the Spectroscopy Department of the Institute of Macromolecular Chemistry in Prague [4, 6, 7, 8, 9, 10, 11].

Language: Zuse25 and Minsk22 Formula Compilers.
No part of this package has survived.

MINSK22 Formula Compiler

(1966-67)

MINSK22 was a typical example of early 60's computers. It was produced in the town of Minsk (Bielorussia) and there were about 100 of them in Czechoslovakia, some of which available to the Academy of Sciences. At that time those computers were not bad - not even by Western standards. They used discrete transistors and magnetic tape mass storage. The problem was that they were coming with a single-page sheet listing their instruction set (in octal) and that was all the software 'support' we ever got for them. Nevertheless, within a couple of years after the govermental purchase of the series, there were at least a dozen of compilers available, written by a number of individuals. In those days, inventing a programming language and writing a corresponding compiler was considered as just one of the basic chores of computing, something you did because you were payed for it. None of us would ever think that there were anything 'scientific' or even 'publishable' about it.

Naturally enough, my Minsk-22 Formula Compiler was based on an improved version of the language I had used on ZUSE-25.

Language: MINSK22 Machine Code Binary.
No part of this package has survived.

ZUSE Formula Compiler

(1964-65)

The very first computer I used was ZUSE-25, the 25th machine produced in early 60's by Konrad Zuse, the now famous German pioneer of computer technology. For me it is a great privilege to be able to say that I did major scientific programming using one of his products.

The computer was installed at the Institute of Solid State Physics in Prague. It occupied a whole room, used 40-bit wide words, had 32 fast ferrite-core registers and an 8K/40bits magnetic drum memory. Yet, despite these limited resources, it ran an Algol interpreter! It had what I still consider a genial ALU and an amazing machine-instruction architecture with a considerable amount of hard-wired parallelism (only we did not know it was to be called that way in those days).

The Formula Compiler used an ad-hoc language which would today fall somewhere between Assembler and Fortran. Apart from most of the features one even today expects to find in an Assembler, it included also a floating-point package and a simple arithmetic-formula translator.

We have written the package in order to overcome the limitations imposed by the native Algol interpreter, which had to be co-resident with Applications and occupied a large portion of the machine's resources. The Formula Compiler was designed for a two-step process: first compile and then run the compiled program. Today, this sounds pretty trivial but keep in mind that terms like "an executable" did not exist yet. Neither did "files" - just bunches of punched inch-wide paper tape which every serious programmer could read fluently!

With this tool, I was able to write scientific application programs such as the two packages described above. The total power of the computer, of course, was much less than that of an early PC-XT (or even of one of the Z80 machines which were around in 1980-1983). Yet, if you were willing to spend a night shift in a sleeping bag under the machines main console, you could calculate HR-NMR spectra of 6 coupled spins or the energies of conformers of tri-substituted heptanes.

After 40 years of experience, I am quite convinced that the whole field of informatics technology is subject to what I would call the Second Law of Informatics, according to which the RR ratio (results/resources) is diminishing by a factor of two every two years.

Language: ZUSE Machine Code Binary.
No part of this package has survived.

 
TOP | Publications and Posters | Courses & Talks Stan's Library | Stan's HUB | TOP
Copyright ©2005 Sýkora S.    Designed by Stan Sýkora