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).
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.
Język programowania
Język — uproszczony asembler z operacjami matematycznymi, wymiany, serwisowymi, skokami. Brak przycisku "równa się".
Operacje matematyczne
| Przycisk | Opis |
|--------|----------|
| + - × | 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
Brak komentarzy.