Socket
Socket
Sign inDemoInstall

curta

Package Overview
Dependencies
1
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    curta

Simulator for a Curta Type I mechanical calculator


Version published
Weekly downloads
1
Maintainers
1
Install size
441 kB
Created
Weekly downloads
 

Readme

Source

curta Build Status

Simulator for the Curta Type I, a mechanical calculator manufactured between 1947 and 1972.

Install

npm install --save curta

Usage

To compute the multiplication of 27 × 4:

var Curta = require("curta");
var curta = new Curta();

// Load 27 in the Setting Register
curta.setRegister(1, 7);
curta.setRegister(2, 2);

// Turn the handle 4 times
curta.turn(4);

curta.result(); // => 108
curta.readCounter(); // => 4

Just as we would on a normal Curta.

27x4 on a Curta Type I

More advanced, 1024 × 512:

var curta = new Curta();

curta.setRegister(4, 1);
curta.setRegister(2, 2);
curta.setRegister(1, 4);

curta.setCarriage(3);
curta.turn(5);

curta.setCarriage(2);
curta.turn();

curta.setCarriage(1);
curta.turn(2);

curta.result(); // => 524288
curta.readCounter(); // => 512

1024x512 on a Curta Type I

API

var curta = new Curta()

Creates a zeroed-out Curta state.

curta.turn([n])

Turns the crank once, or if a number is passed in, that number of times.

curta.liftCrank()

Lifts the crank, so that each turn will subtract from the counter and result instead of adding to them.

curta.lowerCrank()

Lowers the crank, putting the calculator back in addition mode.

curta.clearCounting()

Clears the counting registers.

curta.clearResult()

Clears the result registers.

curta.clear()

Clears both the counting and result registers.

curta.readCarriage()

Reads the carriage setting, which determines the exponent of 10 we add to the counter.

curta.setCarriage(position)

Sets the carriage position to a value between 1 and 6.

curta.readSetting([register])

Reads the value of the setting registers. If a given register is passed in (a number between 1 and 11), it reads the value of that particular register.

curta.readCounter([register])

Reads the value of the counting registers.

curta.readResult([register])

Reads the value of the result registers.

curta.setRegister(register, value)

Sets the given setting register to a particular value.

Testing

npm install
npm test

License

MIT © Jordan Scales

Keywords

FAQs

Last updated on 09 Dec 2014

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc