Memory organization

The memory space of the Programma 101 is organized in 10 registers (blocks of 24 bytes each). The first three registers (M, A and R) are used for calculations. The following two registers (B and C) are used to store data, and the last two registers (p1 and p2, program registers) can only be used to store program instructions. The three intermediate registers (D, E, and F) can be used to store data or program instructions in any combination, with program growing from right to left and data growing from left to right (a technique still used in today's programmable calculators)

 M

A

R

B

C

D

E

F

p1

 p2

 Operative registers

 Storage registers

 Storage registers or program

 Program

All the data registers can contain a 22-digit signed number with sign and decimal point; in addition, storage registers (B to F) can be used in split mode, and in this case they hold 2 11-digit signed numbers each, and in this case each register is divided in two sub-registers (i.e., B is divided into b and B)

The program registers can contain 24 instructions each, so the program space start with a length of 48 instructions and grows up to 120 instructions "invading" registers F, E and D.

Magnetic card recording

Each magnetic card has two "stripes", each one containing up to 120 bytes. Recording starts from register D and moves to the right, and two options are available:

1) Record 120 bytes per track. A track will store 5 registers (D, E and F containing data or instructions and the program registers containing instructions). Up to 120 instructions can be thus recorded. If the program is longer than 120 instructions, it can be broken up in several cards, that the operator will insert in sequence.

2) Record 48 bytes per track. A track will only store 2 registers (D and E) and this can be used in two different ways:

 

This page is part of the Programma 101 Web