Kenbak-1
Deweloper | Johna Blankenbakera |
---|---|
Producent | Firma Kenbak |
Typ | Komputer osobisty |
Data wydania | 1971 |
Cena wprowadzająca | 750 USD (równowartość 5020 USD w 2021 r.) |
Przerwane | 1973 |
Jednostki sprzedane | 44 |
Pamięć | 256 bajtów pamięci _ |
Kenbak -1 jest uważany przez Computer History Museum , Computer Museum of America i American Computer Museum za pierwszy na świecie „ komputer osobisty ”, wynaleziony przez Johna Blankenbakera (ur. 1929) z Kenbak Corporation w 1970 r. początek 1971 r. Zbudowano mniej niż 50 maszyn, używając obudów Bud Industries jako obudowy. System najpierw sprzedawano za dolary amerykańskie 750. Obecnie wiadomo, że na całym świecie istnieje tylko 14 maszyn, które znajdują się w rękach różnych kolekcjonerów i muzeów. Produkcja Kenbak-1 została wstrzymana w 1973 roku, gdy Kenbak upadł i został przejęty przez CTI Education Products, Inc. CTI zmieniło nazwę zapasów i przemianowało je na 5050, chociaż sprzedaż pozostała nieuchwytna.
Ponieważ Kenbak-1 został wynaleziony przed pierwszym mikroprocesorem , maszyna nie miała jednoukładowego procesora , ale była oparta wyłącznie na układach TTL integracji na małą skalę . 8 -bitowa maszyna oferowała 256 bajtów pamięci , zaimplementowanych w krzemowych rejestrach przesuwnych MOS typu 1404A firmy Intel . Okres sygnału zegara wynosił 1 mikrosekundę (co odpowiada częstotliwości zegara 1 MHz ), ale prędkość programu wynosiła średnio poniżej 1000 instrukcji na sekundę ze względu na wiele cykli zegara potrzebnych do każdej operacji i powolny dostęp do pamięci szeregowej.
Maszyna została zaprogramowana w czystym kodzie maszynowym przy użyciu szeregu przycisków i przełączników. Wyjście składało się z rzędu świateł.
Wewnętrznie Kenbak-1 ma architekturę komputera szeregowego , przetwarzającą jeden bit na raz.
Opis techniczny
Rejestry
07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 | (pozycja bitu) |
Rejestry główne |
||||||||
A | A | |||||||
B | B | |||||||
X | X (indeks) | |||||||
P | Licznik programów | |||||||
Flagi |
||||||||
000000 | C | O | flagi _ | |||||
000000 | C | O | flagi B | |||||
000000 | C | O | X flagi | |||||
Wejście wyjście |
||||||||
Wyjście | Światła | |||||||
Wejście | Przełączniki |
Kenbak-1 ma łącznie dziewięć rejestrów. Wszystkie są mapowane w pamięci. Ma trzy rejestry ogólnego przeznaczenia: A, B i X. Rejestr A jest niejawnym miejscem docelowym niektórych operacji. Rejestr X jest również znany jako rejestr indeksowy i zamienia tryby bezpośrednie i pośrednie na indeksowane tryby bezpośrednie i indeksowane tryby pośrednie. Posiada również licznik programu, zwany rejestrem P, trzy rejestry „przepełnienia i przeniesienia” odpowiednio dla A, B i X, a także rejestr wejściowy i rejestr wyjściowy.
Tryby adresowania
Instrukcje dodawania, odejmowania, ładowania, przechowywania, ładowania komplementu, i, i lub działają między rejestrem a innym operandem przy użyciu pięciu trybów adresowania:
- Natychmiastowe (argument znajduje się w drugim bajcie instrukcji)
- Pamięć (drugi bajt instrukcji to adres operandu)
- Pośredni (drugi bajt instrukcji to adres adresu operandu)
- Indeksowane (drugi bajt instrukcji jest dodawany do X w celu utworzenia adresu operandu)
- Indirect Indexed (drugi bajt instrukcji wskazuje lokalizację, która jest dodawana do X w celu utworzenia adresu operandu)
Tabela instrukcji
Instrukcje są zakodowane w 8 bitach, z ewentualnym drugim bajtem dostarczającym natychmiastową wartość lub adres. Niektóre instrukcje mają wiele możliwych kodowań.
Macierz kodów operacji dla zestawu instrukcji Kenbak-1 | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Wysokie cyfry ósemkowe | Niska cyfra ósemkowa | |||||||||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |||||||||||
00 | POSTÓJ | SFTR A1 | USTAW 0 b0 XXX | DODAJ #XXX | DODAJ XXX | DODAJ (XXX) | DODAJ XXX, X | DODAJ A (XXX), X | ||||||||||
01 | POSTÓJ | SFTR A2 | USTAW 0 b1 XXX | SUBA #XXX | SUBA XXX | SUB A (XXX) | SUB A XXX, X | SUB A (XXX), X | ||||||||||
02 | POSTÓJ | SFTR A3 | USTAW 0 b2 XXX | ZAŁADUJ #XXX | ZAŁADUJ XXX | ZAŁADUJ A (XXX) | ZAŁADUJ XXX, X | ZAŁADUJ A (XXX), X | ||||||||||
03 | POSTÓJ | SFTR A4 | USTAW 0 b3 XXX | PRZECHOWYWANIE #XXX | PRZECHOWYWANIE XXX | SKLEP A (XXX) | PRZECHOWYWANIE XXX, X | ZAPISZ A (XXX), X | ||||||||||
04 | POSTÓJ | SFTR B1 | USTAW 0 b4 XXX | JPD A ≠0 XXX | JPD A = 0 XXX | JPD A <0 XXX | JPD A ≥0 XXX | JPD A >0 XXX | ||||||||||
05 | POSTÓJ | SFTR B2 | USTAW 0 b5 XXX | JPI A ≠0 XXX | JPI A = 0 XXX | JPI A <0 XXX | JPI A ≥0 XXX | JPI A >0 XXX | ||||||||||
06 | POSTÓJ | SFTR B3 | USTAW 0 b6 XXX | JMD A ≠0 XXX | JMD A = 0 XXX | JMD A <0 XXX | JMD A ≥0 XXX | JMD A >0 XXX | ||||||||||
07 | POSTÓJ | SFTR B4 | SET 0 b7 XXX | JMI A ≠0 XXX | JMI A =0 XXX | JMI A <0 XXX | JMIA ≥0 | JMI A >0 XXX | ||||||||||
10 | POSTÓJ | ROTR A1 | ZESTAW 1 b0 XXX | DODAJ B#XXX | DODAJ B XXX | DODAJ B (XXX) | DODAJ B XXX, X | DODAJ B (XXX), X | ||||||||||
11 | POSTÓJ | ROTR A2 | ZESTAW 1 b1 XXX | SUB B # XXX | SUB B XXX | SUB B (XXX) | SUB B XXX. X | SUB B (XXX), X | ||||||||||
12 | POSTÓJ | ROTR A3 | ZESTAW 1 b2 XXX | ZAŁADUJ B #XXX | ZAŁADUJ B XXX | ZAŁADUNEK B (XXX) | ZAŁADUNEK B XXX, X | ŁADUJ B (XXX), X | ||||||||||
13 | POSTÓJ | ROTR A4 | ZESTAW 1 b3 XXX | SKLEP B #XXX | SKLEP B XXX | SKLEP B (XXX) | SKLEP B XXX, X | SKLEP B (XXX), X | ||||||||||
14 | POSTÓJ | ROTR B1 | ZESTAW 1 b4 XXX | JPD B ≠0 XXX | JPD B = 0 XXX | JPD B <0 XXX | JPD B ≥0 XXX | JPD B >0 XXX | ||||||||||
15 | POSTÓJ | ROTR B2 | ZESTAW 1 b5 XXX | JPI B ≠0 XXX | JPI B = 0 XXX | JPI B <0 XXX | JPI B ≥0 XXX | JPI B >0 XXX | ||||||||||
16 | POSTÓJ | ROTR B3 | ZESTAW 1 b6 XXX | JMD B ≠0 XXX | JMD B = 0 XXX | JMD B <0 XXX | JMD B ≥0 XXX | JMDB >0 XXX | ||||||||||
17 | POSTÓJ | ROTR B4 | ZESTAW 1 b7 XXX | JMI B ≠0 XXX | JMI B = 0 XXX | JMI B <0 XXX | JMI B ≥0 XXX | JMI B >0 XXX | ||||||||||
20 | NIE | SFTL A1 | SKP 0 b0 XXX | DODAJ X #XXX | DODAJ X XXX | DODAJ X (XXX) | DODAJ X XXX, X | DODAJ X (XXX), X | ||||||||||
21 | NIE | SFTL A2 | SKP 0 b1 XXX | SUB X #XXX | SUB X XXX | SUB X (XXX) | SUB X XXX. X | SUB X (XXX), X | ||||||||||
22 | NIE | SFTL A3 | SKP 0 b2 XXX | ZAŁADUJ X #XXX | ZAŁADUJ X XXX | ZAŁADUJ X (XXX) | ZAŁADUJ X (XXX) | ZAŁADUJ X (XXX), X | ||||||||||
23 | NIE | SFTL A4 | SKP 0 b3 XXX | SKLEP X #XXX | SKLEP X XXX | SKLEP X (XXX) | SKLEP X XXX, X | SKLEP X (XXX), X | ||||||||||
24 | NIE | SFTL B1 | SKP 0 b4 XXX | JPD X ≠0 XXX | JPD X = 0 XXX | JPD X <0 XXX | JPD X ≥0 XXX, X | JPD X >0 XXX | ||||||||||
25 | NIE | SFTL B2 | SKP 0 b5 XXX | JPI X ≠0 XXX | JPI X = 0 XXX | JPI X <0 XXX | JPI X ≥0 XXX | JPI X >0 XXX | ||||||||||
26 | NIE | SFTL B3 | SKP 0 b6 XXX | JMD X ≠0 XXX | JMD X = 0 XXX | JMD X <0 XXX | JMD X ≥0 XXX | JMD X >0 XXX | ||||||||||
27 | NIE | SFTL B4 | SKP 0 b7 XXX | JMI X ≠0 XXX | JMI X = 0 XXX | JMI X <0 XXX | JMI X ≥0 XXX | JMI X >0 XXX | ||||||||||
30 | NIE | ROTL A1 | SKP 1 b0 XXX | LUB #XXX | LUB XXX | LUB (XXX) | LUB XXX, X | LUB (XXX), X | ||||||||||
31 | NIE | ROTL A2 | SKP 1 b1 XXX | — | — | — | — | — | ||||||||||
32 | NIE | ROTL A3 | SKP 1 b2 XXX | I #XXX | I XXX | I (XXX) | I XXX, X | I (XXX), X | ||||||||||
33 | NIE | ROTL A4 | SKP 1 b3 XXX | LNEG #XXX | LNEG XXX | LNEG (XXX) | LNEG XXX. X | LNEG (XXX), X | ||||||||||
34 | NIE | ROTL B1 | SKP 1 b4 XXX | JPD UNC XXX | JPD UNC XXX | JPD UNC XXX | JPD UNC XXX | JPD UNC XXX | ||||||||||
35 | NIE | ROTL B2 | SKP 1 b5 XXX | JPI UNC XXX | JPI UNC XXX | JPI UNC XXX | JPI UNC XXX | JPI UNC XXX | ||||||||||
36 | NIE | ROTL B3 | SKP 1 b6 XXX | JMD UNC XXX | JMD UNC XXX | JMD UNC XXX | JMD UNC XXX | JMD UNC XXX | ||||||||||
37 | NIE | ROTL B4 | SKP 1 b7 XXX | JMI UNC XXX | JMI UNC XXX | JMI UNC XXX | JMI UNC XXX | JMI UNC XXX |
Zobacz też
- Datapoint 2200 , współczesna maszyna z ekranem alfanumerycznym i klawiaturą, przystosowana do uruchamiania nietrywialnych programów aplikacyjnych
- Mark-8 , zaprojektowany przez doktoranta Jonathana A. Titusa i ogłoszony jako „luźny zestaw” w numerze magazynu Radio-Electronics z lipca 1974 roku
- Altair 8800 , bardzo popularny mikrokomputer z 1975 roku, który stał się inspiracją do powstania firmy Microsoft
Linki zewnętrzne
- Kenbak.com Obszerna historia Kenbak-1 i informacje techniczne
- KENBAK-1 Artykuł komputerowy
- Komputer KENBAK-1 – Oficjalna strona Kenbak-1 pod adresem www.kenbak-1.info
- KENBAK-1 Series 2 – Oficjalny zestaw do reprodukcji Kenbak-1 na www.kenbakkit.com
- Emulator Kenbak-1 – Emulator Kenbak-1 online
- Kenbak-1 Emulator – Pobierz emulator Kenbak-1
- Kenbak 1 – Obrazy i informacje na stronie www.vintage-computer.com
- Kenbaka na bitsavers.org
- KENBAK-uino Sprzętowy emulator Kenbak-1
- Odtworzenie pierwszego artykułu na PC o KENBAK-uino na hackaday.com
- Emulator/trener KENBAK-1 , RetroWiki.es (nieaktualny, 2015-02-10)
- Prototyp Kenbak-1 , oficjalna witryna prototypu Kenbak-1 pod adresem www.thefirstpc.com