Powrót do strony głównej

Programma 101: pamięć i język programowania

Olivetti Programma 101 — programowalny kalkulator z 1965 roku z 240 bajtami pamięci magnetostrukcyjnej i językiem opartym na rejestrach. Obsługa trybów full/split, skoków i rozgałęzień. Rozbiór architektury dla specjalistów technicznych.

P101: pierwszy komputer osobisty w szczegółach
Advertisement 728x90

Olivetti Programma 101: architektura i programowanie pierwszego komputera osobistego

**Olivetti Programma 101 (P101), wprowadzony na rynek w 1965 roku, był jednym z pierwszych programowalnych kalkulatorów aspirujących do miana komputera osobistego. Urządzenie o wadze 36 kg wykorzystywało dyskretną logikę tranzystorową, pamięć magnetostrykcyjną o pojemności 240 bajtów oraz język programowania oparty na rejestrach. Sprzedaż trwała do 1972 roku w cenie 3200–3500 dolarów, co uczyniło go produktem masowym przed pojawieniem się HP 9100A.

Projekt i ergonomia

P101 wyróżniał się kompaktowością porównywalną z maszyną do pisania oraz futurystycznym designem autorstwa Mario Belliniego. Rozwój prowadził zespół Piera Giorgia Perotto od 1962 roku, kierując się zasadami prostoty, ergonomii i estetyki. Klawiatura obejmowała 37 przycisków, pokrętło do ustawiania przecinka dziesiętnego (0–15 cyfr) oraz trzy klawisze blokady: zapis programu, drukowanie i odblokowanie.

Wyniki wyświetlano za pomocą drukarki bębnowej (30 znaków/s) na standardowej taśmie papierowej. Drukowano 22-cyfrowe liczby ze znakiem, przecinkiem i symbolami serwisowymi. Wskaźniki: niebieski — gotowość, migający — wykonywanie, czerwony — błąd (przepełnienie, dzielenie przez zero).

Google AdInline article slot

Architektura pamięci

Pamięć oparta na linii opóźniającej magnetostrykcyjnej (drut 6,5 m) zapewniała 240 bajtów. Dziesięć rejestrów po 24 bity każdy z ustalonymi rolami:

  • M (Median): wprowadzanie i przeniesienie pośrednie.
  • A (Akumulator): wynik operacji z zaokrągleniem.
  • R (Wyniki): pełny wynik lub reszta.
  • B, C: przechowywanie danych, dzielenie na półrejestry.
  • D, E, F: dane lub instrukcje, dzielenie na półrejestry.
  • p1, p2: tylko instrukcje.

Rejestry B–F obsługiwały tryby pełny (22 cyfry + znak/przecinek lub 24 instrukcje) i podzielony (11 cyfr/12 instrukcji na półrejestr, oznaczany jako F/ = f). Minimalny program — 48 instrukcji (p1+p2), maksymalny — 120 (D+E+F+p1+p2).

Logika maszynowa śledziła tryby: błąd przy przekazaniu >11 cyfr do rejestru podzielonego lub dzieleniu pełnego.

Google AdInline article slot

Język programowania

Język — uproszczony asembler z operacjami matematycznymi, wymiany, serwisowymi, skokami. Brak przycisku "równa się".

Operacje matematyczne

| Przycisk | Opis |

|--------|----------|

Google AdInline article slot

| + - × | A ±× M → A (zaokrąglone), R (pełne) |

| : | A / M → A (zaokrąglone), R (reszta) |

| √ | A = √M, M = 2√M |

| Rejestr + - × : √ | Kopiuje rejestr do M, stosuje operację |

| A ↕ | |A| w A |

Wymiana danych

  • Rejestr ↑ (oprócz A,R): M → rejestr.
  • Rejestr ↓: rejestr → A.
  • Rejestr ↕: wymiana A ↔ rejestr (R ↕ = R ↓).
  • / ↕: część ułamkowa A → M.
  • R S: wymiana R ↔ D.

Serwisowe

  • S: pauza/kontynuacja, wprowadzenie do M.
  • Rejestr ◊: drukowanie rejestru.
  • Rejestr * (oprócz M,R): zerowanie.

Tryb podzielony aktywuje się poleceniem z /, pełny — wyczyszczeniem (B * dla B).

System skoków

32 instrukcje: 16 bezwarunkowych (? CV? D? R? → A? B? E? F?), 16 warunkowych (/ przed wysłaniem, skok jeśli A > 0). Symbole V,W,Y,Z kodują pary wysłanie-cel.

Co ważne

  • P101 wprowadził komputer osobisty jako kompaktowe urządzenie na biurko.
  • Pamięć magnetostrykcyjna 240 bajtów z elastycznymi rejestrami (pełny/podzielony).
  • Język ze skokami i rozgałęzieniami dla algorytmów.
  • Ergonomia: drukarka, wskaźniki, prosta klawiatura.
  • Wpływ: HP płaciło licencje za patenty.

— Editorial Team

Advertisement 728x90

Czytaj dalej