OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 29.03.2024, 17:53

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 81 ]  Přejít na stránku Předchozí  1, 2, 3, 4, 5, 6  Další
Autor Zpráva
 Předmět příspěvku: Re: Minipočítač TWELVE
PříspěvekNapsal: 28.02.2018, 23:48 
Online
Pan Generální
Uživatelský avatar

Registrován: 23.03.2014, 20:13
Příspěvky: 2773
Has thanked: 224 times
Been thanked: 601 times
Minipočítač TWELVE

Kapitola 2 - Rat Race



"Běhej dokola, dokola, pořád dokola!"

https://www.youtube.com/watch?v=X4OPFl2Kxhs
phpBB [video]


I když vyhraješ krysí závod, pořád jsi jenom krysa, jenom o trochu větší než ty ostatní. A stejně mizerně jsou na tom ubohá data v počítači. Vybíhají z paměti, uhánějí po sběrnicích, promíchají se v ALU, a zběsilým úprkem dobíhají zpět do paměti, odkud zase vyrážejí v nekonečném závodu dál...

Ve TWELVE má každé kolo tohohle závodu pět etap:

  1. FETCH - načtení instrukce a inkrementace R7
  2. LOAD DATA - výběr a načtení datového registru
  3. LOAD WORK - výběr a načtení pracovního registru
  4. EXECUTE - čekání na zpracování a výběr výsledku
  5. STORE WORK - uložení pracovního registru

A takhle vypadá závodní dráha, data jí obíhají po směru hodinových ručiček:

Obrázek



"Levá, pravá, seno, sláma."

Tak si to probereme krok za krokem. Ona je to docela slušná procházka:

1. fáze - FETCH
  • Řadič (DRIVER) vybere registr R7 (PROGRAM COUNTER) - otevře jeho výstup, a současně pošle signál pro jeho inkrementaci (STEP). Ta se projeví až po skončení práce, zatím se to tam hezky přesype.
  • Do bubnu dorazí obsah R7 jako adresa. Řadič povolí zápis do instrukčního registru (OPCODE), pošle signál čtení instrukce (FETCH), a čeká na potvrzení o jeho dokončení.
  • Bubnová paměť odešle nalezené slovo přímo do registru operačního kódu (OPCODE) a zapne potvrzení.
  • Řadič zruší výběr registru, inkrementaci, zápis i FETCH. Registr R7 se tím přepne na novou hodnotu - ukazuje na následující instrukci po té právě vykonávané.
  • V řadiči proběhne dekódování instrukce, rozešlou se signály nastavující další jednotky v počítači, například jestli bude ADDER sčítat nebo odčítat, jestli je povolené použití CARRY, se kterým bitem bude pracovat SWITCH, vybere se V/V kanál a podobně...

2. fáze - LOAD DATA
  • Řadič vybere datový registr a povolí zápis do pomocného registru DATA - pokud to instrukce vyžaduje. Jinak tuhle část přeskočí. Sem se načítá pouze slovo - 12 bitů.
  • Je-li potřeba načíst slovo - konstantu z kódu, pošle se registru R7 signál STEP pro inkrementaci na další instrukci.
  • Je-li požadováno čtení z registru, otevře vstup R v LOAD SELECTORu a pošle slovo přímo k pomocným registrům DATA a WORK.
  • Je-li požadováno čtení z bubnu, otevře vstup D v LOAD SELECTORu, pošle bubnu signál LOAD a čeká na potvrzení že slovo bylo nalezeno. A čeká a čeká, dokud se ho nedočká.
  • Je-li požadován OFFSET pro JUMP, otevře 7 bitů z operačního kódu na vstupu O v LOAD SELECTORu.
  • Je-li požadována hodnota pro INC nebo DEC (Kubikova konstanta), otevře 4 bity z operačního kódu na vstupu O v LOAD SELECTORu.
  • Po přijetí potvrzení od bubnu, nebo v dalším kroku v ostatních případech, vypne řadič zápis do DATA, STEP, výběr registru, vstup v LOAD SELECTORu i LOAD z bubnu.
  • V tuhle chvíli jsou platná data na druhém operandu sčítačky a nezpracovávané přímé cestě (DIRECT).

3. fáze - LOAD WORK
  • Řadič vybere pracovní registr a povolí zápis do pomocného registru WORK - pokud to instrukce vyžaduje. Jinak tuhle část přeskočí. Sem se načítá slovo i všechny čtyři příznaky - 16 bitů.
  • Je-li požadováno čtení z registru, otevře vstup R v LOAD SELECTORu a pošle slovo přímo k pomocným registrům DATA a WORK.
  • Je-li požadováno čtení z bubnu, otevře vstup D v LOAD SELECTORu, pošle bubnu signál LOAD a čeká na potvrzení že slovo bylo nalezeno. A čeká a čeká, dokud se ho nedočká.
  • Po přijetí potvrzení od bubnu, nebo v dalším kroku v ostatních případech, vypne řadič zápis do WORK, vstup v LOAD SELECTORu i LOAD z bubnu. Výběr registru zůstává nastavený až do skončení 5. fáze, pro zápis výsledku operace!
  • V tuhle chvíli jsou platná data na prvním operandu sčítačky (ADDER) a spíná se časovač, posuvníku (SHIFTER), přepínači (SWITCH) a výstupním kanálu (OUTPUT).

4. fáze - EXECUTE
  • Je-li požadován přesun, je otevřený vstup D ve STORE SELECTORu.
  • Je-li použitá sčítačka, je otevřený vstup A ve STORE SELECTORu a řadič čeká na potvrzení od časovače, že data už protekla a výsledek je spočítaný.
  • Je-li prováděn posun/rotace, je otevřený vstup H ve STORE SELECTORu.
  • Je-li nastavován nějaký bit, je otevřený vstup S ve STORE SELECTORu.
  • Je-li zapisován výstupní kanál, pošle se signál OUT a řadič čeká na potvrzení z výstupu.
  • Je-li čten vstupní kanál, je otevřený vstup I ve STORE SELECTORu, pošle se signál IN a řadič čeká na potvrzení ze vstupu.
  • Po přijetí potvrzení pokračuje do dalšího kroku, u větvících instrukcí podle (ne)shody s maskou vyšle či nevyšle signál STEP pro inkrementaci R7.
  • V tuhle chvíli jsou platná data na výstupu STORE SELECTORu, dvanáct datových bitů a čtyři příznaky (C, D, E a F).

5. fáze - STORE WORK
  • Není-li potřeba zapsat výsledek, tak se zápis přeskočí.
  • Řadič povolí STORE - zápis do registru, nebo pošle signál SAVE bubnu a čeká na potvrzení dokončení zápisu. Zápis příznaků povolí v obou případech.
  • Po skončení zápisu vypne jeho povolení/SAVE, podmíněnou inkrementaci R7, zruší výběr vstupu do LOAD SELECTORu a IN/OUT.
  • A může se začít znova.

Takhle pěkně to vypadá animované, konkrétně jde o instrukci ADD/SUB Mx Rx:

Obrázek



"S úctou k praotcům"

Koncepce TWELVE je téměř dokonalý von Neumann, ale po určitých úpravách (kvůli čtení NUMBER) by šlo použít oddělenou paměť programu - Harward (nebo také Babbage, úklonou zdraví instrukce JUMP). Jenže to už by nebyl univerzální počítač. Ale zase by se hodil do clusteru, jako jeden z tisíců uzlů superpočítače.

Důležité body jsou LOAD SELECTOR - ten vybírá který ze vstupů dat se použije pro zpracování, a STORE SELECTOR - ten vybírá který z výsledků se uloží. Jinak si data sama tečou všemi dírami všude kam můžou, použije se jen to co zrovna program chce.

Protože se u rotujícího bubnu nikdy nedá předpovědět jak dlouho bude trvat čtení/zápis dat (musí se prostě počkat až to správné místo zrovna pojede kolem), nemá TWELVE pevnou hodinovou frekvenci. Stejně tak ve sčítačce, která pro jednoduchost nemá zrychlený přenos, chvíli trvá než přetečení nebo výpůjčky prolezou celým tím totemem. Nemluvě o INPUT/OUTPUT, kde periférie musí potvrdit předání/převzení dat kanálu. Proto se v každém kroku čeká na oznámení o dokončení toho předchozího.
Jednodušší by sice bylo odvodit takt přímo od otáčení bubnu, jenže v takovém případě by mohlo zpracování instrukce trvat, v nejhorším případě, pět jeho otáček, a to by ho nebrzdilo jedině kdyby ten počítač byl reléový. Ale možná i ten jo.

https://commons.wikimedia.org/wiki/File:MECIPT-1_Drum_memory.jpg
Obrázek

Alternativou k těžkému magnetickému bubnu může být materiálově méně náročná disková paměť:

http://www.textfiles.com/bitsavers/pdf/autonetics/disk_pictures/RECOMP-II_55300-304-31/
Obrázek

Je možné použít i jiné druhy pamětí, může to být cokoliv do čeho potečou z jedné strany data pro zápis, druhou stranou přečtená ven, a vrchem se vloží adresa, na tom co přesně a jak se bude dít uvnitř nezáleží. Ale rovnou říkám, že skoro padesát tisíc feritových korálků na drátky navlékat nehodlám! :lol:

_________________
Plesnivý sýr z Tesca, zatuchlé kuřecí řízky z Albertu, oslizlé hovězí a myší trus z Lidlu.
Nákup potravinářské inspekce v ČR, říjen 2023.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Minipočítač TWELVE
PříspěvekNapsal: 01.03.2018, 07:52 
Offline
Kecka

Registrován: 10.09.2017, 21:13
Příspěvky: 54
Has thanked: 51 times
Been thanked: 6 times
Když už jsem u těch počítačů s bubnem, tohle znáte ? :)

http://www.catb.org/jargon/html/story-of-mel.html


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Minipočítač TWELVE
PříspěvekNapsal: 01.03.2018, 11:16 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3676
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 times
Nejak není jasné, co adresuje registry ? a jaký význam mají ty sběrnice u bubnu, co jsou data a co je adresa ?
Proč to komplikuješ nějakým bubnem, když to chceš realizovat v FPGA ? :D
Co dělá switch ?
Kdo dělá logické operace ?

_________________
Diagnóza: Touretteův syndrom, Koprolálie, Dyslexie, Obsedantně kompulzivní porucha.
Kalkulačky: Privileg PR56, TI51-III, TI57, TI58, TI59, TI83, TI-83 Premium CE, TI89
Počítadla: BOBO64, ZX48 plus, DG-88, Didaktik-M, C16, C64C, Amiga 500+, MZ800, MUPID C2A2


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Minipočítač TWELVE
PříspěvekNapsal: 01.03.2018, 22:57 
Online
Pan Generální
Uživatelský avatar

Registrován: 23.03.2014, 20:13
Příspěvky: 2773
Has thanked: 224 times
Been thanked: 601 times
Charlie_XZ píše:
Když už jsem u těch počítačů s bubnem, tohle znáte ? :)
http://www.catb.org/jargon/html/story-of-mel.html
No hádej kde jsem bral inspiraci :god:
Tady je to česky, ale překlad nic moc: https://www.zive.cz/clanky/hacky-a-hackeri-iii--dilo-opravdoveho-hackera/sc-3-a-104467/default.aspx

danhard:
Buben je operační paměť typu SAM. 4096 dvanáctibitových slov, tedy 49152 bity. Nic víc tam není, sem se musí vejít program i data.
Zleva do bubnu vstupují data pro zápis (STORE), doprava vycházejí přečtená (LOAD). Adresa se tam sype horem přímo z libovolného registru, a dolů odchází operační kód, tedy instrukce (FETCH). To by se mohlo větvit i z té výstupní sběrnice vpravo, ale čte se jiným signálem a putuje jinam.

Registry jsou adresovány bity v instrukci. Ta se skládá ze tří nibblů:
  1. Kód instrukce 0..15.
  2. Číslo pracovního registru 0..7 a volba M/R.
  3. Číslo datového registru 0..7 a volba M/R.
M/R je nejvyšší bit nibblu, pokud je 0, jde obsah registru přímo do selektoru. Pokud je 1, jde obsah registru jako adresa do bubnu, a teprve odtamtud putují data do selektoru.

0000 0011 1000 znamená "zkopíruj slovo z adresy v registru 0 do registru 3" - COPY R3 M7. Podtržené jsou bity určující M/R, další tři jsou číslo registru. A obdobně při zápisu.

SWITCH pracuje s bity. Může vybraný bit nastavit na jedničku (ONE), na nulu (ZERO), nebo otestovat, a pokud je 1, inkrementovat R7. Víc logických operací tam není.

_________________
Plesnivý sýr z Tesca, zatuchlé kuřecí řízky z Albertu, oslizlé hovězí a myší trus z Lidlu.
Nákup potravinářské inspekce v ČR, říjen 2023.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Minipočítač TWELVE
PříspěvekNapsal: 01.03.2018, 23:45 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3676
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 times
"Nic víc tam není, sem se musí vejít program i data."
Nikde jsi nepsal, že jsou program a data nějak oddělená ?
A to se z bubnu čte jinak program a jinak data a jinou sběrnicí ?
A co má společného buben s CPU ? To by mělo být jednoznačně oddělené, pokud to chceš realizovat s obecným typem paměti.

_________________
Diagnóza: Touretteův syndrom, Koprolálie, Dyslexie, Obsedantně kompulzivní porucha.
Kalkulačky: Privileg PR56, TI51-III, TI57, TI58, TI59, TI83, TI-83 Premium CE, TI89
Počítadla: BOBO64, ZX48 plus, DG-88, Didaktik-M, C16, C64C, Amiga 500+, MZ800, MUPID C2A2


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Minipočítač TWELVE
PříspěvekNapsal: 02.03.2018, 11:12 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3676
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 times
faraon píše:
5. STORE WORK - uložení pracovního registru

A není to spíš uložení výsledku RESULT ?
WORK je obsah registru WORK a ten ani nikdy nejde přes aritmetiku přímo ? :roll:

_________________
Diagnóza: Touretteův syndrom, Koprolálie, Dyslexie, Obsedantně kompulzivní porucha.
Kalkulačky: Privileg PR56, TI51-III, TI57, TI58, TI59, TI83, TI-83 Premium CE, TI89
Počítadla: BOBO64, ZX48 plus, DG-88, Didaktik-M, C16, C64C, Amiga 500+, MZ800, MUPID C2A2


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Minipočítač TWELVE
PříspěvekNapsal: 03.03.2018, 00:03 
Online
Pan Generální
Uživatelský avatar

Registrován: 23.03.2014, 20:13
Příspěvky: 2773
Has thanked: 224 times
Been thanked: 601 times
Však to oddělené je, ona tam totiž žádná CPU není. Ze začátku jsem to tak ani neplánoval, ale ono mi to prostě vyšlo samo, asi to tenkrát ten Maďar nevymyslel úplně blbě ;)

Obrázek

Registry jsou také paměť, proto jsou v paměťové jednotce společně s operační pamětí. Řadič pak vybere registr, a k tomu přidá volbu jestli se má použít jako hodnota, nebo jako odkaz. Jak to paměť provede ho vůbec nezajímá. Jenom čeká na výsledek.

RESULT se mi tam dřív také motal, ale těch výsledků tam může být pět různých současně a z nich se vybírá jenom ten, který se má uložit. Vzorec je formát instrukce, rozložený do třech nibblů:
ADD WORK DATA znamená WORK += DATA
WORK je pracovní registr určený nibblem WORK, prostě alias pro R0 až R7, ze kterého se přečte první operand do pomocného registru, a kam se uloží výsledek operace. Proto se WORK jmenuje také ten pomocný registr na vstupu ALU. To samé platí i pro DATA.
Ale máš pravdu, je to trochu matoucí, několik různých věcí se stejným názvem, i když spolu úzce souvisí.

_________________
Plesnivý sýr z Tesca, zatuchlé kuřecí řízky z Albertu, oslizlé hovězí a myší trus z Lidlu.
Nákup potravinářské inspekce v ČR, říjen 2023.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Minipočítač TWELVE
PříspěvekNapsal: 03.03.2018, 10:10 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3676
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 times
Ano je to matoucí, nemůžeš něco pojmenovat stejně aniž by to významově kolidovalo.
Pokud to není Akumulátor, tak se pro druhý operand ALU používá označení Temporary register.


FLAGs běžně generuje přímo ALU a jsou to příznaky výsledku aritmetických, ale také logických operací.
Minimálně je zapotřebí Carry a Zero. Nejsou součástí datové cesty.

_________________
Diagnóza: Touretteův syndrom, Koprolálie, Dyslexie, Obsedantně kompulzivní porucha.
Kalkulačky: Privileg PR56, TI51-III, TI57, TI58, TI59, TI83, TI-83 Premium CE, TI89
Počítadla: BOBO64, ZX48 plus, DG-88, Didaktik-M, C16, C64C, Amiga 500+, MZ800, MUPID C2A2


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Minipočítač TWELVE
PříspěvekNapsal: 03.03.2018, 11:03 
Online
Pan Generální
Uživatelský avatar

Registrován: 23.03.2014, 20:13
Příspěvky: 2773
Has thanked: 224 times
Been thanked: 601 times
To je názvosloví někoho jiného, a to bych mohl rovnou použít i procesor někoho jiného :lol:

Ono je to takhle -> po dobu provádění instrukce se některý z univerzálních registrů R0R7 dočasně pojmenuje WORK, a některý (jiný nebo ten samý) zase DATA. S těmi se pak pracuje tak, že se jejich obsah zkopíruje do stejnojmenných pomocných registrů, a výsledek zpracování se zapíše zpět do registru WORK, což je pořád ten samý - některý z těch osmi akumulátorů.
Mě je prostě jeden akumulátor málo :twisted:

Takže to významově nekoliduje, je to celý řetězec s jedním jménem. Já bych se těm dočasným registrům a nějakému kopírování nejradši vyhnul úplně (takže by odpadly fáze 2 a 3, ty by se odehrály už během dekódování instrukce), ale to by tam muselo být trochu víc sběrnic. Aby ta data prostě protekla z vybraných registrů skrz ALU, a na druhé straně zase zapadla rovnou do nějakého registru. Jenže to by zase nešlo dělat přímo s operační pamětí jako to mám teď, leda přes cache, takže tohle si musím nechat až do nějakého příštího, a většího, projektu ;-)

Příznaky jsem tam na začátku neměl vůbec žádné, dokonce ani CARRY ne. Ale počítání jenom s dvanácti bity je málo, takže se tam vyvinul v bitu C.
Potom jsem po čase přidal volný příznak FLAG v bitu F, který si může program nastavovat podle svého, aby mohl komukoliv něco oznámit. Jako praporek na poštovní schránce. V těch zbylých dvou byla dlouho díra, až jsem si řekl že těch pár hradel navíc se snese, a že se třeba budou někdy k něčemu hodit.
A hodily se, z E se letos v lednu stal ERROR, kterým ADDER oznamuje přetečení číselného rozsahu. I to stálo jen pár hradel, a ušetří to několik instrukcí, aby se to nemuselo kontrolovat softwarově.
Příznak D jméno nemá, aspoň zatím, ale při nějaké komunikaci s vnějším světem se třeba nějaké vhodné slovo najde.
Se ZERO opravdu nepočítám, to se musí ověřit softwarově. Třeba pomocí DEC a INC, kde to příznak vyrobí. Nebo EQUAL s nulou, kde to rovnou skočí. Ale třeba u sestupného čítače není ZERO potřeba, když budu chtít udělat deset cyklů, začnu odečítat od devítky, a při desáté dekrementaci dojde k podtečení na -1! S příznakem.

Příznaky nejsou součástí datové cesty, ale po dobu provádění instrukce se stávají součástí aliasu WORK, takže je z nich čtvrtý nibble nad těmi dvanácti datovými bity. Společně s nimi se dostanou do přepínače SWITCH, kde se dá stav libovolného bitu (0 až F) změnit nebo otestovat. Stejně tak mohou jít do/z INPUT/OUTPUT kanálu, a do/z periférie sdělovat nějaký stav. Paralelní port má také víc drátů než jen těch osm datových bitů.

_________________
Plesnivý sýr z Tesca, zatuchlé kuřecí řízky z Albertu, oslizlé hovězí a myší trus z Lidlu.
Nákup potravinářské inspekce v ČR, říjen 2023.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Minipočítač TWELVE
PříspěvekNapsal: 03.03.2018, 11:18 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3676
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 times
No a protože jsou to registry dočasné, tak aby to nekolidovalo, tak se pojmenují jinak, třeba TDATA a TWORK.
Pro logiku výpočtu tam stačí jeden, ten tam ale být musí.

Taky běžně nebývá zvykem, když je nějaká sběrnice, nějaké datové šířky, aby se tam přilepovaly jiné signály.

Kdy má ADDER přetečení číselného rozsahu ?

_________________
Diagnóza: Touretteův syndrom, Koprolálie, Dyslexie, Obsedantně kompulzivní porucha.
Kalkulačky: Privileg PR56, TI51-III, TI57, TI58, TI59, TI83, TI-83 Premium CE, TI89
Počítadla: BOBO64, ZX48 plus, DG-88, Didaktik-M, C16, C64C, Amiga 500+, MZ800, MUPID C2A2


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Minipočítač TWELVE
PříspěvekNapsal: 03.03.2018, 11:35 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3676
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 times
faraon píše:
Paralelní port má také víc drátů než jen těch osm datových bitů.

Máš to nejaké pomatené, jaký význam má číslo osm, když je datová i adresová sběrnice 12-ti bitová ? :roll:

_________________
Diagnóza: Touretteův syndrom, Koprolálie, Dyslexie, Obsedantně kompulzivní porucha.
Kalkulačky: Privileg PR56, TI51-III, TI57, TI58, TI59, TI83, TI-83 Premium CE, TI89
Počítadla: BOBO64, ZX48 plus, DG-88, Didaktik-M, C16, C64C, Amiga 500+, MZ800, MUPID C2A2


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Minipočítač TWELVE
PříspěvekNapsal: 03.03.2018, 11:54 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 06.10.2015, 17:37
Příspěvky: 1554
Bydliště: Praha východ
Has thanked: 11 times
Been thanked: 144 times
nějak mi stále uniká ( i přes pohled na závodní dráhu), jaké funkce a úkoly ten "minipočítač twelve" vastně má v budoucnu dělat. Jakým způsobem se ke startovní čáře dostanou data a co s nimi ten minipočítač udělá než data doběhnou do cíle. To jsou záklaní otázky na které by měly být známy odpovědi, bež se začne Twelve projekt vůbe projektovat, natož snad v reálu i realizovat.

_________________
Hyperinzerce - historické počítače

ComputerAsylum WEB: http://www.computerasylum.co.uk
Twitter: https://twitter.com/COMPUTERASYLUM
Zprávy: https://www.euronews.com/ https://www.aljazeera.com/
Obrázek


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Minipočítač TWELVE
PříspěvekNapsal: 03.03.2018, 12:02 
Online
Pan Generální
Uživatelský avatar

Registrován: 23.03.2014, 20:13
Příspěvky: 2773
Has thanked: 224 times
Been thanked: 601 times
Paralelní port jako LPT v PC.

Pro tříbitový ADDER s číselným rozsahem <-4;3> by to bylo takhle:

Obrázek

Běžně nebývá zvykem mnoho věcí, ale některé neobvyklosti bych prostě chtěl vyzkoušet. Po svém a trochu jinak. Connection Machine také nebyl běžný počítač.

computerasylum: Data se tam můžou nacvakat přepínači na čelním panelu. Ten jediný je zadrátovaný napevno jako kanál 0. Všechno ostatní už je věc softwaru, ten si určí co bude dělat ten zbytek.
Úkol toho projektu je ověřit, že to bude aspoň trochu funkční, a že to dokáže počítat, případně reagovat na nějaké podněty zvenčí. Víc od toho nečekám, ale u 6502 původně také nikdo nečekal, že to bude zabudované v něčem větším než je kalkulačka nebo semafor.

_________________
Plesnivý sýr z Tesca, zatuchlé kuřecí řízky z Albertu, oslizlé hovězí a myší trus z Lidlu.
Nákup potravinářské inspekce v ČR, říjen 2023.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Minipočítač TWELVE
PříspěvekNapsal: 03.03.2018, 12:21 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3676
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 times
Ale to přeci dělá výstupní carry u libovolné sčítačky. To pak prezentuje čtyřbitový výsledek s rozsahem <-8;7>
To není žádný ERROR ! Zopakuj si binární aritmetiku :roll:

_________________
Diagnóza: Touretteův syndrom, Koprolálie, Dyslexie, Obsedantně kompulzivní porucha.
Kalkulačky: Privileg PR56, TI51-III, TI57, TI58, TI59, TI83, TI-83 Premium CE, TI89
Počítadla: BOBO64, ZX48 plus, DG-88, Didaktik-M, C16, C64C, Amiga 500+, MZ800, MUPID C2A2


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Minipočítač TWELVE
PříspěvekNapsal: 03.03.2018, 12:48 
Online
Pan Generální
Uživatelský avatar

Registrován: 23.03.2014, 20:13
Příspěvky: 2773
Has thanked: 224 times
Been thanked: 601 times
Právě že nedělá, a dost jsem se s tím natrápil.

3 + 1 = 4 -> 0100
0100 = -4 -> ERROR!


Jsou to čísla se znaménkem ve dvojkovém doplňku, jenom CARRY tady nestačí. Musím vzít znaménka obou operandů, znaménko výsledku, CARRY (to zvládnou tři XORy), a pokud je tam lichý počet jedniček, je to ERROR.

Když ho budeš ignorovat, počítáš jednoduše bez znamének. Například u spodního slova s přenosem do vyššího, které nese znaménko.

Kód:
ADD
0000 ( 0)    0001 ( 1)    0010 ( 2)    0011 ( 3)    0100 (-4)    0101 (-3)    0110 (-2)    0111 (-1)    
0001 ( 1)    0010 ( 2)    0011 ( 3)    0100 ( 4)E   0101 (-3)    0110 (-2)    0111 (-1)    1000 ( 0)    
0010 ( 2)    0011 ( 3)    0100 ( 4)E   0101 ( 5)E   0110 (-2)    0111 (-1)    1000 ( 0)    1001 ( 1)    
0011 ( 3)    0100 ( 4)E   0101 ( 5)E   0110 ( 6)E   0111 (-1)    1000 ( 0)    1001 ( 1)    1010 ( 2)    
0100 (-4)    0101 (-3)    0110 (-2)    0111 (-1)    1000 (-8)E   1001 (-7)E   1010 (-6)E   1011 (-5)E   
0101 (-3)    0110 (-2)    0111 (-1)    1000 ( 0)    1001 (-7)E   1010 (-6)E   1011 (-5)E   1100 (-4)    
0110 (-2)    0111 (-1)    1000 ( 0)    1001 ( 1)    1010 (-6)E   1011 (-5)E   1100 (-4)    1101 (-3)    
0111 (-1)    1000 ( 0)    1001 ( 1)    1010 ( 2)    1011 (-5)E   1100 (-4)    1101 (-3)    1110 (-2)    

ADC
0001 ( 1)    0010 ( 2)    0011 ( 3)    0100 ( 4)E   0101 (-3)    0110 (-2)    0111 (-1)    1000 ( 0)    
0010 ( 2)    0011 ( 3)    0100 ( 4)E   0101 ( 5)E   0110 (-2)    0111 (-1)    1000 ( 0)    1001 ( 1)    
0011 ( 3)    0100 ( 4)E   0101 ( 5)E   0110 ( 6)E   0111 (-1)    1000 ( 0)    1001 ( 1)    1010 ( 2)    
0100 ( 4)E   0101 ( 5)E   0110 ( 6)E   0111 ( 7)E   1000 ( 0)    1001 ( 1)    1010 ( 2)    1011 ( 3)    
0101 (-3)    0110 (-2)    0111 (-1)    1000 ( 0)    1001 (-7)E   1010 (-6)E   1011 (-5)E   1100 (-4)    
0110 (-2)    0111 (-1)    1000 ( 0)    1001 ( 1)    1010 (-6)E   1011 (-5)E   1100 (-4)    1101 (-3)    
0111 (-1)    1000 ( 0)    1001 ( 1)    1010 ( 2)    1011 (-5)E   1100 (-4)    1101 (-3)    1110 (-2)    
1000 ( 0)    1001 ( 1)    1010 ( 2)    1011 ( 3)    1100 (-4)    1101 (-3)    1110 (-2)    1111 (-1)    

SUB
0000 ( 0)    1111 (-1)    1110 (-2)    1101 (-3)    1100 ( 4)E   1011 ( 3)    1010 ( 2)    1001 ( 1)    
0001 ( 1)    0000 ( 0)    1111 (-1)    1110 (-2)    1101 ( 5)E   1100 ( 4)E   1011 ( 3)    1010 ( 2)    
0010 ( 2)    0001 ( 1)    0000 ( 0)    1111 (-1)    1110 ( 6)E   1101 ( 5)E   1100 ( 4)E   1011 ( 3)    
0011 ( 3)    0010 ( 2)    0001 ( 1)    0000 ( 0)    1111 ( 7)E   1110 ( 6)E   1101 ( 5)E   1100 ( 4)E   
0100 (-4)    0011 (-5)E   0010 (-6)E   0001 (-7)E   0000 ( 0)    1111 (-1)    1110 (-2)    1101 (-3)    
0101 (-3)    0100 (-4)    0011 (-5)E   0010 (-6)E   0001 ( 1)    0000 ( 0)    1111 (-1)    1110 (-2)    
0110 (-2)    0101 (-3)    0100 (-4)    0011 (-5)E   0010 ( 2)    0001 ( 1)    0000 ( 0)    1111 (-1)    
0111 (-1)    0110 (-2)    0101 (-3)    0100 (-4)    0011 ( 3)    0010 ( 2)    0001 ( 1)    0000 ( 0)    

SBB
1111 (-1)    1110 (-2)    1101 (-3)    1100 (-4)    1011 ( 3)    1010 ( 2)    1001 ( 1)    1000 ( 0)    
0000 ( 0)    1111 (-1)    1110 (-2)    1101 (-3)    1100 ( 4)E   1011 ( 3)    1010 ( 2)    1001 ( 1)    
0001 ( 1)    0000 ( 0)    1111 (-1)    1110 (-2)    1101 ( 5)E   1100 ( 4)E   1011 ( 3)    1010 ( 2)    
0010 ( 2)    0001 ( 1)    0000 ( 0)    1111 (-1)    1110 ( 6)E   1101 ( 5)E   1100 ( 4)E   1011 ( 3)    
0011 (-5)E   0010 (-6)E   0001 (-7)E   0000 (-8)E   1111 (-1)    1110 (-2)    1101 (-3)    1100 (-4)    
0100 (-4)    0011 (-5)E   0010 (-6)E   0001 (-7)E   0000 ( 0)    1111 (-1)    1110 (-2)    1101 (-3)    
0101 (-3)    0100 (-4)    0011 (-5)E   0010 (-6)E   0001 ( 1)    0000 ( 0)    1111 (-1)    1110 (-2)    
0110 (-2)    0101 (-3)    0100 (-4)    0011 (-5)E   0010 ( 2)    0001 ( 1)    0000 ( 0)    1111 (-1)    

_________________
Plesnivý sýr z Tesca, zatuchlé kuřecí řízky z Albertu, oslizlé hovězí a myší trus z Lidlu.
Nákup potravinářské inspekce v ČR, říjen 2023.


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 81 ]  Přejít na stránku Předchozí  1, 2, 3, 4, 5, 6  Další

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 4 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz