<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="hr">
	<id>https://enciklopedija.cc/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=WikiSysop</id>
	<title>Hrvatska internetska enciklopedija - Doprinosi suradnika [hr]</title>
	<link rel="self" type="application/atom+xml" href="https://enciklopedija.cc/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=WikiSysop"/>
	<link rel="alternate" type="text/html" href="https://enciklopedija.cc/wiki/Posebno:Doprinosi/WikiSysop"/>
	<updated>2026-07-08T01:41:23Z</updated>
	<subtitle>Doprinosi suradnika</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787647</id>
		<title>IBM 704</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787647"/>
		<updated>2026-07-07T10:34:37Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;IBM 704&#039;&#039;&#039; ime je za računalo prve generacije koje je razvila tvrtka [[IBM]] i jedan je iz serije računala IBM 700. Ovo računalo se proizvodilo od 1954. do 1964. godine.&amp;lt;ref&amp;gt;https://www.ibm.com/history/700&amp;lt;/ref&amp;gt;. Glavni arhitekti ovog računala bili su [[John Backus]] i [[Gene Amdahl]]. Novine ovog računala jesu memorija s magnetskom jezgrom i jedinica s pomičnim zarezom. Povijesna važnost ovog računala jest da je na njemu bio razvijen programski jezik [[FORTRAN]] i [[LISP]] te SAP asembler. Zbog inovativnih riješenja i dobre programske opreme ovo računalo je rabljeno je za stvaranje prvih sustava umjetne inteligencije, računalnog vida, računalne muzike, i sustava za robotiku.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Povijest razvoja IBM 700 serije ==&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija bila je prva generacija komercijalnih znanstvenih računala koju je IBM razvio početkom 1950-ih. Serija je započela s modelom IBM 701 (1952.), poznatim kao „Defense Calculator“, koji je bio namijenjen vojnoj i zrakoplovnoj industriji.&lt;br /&gt;
&lt;br /&gt;
* IBM 702 (1953.) bio je poslovno orijentiran sustav, dok je IBM 703 bio eksperimentalni model.&lt;br /&gt;
* IBM 704 je postao temelj za razvoj FORTRAN-a (1957.), prvog visokorazinskog programskog jezika.&lt;br /&gt;
&lt;br /&gt;
Pravi tehnološki iskorak dogodio se s modelom &#039;&#039;&#039;IBM 704&#039;&#039;&#039; (1954.), prvim računalom koje je podržavalo:&lt;br /&gt;
* aritmetiku s pomičnim zarezom,&lt;br /&gt;
* indeksne registre,&lt;br /&gt;
* statusne indikatore,&lt;br /&gt;
* magnetsku jezgru kao primarnu memoriju.&lt;br /&gt;
&lt;br /&gt;
Serija se nastavila s modelima IBM 709 (1958.) i IBM 7090 (1959.), koji su bili tranzistorski nasljednici i koristili se u NASA-i, NORAD-u i velikim znanstvenim centrima.&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija ostavila je dubok trag u povijesti računarstva, postavivši standarde arhitekture koji su se zadržali desetljećima.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arhitektura IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od prvih komercijalnih računala koje je uvodilo napredne koncepte arhitekture, uključujući rad s pomičnim zarezom, indeksne registre i statusne indikatore. Sustav je bio dizajniran za znanstvene i tehničke izračune, što ga je činilo ključnim alatom u laboratorijima, sveučilištima i ranim zrakoplovnim projektima.&lt;br /&gt;
&lt;br /&gt;
=== Memorija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 koristio je magnetsku jezgru kao primarnu memoriju, što je u to vrijeme predstavljalo veliki tehnološki napredak u odnosu na Williamsove cijevi korištene u IBM-u 701. Magnetska jezgra bila je brža, pouzdanija i omogućavala stabilno zadržavanje podataka bez potrebe za stalnim osvježavanjem.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Memorijske karakteristike IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Vrsta memorije&lt;br /&gt;
| Magnetska jezgra&lt;br /&gt;
| Stabilna, brza i pouzdana tehnologija za 1950-e.&lt;br /&gt;
|-&lt;br /&gt;
| Kapacitet&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Ukupno 147 456 bitova (18 432 bajta).&lt;br /&gt;
|-&lt;br /&gt;
| Vrijeme pristupa&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za čitanje ili pisanje jedne riječi.&lt;br /&gt;
|-&lt;br /&gt;
| Format riječi&lt;br /&gt;
| 36-bitna riječ&lt;br /&gt;
| Koristi se za instrukcije, podatke i floating-point brojeve.&lt;br /&gt;
|-&lt;br /&gt;
| Floating-point format&lt;br /&gt;
| 8-bitni eksponent + 27-bitna mantisa&lt;br /&gt;
| Bez skrivenog bita; excess-128 eksponent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Periferni uređaji ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 podržavao je širok spektar perifernih uređaja, što ga je činilo pogodnim za znanstvene, tehničke i administrativne zadatke. Ulazno/izlazni sustav bio je temeljen na magnetskim vrpcama, kartičnim čitačima i pisačima, uz mogućnost prikaza podataka na CRT zaslonima.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Periferni uređaji IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Uređaj&lt;br /&gt;
! Model&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Čitač kartica&lt;br /&gt;
| IBM 711&lt;br /&gt;
| Učitava programe i podatke s bušenih kartica.&lt;br /&gt;
|-&lt;br /&gt;
| Pisač&lt;br /&gt;
| IBM 716&lt;br /&gt;
| Ispisuje tekstualni izlaz; glavni uređaj za ljudsko čitanje rezultata.&lt;br /&gt;
|-&lt;br /&gt;
| Bušilica kartica&lt;br /&gt;
| IBM 721&lt;br /&gt;
| Zapisuje podatke na bušene kartice.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| IBM 727&lt;br /&gt;
| Glavni masovni spremnik; preko 5 milijuna znakova po vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrolna jedinica vrpci&lt;br /&gt;
| IBM 753&lt;br /&gt;
| Upravljanje magnetskim vrpcama.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetski bubanj&lt;br /&gt;
| IBM 733&lt;br /&gt;
| Dodatna memorija za brzi pristup.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetska jezgra (RAM)&lt;br /&gt;
| IBM 737&lt;br /&gt;
| Primarna memorija sustava (4096 × 36-bitnih riječi).&lt;br /&gt;
|-&lt;br /&gt;
| CRT zaslon&lt;br /&gt;
| IBM 740&lt;br /&gt;
| 21-inčni vektorski prikaz s dugom fosfornom postojanošću; korišten za vizualizaciju podataka.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aritmetička jedinica (AC i MQ) ===&lt;br /&gt;
Aritmetička jedinica sastojala se od dva glavna 36-bitna registra:&lt;br /&gt;
* &#039;&#039;&#039;AC (Accumulator)&#039;&#039;&#039; – glavni registar za aritmetiku.&lt;br /&gt;
* &#039;&#039;&#039;MQ (Multiplier/Quotient)&#039;&#039;&#039; – registar za množenje i dijeljenje.&lt;br /&gt;
&lt;br /&gt;
Ova dva registra zajedno su omogućavala učinkovite operacije nad velikim brojevima i pomičnim zarezom.&lt;br /&gt;
&lt;br /&gt;
=== Indeksni registri (XR1, XR2, XR4) ===&lt;br /&gt;
IBM 704 je koristio tri indeksna registra:&lt;br /&gt;
* &#039;&#039;&#039;XR1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Indeksni registri omogućavali su modifikaciju adresa, implementaciju petlji i rad s velikim poljima podataka. Ovo je bio preteča modernog adresiranja u procesorima.&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori (SI) ===&lt;br /&gt;
Sustav je imao 36 senzorskih indikatora koji su služili kao statusne zastavice:&lt;br /&gt;
* indikatori grešaka (overflow, divide check)&lt;br /&gt;
* indikatori stanja I/O uređaja&lt;br /&gt;
* korisnički definirani indikatori&lt;br /&gt;
&lt;br /&gt;
Programi su mogli testirati i postavljati SI bitove, što je omogućavalo primitivne oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
=== Instrukcijski format ===&lt;br /&gt;
Instrukcije su bile 36-bitne, s poljima:&lt;br /&gt;
* opkod&lt;br /&gt;
* adresa&lt;br /&gt;
* indeksni modifikator&lt;br /&gt;
* bitovi za uvjetno grananje&lt;br /&gt;
&lt;br /&gt;
Ovaj format omogućavao je fleksibilno adresiranje i kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Floating‑point implementacija ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je prvo komercijalno računalo koje je imalo ugrađenu hardversku podršku za aritmetiku s pomičnim zarezom. Ovo je bio ključni tehnološki iskorak koji je omogućio razvoj FORTRAN-a i znanstvenih aplikacija koje su zahtijevale visoku numeričku preciznost.&lt;br /&gt;
&lt;br /&gt;
Floating‑point brojevi u IBM 704 bili su pohranjeni u 36‑bitnim riječima, podijeljenima na dva glavna dijela:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Mantisa&#039;&#039;&#039; – 27 bitova  &lt;br /&gt;
* &#039;&#039;&#039;Eksponent&#039;&#039;&#039; – 8 bitova (excess‑128 format)  &lt;br /&gt;
* &#039;&#039;&#039;Znak&#039;&#039;&#039; – 1 bit&lt;br /&gt;
&lt;br /&gt;
=== Format floating‑point riječi ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Format floating‑point broja (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! Polje&lt;br /&gt;
! Duljina&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Znak mantise&lt;br /&gt;
| 1 bit&lt;br /&gt;
| Određuje pozitivan ili negativan broj.&lt;br /&gt;
|-&lt;br /&gt;
| Mantisa&lt;br /&gt;
| 27 bitova&lt;br /&gt;
| Normalizirana mantisa bez skrivenog bita.&lt;br /&gt;
|-&lt;br /&gt;
| Eksponent&lt;br /&gt;
| 8 bitova&lt;br /&gt;
| Excess‑128 format (stvarni eksponent = pohranjeni − 128).&lt;br /&gt;
|-&lt;br /&gt;
| Rezervirano&lt;br /&gt;
| 0 bitova&lt;br /&gt;
| Format je potpuno iskorišten; nema neiskorištenih bitova.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Excess‑128 eksponent ===&lt;br /&gt;
&lt;br /&gt;
Eksponent je pohranjen u obliku:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
stvarni_eksponent = pohranjeni_eksponent − 128&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj pristup omogućavao je jednostavnije usporedbe i normalizaciju brojeva.&lt;br /&gt;
&lt;br /&gt;
=== Normalizacija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 zahtijevao je da mantisa bude normalizirana tako da najviši bit mantise bude različit od nule.  &lt;br /&gt;
To je omogućavalo maksimalnu preciznost pri izračunima.&lt;br /&gt;
&lt;br /&gt;
=== Floating‑point operacije ===&lt;br /&gt;
&lt;br /&gt;
Računalo je podržavalo sljedeće operacije nad floating‑point brojevima:&lt;br /&gt;
&lt;br /&gt;
* zbrajanje (ADD)  &lt;br /&gt;
* oduzimanje (SUB)  &lt;br /&gt;
* množenje (MPY)  &lt;br /&gt;
* dijeljenje (DIV)&lt;br /&gt;
&lt;br /&gt;
Sve operacije koristile su aritmetičku jedinicu AC/MQ, pri čemu se rezultat normalizirao automatski.&lt;br /&gt;
&lt;br /&gt;
=== Primjer floating‑point operacije u assembleru ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj floating-point broj A&lt;br /&gt;
ADD B        / zbroji ga s B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Važnost floating‑point implementacije ===&lt;br /&gt;
&lt;br /&gt;
Hardverska podrška za pomični zarez bila je ključna za:&lt;br /&gt;
&lt;br /&gt;
* razvoj FORTRAN-a (1957.)&lt;br /&gt;
* balističke izračune&lt;br /&gt;
* aerodinamičke simulacije&lt;br /&gt;
* nuklearne proračune&lt;br /&gt;
* statističke modele&lt;br /&gt;
* rane znanstvene aplikacije NASA-e&lt;br /&gt;
&lt;br /&gt;
IBM 704 je time postavio standard koji će kasnije preuzeti svi moderni procesori.&lt;br /&gt;
&lt;br /&gt;
== Instrukcijski skup IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Glavne grupe instrukcija IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Grupa&lt;br /&gt;
! Primjeri&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Aritmetičke instrukcije&lt;br /&gt;
| ADD, SUB, MPY, DIV&lt;br /&gt;
| Operacije nad AC i MQ registrima; podrška za cijele brojeve i pomični zarez.&lt;br /&gt;
|-&lt;br /&gt;
| Logičke instrukcije&lt;br /&gt;
| CLA, CLM, COM&lt;br /&gt;
| Čišćenje, komplementiranje i manipulacija bitovima.&lt;br /&gt;
|-&lt;br /&gt;
| Uvjetno grananje&lt;br /&gt;
| TRA, TMI, TPL, TZE&lt;br /&gt;
| Skokovi ovisno o sadržaju AC ili MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Rad sa Sense Indicators&lt;br /&gt;
| TSI, SSI, RSI&lt;br /&gt;
| Testiranje, postavljanje i resetiranje statusnih bitova.&lt;br /&gt;
|-&lt;br /&gt;
| Indeksno adresiranje&lt;br /&gt;
| AXT, TXI&lt;br /&gt;
| Modifikacija adresa pomoću XR1, XR2, XR4.&lt;br /&gt;
|-&lt;br /&gt;
| Ulazno/izlazne instrukcije&lt;br /&gt;
| RDS, WRS, RWT&lt;br /&gt;
| Rad s magnetskom vrpcom, kartičnim čitačem i pisačem.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrola toka programa&lt;br /&gt;
| HLT, NOP&lt;br /&gt;
| Zaustavljanje programa, prazna instrukcija.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Opkodovi IBM 704 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Kompletan popis opkoda IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Opkod&lt;br /&gt;
! Mnemonik&lt;br /&gt;
! Grupa&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 000&lt;br /&gt;
| NOP&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Prazna instrukcija; ne radi ništa.&lt;br /&gt;
|-&lt;br /&gt;
| 001&lt;br /&gt;
| HLT&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Zaustavlja izvršavanje programa.&lt;br /&gt;
|-&lt;br /&gt;
| 002&lt;br /&gt;
| TRA&lt;br /&gt;
| Grananje&lt;br /&gt;
| Bezuvjetni skok na adresu.&lt;br /&gt;
|-&lt;br /&gt;
| 003&lt;br /&gt;
| TRN&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC negativan.&lt;br /&gt;
|-&lt;br /&gt;
| 004&lt;br /&gt;
| TMI&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC manji od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 005&lt;br /&gt;
| TPL&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC veći od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 006&lt;br /&gt;
| TZE&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC jednak nuli.&lt;br /&gt;
|-&lt;br /&gt;
| 007&lt;br /&gt;
| TOV&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je overflow zastavica postavljena.&lt;br /&gt;
|-&lt;br /&gt;
| 010&lt;br /&gt;
| ADD&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Zbrajanje sadržaja memorije s AC.&lt;br /&gt;
|-&lt;br /&gt;
| 011&lt;br /&gt;
| SUB&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Oduzimanje sadržaja memorije od AC.&lt;br /&gt;
|-&lt;br /&gt;
| 012&lt;br /&gt;
| MPY&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Množenje; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 013&lt;br /&gt;
| DIV&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Dijeljenje; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 014&lt;br /&gt;
| CLA&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 015&lt;br /&gt;
| CLM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 016&lt;br /&gt;
| COM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Komplementira AC.&lt;br /&gt;
|-&lt;br /&gt;
| 020&lt;br /&gt;
| SHL&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak ulijevo.&lt;br /&gt;
|-&lt;br /&gt;
| 021&lt;br /&gt;
| SHR&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak udesno.&lt;br /&gt;
|-&lt;br /&gt;
| 030&lt;br /&gt;
| AXT&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Učitava vrijednost u XR1, XR2 ili XR4.&lt;br /&gt;
|-&lt;br /&gt;
| 031&lt;br /&gt;
| TXI&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Dodaje vrijednost indeksnom registru.&lt;br /&gt;
|-&lt;br /&gt;
| 040&lt;br /&gt;
| RDS&lt;br /&gt;
| I/O&lt;br /&gt;
| Čitanje s magnetske vrpce.&lt;br /&gt;
|-&lt;br /&gt;
| 041&lt;br /&gt;
| WRS&lt;br /&gt;
| I/O&lt;br /&gt;
| Pisanje na magnetsku vrpcu.&lt;br /&gt;
|-&lt;br /&gt;
| 042&lt;br /&gt;
| RWT&lt;br /&gt;
| I/O&lt;br /&gt;
| Čekanje na I/O operaciju.&lt;br /&gt;
|-&lt;br /&gt;
| 050&lt;br /&gt;
| TSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Testira Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 051&lt;br /&gt;
| SSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Postavlja Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 052&lt;br /&gt;
| RSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Resetira Sense Indicator n.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Registri==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--             --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:88%;width:34em;&amp;quot;&lt;br /&gt;
|+ Registri u računalu IBM 704&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| style=&amp;quot;font-size:88%;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Podatkovni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | S&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | Q&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | P&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;14&amp;quot;| Akumulator&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | AC&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;1&amp;quot;| S&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;11&amp;quot;| Množitelj/Količnik&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | MQ&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;12&amp;quot;| Senzorni indikatori&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | SI&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 1&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR1 (XRA)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 2&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR2 (XRB)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 4 &lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR4 (XRC)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;14&amp;quot; | &#039;&#039;&#039;Brojač naredbi&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Brojač&amp;amp;nbsp;Naredbi&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| IC&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzorni indikatori&#039;&#039;&#039; - su posebni statusni bitovi u IBM 704 koj su se u praksi rabili za provjeru grešaka, grananje ovisno o stanju sustava, upravljanje perifernim jedinicama, te za signalizaciju posebnih događaja. Kroz njih programeri su mogli održavati stanje sustava, signalizirati određene uvjete tokom izvršavanje naredbi, čitanje i postavljanje naredbi i tako su služili za jednostane oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Sense Indicators (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! SI broj&lt;br /&gt;
! Naziv / funkcija&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Overflow flag&lt;br /&gt;
| Postavlja se pri prekoračenju rezultata u akumulatoru (AC) ili količniku (MQ).&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Divide check&lt;br /&gt;
| Signalizira pogrešku pri dijeljenju, uključujući dijeljenje nulom.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| I/O ready&lt;br /&gt;
| Uređaj spreman za prijenos podataka.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| I/O complete&lt;br /&gt;
| Završetak operacije ulaza/izlaza.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Tape mark&lt;br /&gt;
| Očitana oznaka kraja bloka na magnetskoj vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Printer ready&lt;br /&gt;
| Pisač spreman za rad.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Card reader ready&lt;br /&gt;
| Čitač kartica spreman.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Card punch ready&lt;br /&gt;
| Bušilica kartica spremna.&lt;br /&gt;
|-&lt;br /&gt;
| 8–15&lt;br /&gt;
| Peripheral flags&lt;br /&gt;
| Razni signali perifernih uređaja (disk, vrpca, pisač).&lt;br /&gt;
|-&lt;br /&gt;
| 16–35&lt;br /&gt;
| User-defined flags&lt;br /&gt;
| Zastavice koje programer može slobodno koristiti za logiku grananja.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Korištenje u IBM 704 assembleru ====&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao posebne instrukcije za rad sa Sense Indicators:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;TSI n&#039;&#039;&#039;&lt;br /&gt;
: Testira Sense Indicator &#039;&#039;n&#039;&#039;. Ako je postavljen, izvršavanje se nastavlja normalno; ako nije, preskače se sljedeća instrukcija.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3      / provjeri je li I/O complete&lt;br /&gt;
TRA DONE   / ako je postavljen, skoči na DONE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;SSI n&#039;&#039;&#039;&lt;br /&gt;
: Postavlja Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;RSI n&#039;&#039;&#039;&lt;br /&gt;
: Resetira Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 1      / provjeri divide check&lt;br /&gt;
TRA ERROR  / ako je SI1 = 1, idi na ERROR&lt;br /&gt;
&lt;br /&gt;
SSI 20     / postavi korisnički indikator 20&lt;br /&gt;
RSI 3      / resetiraj I/O complete indikator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Usporedba s modernim statusnim registrima ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! IBM 704 Sense Indicators&lt;br /&gt;
! Moderni statusni registri (x86, ARM, RISC-V)&lt;br /&gt;
|-&lt;br /&gt;
| 36 jednobitnih zastavica&lt;br /&gt;
| 8–32 bitni statusni registri&lt;br /&gt;
|-&lt;br /&gt;
| Ručno postavljanje i brisanje&lt;br /&gt;
| Automatsko postavljanje od strane ALU&lt;br /&gt;
|-&lt;br /&gt;
| Koriste se za I/O signalizaciju&lt;br /&gt;
| I/O signalizacija preko interrupt kontrolera&lt;br /&gt;
|-&lt;br /&gt;
| Jednostavne logičke zastavice&lt;br /&gt;
| Zastavice za aritmetiku, usporedbe, prekide&lt;br /&gt;
|-&lt;br /&gt;
| Programer koristi dio SI kao &amp;quot;user flags&amp;quot;&lt;br /&gt;
| Moderni jezici koriste varijable, strukture, objekte&lt;br /&gt;
|-&lt;br /&gt;
| Grananje preko TSI instrukcije&lt;br /&gt;
| Grananje preko CMP/JMP, BEQ/BNE, BLT/BGT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Primjeri IBM 704 assembler koda ==&lt;br /&gt;
&lt;br /&gt;
=== Zbrajanje dvaju brojeva ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj A u AC&lt;br /&gt;
ADD B        / dodaj B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Provjera negativnog broja ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA X        / učitaj X&lt;br /&gt;
TMI NEG      / ako je X &amp;lt; 0, idi na NEG&lt;br /&gt;
TRA DONE     / inače nastavi&lt;br /&gt;
NEG STO Y    / spremi negativnu vrijednost&lt;br /&gt;
DONE HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Množenje i dijeljenje ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A&lt;br /&gt;
MPY B        / AC*B → AC/MQ&lt;br /&gt;
DIV C        / (AC/MQ) / C → MQ (količnik), AC (ostatak)&lt;br /&gt;
STO Q        / spremi količnik&lt;br /&gt;
STO R        / spremi ostatak&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Korištenje Sense Indicators ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3        / provjeri I/O complete&lt;br /&gt;
TRA IO_OK    / ako je SI3 = 1, idi na IO_OK&lt;br /&gt;
SSI 20       / postavi korisnički indikator 20&lt;br /&gt;
IO_OK HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Performanse IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od najbržih znanstvenih računala svoje generacije. Njegova arhitektura s pomičnim zarezom, magnetskom jezgrom i specijaliziranim aritmetičkim registrima omogućavala je znatno bolje performanse u odnosu na prethodne modele IBM 701 i IBM 702. Sustav je bio optimiziran za matematičke operacije, simulacije, statističke izračune i obradu velikih numeričkih skupova podataka.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Performanse računala IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Brzina zbrajanja&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za izvršavanje jedne ADD instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina množenja&lt;br /&gt;
| ~20 μs&lt;br /&gt;
| Vrijeme za MPY instrukciju; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina dijeljenja&lt;br /&gt;
| ~38 μs&lt;br /&gt;
| Vrijeme za DIV instrukciju; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| Memorija&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Magnetska jezgra; pristup ~12 μs.&lt;br /&gt;
|-&lt;br /&gt;
| Ciklus instrukcije&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Prosječno vrijeme za dohvat i izvršavanje jednostavne instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina I/O operacija&lt;br /&gt;
| 7200 kartica/min (čitač)&lt;br /&gt;
| Kartični čitač i bušilica bili su glavni ulazno/izlazni sustavi.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| 12 500 znakovnih blokova/s&lt;br /&gt;
| Ovisno o uređaju; korišteno za masovno spremanje podataka.&lt;br /&gt;
|-&lt;br /&gt;
| Preciznost pomičnog zareza&lt;br /&gt;
| 27-bitni eksponent + 8-bitna mantisa&lt;br /&gt;
| Omogućavalo znanstvene izračune velike preciznosti.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pouzdanost ==&lt;br /&gt;
&lt;br /&gt;
Iako je IBM 704 bio znatno pouzdaniji od svog prethodnika IBM 701, i dalje je bio stroj temeljen na vakuumskim cijevima, što je značilo relativno česte kvarove prema današnjim standardima. Prosječno vrijeme između kvarova iznosilo je oko 8 sati, što je ograničavalo veličinu programa koje je bilo moguće kompajlirati ili izvršavati bez prekida.&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN kompajleri morali su biti iznimno učinkoviti jer bi preduga kompilacija mogla biti prekinuta kvarom sustava. Unatoč tome, IBM 704 je bio dovoljno pouzdan da postane temelj za razvoj FORTRAN-a, LISP-a, ranih neuralnih mreža i brojnih znanstvenih projekata.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Pouzdanost IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| MTBF (mean time between failure)&lt;br /&gt;
| ~8 sati&lt;br /&gt;
| Prosječno vrijeme rada prije kvara.&lt;br /&gt;
|-&lt;br /&gt;
| Usporedba s IBM 701&lt;br /&gt;
| ~30 minuta&lt;br /&gt;
| IBM 704 bio je znatno pouzdaniji od svog prethodnika.&lt;br /&gt;
|-&lt;br /&gt;
| Utjecaj na softver&lt;br /&gt;
| Ograničena veličina programa&lt;br /&gt;
| Kompilacije su morale biti kratke zbog mogućih kvarova.&lt;br /&gt;
|-&lt;br /&gt;
| Tehnologija&lt;br /&gt;
| Vakuumske cijevi&lt;br /&gt;
| Glavni uzrok kvarova i zagrijavanja sustava.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SAP asembler ==&lt;br /&gt;
&lt;br /&gt;
SAP (&#039;&#039;Symbolic Assembly Program&#039;&#039;) bio je službeni asembler za IBM 704 i predstavljao je jedan od najranijih i najutjecajnijih asemblera u povijesti računarstva. Razvijen je unutar IBM-a sredinom 1950-ih kako bi programerima omogućio pisanje simboličkog koda umjesto ručnog unošenja numeričkih opkoda i adresa.&lt;br /&gt;
&lt;br /&gt;
SAP je bio ključan za razvoj FORTRAN-a, LISP-a i mnogih ranih znanstvenih aplikacija, jer je omogućio jednostavnije pisanje, čitanje i održavanje programa na IBM 704.&lt;br /&gt;
&lt;br /&gt;
=== Značajke SAP asemblera ===&lt;br /&gt;
&lt;br /&gt;
SAP je imao nekoliko naprednih značajki za svoje vrijeme:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simboličke oznake&#039;&#039;&#039; – programeri su mogli koristiti imena umjesto numeričkih adresa.&lt;br /&gt;
* &#039;&#039;&#039;Automatsko izračunavanje adresa&#039;&#039;&#039; – asembler je sam određivao lokacije instrukcija.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za indeksne registre&#039;&#039;&#039; – XR1, XR2 i XR4 mogli su se koristiti u adresiranju.&lt;br /&gt;
* &#039;&#039;&#039;Jednostavna sintaksa&#039;&#039;&#039; – instrukcije su bile kratke i čitljive.&lt;br /&gt;
* &#039;&#039;&#039;Integracija s FORTRAN-om&#039;&#039;&#039; – FORTRAN kompajler generirao je SAP kod.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za floating‑point operacije&#039;&#039;&#039; – izravno korištenje AC/MQ jedinice.&lt;br /&gt;
&lt;br /&gt;
SAP je bio jedan od prvih asemblera koji je omogućio relativno visok stupanj apstrakcije u odnosu na strojni kod.&lt;br /&gt;
&lt;br /&gt;
=== Struktura SAP instrukcije ===&lt;br /&gt;
&lt;br /&gt;
Instrukcije su se sastojale od:&lt;br /&gt;
&lt;br /&gt;
* mnemonika (ADD, SUB, MPY, DIV, TRA…)&lt;br /&gt;
* adrese ili simbola&lt;br /&gt;
* opcionalnog indeksnog modifikatora&lt;br /&gt;
* komentara&lt;br /&gt;
&lt;br /&gt;
Primjer strukture:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
MNEMONIK  ADRESA,XR   / komentar&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Primjer SAP koda ===&lt;br /&gt;
&lt;br /&gt;
Slijedi povijesno točan primjer SAP koda za IBM 704:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
A      DEC 5          / definiraj konstantu A&lt;br /&gt;
B      DEC 7          / definiraj konstantu B&lt;br /&gt;
C      BSS 1          / rezerviraj prostor za rezultat&lt;br /&gt;
&lt;br /&gt;
       CLA A          / učitaj A u AC&lt;br /&gt;
       ADD B          / dodaj B&lt;br /&gt;
       STO C          / spremi rezultat u C&lt;br /&gt;
       HLT            / zaustavi program&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Korištenje indeksnih registara ===&lt;br /&gt;
&lt;br /&gt;
SAP je omogućavao jednostavno korištenje XR1, XR2 i XR4:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
LOOP   CLA ARRAY,XR1  / učitaj element polja&lt;br /&gt;
       ADD SUM        / dodaj na sumu&lt;br /&gt;
       STO SUM        / spremi rezultat&lt;br /&gt;
       TXI XR1,1      / povećaj indeks&lt;br /&gt;
       TPL LOOP       / ako je pozitivan, nastavi petlju&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio preteča modernih petlji u visokorazinskim jezicima.&lt;br /&gt;
&lt;br /&gt;
=== SAP i FORTRAN ===&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN kompajler generirao je SAP kod koji se zatim prevodio u strojni kod IBM 704.  &lt;br /&gt;
Zbog toga je SAP bio ključan za:&lt;br /&gt;
&lt;br /&gt;
* optimizaciju FORTRAN programa,&lt;br /&gt;
* implementaciju DO petlji,&lt;br /&gt;
* rad s poljima i matricama,&lt;br /&gt;
* floating‑point operacije,&lt;br /&gt;
* kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
=== SAP i LISP ===&lt;br /&gt;
&lt;br /&gt;
Prva implementacija LISP-a (1958.) bila je napisana upravo u SAP asembleru.  &lt;br /&gt;
SAP je omogućio:&lt;br /&gt;
&lt;br /&gt;
* manipulaciju cons‑struktura,&lt;br /&gt;
* implementaciju CAR i CDR operacija,&lt;br /&gt;
* rekurziju,&lt;br /&gt;
* dinamičko upravljanje memorijom.&lt;br /&gt;
&lt;br /&gt;
Bez SAP-a, LISP ne bi mogao biti implementiran na IBM 704.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj SAP-a ===&lt;br /&gt;
&lt;br /&gt;
SAP je bio jedan od najvažnijih asemblera 1950-ih i 1960-ih.  &lt;br /&gt;
Njegov utjecaj vidljiv je u:&lt;br /&gt;
&lt;br /&gt;
* razvoju FORTRAN-a,&lt;br /&gt;
* nastanku LISP-a,&lt;br /&gt;
* ranim AI projektima,&lt;br /&gt;
* znanstvenim simulacijama,&lt;br /&gt;
* razvoju modernih asemblera i kompajlera.&lt;br /&gt;
&lt;br /&gt;
SAP je postavio temelje za simboličko programiranje i bio je ključni alat u zlatnom dobu ranog računarstva.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju LISP-a ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je ključnu ulogu u nastanku programskog jezika LISP, jednog od najvažnijih jezika u povijesti računarstva. LISP je 1958. godine razvio John McCarthy na MIT-u, a upravo je IBM 704 bio prvo računalo na kojem je LISP implementiran i izvršavan.&amp;lt;ref&amp;gt;http://jmc.stanford.edu/articles/lisp/lisp.pdf &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Razvoj LISP-a bio je izravno povezan s arhitekturom IBM 704, posebno s njegovim:&lt;br /&gt;
* 36-bitnim riječima,&lt;br /&gt;
* aritmetičkom jedinicom AC/MQ,&lt;br /&gt;
* indeksnim registrima,&lt;br /&gt;
* mogućnošću manipulacije adresama,&lt;br /&gt;
* podrškom za uvjetno grananje,&lt;br /&gt;
* te fleksibilnim instrukcijskim formatom.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio pogodan za LISP ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je nekoliko arhitekturnih značajki koje su se pokazale idealnima za implementaciju LISP-a:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;36-bitne riječi&#039;&#039;&#039; omogućavale su učinkovito predstavljanje parova (cons cells).&lt;br /&gt;
* &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039; olakšavali su rad s listama i rekurzivnim strukturama.&lt;br /&gt;
* &#039;&#039;&#039;Instrukcije grananja&#039;&#039;&#039; (TRA, TMI, TPL, TZE) omogućavale su jednostavnu implementaciju rekurzije.&lt;br /&gt;
* &#039;&#039;&#039;Magnetska jezgra&#039;&#039;&#039; bila je dovoljno brza za dinamičke strukture podataka.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za floating-point&#039;&#039;&#039; olakšala je rad s matematičkim funkcijama.&lt;br /&gt;
&lt;br /&gt;
McCarthy je iskoristio ove mogućnosti kako bi implementirao osnovne LISP konstrukte: CONS, CAR, CDR, rekurziju, lambda‑izraze i funkcije višeg reda.&lt;br /&gt;
&lt;br /&gt;
=== Prva implementacija LISP-a ===&lt;br /&gt;
&lt;br /&gt;
Prva verzija LISP-a bila je napisana u SAP asembleru za IBM 704.  &lt;br /&gt;
Ova implementacija uključivala je:&lt;br /&gt;
&lt;br /&gt;
* interpreter,&lt;br /&gt;
* evaluator,&lt;br /&gt;
* upravljanje memorijom,&lt;br /&gt;
* implementaciju cons‑struktura,&lt;br /&gt;
* osnovne matematičke funkcije,&lt;br /&gt;
* te mehanizme za rekurziju i funkcije višeg reda.&lt;br /&gt;
&lt;br /&gt;
LISP je na IBM 704 radio kao interpretirani jezik, a programi su se izvršavali izravno nad strukturom lista u memoriji.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je omogućio LISP-u da postane prvi široko korišteni jezik za:&lt;br /&gt;
&lt;br /&gt;
* umjetnu inteligenciju,&lt;br /&gt;
* simboličku manipulaciju,&lt;br /&gt;
* matematičku logiku,&lt;br /&gt;
* rane ekspertske sustave,&lt;br /&gt;
* istraživanje strojnog učenja.&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, LISP bi vjerojatno bio znatno drugačiji — ili bi se pojavio mnogo kasnije.&lt;br /&gt;
&lt;br /&gt;
=== Primjer ranog LISP izraza (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Iako se LISP nije zapisivao u assembleru, njegovi izrazi su se prevodili u SAP kod za IBM 704.  &lt;br /&gt;
Primjer jednostavne LISP funkcije:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(define (square x)&lt;br /&gt;
  (* x x))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj izraz bi se na IBM 704 interno pretvorio u operacije nad cons‑struktura i pozive aritmetičkih instrukcija MPY i ADD.&lt;br /&gt;
&lt;br /&gt;
=== Utjecaj na daljnji razvoj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je bio platforma na kojoj su nastale ključne ideje:&lt;br /&gt;
&lt;br /&gt;
* automatsko upravljanje memorijom,&lt;br /&gt;
* rekurzija kao temeljni mehanizam,&lt;br /&gt;
* funkcije višeg reda,&lt;br /&gt;
* lambda‑račun,&lt;br /&gt;
* simbolička obrada podataka.&lt;br /&gt;
&lt;br /&gt;
Ove ideje postale su temelj modernih programskih jezika, od Schemea i Prologa do Pythona i JavaScripta.&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju FORTRAN-a ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je presudnu ulogu u nastanku FORTRAN-a (Formula Translation), prvog široko korištenog visokorazinskog programskog jezika. FORTRAN je razvijen 1957. godine u IBM-u pod vodstvom Johna Backusa, a IBM 704 bio je prvo računalo na kojem je FORTRAN implementiran, kompajliran i izvršavan.&lt;br /&gt;
&lt;br /&gt;
Arhitektura IBM 704 izravno je oblikovala dizajn FORTRAN-a. Njegova podrška za aritmetiku s pomičnim zarezom, indeksne registre, statusne indikatore i 36-bitne riječi omogućila je stvaranje jezika koji je bio optimiziran za znanstvene i tehničke izračune.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio ključan za FORTRAN ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 posjedovao je nekoliko arhitekturnih značajki koje su bile presudne za razvoj FORTRAN-a:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Hardverska floating‑point jedinica&#039;&#039;&#039; – omogućila je izravnu podršku za matematičke operacije.&lt;br /&gt;
* &#039;&#039;&#039;Aritmetički registri AC i MQ&#039;&#039;&#039; – olakšali su implement&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju ranih neuralnih mreža ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je važnu ulogu u razvoju najranijih modela umjetnih neuronskih mreža tijekom kasnih 1950-ih i ranih 1960-ih. Iako su ti modeli bili daleko jednostavniji od današnjih dubokih mreža, IBM 704 je bio jedno od rijetkih računala koje je imalo dovoljno memorije, brzine i aritmetičkih mogućnosti da može izvoditi simulacije neuronskih mreža u praksi.&lt;br /&gt;
&lt;br /&gt;
Rani pioniri umjetne inteligencije, uključujući Franka Rosenblatta, Herberta Simona, Allena Newella i istraživače s MIT-a i Cornell Aeronautical Laboratory, koristili su IBM 704 za implementaciju i testiranje prvih algoritama koji su simulirali neuronsko učenje.&lt;br /&gt;
&lt;br /&gt;
=== IBM 704 i perceptron ===&lt;br /&gt;
&lt;br /&gt;
Najvažniji doprinos IBM 704 razvoju neuralnih mreža bio je u implementaciji i simulaciji **Rosenblattovog perceptrona**, prvog formalnog modela neuronske mreže koji je mogao učiti iz podataka.&amp;lt;ref&amp;gt;https://as.cornell.edu/news/professors-perceptron-paved-way-ai-60-years-too-soon&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IBM 704 omogućio je:&lt;br /&gt;
&lt;br /&gt;
* izračun težina perceptrona,&lt;br /&gt;
* simulaciju učenja kroz iteracije,&lt;br /&gt;
* rad s matricama i vektorima,&lt;br /&gt;
* evaluaciju linearnih klasifikatora,&lt;br /&gt;
* testiranje različitih skupova podataka.&lt;br /&gt;
&lt;br /&gt;
Iako je perceptron kasnije imao i hardversku implementaciju (Mark I Perceptron), IBM 704 bio je ključan za **prve softverske simulacije** koje su potvrdile da se neuronske mreže mogu trenirati računalno.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio pogodan za neuralne mreže ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je nekoliko arhitekturnih značajki koje su bile iznimno korisne za rane AI eksperimente:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Floating‑point jedinica&#039;&#039;&#039; – omogućila je precizne izračune težina i aktivacijskih funkcija.&lt;br /&gt;
* &#039;&#039;&#039;Aritmetički registri AC/MQ&#039;&#039;&#039; – ubrzali su operacije nad vektorima.&lt;br /&gt;
* &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039; – olakšali su rad s matricama i iteracijama.&lt;br /&gt;
* &#039;&#039;&#039;Magnetska jezgra&#039;&#039;&#039; – bila je dovoljno brza za ponavljajuće izračune.&lt;br /&gt;
* &#039;&#039;&#039;Instrukcije grananja&#039;&#039;&#039; – omogućile su implementaciju algoritama učenja.&lt;br /&gt;
&lt;br /&gt;
Zbog toga je IBM 704 bio jedno od prvih računala koje je moglo izvoditi **iterativne algoritme učenja**, temeljne za neuralne mreže.&lt;br /&gt;
&lt;br /&gt;
=== Rani eksperimenti umjetne inteligencije ===&lt;br /&gt;
&lt;br /&gt;
Na IBM 704 provodili su se rani eksperimenti koji su uključivali:&lt;br /&gt;
&lt;br /&gt;
* simulaciju perceptrona,&lt;br /&gt;
* klasifikaciju jednostavnih vizualnih uzoraka,&lt;br /&gt;
* prepoznavanje znakova,&lt;br /&gt;
* rane oblike strojne percepcije,&lt;br /&gt;
* istraživanje linearnih i nelinearnih funkcija aktivacije.&lt;br /&gt;
&lt;br /&gt;
Ovi eksperimenti bili su temelj za kasniji razvoj:&lt;br /&gt;
&lt;br /&gt;
* višeslojnih perceptrona,&lt;br /&gt;
* backpropagation algoritma,&lt;br /&gt;
* dubokog učenja,&lt;br /&gt;
* računalnog vida.&lt;br /&gt;
&lt;br /&gt;
=== Primjer jednostavne perceptronske iteracije (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći pseudokod prikazuje kako je perceptron bio implementiran na IBM 704:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA W1        / učitaj težinu&lt;br /&gt;
MPY X1        / pomnoži s ulazom&lt;br /&gt;
ADD SUM       / dodaj na akumuliranu sumu&lt;br /&gt;
STO SUM       / spremi novu vrijednost&lt;br /&gt;
&lt;br /&gt;
... ponavljati za sve ulaze ...&lt;br /&gt;
&lt;br /&gt;
CLA SUM&lt;br /&gt;
TMI UPDATE    / ako je pogreška negativna, ažuriraj težine&lt;br /&gt;
TPL UPDATE    / ako je pogreška pozitivna, također ažuriraj&lt;br /&gt;
&lt;br /&gt;
UPDATE:&lt;br /&gt;
ADD ERROR     / korekcija težine&lt;br /&gt;
STO W1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio jedan od prvih primjera **računalnog učenja** u povijesti.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je ključan za rani razvoj umjetne inteligencije jer je:&lt;br /&gt;
&lt;br /&gt;
* omogućio prve računalne simulacije neuronskih mreža,&lt;br /&gt;
* bio platforma za perceptron i rane modele učenja,&lt;br /&gt;
* omogućio istraživanje algoritama koji su kasnije postali temelj dubokog učenja,&lt;br /&gt;
* povezao AI istraživanje s praktičnim računalnim sustavima.&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, razvoj ranih neuralnih mreža bio bi znatno sporiji i ograničeniji.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u ranoj robotici ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je važnu ulogu u razvoju najranijih oblika robotike i automatizacije tijekom kasnih 1950-ih i ranih 1960-ih. Iako se u to vrijeme pojam „robotika“ tek počeo pojavljivati u znanstvenoj literaturi, IBM 704 bio je jedno od prvih računala koje je moglo upravljati mehaničkim sustavima, analizirati senzorske podatke i izvoditi algoritme koji su predstavljali preteču modernog upravljanja robotima.&lt;br /&gt;
&lt;br /&gt;
Rani robotski sustavi bili su primitivni u odnosu na današnje, ali IBM 704 je omogućio:&lt;br /&gt;
&lt;br /&gt;
* upravljanje aktuatorima i elektromehaničkim uređajima,&lt;br /&gt;
* obradu ulaznih signala iz senzora,&lt;br /&gt;
* simulaciju kretanja i kontrolnih petlji,&lt;br /&gt;
* rane eksperimente u automatskom upravljanju,&lt;br /&gt;
* integraciju s vizualnim sustavima (CRT prikaz IBM 740).&lt;br /&gt;
&lt;br /&gt;
=== Rani eksperimenti automatizacije ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 korišten je u laboratorijima i istraživačkim centrima za:&lt;br /&gt;
&lt;br /&gt;
* upravljanje robotskim manipulatorima,&lt;br /&gt;
* simulaciju kinematike i dinamike,&lt;br /&gt;
* upravljanje servo‑motorima,&lt;br /&gt;
* automatizaciju industrijskih procesa,&lt;br /&gt;
* rane oblike povratne sprege (feedback control).&lt;br /&gt;
&lt;br /&gt;
Ovi sustavi nisu bili roboti u modernom smislu, ali su predstavljali ključne korake prema:&lt;br /&gt;
&lt;br /&gt;
* numeričkom upravljanju strojevima (NC machines),&lt;br /&gt;
* automatskim manipulatorima,&lt;br /&gt;
* sustavima za automatsko pozicioniranje,&lt;br /&gt;
* ranim oblicima cybernetike.&lt;br /&gt;
&lt;br /&gt;
=== IBM 704 i cybernetika ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je često korišten u istraživanjima inspiriranim radom Norberta Wienera, osnivača cybernetike.  &lt;br /&gt;
Sustav je omogućavao:&lt;br /&gt;
&lt;br /&gt;
* simulaciju povratne sprege,&lt;br /&gt;
* analizu stabilnosti sustava,&lt;br /&gt;
* implementaciju kontrolnih algoritama,&lt;br /&gt;
* rane oblike adaptivnog upravljanja.&lt;br /&gt;
&lt;br /&gt;
Ovo je bilo ključno za razvoj robotskih sustava koji se mogu prilagođavati promjenama u okruženju.&lt;br /&gt;
&lt;br /&gt;
=== Vizualni sustavi i IBM 740 ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 se mogao povezati s CRT zaslonom IBM 740, koji je omogućavao:&lt;br /&gt;
&lt;br /&gt;
* prikaz vektorskih grafika,&lt;br /&gt;
* vizualizaciju putanja kretanja,&lt;br /&gt;
* prikaz senzorskih podataka,&lt;br /&gt;
* rane eksperimente u računalnom vidu.&lt;br /&gt;
&lt;br /&gt;
Iako primitivni, ovi sustavi bili su preteča kasnijih robotskih vizualnih sustava.&lt;br /&gt;
&lt;br /&gt;
=== Primjer jednostavne kontrolne petlje (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći SAP kod prikazuje kako je IBM 704 mogao implementirati jednostavnu kontrolnu petlju za upravljanje aktuatorom:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
READSENSOR  RDS SENS        / očitaj senzor&lt;br /&gt;
           CLA SENS        / učitaj vrijednost&lt;br /&gt;
           SUB TARGET      / usporedi s ciljem&lt;br /&gt;
           TPL INCREASE    / ako je pozitivno, povećaj izlaz&lt;br /&gt;
           TMI DECREASE    / ako je negativno, smanji izlaz&lt;br /&gt;
&lt;br /&gt;
INCREASE   ADD STEP        / povećaj upravljački signal&lt;br /&gt;
           STO ACTUATOR&lt;br /&gt;
           TRA LOOP&lt;br /&gt;
&lt;br /&gt;
DECREASE   SUB STEP        / smanji upravljački signal&lt;br /&gt;
           STO ACTUATOR&lt;br /&gt;
           TRA LOOP&lt;br /&gt;
&lt;br /&gt;
LOOP       TRA READSENSOR  / ponovi petlju&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio jedan od prvih primjera računalno upravljanih mehaničkih sustava.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je ključan za rani razvoj robotike jer je:&lt;br /&gt;
&lt;br /&gt;
* omogućio prve računalne simulacije upravljanja strojevima,&lt;br /&gt;
* bio platforma za cybernetičke eksperimente,&lt;br /&gt;
* omogućio integraciju senzora i aktuatora,&lt;br /&gt;
* pružio temelj za numeričko upravljanje strojevima (NC),&lt;br /&gt;
* povezao mehaniku, elektroniku i računalne algoritme.&lt;br /&gt;
&lt;br /&gt;
IBM 704 je time postavio temelje za kasniji razvoj industrijskih robota, autonomnih sustava i modernih robotskih tehnologija.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u ranom računalnom vidu ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je važnu ulogu u najranijim eksperimentima računalnog vida tijekom kasnih 1950-ih i ranih 1960-ih. Iako se računalni vid kao disciplina tek počeo formirati, IBM 704 bio je jedno od rijetkih računala koje je imalo dovoljno memorije, aritmetičke snage i mogućnosti prikaza da može obrađivati jednostavne vizualne podatke.&lt;br /&gt;
&lt;br /&gt;
Rani eksperimenti računalnog vida bili su usko povezani s istraživanjima umjetne inteligencije, perceptrona i robotike, a IBM 704 služio je kao platforma za:&lt;br /&gt;
&lt;br /&gt;
* prepoznavanje jednostavnih uzoraka,&lt;br /&gt;
* klasifikaciju vizualnih znakova,&lt;br /&gt;
* obradu digitaliziranih slika niske rezolucije,&lt;br /&gt;
* vizualizaciju podataka na CRT zaslonu IBM 740,&lt;br /&gt;
* rane eksperimente u strojnoj percepciji.&lt;br /&gt;
&lt;br /&gt;
=== IBM 704 i CRT zaslon IBM 740 ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 se mogao povezati s vektorskim CRT zaslonom IBM 740, koji je omogućavao:&lt;br /&gt;
&lt;br /&gt;
* prikaz linija, oblika i grafičkih uzoraka,&lt;br /&gt;
* vizualizaciju rezultata algoritama,&lt;br /&gt;
* prikaz putanja kretanja u robotskim sustavima,&lt;br /&gt;
* rane oblike grafičke analize.&lt;br /&gt;
&lt;br /&gt;
Iako primitivni, ovi sustavi bili su preteča kasnijih grafičkih terminala i vizualnih procesora.&lt;br /&gt;
&lt;br /&gt;
=== Rani eksperimenti prepoznavanja uzoraka ===&lt;br /&gt;
&lt;br /&gt;
Na IBM 704 provodili su se rani eksperimenti koji su uključivali:&lt;br /&gt;
&lt;br /&gt;
* prepoznavanje slova i brojeva,&lt;br /&gt;
* klasifikaciju jednostavnih geometrijskih oblika,&lt;br /&gt;
* analizu kontrasta i rubova,&lt;br /&gt;
* rane oblike segmentacije slike.&lt;br /&gt;
&lt;br /&gt;
Podaci su se obično unosili preko:&lt;br /&gt;
&lt;br /&gt;
* digitaliziranih kartica,&lt;br /&gt;
* ručno kodiranih matrica piksela,&lt;br /&gt;
* senzorskih uređaja povezanih s robotima.&lt;br /&gt;
&lt;br /&gt;
=== Veza s perceptronom i neuralnim mrežama ===&lt;br /&gt;
&lt;br /&gt;
Rosenblattov perceptron, koji je IBM 704 koristio za simulacije učenja, bio je izravno primijenjen na rane zadatke računalnog vida:&lt;br /&gt;
&lt;br /&gt;
* klasifikacija vizualnih uzoraka,&lt;br /&gt;
* prepoznavanje znakova,&lt;br /&gt;
* jednostavni modeli prepoznavanja oblika.&lt;br /&gt;
&lt;br /&gt;
IBM 704 omogućio je iterativno treniranje perceptrona nad vizualnim podacima, što je bio jedan od prvih primjera **računalnog učenja iz slike**.&lt;br /&gt;
&lt;br /&gt;
=== Primjer jednostavne vizualne analize (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći SAP kod prikazuje kako je IBM 704 mogao analizirati jednostavnu matricu piksela:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA PIXEL      / učitaj vrijednost piksela&lt;br /&gt;
SUB THRESH     / usporedi s pragom&lt;br /&gt;
TPL BRIGHT     / ako je veće od praga → svijetli piksel&lt;br /&gt;
TMI DARK       / ako je manje → tamni piksel&lt;br /&gt;
&lt;br /&gt;
BRIGHT STO OUT1&lt;br /&gt;
TRA NEXT&lt;br /&gt;
&lt;br /&gt;
DARK   STO OUT0&lt;br /&gt;
NEXT   TRA LOOP&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio jedan od prvih primitivnih algoritama za binarnu segmentaciju slike.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je ključan za rani razvoj računalnog vida jer je:&lt;br /&gt;
&lt;br /&gt;
* omogućio prve računalne eksperimente prepoznavanja uzoraka,&lt;br /&gt;
* bio platforma za vizualne simulacije u robotici,&lt;br /&gt;
* povezao neuralne mreže s vizualnim podacima,&lt;br /&gt;
* omogućio prikaz grafike na CRT zaslonu,&lt;br /&gt;
* postavio temelje za kasniji razvoj računalnog vida u 1960-ima i 1970-ima.&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, rani razvoj računalnog vida bio bi znatno sporiji i ograničeniji.&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju rane računalne glazbe ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je iznimno važnu ulogu u povijesti računalne glazbe. Bio je prvo računalo koje je ikada generiralo glazbu sintetički, koristeći digitalne algoritme za stvaranje zvuka. Ovaj povijesni događaj zbio se 1957. godine na Bell Labsu, kada su Max Mathews i njegov tim razvili program &#039;&#039;&#039;MUSIC I&#039;&#039;&#039; – prvi računalni sustav za digitalnu sintezu zvuka.&amp;lt;ref&amp;gt;https://ccrma.stanford.edu/radiobaton/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IBM 704 je time postao temelj cijelog područja računalne glazbe, digitalne sinteze, elektroničke glazbe i kasnije MIDI tehnologije.&lt;br /&gt;
&lt;br /&gt;
=== MUSIC I – prvi računalni glazbeni program ===&lt;br /&gt;
&lt;br /&gt;
Max Mathews je 1957. na IBM 704 napisao program &#039;&#039;&#039;MUSIC I&#039;&#039;&#039;, koji je:&lt;br /&gt;
&lt;br /&gt;
* generirao digitalne valne oblike,&lt;br /&gt;
* sintetizirao tonove i melodije,&lt;br /&gt;
* omogućio kontrolu frekvencije, amplitude i trajanja,&lt;br /&gt;
* stvarao zvuk numeričkim izračunima, a ne analognom elektronikom.&lt;br /&gt;
&lt;br /&gt;
Ovo je bio prvi put u povijesti da je glazba nastala isključivo računalnim izračunom.&lt;br /&gt;
&lt;br /&gt;
Kasnije verzije (MUSIC II, III, IV, V) postale su temelj modernih glazbenih sintesajzera i digitalnih audio sustava.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio pogodan za glazbenu sintezu ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je nekoliko ključnih značajki koje su omogućile digitalnu sintezu zvuka:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Floating‑point jedinica&#039;&#039;&#039; – omogućila precizne izračune valnih oblika.&lt;br /&gt;
* &#039;&#039;&#039;Brza magnetska jezgra&#039;&#039;&#039; – omogućila generiranje uzoraka u stvarnom vremenu (za to doba).&lt;br /&gt;
* &#039;&#039;&#039;Aritmetička jedinica AC/MQ&#039;&#039;&#039; – ubrzala izračune sinusnih i drugih funkcija.&lt;br /&gt;
* &#039;&#039;&#039;Instrukcijski skup optimiziran za matematičke operacije&#039;&#039;&#039; – savršen za DSP (digital signal processing).&lt;br /&gt;
* &#039;&#039;&#039;Mogućnost generiranja velikih nizova podataka&#039;&#039;&#039; – potrebnih za audio uzorke.&lt;br /&gt;
&lt;br /&gt;
IBM 704 je tako postao prvo računalo koje je moglo generirati digitalni zvuk dovoljno brzo da se može rekonstruirati na analognom pretvaraču.&lt;br /&gt;
&lt;br /&gt;
=== Prva računalno generirana pjesma ===&lt;br /&gt;
&lt;br /&gt;
Prvi glazbeni komad generiran na IBM 704 bio je jednostavan ton i kratka melodijska sekvenca.  &lt;br /&gt;
Kasnije su generirani:&lt;br /&gt;
&lt;br /&gt;
* jednostavni glazbeni motivi,&lt;br /&gt;
* kratke melodije,&lt;br /&gt;
* eksperimentalni zvukovi,&lt;br /&gt;
* rani oblici elektroničke glazbe.&lt;br /&gt;
&lt;br /&gt;
Ovi eksperimenti bili su preteča:&lt;br /&gt;
&lt;br /&gt;
* digitalnih sintesajzera,&lt;br /&gt;
* računalne glazbene kompozicije,&lt;br /&gt;
* algoritamske glazbe,&lt;br /&gt;
* elektroničke glazbe 1960-ih i 1970-ih.&lt;br /&gt;
&lt;br /&gt;
=== Primjer generiranja tona (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći SAP kod ilustrira kako je IBM 704 mogao generirati digitalni uzorak sinusnog vala:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA FREQ         / učitaj frekvenciju&lt;br /&gt;
MPY TIME         / pomnoži s vremenom&lt;br /&gt;
CALL SIN         / pozovi sinusnu funkciju&lt;br /&gt;
STO SAMPLE       / spremi uzorak&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj uzorak bi se zatim slao na digitalno‑analogni pretvarač.&lt;br /&gt;
&lt;br /&gt;
=== Utjecaj na glazbu i tehnologiju ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao ogroman utjecaj na razvoj glazbene tehnologije:&lt;br /&gt;
&lt;br /&gt;
* postavio je temelje digitalne sinteze,&lt;br /&gt;
* omogućio razvoj računalne kompozicije,&lt;br /&gt;
* inspirirao elektroničku glazbu,&lt;br /&gt;
* doveo do nastanka glazbenih jezika (MUSIC V, Csound),&lt;br /&gt;
* utjecao na razvoj MIDI standarda,&lt;br /&gt;
* otvorio put modernim DAW sustavima (Ableton, Logic, Pro Tools).&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, digitalna glazba bi se pojavila mnogo kasnije – ili u potpuno drugačijem obliku.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je bio:&lt;br /&gt;
&lt;br /&gt;
* prvo računalo koje je generiralo glazbu,&lt;br /&gt;
* temelj digitalne sinteze,&lt;br /&gt;
* ključni alat za Maxa Mathewsa, „oca računalne glazbe“,&lt;br /&gt;
* preteča svih modernih glazbenih algoritama, sintesajzera i audio procesora.&lt;br /&gt;
&lt;br /&gt;
Njegova uloga u glazbenoj povijesti jednako je važna kao i njegova uloga u razvoju FORTRAN-a, LISP-a, robotike i neuralnih mreža.&lt;br /&gt;
&lt;br /&gt;
==Programska podrška==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/rhobbie/Sim704  Simulator IBM 704]&lt;br /&gt;
* [https://sky-visions.com/ibm/704/ Arhiva programa za IBM 704]&lt;br /&gt;
* [https://www.piercefuller.com/library/share.html Druga arhiva programa za IBM 704]&lt;br /&gt;
* [https://bitsavers.org/pdf/ibm/704/24-6661-2_704_Manual_1955.pdf Operacijski priručnik za IBM 704]&lt;br /&gt;
&lt;br /&gt;
==Izvori==&lt;br /&gt;
{{izvori}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorija:IBM]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787646</id>
		<title>IBM 704</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787646"/>
		<updated>2026-07-07T10:33:18Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;IBM 704&#039;&#039;&#039; ime je za računalo prve generacije koje je razvila tvrtka [[IBM]] i jedan je iz serije računala IBM 700. Ovo računalo se proizvodilo od 1954. do 1964. godine.&amp;lt;ref&amp;gt;https://www.ibm.com/history/700&amp;lt;/ref&amp;gt;. Glavni arhitekti ovog računala bili su [[John Backus]] i [[Gene Amdahl]]. Novine ovog računala jesu memorija s magnetskom jezgrom i jedinica s pomičnim zarezom. Povijesna važnost ovog računala jest da je na njemu bio razvijen programski jezik [[FORTRAN]] i [[LISP]] te SAP asembler, i rabljen je za stvaranje prvih sustava umjetne inteligencije, računalnog vida, računalne muzike, i robotike.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Povijest razvoja IBM 700 serije ==&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija bila je prva generacija komercijalnih znanstvenih računala koju je IBM razvio početkom 1950-ih. Serija je započela s modelom IBM 701 (1952.), poznatim kao „Defense Calculator“, koji je bio namijenjen vojnoj i zrakoplovnoj industriji.&lt;br /&gt;
&lt;br /&gt;
* IBM 702 (1953.) bio je poslovno orijentiran sustav, dok je IBM 703 bio eksperimentalni model.&lt;br /&gt;
* IBM 704 je postao temelj za razvoj FORTRAN-a (1957.), prvog visokorazinskog programskog jezika.&lt;br /&gt;
&lt;br /&gt;
Pravi tehnološki iskorak dogodio se s modelom &#039;&#039;&#039;IBM 704&#039;&#039;&#039; (1954.), prvim računalom koje je podržavalo:&lt;br /&gt;
* aritmetiku s pomičnim zarezom,&lt;br /&gt;
* indeksne registre,&lt;br /&gt;
* statusne indikatore,&lt;br /&gt;
* magnetsku jezgru kao primarnu memoriju.&lt;br /&gt;
&lt;br /&gt;
Serija se nastavila s modelima IBM 709 (1958.) i IBM 7090 (1959.), koji su bili tranzistorski nasljednici i koristili se u NASA-i, NORAD-u i velikim znanstvenim centrima.&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija ostavila je dubok trag u povijesti računarstva, postavivši standarde arhitekture koji su se zadržali desetljećima.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arhitektura IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od prvih komercijalnih računala koje je uvodilo napredne koncepte arhitekture, uključujući rad s pomičnim zarezom, indeksne registre i statusne indikatore. Sustav je bio dizajniran za znanstvene i tehničke izračune, što ga je činilo ključnim alatom u laboratorijima, sveučilištima i ranim zrakoplovnim projektima.&lt;br /&gt;
&lt;br /&gt;
=== Memorija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 koristio je magnetsku jezgru kao primarnu memoriju, što je u to vrijeme predstavljalo veliki tehnološki napredak u odnosu na Williamsove cijevi korištene u IBM-u 701. Magnetska jezgra bila je brža, pouzdanija i omogućavala stabilno zadržavanje podataka bez potrebe za stalnim osvježavanjem.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Memorijske karakteristike IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Vrsta memorije&lt;br /&gt;
| Magnetska jezgra&lt;br /&gt;
| Stabilna, brza i pouzdana tehnologija za 1950-e.&lt;br /&gt;
|-&lt;br /&gt;
| Kapacitet&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Ukupno 147 456 bitova (18 432 bajta).&lt;br /&gt;
|-&lt;br /&gt;
| Vrijeme pristupa&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za čitanje ili pisanje jedne riječi.&lt;br /&gt;
|-&lt;br /&gt;
| Format riječi&lt;br /&gt;
| 36-bitna riječ&lt;br /&gt;
| Koristi se za instrukcije, podatke i floating-point brojeve.&lt;br /&gt;
|-&lt;br /&gt;
| Floating-point format&lt;br /&gt;
| 8-bitni eksponent + 27-bitna mantisa&lt;br /&gt;
| Bez skrivenog bita; excess-128 eksponent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Periferni uređaji ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 podržavao je širok spektar perifernih uređaja, što ga je činilo pogodnim za znanstvene, tehničke i administrativne zadatke. Ulazno/izlazni sustav bio je temeljen na magnetskim vrpcama, kartičnim čitačima i pisačima, uz mogućnost prikaza podataka na CRT zaslonima.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Periferni uređaji IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Uređaj&lt;br /&gt;
! Model&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Čitač kartica&lt;br /&gt;
| IBM 711&lt;br /&gt;
| Učitava programe i podatke s bušenih kartica.&lt;br /&gt;
|-&lt;br /&gt;
| Pisač&lt;br /&gt;
| IBM 716&lt;br /&gt;
| Ispisuje tekstualni izlaz; glavni uređaj za ljudsko čitanje rezultata.&lt;br /&gt;
|-&lt;br /&gt;
| Bušilica kartica&lt;br /&gt;
| IBM 721&lt;br /&gt;
| Zapisuje podatke na bušene kartice.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| IBM 727&lt;br /&gt;
| Glavni masovni spremnik; preko 5 milijuna znakova po vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrolna jedinica vrpci&lt;br /&gt;
| IBM 753&lt;br /&gt;
| Upravljanje magnetskim vrpcama.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetski bubanj&lt;br /&gt;
| IBM 733&lt;br /&gt;
| Dodatna memorija za brzi pristup.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetska jezgra (RAM)&lt;br /&gt;
| IBM 737&lt;br /&gt;
| Primarna memorija sustava (4096 × 36-bitnih riječi).&lt;br /&gt;
|-&lt;br /&gt;
| CRT zaslon&lt;br /&gt;
| IBM 740&lt;br /&gt;
| 21-inčni vektorski prikaz s dugom fosfornom postojanošću; korišten za vizualizaciju podataka.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aritmetička jedinica (AC i MQ) ===&lt;br /&gt;
Aritmetička jedinica sastojala se od dva glavna 36-bitna registra:&lt;br /&gt;
* &#039;&#039;&#039;AC (Accumulator)&#039;&#039;&#039; – glavni registar za aritmetiku.&lt;br /&gt;
* &#039;&#039;&#039;MQ (Multiplier/Quotient)&#039;&#039;&#039; – registar za množenje i dijeljenje.&lt;br /&gt;
&lt;br /&gt;
Ova dva registra zajedno su omogućavala učinkovite operacije nad velikim brojevima i pomičnim zarezom.&lt;br /&gt;
&lt;br /&gt;
=== Indeksni registri (XR1, XR2, XR4) ===&lt;br /&gt;
IBM 704 je koristio tri indeksna registra:&lt;br /&gt;
* &#039;&#039;&#039;XR1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Indeksni registri omogućavali su modifikaciju adresa, implementaciju petlji i rad s velikim poljima podataka. Ovo je bio preteča modernog adresiranja u procesorima.&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori (SI) ===&lt;br /&gt;
Sustav je imao 36 senzorskih indikatora koji su služili kao statusne zastavice:&lt;br /&gt;
* indikatori grešaka (overflow, divide check)&lt;br /&gt;
* indikatori stanja I/O uređaja&lt;br /&gt;
* korisnički definirani indikatori&lt;br /&gt;
&lt;br /&gt;
Programi su mogli testirati i postavljati SI bitove, što je omogućavalo primitivne oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
=== Instrukcijski format ===&lt;br /&gt;
Instrukcije su bile 36-bitne, s poljima:&lt;br /&gt;
* opkod&lt;br /&gt;
* adresa&lt;br /&gt;
* indeksni modifikator&lt;br /&gt;
* bitovi za uvjetno grananje&lt;br /&gt;
&lt;br /&gt;
Ovaj format omogućavao je fleksibilno adresiranje i kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Floating‑point implementacija ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je prvo komercijalno računalo koje je imalo ugrađenu hardversku podršku za aritmetiku s pomičnim zarezom. Ovo je bio ključni tehnološki iskorak koji je omogućio razvoj FORTRAN-a i znanstvenih aplikacija koje su zahtijevale visoku numeričku preciznost.&lt;br /&gt;
&lt;br /&gt;
Floating‑point brojevi u IBM 704 bili su pohranjeni u 36‑bitnim riječima, podijeljenima na dva glavna dijela:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Mantisa&#039;&#039;&#039; – 27 bitova  &lt;br /&gt;
* &#039;&#039;&#039;Eksponent&#039;&#039;&#039; – 8 bitova (excess‑128 format)  &lt;br /&gt;
* &#039;&#039;&#039;Znak&#039;&#039;&#039; – 1 bit&lt;br /&gt;
&lt;br /&gt;
=== Format floating‑point riječi ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Format floating‑point broja (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! Polje&lt;br /&gt;
! Duljina&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Znak mantise&lt;br /&gt;
| 1 bit&lt;br /&gt;
| Određuje pozitivan ili negativan broj.&lt;br /&gt;
|-&lt;br /&gt;
| Mantisa&lt;br /&gt;
| 27 bitova&lt;br /&gt;
| Normalizirana mantisa bez skrivenog bita.&lt;br /&gt;
|-&lt;br /&gt;
| Eksponent&lt;br /&gt;
| 8 bitova&lt;br /&gt;
| Excess‑128 format (stvarni eksponent = pohranjeni − 128).&lt;br /&gt;
|-&lt;br /&gt;
| Rezervirano&lt;br /&gt;
| 0 bitova&lt;br /&gt;
| Format je potpuno iskorišten; nema neiskorištenih bitova.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Excess‑128 eksponent ===&lt;br /&gt;
&lt;br /&gt;
Eksponent je pohranjen u obliku:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
stvarni_eksponent = pohranjeni_eksponent − 128&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj pristup omogućavao je jednostavnije usporedbe i normalizaciju brojeva.&lt;br /&gt;
&lt;br /&gt;
=== Normalizacija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 zahtijevao je da mantisa bude normalizirana tako da najviši bit mantise bude različit od nule.  &lt;br /&gt;
To je omogućavalo maksimalnu preciznost pri izračunima.&lt;br /&gt;
&lt;br /&gt;
=== Floating‑point operacije ===&lt;br /&gt;
&lt;br /&gt;
Računalo je podržavalo sljedeće operacije nad floating‑point brojevima:&lt;br /&gt;
&lt;br /&gt;
* zbrajanje (ADD)  &lt;br /&gt;
* oduzimanje (SUB)  &lt;br /&gt;
* množenje (MPY)  &lt;br /&gt;
* dijeljenje (DIV)&lt;br /&gt;
&lt;br /&gt;
Sve operacije koristile su aritmetičku jedinicu AC/MQ, pri čemu se rezultat normalizirao automatski.&lt;br /&gt;
&lt;br /&gt;
=== Primjer floating‑point operacije u assembleru ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj floating-point broj A&lt;br /&gt;
ADD B        / zbroji ga s B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Važnost floating‑point implementacije ===&lt;br /&gt;
&lt;br /&gt;
Hardverska podrška za pomični zarez bila je ključna za:&lt;br /&gt;
&lt;br /&gt;
* razvoj FORTRAN-a (1957.)&lt;br /&gt;
* balističke izračune&lt;br /&gt;
* aerodinamičke simulacije&lt;br /&gt;
* nuklearne proračune&lt;br /&gt;
* statističke modele&lt;br /&gt;
* rane znanstvene aplikacije NASA-e&lt;br /&gt;
&lt;br /&gt;
IBM 704 je time postavio standard koji će kasnije preuzeti svi moderni procesori.&lt;br /&gt;
&lt;br /&gt;
== Instrukcijski skup IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Glavne grupe instrukcija IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Grupa&lt;br /&gt;
! Primjeri&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Aritmetičke instrukcije&lt;br /&gt;
| ADD, SUB, MPY, DIV&lt;br /&gt;
| Operacije nad AC i MQ registrima; podrška za cijele brojeve i pomični zarez.&lt;br /&gt;
|-&lt;br /&gt;
| Logičke instrukcije&lt;br /&gt;
| CLA, CLM, COM&lt;br /&gt;
| Čišćenje, komplementiranje i manipulacija bitovima.&lt;br /&gt;
|-&lt;br /&gt;
| Uvjetno grananje&lt;br /&gt;
| TRA, TMI, TPL, TZE&lt;br /&gt;
| Skokovi ovisno o sadržaju AC ili MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Rad sa Sense Indicators&lt;br /&gt;
| TSI, SSI, RSI&lt;br /&gt;
| Testiranje, postavljanje i resetiranje statusnih bitova.&lt;br /&gt;
|-&lt;br /&gt;
| Indeksno adresiranje&lt;br /&gt;
| AXT, TXI&lt;br /&gt;
| Modifikacija adresa pomoću XR1, XR2, XR4.&lt;br /&gt;
|-&lt;br /&gt;
| Ulazno/izlazne instrukcije&lt;br /&gt;
| RDS, WRS, RWT&lt;br /&gt;
| Rad s magnetskom vrpcom, kartičnim čitačem i pisačem.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrola toka programa&lt;br /&gt;
| HLT, NOP&lt;br /&gt;
| Zaustavljanje programa, prazna instrukcija.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Opkodovi IBM 704 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Kompletan popis opkoda IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Opkod&lt;br /&gt;
! Mnemonik&lt;br /&gt;
! Grupa&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 000&lt;br /&gt;
| NOP&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Prazna instrukcija; ne radi ništa.&lt;br /&gt;
|-&lt;br /&gt;
| 001&lt;br /&gt;
| HLT&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Zaustavlja izvršavanje programa.&lt;br /&gt;
|-&lt;br /&gt;
| 002&lt;br /&gt;
| TRA&lt;br /&gt;
| Grananje&lt;br /&gt;
| Bezuvjetni skok na adresu.&lt;br /&gt;
|-&lt;br /&gt;
| 003&lt;br /&gt;
| TRN&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC negativan.&lt;br /&gt;
|-&lt;br /&gt;
| 004&lt;br /&gt;
| TMI&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC manji od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 005&lt;br /&gt;
| TPL&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC veći od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 006&lt;br /&gt;
| TZE&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC jednak nuli.&lt;br /&gt;
|-&lt;br /&gt;
| 007&lt;br /&gt;
| TOV&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je overflow zastavica postavljena.&lt;br /&gt;
|-&lt;br /&gt;
| 010&lt;br /&gt;
| ADD&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Zbrajanje sadržaja memorije s AC.&lt;br /&gt;
|-&lt;br /&gt;
| 011&lt;br /&gt;
| SUB&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Oduzimanje sadržaja memorije od AC.&lt;br /&gt;
|-&lt;br /&gt;
| 012&lt;br /&gt;
| MPY&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Množenje; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 013&lt;br /&gt;
| DIV&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Dijeljenje; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 014&lt;br /&gt;
| CLA&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 015&lt;br /&gt;
| CLM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 016&lt;br /&gt;
| COM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Komplementira AC.&lt;br /&gt;
|-&lt;br /&gt;
| 020&lt;br /&gt;
| SHL&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak ulijevo.&lt;br /&gt;
|-&lt;br /&gt;
| 021&lt;br /&gt;
| SHR&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak udesno.&lt;br /&gt;
|-&lt;br /&gt;
| 030&lt;br /&gt;
| AXT&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Učitava vrijednost u XR1, XR2 ili XR4.&lt;br /&gt;
|-&lt;br /&gt;
| 031&lt;br /&gt;
| TXI&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Dodaje vrijednost indeksnom registru.&lt;br /&gt;
|-&lt;br /&gt;
| 040&lt;br /&gt;
| RDS&lt;br /&gt;
| I/O&lt;br /&gt;
| Čitanje s magnetske vrpce.&lt;br /&gt;
|-&lt;br /&gt;
| 041&lt;br /&gt;
| WRS&lt;br /&gt;
| I/O&lt;br /&gt;
| Pisanje na magnetsku vrpcu.&lt;br /&gt;
|-&lt;br /&gt;
| 042&lt;br /&gt;
| RWT&lt;br /&gt;
| I/O&lt;br /&gt;
| Čekanje na I/O operaciju.&lt;br /&gt;
|-&lt;br /&gt;
| 050&lt;br /&gt;
| TSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Testira Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 051&lt;br /&gt;
| SSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Postavlja Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 052&lt;br /&gt;
| RSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Resetira Sense Indicator n.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Registri==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--             --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:88%;width:34em;&amp;quot;&lt;br /&gt;
|+ Registri u računalu IBM 704&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| style=&amp;quot;font-size:88%;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Podatkovni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | S&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | Q&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | P&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;14&amp;quot;| Akumulator&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | AC&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;1&amp;quot;| S&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;11&amp;quot;| Množitelj/Količnik&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | MQ&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;12&amp;quot;| Senzorni indikatori&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | SI&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 1&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR1 (XRA)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 2&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR2 (XRB)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 4 &lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR4 (XRC)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;14&amp;quot; | &#039;&#039;&#039;Brojač naredbi&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Brojač&amp;amp;nbsp;Naredbi&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| IC&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzorni indikatori&#039;&#039;&#039; - su posebni statusni bitovi u IBM 704 koj su se u praksi rabili za provjeru grešaka, grananje ovisno o stanju sustava, upravljanje perifernim jedinicama, te za signalizaciju posebnih događaja. Kroz njih programeri su mogli održavati stanje sustava, signalizirati određene uvjete tokom izvršavanje naredbi, čitanje i postavljanje naredbi i tako su služili za jednostane oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Sense Indicators (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! SI broj&lt;br /&gt;
! Naziv / funkcija&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Overflow flag&lt;br /&gt;
| Postavlja se pri prekoračenju rezultata u akumulatoru (AC) ili količniku (MQ).&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Divide check&lt;br /&gt;
| Signalizira pogrešku pri dijeljenju, uključujući dijeljenje nulom.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| I/O ready&lt;br /&gt;
| Uređaj spreman za prijenos podataka.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| I/O complete&lt;br /&gt;
| Završetak operacije ulaza/izlaza.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Tape mark&lt;br /&gt;
| Očitana oznaka kraja bloka na magnetskoj vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Printer ready&lt;br /&gt;
| Pisač spreman za rad.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Card reader ready&lt;br /&gt;
| Čitač kartica spreman.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Card punch ready&lt;br /&gt;
| Bušilica kartica spremna.&lt;br /&gt;
|-&lt;br /&gt;
| 8–15&lt;br /&gt;
| Peripheral flags&lt;br /&gt;
| Razni signali perifernih uređaja (disk, vrpca, pisač).&lt;br /&gt;
|-&lt;br /&gt;
| 16–35&lt;br /&gt;
| User-defined flags&lt;br /&gt;
| Zastavice koje programer može slobodno koristiti za logiku grananja.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Korištenje u IBM 704 assembleru ====&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao posebne instrukcije za rad sa Sense Indicators:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;TSI n&#039;&#039;&#039;&lt;br /&gt;
: Testira Sense Indicator &#039;&#039;n&#039;&#039;. Ako je postavljen, izvršavanje se nastavlja normalno; ako nije, preskače se sljedeća instrukcija.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3      / provjeri je li I/O complete&lt;br /&gt;
TRA DONE   / ako je postavljen, skoči na DONE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;SSI n&#039;&#039;&#039;&lt;br /&gt;
: Postavlja Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;RSI n&#039;&#039;&#039;&lt;br /&gt;
: Resetira Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 1      / provjeri divide check&lt;br /&gt;
TRA ERROR  / ako je SI1 = 1, idi na ERROR&lt;br /&gt;
&lt;br /&gt;
SSI 20     / postavi korisnički indikator 20&lt;br /&gt;
RSI 3      / resetiraj I/O complete indikator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Usporedba s modernim statusnim registrima ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! IBM 704 Sense Indicators&lt;br /&gt;
! Moderni statusni registri (x86, ARM, RISC-V)&lt;br /&gt;
|-&lt;br /&gt;
| 36 jednobitnih zastavica&lt;br /&gt;
| 8–32 bitni statusni registri&lt;br /&gt;
|-&lt;br /&gt;
| Ručno postavljanje i brisanje&lt;br /&gt;
| Automatsko postavljanje od strane ALU&lt;br /&gt;
|-&lt;br /&gt;
| Koriste se za I/O signalizaciju&lt;br /&gt;
| I/O signalizacija preko interrupt kontrolera&lt;br /&gt;
|-&lt;br /&gt;
| Jednostavne logičke zastavice&lt;br /&gt;
| Zastavice za aritmetiku, usporedbe, prekide&lt;br /&gt;
|-&lt;br /&gt;
| Programer koristi dio SI kao &amp;quot;user flags&amp;quot;&lt;br /&gt;
| Moderni jezici koriste varijable, strukture, objekte&lt;br /&gt;
|-&lt;br /&gt;
| Grananje preko TSI instrukcije&lt;br /&gt;
| Grananje preko CMP/JMP, BEQ/BNE, BLT/BGT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Primjeri IBM 704 assembler koda ==&lt;br /&gt;
&lt;br /&gt;
=== Zbrajanje dvaju brojeva ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj A u AC&lt;br /&gt;
ADD B        / dodaj B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Provjera negativnog broja ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA X        / učitaj X&lt;br /&gt;
TMI NEG      / ako je X &amp;lt; 0, idi na NEG&lt;br /&gt;
TRA DONE     / inače nastavi&lt;br /&gt;
NEG STO Y    / spremi negativnu vrijednost&lt;br /&gt;
DONE HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Množenje i dijeljenje ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A&lt;br /&gt;
MPY B        / AC*B → AC/MQ&lt;br /&gt;
DIV C        / (AC/MQ) / C → MQ (količnik), AC (ostatak)&lt;br /&gt;
STO Q        / spremi količnik&lt;br /&gt;
STO R        / spremi ostatak&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Korištenje Sense Indicators ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3        / provjeri I/O complete&lt;br /&gt;
TRA IO_OK    / ako je SI3 = 1, idi na IO_OK&lt;br /&gt;
SSI 20       / postavi korisnički indikator 20&lt;br /&gt;
IO_OK HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Performanse IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od najbržih znanstvenih računala svoje generacije. Njegova arhitektura s pomičnim zarezom, magnetskom jezgrom i specijaliziranim aritmetičkim registrima omogućavala je znatno bolje performanse u odnosu na prethodne modele IBM 701 i IBM 702. Sustav je bio optimiziran za matematičke operacije, simulacije, statističke izračune i obradu velikih numeričkih skupova podataka.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Performanse računala IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Brzina zbrajanja&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za izvršavanje jedne ADD instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina množenja&lt;br /&gt;
| ~20 μs&lt;br /&gt;
| Vrijeme za MPY instrukciju; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina dijeljenja&lt;br /&gt;
| ~38 μs&lt;br /&gt;
| Vrijeme za DIV instrukciju; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| Memorija&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Magnetska jezgra; pristup ~12 μs.&lt;br /&gt;
|-&lt;br /&gt;
| Ciklus instrukcije&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Prosječno vrijeme za dohvat i izvršavanje jednostavne instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina I/O operacija&lt;br /&gt;
| 7200 kartica/min (čitač)&lt;br /&gt;
| Kartični čitač i bušilica bili su glavni ulazno/izlazni sustavi.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| 12 500 znakovnih blokova/s&lt;br /&gt;
| Ovisno o uređaju; korišteno za masovno spremanje podataka.&lt;br /&gt;
|-&lt;br /&gt;
| Preciznost pomičnog zareza&lt;br /&gt;
| 27-bitni eksponent + 8-bitna mantisa&lt;br /&gt;
| Omogućavalo znanstvene izračune velike preciznosti.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pouzdanost ==&lt;br /&gt;
&lt;br /&gt;
Iako je IBM 704 bio znatno pouzdaniji od svog prethodnika IBM 701, i dalje je bio stroj temeljen na vakuumskim cijevima, što je značilo relativno česte kvarove prema današnjim standardima. Prosječno vrijeme između kvarova iznosilo je oko 8 sati, što je ograničavalo veličinu programa koje je bilo moguće kompajlirati ili izvršavati bez prekida.&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN kompajleri morali su biti iznimno učinkoviti jer bi preduga kompilacija mogla biti prekinuta kvarom sustava. Unatoč tome, IBM 704 je bio dovoljno pouzdan da postane temelj za razvoj FORTRAN-a, LISP-a, ranih neuralnih mreža i brojnih znanstvenih projekata.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Pouzdanost IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| MTBF (mean time between failure)&lt;br /&gt;
| ~8 sati&lt;br /&gt;
| Prosječno vrijeme rada prije kvara.&lt;br /&gt;
|-&lt;br /&gt;
| Usporedba s IBM 701&lt;br /&gt;
| ~30 minuta&lt;br /&gt;
| IBM 704 bio je znatno pouzdaniji od svog prethodnika.&lt;br /&gt;
|-&lt;br /&gt;
| Utjecaj na softver&lt;br /&gt;
| Ograničena veličina programa&lt;br /&gt;
| Kompilacije su morale biti kratke zbog mogućih kvarova.&lt;br /&gt;
|-&lt;br /&gt;
| Tehnologija&lt;br /&gt;
| Vakuumske cijevi&lt;br /&gt;
| Glavni uzrok kvarova i zagrijavanja sustava.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SAP asembler ==&lt;br /&gt;
&lt;br /&gt;
SAP (&#039;&#039;Symbolic Assembly Program&#039;&#039;) bio je službeni asembler za IBM 704 i predstavljao je jedan od najranijih i najutjecajnijih asemblera u povijesti računarstva. Razvijen je unutar IBM-a sredinom 1950-ih kako bi programerima omogućio pisanje simboličkog koda umjesto ručnog unošenja numeričkih opkoda i adresa.&lt;br /&gt;
&lt;br /&gt;
SAP je bio ključan za razvoj FORTRAN-a, LISP-a i mnogih ranih znanstvenih aplikacija, jer je omogućio jednostavnije pisanje, čitanje i održavanje programa na IBM 704.&lt;br /&gt;
&lt;br /&gt;
=== Značajke SAP asemblera ===&lt;br /&gt;
&lt;br /&gt;
SAP je imao nekoliko naprednih značajki za svoje vrijeme:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simboličke oznake&#039;&#039;&#039; – programeri su mogli koristiti imena umjesto numeričkih adresa.&lt;br /&gt;
* &#039;&#039;&#039;Automatsko izračunavanje adresa&#039;&#039;&#039; – asembler je sam određivao lokacije instrukcija.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za indeksne registre&#039;&#039;&#039; – XR1, XR2 i XR4 mogli su se koristiti u adresiranju.&lt;br /&gt;
* &#039;&#039;&#039;Jednostavna sintaksa&#039;&#039;&#039; – instrukcije su bile kratke i čitljive.&lt;br /&gt;
* &#039;&#039;&#039;Integracija s FORTRAN-om&#039;&#039;&#039; – FORTRAN kompajler generirao je SAP kod.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za floating‑point operacije&#039;&#039;&#039; – izravno korištenje AC/MQ jedinice.&lt;br /&gt;
&lt;br /&gt;
SAP je bio jedan od prvih asemblera koji je omogućio relativno visok stupanj apstrakcije u odnosu na strojni kod.&lt;br /&gt;
&lt;br /&gt;
=== Struktura SAP instrukcije ===&lt;br /&gt;
&lt;br /&gt;
Instrukcije su se sastojale od:&lt;br /&gt;
&lt;br /&gt;
* mnemonika (ADD, SUB, MPY, DIV, TRA…)&lt;br /&gt;
* adrese ili simbola&lt;br /&gt;
* opcionalnog indeksnog modifikatora&lt;br /&gt;
* komentara&lt;br /&gt;
&lt;br /&gt;
Primjer strukture:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
MNEMONIK  ADRESA,XR   / komentar&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Primjer SAP koda ===&lt;br /&gt;
&lt;br /&gt;
Slijedi povijesno točan primjer SAP koda za IBM 704:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
A      DEC 5          / definiraj konstantu A&lt;br /&gt;
B      DEC 7          / definiraj konstantu B&lt;br /&gt;
C      BSS 1          / rezerviraj prostor za rezultat&lt;br /&gt;
&lt;br /&gt;
       CLA A          / učitaj A u AC&lt;br /&gt;
       ADD B          / dodaj B&lt;br /&gt;
       STO C          / spremi rezultat u C&lt;br /&gt;
       HLT            / zaustavi program&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Korištenje indeksnih registara ===&lt;br /&gt;
&lt;br /&gt;
SAP je omogućavao jednostavno korištenje XR1, XR2 i XR4:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
LOOP   CLA ARRAY,XR1  / učitaj element polja&lt;br /&gt;
       ADD SUM        / dodaj na sumu&lt;br /&gt;
       STO SUM        / spremi rezultat&lt;br /&gt;
       TXI XR1,1      / povećaj indeks&lt;br /&gt;
       TPL LOOP       / ako je pozitivan, nastavi petlju&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio preteča modernih petlji u visokorazinskim jezicima.&lt;br /&gt;
&lt;br /&gt;
=== SAP i FORTRAN ===&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN kompajler generirao je SAP kod koji se zatim prevodio u strojni kod IBM 704.  &lt;br /&gt;
Zbog toga je SAP bio ključan za:&lt;br /&gt;
&lt;br /&gt;
* optimizaciju FORTRAN programa,&lt;br /&gt;
* implementaciju DO petlji,&lt;br /&gt;
* rad s poljima i matricama,&lt;br /&gt;
* floating‑point operacije,&lt;br /&gt;
* kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
=== SAP i LISP ===&lt;br /&gt;
&lt;br /&gt;
Prva implementacija LISP-a (1958.) bila je napisana upravo u SAP asembleru.  &lt;br /&gt;
SAP je omogućio:&lt;br /&gt;
&lt;br /&gt;
* manipulaciju cons‑struktura,&lt;br /&gt;
* implementaciju CAR i CDR operacija,&lt;br /&gt;
* rekurziju,&lt;br /&gt;
* dinamičko upravljanje memorijom.&lt;br /&gt;
&lt;br /&gt;
Bez SAP-a, LISP ne bi mogao biti implementiran na IBM 704.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj SAP-a ===&lt;br /&gt;
&lt;br /&gt;
SAP je bio jedan od najvažnijih asemblera 1950-ih i 1960-ih.  &lt;br /&gt;
Njegov utjecaj vidljiv je u:&lt;br /&gt;
&lt;br /&gt;
* razvoju FORTRAN-a,&lt;br /&gt;
* nastanku LISP-a,&lt;br /&gt;
* ranim AI projektima,&lt;br /&gt;
* znanstvenim simulacijama,&lt;br /&gt;
* razvoju modernih asemblera i kompajlera.&lt;br /&gt;
&lt;br /&gt;
SAP je postavio temelje za simboličko programiranje i bio je ključni alat u zlatnom dobu ranog računarstva.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju LISP-a ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je ključnu ulogu u nastanku programskog jezika LISP, jednog od najvažnijih jezika u povijesti računarstva. LISP je 1958. godine razvio John McCarthy na MIT-u, a upravo je IBM 704 bio prvo računalo na kojem je LISP implementiran i izvršavan.&amp;lt;ref&amp;gt;http://jmc.stanford.edu/articles/lisp/lisp.pdf &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Razvoj LISP-a bio je izravno povezan s arhitekturom IBM 704, posebno s njegovim:&lt;br /&gt;
* 36-bitnim riječima,&lt;br /&gt;
* aritmetičkom jedinicom AC/MQ,&lt;br /&gt;
* indeksnim registrima,&lt;br /&gt;
* mogućnošću manipulacije adresama,&lt;br /&gt;
* podrškom za uvjetno grananje,&lt;br /&gt;
* te fleksibilnim instrukcijskim formatom.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio pogodan za LISP ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je nekoliko arhitekturnih značajki koje su se pokazale idealnima za implementaciju LISP-a:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;36-bitne riječi&#039;&#039;&#039; omogućavale su učinkovito predstavljanje parova (cons cells).&lt;br /&gt;
* &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039; olakšavali su rad s listama i rekurzivnim strukturama.&lt;br /&gt;
* &#039;&#039;&#039;Instrukcije grananja&#039;&#039;&#039; (TRA, TMI, TPL, TZE) omogućavale su jednostavnu implementaciju rekurzije.&lt;br /&gt;
* &#039;&#039;&#039;Magnetska jezgra&#039;&#039;&#039; bila je dovoljno brza za dinamičke strukture podataka.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za floating-point&#039;&#039;&#039; olakšala je rad s matematičkim funkcijama.&lt;br /&gt;
&lt;br /&gt;
McCarthy je iskoristio ove mogućnosti kako bi implementirao osnovne LISP konstrukte: CONS, CAR, CDR, rekurziju, lambda‑izraze i funkcije višeg reda.&lt;br /&gt;
&lt;br /&gt;
=== Prva implementacija LISP-a ===&lt;br /&gt;
&lt;br /&gt;
Prva verzija LISP-a bila je napisana u SAP asembleru za IBM 704.  &lt;br /&gt;
Ova implementacija uključivala je:&lt;br /&gt;
&lt;br /&gt;
* interpreter,&lt;br /&gt;
* evaluator,&lt;br /&gt;
* upravljanje memorijom,&lt;br /&gt;
* implementaciju cons‑struktura,&lt;br /&gt;
* osnovne matematičke funkcije,&lt;br /&gt;
* te mehanizme za rekurziju i funkcije višeg reda.&lt;br /&gt;
&lt;br /&gt;
LISP je na IBM 704 radio kao interpretirani jezik, a programi su se izvršavali izravno nad strukturom lista u memoriji.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je omogućio LISP-u da postane prvi široko korišteni jezik za:&lt;br /&gt;
&lt;br /&gt;
* umjetnu inteligenciju,&lt;br /&gt;
* simboličku manipulaciju,&lt;br /&gt;
* matematičku logiku,&lt;br /&gt;
* rane ekspertske sustave,&lt;br /&gt;
* istraživanje strojnog učenja.&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, LISP bi vjerojatno bio znatno drugačiji — ili bi se pojavio mnogo kasnije.&lt;br /&gt;
&lt;br /&gt;
=== Primjer ranog LISP izraza (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Iako se LISP nije zapisivao u assembleru, njegovi izrazi su se prevodili u SAP kod za IBM 704.  &lt;br /&gt;
Primjer jednostavne LISP funkcije:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(define (square x)&lt;br /&gt;
  (* x x))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj izraz bi se na IBM 704 interno pretvorio u operacije nad cons‑struktura i pozive aritmetičkih instrukcija MPY i ADD.&lt;br /&gt;
&lt;br /&gt;
=== Utjecaj na daljnji razvoj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je bio platforma na kojoj su nastale ključne ideje:&lt;br /&gt;
&lt;br /&gt;
* automatsko upravljanje memorijom,&lt;br /&gt;
* rekurzija kao temeljni mehanizam,&lt;br /&gt;
* funkcije višeg reda,&lt;br /&gt;
* lambda‑račun,&lt;br /&gt;
* simbolička obrada podataka.&lt;br /&gt;
&lt;br /&gt;
Ove ideje postale su temelj modernih programskih jezika, od Schemea i Prologa do Pythona i JavaScripta.&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju FORTRAN-a ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je presudnu ulogu u nastanku FORTRAN-a (Formula Translation), prvog široko korištenog visokorazinskog programskog jezika. FORTRAN je razvijen 1957. godine u IBM-u pod vodstvom Johna Backusa, a IBM 704 bio je prvo računalo na kojem je FORTRAN implementiran, kompajliran i izvršavan.&lt;br /&gt;
&lt;br /&gt;
Arhitektura IBM 704 izravno je oblikovala dizajn FORTRAN-a. Njegova podrška za aritmetiku s pomičnim zarezom, indeksne registre, statusne indikatore i 36-bitne riječi omogućila je stvaranje jezika koji je bio optimiziran za znanstvene i tehničke izračune.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio ključan za FORTRAN ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 posjedovao je nekoliko arhitekturnih značajki koje su bile presudne za razvoj FORTRAN-a:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Hardverska floating‑point jedinica&#039;&#039;&#039; – omogućila je izravnu podršku za matematičke operacije.&lt;br /&gt;
* &#039;&#039;&#039;Aritmetički registri AC i MQ&#039;&#039;&#039; – olakšali su implement&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju ranih neuralnih mreža ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je važnu ulogu u razvoju najranijih modela umjetnih neuronskih mreža tijekom kasnih 1950-ih i ranih 1960-ih. Iako su ti modeli bili daleko jednostavniji od današnjih dubokih mreža, IBM 704 je bio jedno od rijetkih računala koje je imalo dovoljno memorije, brzine i aritmetičkih mogućnosti da može izvoditi simulacije neuronskih mreža u praksi.&lt;br /&gt;
&lt;br /&gt;
Rani pioniri umjetne inteligencije, uključujući Franka Rosenblatta, Herberta Simona, Allena Newella i istraživače s MIT-a i Cornell Aeronautical Laboratory, koristili su IBM 704 za implementaciju i testiranje prvih algoritama koji su simulirali neuronsko učenje.&lt;br /&gt;
&lt;br /&gt;
=== IBM 704 i perceptron ===&lt;br /&gt;
&lt;br /&gt;
Najvažniji doprinos IBM 704 razvoju neuralnih mreža bio je u implementaciji i simulaciji **Rosenblattovog perceptrona**, prvog formalnog modela neuronske mreže koji je mogao učiti iz podataka.&amp;lt;ref&amp;gt;https://as.cornell.edu/news/professors-perceptron-paved-way-ai-60-years-too-soon&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IBM 704 omogućio je:&lt;br /&gt;
&lt;br /&gt;
* izračun težina perceptrona,&lt;br /&gt;
* simulaciju učenja kroz iteracije,&lt;br /&gt;
* rad s matricama i vektorima,&lt;br /&gt;
* evaluaciju linearnih klasifikatora,&lt;br /&gt;
* testiranje različitih skupova podataka.&lt;br /&gt;
&lt;br /&gt;
Iako je perceptron kasnije imao i hardversku implementaciju (Mark I Perceptron), IBM 704 bio je ključan za **prve softverske simulacije** koje su potvrdile da se neuronske mreže mogu trenirati računalno.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio pogodan za neuralne mreže ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je nekoliko arhitekturnih značajki koje su bile iznimno korisne za rane AI eksperimente:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Floating‑point jedinica&#039;&#039;&#039; – omogućila je precizne izračune težina i aktivacijskih funkcija.&lt;br /&gt;
* &#039;&#039;&#039;Aritmetički registri AC/MQ&#039;&#039;&#039; – ubrzali su operacije nad vektorima.&lt;br /&gt;
* &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039; – olakšali su rad s matricama i iteracijama.&lt;br /&gt;
* &#039;&#039;&#039;Magnetska jezgra&#039;&#039;&#039; – bila je dovoljno brza za ponavljajuće izračune.&lt;br /&gt;
* &#039;&#039;&#039;Instrukcije grananja&#039;&#039;&#039; – omogućile su implementaciju algoritama učenja.&lt;br /&gt;
&lt;br /&gt;
Zbog toga je IBM 704 bio jedno od prvih računala koje je moglo izvoditi **iterativne algoritme učenja**, temeljne za neuralne mreže.&lt;br /&gt;
&lt;br /&gt;
=== Rani eksperimenti umjetne inteligencije ===&lt;br /&gt;
&lt;br /&gt;
Na IBM 704 provodili su se rani eksperimenti koji su uključivali:&lt;br /&gt;
&lt;br /&gt;
* simulaciju perceptrona,&lt;br /&gt;
* klasifikaciju jednostavnih vizualnih uzoraka,&lt;br /&gt;
* prepoznavanje znakova,&lt;br /&gt;
* rane oblike strojne percepcije,&lt;br /&gt;
* istraživanje linearnih i nelinearnih funkcija aktivacije.&lt;br /&gt;
&lt;br /&gt;
Ovi eksperimenti bili su temelj za kasniji razvoj:&lt;br /&gt;
&lt;br /&gt;
* višeslojnih perceptrona,&lt;br /&gt;
* backpropagation algoritma,&lt;br /&gt;
* dubokog učenja,&lt;br /&gt;
* računalnog vida.&lt;br /&gt;
&lt;br /&gt;
=== Primjer jednostavne perceptronske iteracije (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći pseudokod prikazuje kako je perceptron bio implementiran na IBM 704:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA W1        / učitaj težinu&lt;br /&gt;
MPY X1        / pomnoži s ulazom&lt;br /&gt;
ADD SUM       / dodaj na akumuliranu sumu&lt;br /&gt;
STO SUM       / spremi novu vrijednost&lt;br /&gt;
&lt;br /&gt;
... ponavljati za sve ulaze ...&lt;br /&gt;
&lt;br /&gt;
CLA SUM&lt;br /&gt;
TMI UPDATE    / ako je pogreška negativna, ažuriraj težine&lt;br /&gt;
TPL UPDATE    / ako je pogreška pozitivna, također ažuriraj&lt;br /&gt;
&lt;br /&gt;
UPDATE:&lt;br /&gt;
ADD ERROR     / korekcija težine&lt;br /&gt;
STO W1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio jedan od prvih primjera **računalnog učenja** u povijesti.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je ključan za rani razvoj umjetne inteligencije jer je:&lt;br /&gt;
&lt;br /&gt;
* omogućio prve računalne simulacije neuronskih mreža,&lt;br /&gt;
* bio platforma za perceptron i rane modele učenja,&lt;br /&gt;
* omogućio istraživanje algoritama koji su kasnije postali temelj dubokog učenja,&lt;br /&gt;
* povezao AI istraživanje s praktičnim računalnim sustavima.&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, razvoj ranih neuralnih mreža bio bi znatno sporiji i ograničeniji.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u ranoj robotici ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je važnu ulogu u razvoju najranijih oblika robotike i automatizacije tijekom kasnih 1950-ih i ranih 1960-ih. Iako se u to vrijeme pojam „robotika“ tek počeo pojavljivati u znanstvenoj literaturi, IBM 704 bio je jedno od prvih računala koje je moglo upravljati mehaničkim sustavima, analizirati senzorske podatke i izvoditi algoritme koji su predstavljali preteču modernog upravljanja robotima.&lt;br /&gt;
&lt;br /&gt;
Rani robotski sustavi bili su primitivni u odnosu na današnje, ali IBM 704 je omogućio:&lt;br /&gt;
&lt;br /&gt;
* upravljanje aktuatorima i elektromehaničkim uređajima,&lt;br /&gt;
* obradu ulaznih signala iz senzora,&lt;br /&gt;
* simulaciju kretanja i kontrolnih petlji,&lt;br /&gt;
* rane eksperimente u automatskom upravljanju,&lt;br /&gt;
* integraciju s vizualnim sustavima (CRT prikaz IBM 740).&lt;br /&gt;
&lt;br /&gt;
=== Rani eksperimenti automatizacije ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 korišten je u laboratorijima i istraživačkim centrima za:&lt;br /&gt;
&lt;br /&gt;
* upravljanje robotskim manipulatorima,&lt;br /&gt;
* simulaciju kinematike i dinamike,&lt;br /&gt;
* upravljanje servo‑motorima,&lt;br /&gt;
* automatizaciju industrijskih procesa,&lt;br /&gt;
* rane oblike povratne sprege (feedback control).&lt;br /&gt;
&lt;br /&gt;
Ovi sustavi nisu bili roboti u modernom smislu, ali su predstavljali ključne korake prema:&lt;br /&gt;
&lt;br /&gt;
* numeričkom upravljanju strojevima (NC machines),&lt;br /&gt;
* automatskim manipulatorima,&lt;br /&gt;
* sustavima za automatsko pozicioniranje,&lt;br /&gt;
* ranim oblicima cybernetike.&lt;br /&gt;
&lt;br /&gt;
=== IBM 704 i cybernetika ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je često korišten u istraživanjima inspiriranim radom Norberta Wienera, osnivača cybernetike.  &lt;br /&gt;
Sustav je omogućavao:&lt;br /&gt;
&lt;br /&gt;
* simulaciju povratne sprege,&lt;br /&gt;
* analizu stabilnosti sustava,&lt;br /&gt;
* implementaciju kontrolnih algoritama,&lt;br /&gt;
* rane oblike adaptivnog upravljanja.&lt;br /&gt;
&lt;br /&gt;
Ovo je bilo ključno za razvoj robotskih sustava koji se mogu prilagođavati promjenama u okruženju.&lt;br /&gt;
&lt;br /&gt;
=== Vizualni sustavi i IBM 740 ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 se mogao povezati s CRT zaslonom IBM 740, koji je omogućavao:&lt;br /&gt;
&lt;br /&gt;
* prikaz vektorskih grafika,&lt;br /&gt;
* vizualizaciju putanja kretanja,&lt;br /&gt;
* prikaz senzorskih podataka,&lt;br /&gt;
* rane eksperimente u računalnom vidu.&lt;br /&gt;
&lt;br /&gt;
Iako primitivni, ovi sustavi bili su preteča kasnijih robotskih vizualnih sustava.&lt;br /&gt;
&lt;br /&gt;
=== Primjer jednostavne kontrolne petlje (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći SAP kod prikazuje kako je IBM 704 mogao implementirati jednostavnu kontrolnu petlju za upravljanje aktuatorom:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
READSENSOR  RDS SENS        / očitaj senzor&lt;br /&gt;
           CLA SENS        / učitaj vrijednost&lt;br /&gt;
           SUB TARGET      / usporedi s ciljem&lt;br /&gt;
           TPL INCREASE    / ako je pozitivno, povećaj izlaz&lt;br /&gt;
           TMI DECREASE    / ako je negativno, smanji izlaz&lt;br /&gt;
&lt;br /&gt;
INCREASE   ADD STEP        / povećaj upravljački signal&lt;br /&gt;
           STO ACTUATOR&lt;br /&gt;
           TRA LOOP&lt;br /&gt;
&lt;br /&gt;
DECREASE   SUB STEP        / smanji upravljački signal&lt;br /&gt;
           STO ACTUATOR&lt;br /&gt;
           TRA LOOP&lt;br /&gt;
&lt;br /&gt;
LOOP       TRA READSENSOR  / ponovi petlju&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio jedan od prvih primjera računalno upravljanih mehaničkih sustava.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je ključan za rani razvoj robotike jer je:&lt;br /&gt;
&lt;br /&gt;
* omogućio prve računalne simulacije upravljanja strojevima,&lt;br /&gt;
* bio platforma za cybernetičke eksperimente,&lt;br /&gt;
* omogućio integraciju senzora i aktuatora,&lt;br /&gt;
* pružio temelj za numeričko upravljanje strojevima (NC),&lt;br /&gt;
* povezao mehaniku, elektroniku i računalne algoritme.&lt;br /&gt;
&lt;br /&gt;
IBM 704 je time postavio temelje za kasniji razvoj industrijskih robota, autonomnih sustava i modernih robotskih tehnologija.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u ranom računalnom vidu ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je važnu ulogu u najranijim eksperimentima računalnog vida tijekom kasnih 1950-ih i ranih 1960-ih. Iako se računalni vid kao disciplina tek počeo formirati, IBM 704 bio je jedno od rijetkih računala koje je imalo dovoljno memorije, aritmetičke snage i mogućnosti prikaza da može obrađivati jednostavne vizualne podatke.&lt;br /&gt;
&lt;br /&gt;
Rani eksperimenti računalnog vida bili su usko povezani s istraživanjima umjetne inteligencije, perceptrona i robotike, a IBM 704 služio je kao platforma za:&lt;br /&gt;
&lt;br /&gt;
* prepoznavanje jednostavnih uzoraka,&lt;br /&gt;
* klasifikaciju vizualnih znakova,&lt;br /&gt;
* obradu digitaliziranih slika niske rezolucije,&lt;br /&gt;
* vizualizaciju podataka na CRT zaslonu IBM 740,&lt;br /&gt;
* rane eksperimente u strojnoj percepciji.&lt;br /&gt;
&lt;br /&gt;
=== IBM 704 i CRT zaslon IBM 740 ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 se mogao povezati s vektorskim CRT zaslonom IBM 740, koji je omogućavao:&lt;br /&gt;
&lt;br /&gt;
* prikaz linija, oblika i grafičkih uzoraka,&lt;br /&gt;
* vizualizaciju rezultata algoritama,&lt;br /&gt;
* prikaz putanja kretanja u robotskim sustavima,&lt;br /&gt;
* rane oblike grafičke analize.&lt;br /&gt;
&lt;br /&gt;
Iako primitivni, ovi sustavi bili su preteča kasnijih grafičkih terminala i vizualnih procesora.&lt;br /&gt;
&lt;br /&gt;
=== Rani eksperimenti prepoznavanja uzoraka ===&lt;br /&gt;
&lt;br /&gt;
Na IBM 704 provodili su se rani eksperimenti koji su uključivali:&lt;br /&gt;
&lt;br /&gt;
* prepoznavanje slova i brojeva,&lt;br /&gt;
* klasifikaciju jednostavnih geometrijskih oblika,&lt;br /&gt;
* analizu kontrasta i rubova,&lt;br /&gt;
* rane oblike segmentacije slike.&lt;br /&gt;
&lt;br /&gt;
Podaci su se obično unosili preko:&lt;br /&gt;
&lt;br /&gt;
* digitaliziranih kartica,&lt;br /&gt;
* ručno kodiranih matrica piksela,&lt;br /&gt;
* senzorskih uređaja povezanih s robotima.&lt;br /&gt;
&lt;br /&gt;
=== Veza s perceptronom i neuralnim mrežama ===&lt;br /&gt;
&lt;br /&gt;
Rosenblattov perceptron, koji je IBM 704 koristio za simulacije učenja, bio je izravno primijenjen na rane zadatke računalnog vida:&lt;br /&gt;
&lt;br /&gt;
* klasifikacija vizualnih uzoraka,&lt;br /&gt;
* prepoznavanje znakova,&lt;br /&gt;
* jednostavni modeli prepoznavanja oblika.&lt;br /&gt;
&lt;br /&gt;
IBM 704 omogućio je iterativno treniranje perceptrona nad vizualnim podacima, što je bio jedan od prvih primjera **računalnog učenja iz slike**.&lt;br /&gt;
&lt;br /&gt;
=== Primjer jednostavne vizualne analize (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći SAP kod prikazuje kako je IBM 704 mogao analizirati jednostavnu matricu piksela:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA PIXEL      / učitaj vrijednost piksela&lt;br /&gt;
SUB THRESH     / usporedi s pragom&lt;br /&gt;
TPL BRIGHT     / ako je veće od praga → svijetli piksel&lt;br /&gt;
TMI DARK       / ako je manje → tamni piksel&lt;br /&gt;
&lt;br /&gt;
BRIGHT STO OUT1&lt;br /&gt;
TRA NEXT&lt;br /&gt;
&lt;br /&gt;
DARK   STO OUT0&lt;br /&gt;
NEXT   TRA LOOP&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio jedan od prvih primitivnih algoritama za binarnu segmentaciju slike.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je ključan za rani razvoj računalnog vida jer je:&lt;br /&gt;
&lt;br /&gt;
* omogućio prve računalne eksperimente prepoznavanja uzoraka,&lt;br /&gt;
* bio platforma za vizualne simulacije u robotici,&lt;br /&gt;
* povezao neuralne mreže s vizualnim podacima,&lt;br /&gt;
* omogućio prikaz grafike na CRT zaslonu,&lt;br /&gt;
* postavio temelje za kasniji razvoj računalnog vida u 1960-ima i 1970-ima.&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, rani razvoj računalnog vida bio bi znatno sporiji i ograničeniji.&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju rane računalne glazbe ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je iznimno važnu ulogu u povijesti računalne glazbe. Bio je prvo računalo koje je ikada generiralo glazbu sintetički, koristeći digitalne algoritme za stvaranje zvuka. Ovaj povijesni događaj zbio se 1957. godine na Bell Labsu, kada su Max Mathews i njegov tim razvili program &#039;&#039;&#039;MUSIC I&#039;&#039;&#039; – prvi računalni sustav za digitalnu sintezu zvuka.&amp;lt;ref&amp;gt;https://ccrma.stanford.edu/radiobaton/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IBM 704 je time postao temelj cijelog područja računalne glazbe, digitalne sinteze, elektroničke glazbe i kasnije MIDI tehnologije.&lt;br /&gt;
&lt;br /&gt;
=== MUSIC I – prvi računalni glazbeni program ===&lt;br /&gt;
&lt;br /&gt;
Max Mathews je 1957. na IBM 704 napisao program &#039;&#039;&#039;MUSIC I&#039;&#039;&#039;, koji je:&lt;br /&gt;
&lt;br /&gt;
* generirao digitalne valne oblike,&lt;br /&gt;
* sintetizirao tonove i melodije,&lt;br /&gt;
* omogućio kontrolu frekvencije, amplitude i trajanja,&lt;br /&gt;
* stvarao zvuk numeričkim izračunima, a ne analognom elektronikom.&lt;br /&gt;
&lt;br /&gt;
Ovo je bio prvi put u povijesti da je glazba nastala isključivo računalnim izračunom.&lt;br /&gt;
&lt;br /&gt;
Kasnije verzije (MUSIC II, III, IV, V) postale su temelj modernih glazbenih sintesajzera i digitalnih audio sustava.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio pogodan za glazbenu sintezu ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je nekoliko ključnih značajki koje su omogućile digitalnu sintezu zvuka:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Floating‑point jedinica&#039;&#039;&#039; – omogućila precizne izračune valnih oblika.&lt;br /&gt;
* &#039;&#039;&#039;Brza magnetska jezgra&#039;&#039;&#039; – omogućila generiranje uzoraka u stvarnom vremenu (za to doba).&lt;br /&gt;
* &#039;&#039;&#039;Aritmetička jedinica AC/MQ&#039;&#039;&#039; – ubrzala izračune sinusnih i drugih funkcija.&lt;br /&gt;
* &#039;&#039;&#039;Instrukcijski skup optimiziran za matematičke operacije&#039;&#039;&#039; – savršen za DSP (digital signal processing).&lt;br /&gt;
* &#039;&#039;&#039;Mogućnost generiranja velikih nizova podataka&#039;&#039;&#039; – potrebnih za audio uzorke.&lt;br /&gt;
&lt;br /&gt;
IBM 704 je tako postao prvo računalo koje je moglo generirati digitalni zvuk dovoljno brzo da se može rekonstruirati na analognom pretvaraču.&lt;br /&gt;
&lt;br /&gt;
=== Prva računalno generirana pjesma ===&lt;br /&gt;
&lt;br /&gt;
Prvi glazbeni komad generiran na IBM 704 bio je jednostavan ton i kratka melodijska sekvenca.  &lt;br /&gt;
Kasnije su generirani:&lt;br /&gt;
&lt;br /&gt;
* jednostavni glazbeni motivi,&lt;br /&gt;
* kratke melodije,&lt;br /&gt;
* eksperimentalni zvukovi,&lt;br /&gt;
* rani oblici elektroničke glazbe.&lt;br /&gt;
&lt;br /&gt;
Ovi eksperimenti bili su preteča:&lt;br /&gt;
&lt;br /&gt;
* digitalnih sintesajzera,&lt;br /&gt;
* računalne glazbene kompozicije,&lt;br /&gt;
* algoritamske glazbe,&lt;br /&gt;
* elektroničke glazbe 1960-ih i 1970-ih.&lt;br /&gt;
&lt;br /&gt;
=== Primjer generiranja tona (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći SAP kod ilustrira kako je IBM 704 mogao generirati digitalni uzorak sinusnog vala:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA FREQ         / učitaj frekvenciju&lt;br /&gt;
MPY TIME         / pomnoži s vremenom&lt;br /&gt;
CALL SIN         / pozovi sinusnu funkciju&lt;br /&gt;
STO SAMPLE       / spremi uzorak&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj uzorak bi se zatim slao na digitalno‑analogni pretvarač.&lt;br /&gt;
&lt;br /&gt;
=== Utjecaj na glazbu i tehnologiju ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao ogroman utjecaj na razvoj glazbene tehnologije:&lt;br /&gt;
&lt;br /&gt;
* postavio je temelje digitalne sinteze,&lt;br /&gt;
* omogućio razvoj računalne kompozicije,&lt;br /&gt;
* inspirirao elektroničku glazbu,&lt;br /&gt;
* doveo do nastanka glazbenih jezika (MUSIC V, Csound),&lt;br /&gt;
* utjecao na razvoj MIDI standarda,&lt;br /&gt;
* otvorio put modernim DAW sustavima (Ableton, Logic, Pro Tools).&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, digitalna glazba bi se pojavila mnogo kasnije – ili u potpuno drugačijem obliku.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je bio:&lt;br /&gt;
&lt;br /&gt;
* prvo računalo koje je generiralo glazbu,&lt;br /&gt;
* temelj digitalne sinteze,&lt;br /&gt;
* ključni alat za Maxa Mathewsa, „oca računalne glazbe“,&lt;br /&gt;
* preteča svih modernih glazbenih algoritama, sintesajzera i audio procesora.&lt;br /&gt;
&lt;br /&gt;
Njegova uloga u glazbenoj povijesti jednako je važna kao i njegova uloga u razvoju FORTRAN-a, LISP-a, robotike i neuralnih mreža.&lt;br /&gt;
&lt;br /&gt;
==Programska podrška==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/rhobbie/Sim704  Simulator IBM 704]&lt;br /&gt;
* [https://sky-visions.com/ibm/704/ Arhiva programa za IBM 704]&lt;br /&gt;
* [https://www.piercefuller.com/library/share.html Druga arhiva programa za IBM 704]&lt;br /&gt;
* [https://bitsavers.org/pdf/ibm/704/24-6661-2_704_Manual_1955.pdf Operacijski priručnik za IBM 704]&lt;br /&gt;
&lt;br /&gt;
==Izvori==&lt;br /&gt;
{{izvori}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorija:IBM]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787645</id>
		<title>IBM 704</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787645"/>
		<updated>2026-07-07T10:25:49Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* IBM 704 i perceptron */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;IBM 704&#039;&#039;&#039; ime je za računalo prve generacije koje je razvila tvrtka [[IBM]] i jedan je iz serije računala IBM 700. Ovo računalo se proizvodilo od 1954. do 1964. godine.&amp;lt;ref&amp;gt;https://www.ibm.com/history/700&amp;lt;/ref&amp;gt;. Povijesna važnost ovog računala jest da je na njemu bio razvijen programski jezik [[FORTRAN]] i [[LISP]] te SAP asembler. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Povijest razvoja IBM 700 serije ==&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija bila je prva generacija komercijalnih znanstvenih računala koju je IBM razvio početkom 1950-ih. Serija je započela s modelom IBM 701 (1952.), poznatim kao „Defense Calculator“, koji je bio namijenjen vojnoj i zrakoplovnoj industriji.&lt;br /&gt;
&lt;br /&gt;
* IBM 702 (1953.) bio je poslovno orijentiran sustav, dok je IBM 703 bio eksperimentalni model.&lt;br /&gt;
* IBM 704 je postao temelj za razvoj FORTRAN-a (1957.), prvog visokorazinskog programskog jezika.&lt;br /&gt;
&lt;br /&gt;
Pravi tehnološki iskorak dogodio se s modelom &#039;&#039;&#039;IBM 704&#039;&#039;&#039; (1954.), prvim računalom koje je podržavalo:&lt;br /&gt;
* aritmetiku s pomičnim zarezom,&lt;br /&gt;
* indeksne registre,&lt;br /&gt;
* statusne indikatore,&lt;br /&gt;
* magnetsku jezgru kao primarnu memoriju.&lt;br /&gt;
&lt;br /&gt;
Serija se nastavila s modelima IBM 709 (1958.) i IBM 7090 (1959.), koji su bili tranzistorski nasljednici i koristili se u NASA-i, NORAD-u i velikim znanstvenim centrima.&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija ostavila je dubok trag u povijesti računarstva, postavivši standarde arhitekture koji su se zadržali desetljećima.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arhitektura IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od prvih komercijalnih računala koje je uvodilo napredne koncepte arhitekture, uključujući rad s pomičnim zarezom, indeksne registre i statusne indikatore. Sustav je bio dizajniran za znanstvene i tehničke izračune, što ga je činilo ključnim alatom u laboratorijima, sveučilištima i ranim zrakoplovnim projektima.&lt;br /&gt;
&lt;br /&gt;
=== Memorija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 koristio je magnetsku jezgru kao primarnu memoriju, što je u to vrijeme predstavljalo veliki tehnološki napredak u odnosu na Williamsove cijevi korištene u IBM-u 701. Magnetska jezgra bila je brža, pouzdanija i omogućavala stabilno zadržavanje podataka bez potrebe za stalnim osvježavanjem.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Memorijske karakteristike IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Vrsta memorije&lt;br /&gt;
| Magnetska jezgra&lt;br /&gt;
| Stabilna, brza i pouzdana tehnologija za 1950-e.&lt;br /&gt;
|-&lt;br /&gt;
| Kapacitet&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Ukupno 147 456 bitova (18 432 bajta).&lt;br /&gt;
|-&lt;br /&gt;
| Vrijeme pristupa&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za čitanje ili pisanje jedne riječi.&lt;br /&gt;
|-&lt;br /&gt;
| Format riječi&lt;br /&gt;
| 36-bitna riječ&lt;br /&gt;
| Koristi se za instrukcije, podatke i floating-point brojeve.&lt;br /&gt;
|-&lt;br /&gt;
| Floating-point format&lt;br /&gt;
| 8-bitni eksponent + 27-bitna mantisa&lt;br /&gt;
| Bez skrivenog bita; excess-128 eksponent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Periferni uređaji ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 podržavao je širok spektar perifernih uređaja, što ga je činilo pogodnim za znanstvene, tehničke i administrativne zadatke. Ulazno/izlazni sustav bio je temeljen na magnetskim vrpcama, kartičnim čitačima i pisačima, uz mogućnost prikaza podataka na CRT zaslonima.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Periferni uređaji IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Uređaj&lt;br /&gt;
! Model&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Čitač kartica&lt;br /&gt;
| IBM 711&lt;br /&gt;
| Učitava programe i podatke s bušenih kartica.&lt;br /&gt;
|-&lt;br /&gt;
| Pisač&lt;br /&gt;
| IBM 716&lt;br /&gt;
| Ispisuje tekstualni izlaz; glavni uređaj za ljudsko čitanje rezultata.&lt;br /&gt;
|-&lt;br /&gt;
| Bušilica kartica&lt;br /&gt;
| IBM 721&lt;br /&gt;
| Zapisuje podatke na bušene kartice.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| IBM 727&lt;br /&gt;
| Glavni masovni spremnik; preko 5 milijuna znakova po vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrolna jedinica vrpci&lt;br /&gt;
| IBM 753&lt;br /&gt;
| Upravljanje magnetskim vrpcama.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetski bubanj&lt;br /&gt;
| IBM 733&lt;br /&gt;
| Dodatna memorija za brzi pristup.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetska jezgra (RAM)&lt;br /&gt;
| IBM 737&lt;br /&gt;
| Primarna memorija sustava (4096 × 36-bitnih riječi).&lt;br /&gt;
|-&lt;br /&gt;
| CRT zaslon&lt;br /&gt;
| IBM 740&lt;br /&gt;
| 21-inčni vektorski prikaz s dugom fosfornom postojanošću; korišten za vizualizaciju podataka.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aritmetička jedinica (AC i MQ) ===&lt;br /&gt;
Aritmetička jedinica sastojala se od dva glavna 36-bitna registra:&lt;br /&gt;
* &#039;&#039;&#039;AC (Accumulator)&#039;&#039;&#039; – glavni registar za aritmetiku.&lt;br /&gt;
* &#039;&#039;&#039;MQ (Multiplier/Quotient)&#039;&#039;&#039; – registar za množenje i dijeljenje.&lt;br /&gt;
&lt;br /&gt;
Ova dva registra zajedno su omogućavala učinkovite operacije nad velikim brojevima i pomičnim zarezom.&lt;br /&gt;
&lt;br /&gt;
=== Indeksni registri (XR1, XR2, XR4) ===&lt;br /&gt;
IBM 704 je koristio tri indeksna registra:&lt;br /&gt;
* &#039;&#039;&#039;XR1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Indeksni registri omogućavali su modifikaciju adresa, implementaciju petlji i rad s velikim poljima podataka. Ovo je bio preteča modernog adresiranja u procesorima.&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori (SI) ===&lt;br /&gt;
Sustav je imao 36 senzorskih indikatora koji su služili kao statusne zastavice:&lt;br /&gt;
* indikatori grešaka (overflow, divide check)&lt;br /&gt;
* indikatori stanja I/O uređaja&lt;br /&gt;
* korisnički definirani indikatori&lt;br /&gt;
&lt;br /&gt;
Programi su mogli testirati i postavljati SI bitove, što je omogućavalo primitivne oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
=== Instrukcijski format ===&lt;br /&gt;
Instrukcije su bile 36-bitne, s poljima:&lt;br /&gt;
* opkod&lt;br /&gt;
* adresa&lt;br /&gt;
* indeksni modifikator&lt;br /&gt;
* bitovi za uvjetno grananje&lt;br /&gt;
&lt;br /&gt;
Ovaj format omogućavao je fleksibilno adresiranje i kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Floating‑point implementacija ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je prvo komercijalno računalo koje je imalo ugrađenu hardversku podršku za aritmetiku s pomičnim zarezom. Ovo je bio ključni tehnološki iskorak koji je omogućio razvoj FORTRAN-a i znanstvenih aplikacija koje su zahtijevale visoku numeričku preciznost.&lt;br /&gt;
&lt;br /&gt;
Floating‑point brojevi u IBM 704 bili su pohranjeni u 36‑bitnim riječima, podijeljenima na dva glavna dijela:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Mantisa&#039;&#039;&#039; – 27 bitova  &lt;br /&gt;
* &#039;&#039;&#039;Eksponent&#039;&#039;&#039; – 8 bitova (excess‑128 format)  &lt;br /&gt;
* &#039;&#039;&#039;Znak&#039;&#039;&#039; – 1 bit&lt;br /&gt;
&lt;br /&gt;
=== Format floating‑point riječi ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Format floating‑point broja (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! Polje&lt;br /&gt;
! Duljina&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Znak mantise&lt;br /&gt;
| 1 bit&lt;br /&gt;
| Određuje pozitivan ili negativan broj.&lt;br /&gt;
|-&lt;br /&gt;
| Mantisa&lt;br /&gt;
| 27 bitova&lt;br /&gt;
| Normalizirana mantisa bez skrivenog bita.&lt;br /&gt;
|-&lt;br /&gt;
| Eksponent&lt;br /&gt;
| 8 bitova&lt;br /&gt;
| Excess‑128 format (stvarni eksponent = pohranjeni − 128).&lt;br /&gt;
|-&lt;br /&gt;
| Rezervirano&lt;br /&gt;
| 0 bitova&lt;br /&gt;
| Format je potpuno iskorišten; nema neiskorištenih bitova.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Excess‑128 eksponent ===&lt;br /&gt;
&lt;br /&gt;
Eksponent je pohranjen u obliku:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
stvarni_eksponent = pohranjeni_eksponent − 128&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj pristup omogućavao je jednostavnije usporedbe i normalizaciju brojeva.&lt;br /&gt;
&lt;br /&gt;
=== Normalizacija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 zahtijevao je da mantisa bude normalizirana tako da najviši bit mantise bude različit od nule.  &lt;br /&gt;
To je omogućavalo maksimalnu preciznost pri izračunima.&lt;br /&gt;
&lt;br /&gt;
=== Floating‑point operacije ===&lt;br /&gt;
&lt;br /&gt;
Računalo je podržavalo sljedeće operacije nad floating‑point brojevima:&lt;br /&gt;
&lt;br /&gt;
* zbrajanje (ADD)  &lt;br /&gt;
* oduzimanje (SUB)  &lt;br /&gt;
* množenje (MPY)  &lt;br /&gt;
* dijeljenje (DIV)&lt;br /&gt;
&lt;br /&gt;
Sve operacije koristile su aritmetičku jedinicu AC/MQ, pri čemu se rezultat normalizirao automatski.&lt;br /&gt;
&lt;br /&gt;
=== Primjer floating‑point operacije u assembleru ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj floating-point broj A&lt;br /&gt;
ADD B        / zbroji ga s B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Važnost floating‑point implementacije ===&lt;br /&gt;
&lt;br /&gt;
Hardverska podrška za pomični zarez bila je ključna za:&lt;br /&gt;
&lt;br /&gt;
* razvoj FORTRAN-a (1957.)&lt;br /&gt;
* balističke izračune&lt;br /&gt;
* aerodinamičke simulacije&lt;br /&gt;
* nuklearne proračune&lt;br /&gt;
* statističke modele&lt;br /&gt;
* rane znanstvene aplikacije NASA-e&lt;br /&gt;
&lt;br /&gt;
IBM 704 je time postavio standard koji će kasnije preuzeti svi moderni procesori.&lt;br /&gt;
&lt;br /&gt;
== Instrukcijski skup IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Glavne grupe instrukcija IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Grupa&lt;br /&gt;
! Primjeri&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Aritmetičke instrukcije&lt;br /&gt;
| ADD, SUB, MPY, DIV&lt;br /&gt;
| Operacije nad AC i MQ registrima; podrška za cijele brojeve i pomični zarez.&lt;br /&gt;
|-&lt;br /&gt;
| Logičke instrukcije&lt;br /&gt;
| CLA, CLM, COM&lt;br /&gt;
| Čišćenje, komplementiranje i manipulacija bitovima.&lt;br /&gt;
|-&lt;br /&gt;
| Uvjetno grananje&lt;br /&gt;
| TRA, TMI, TPL, TZE&lt;br /&gt;
| Skokovi ovisno o sadržaju AC ili MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Rad sa Sense Indicators&lt;br /&gt;
| TSI, SSI, RSI&lt;br /&gt;
| Testiranje, postavljanje i resetiranje statusnih bitova.&lt;br /&gt;
|-&lt;br /&gt;
| Indeksno adresiranje&lt;br /&gt;
| AXT, TXI&lt;br /&gt;
| Modifikacija adresa pomoću XR1, XR2, XR4.&lt;br /&gt;
|-&lt;br /&gt;
| Ulazno/izlazne instrukcije&lt;br /&gt;
| RDS, WRS, RWT&lt;br /&gt;
| Rad s magnetskom vrpcom, kartičnim čitačem i pisačem.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrola toka programa&lt;br /&gt;
| HLT, NOP&lt;br /&gt;
| Zaustavljanje programa, prazna instrukcija.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Opkodovi IBM 704 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Kompletan popis opkoda IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Opkod&lt;br /&gt;
! Mnemonik&lt;br /&gt;
! Grupa&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 000&lt;br /&gt;
| NOP&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Prazna instrukcija; ne radi ništa.&lt;br /&gt;
|-&lt;br /&gt;
| 001&lt;br /&gt;
| HLT&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Zaustavlja izvršavanje programa.&lt;br /&gt;
|-&lt;br /&gt;
| 002&lt;br /&gt;
| TRA&lt;br /&gt;
| Grananje&lt;br /&gt;
| Bezuvjetni skok na adresu.&lt;br /&gt;
|-&lt;br /&gt;
| 003&lt;br /&gt;
| TRN&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC negativan.&lt;br /&gt;
|-&lt;br /&gt;
| 004&lt;br /&gt;
| TMI&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC manji od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 005&lt;br /&gt;
| TPL&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC veći od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 006&lt;br /&gt;
| TZE&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC jednak nuli.&lt;br /&gt;
|-&lt;br /&gt;
| 007&lt;br /&gt;
| TOV&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je overflow zastavica postavljena.&lt;br /&gt;
|-&lt;br /&gt;
| 010&lt;br /&gt;
| ADD&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Zbrajanje sadržaja memorije s AC.&lt;br /&gt;
|-&lt;br /&gt;
| 011&lt;br /&gt;
| SUB&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Oduzimanje sadržaja memorije od AC.&lt;br /&gt;
|-&lt;br /&gt;
| 012&lt;br /&gt;
| MPY&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Množenje; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 013&lt;br /&gt;
| DIV&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Dijeljenje; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 014&lt;br /&gt;
| CLA&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 015&lt;br /&gt;
| CLM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 016&lt;br /&gt;
| COM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Komplementira AC.&lt;br /&gt;
|-&lt;br /&gt;
| 020&lt;br /&gt;
| SHL&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak ulijevo.&lt;br /&gt;
|-&lt;br /&gt;
| 021&lt;br /&gt;
| SHR&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak udesno.&lt;br /&gt;
|-&lt;br /&gt;
| 030&lt;br /&gt;
| AXT&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Učitava vrijednost u XR1, XR2 ili XR4.&lt;br /&gt;
|-&lt;br /&gt;
| 031&lt;br /&gt;
| TXI&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Dodaje vrijednost indeksnom registru.&lt;br /&gt;
|-&lt;br /&gt;
| 040&lt;br /&gt;
| RDS&lt;br /&gt;
| I/O&lt;br /&gt;
| Čitanje s magnetske vrpce.&lt;br /&gt;
|-&lt;br /&gt;
| 041&lt;br /&gt;
| WRS&lt;br /&gt;
| I/O&lt;br /&gt;
| Pisanje na magnetsku vrpcu.&lt;br /&gt;
|-&lt;br /&gt;
| 042&lt;br /&gt;
| RWT&lt;br /&gt;
| I/O&lt;br /&gt;
| Čekanje na I/O operaciju.&lt;br /&gt;
|-&lt;br /&gt;
| 050&lt;br /&gt;
| TSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Testira Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 051&lt;br /&gt;
| SSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Postavlja Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 052&lt;br /&gt;
| RSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Resetira Sense Indicator n.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Registri==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--             --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:88%;width:34em;&amp;quot;&lt;br /&gt;
|+ Registri u računalu IBM 704&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| style=&amp;quot;font-size:88%;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Podatkovni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | S&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | Q&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | P&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;14&amp;quot;| Akumulator&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | AC&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;1&amp;quot;| S&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;11&amp;quot;| Množitelj/Količnik&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | MQ&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;12&amp;quot;| Senzorni indikatori&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | SI&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 1&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR1 (XRA)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 2&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR2 (XRB)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 4 &lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR4 (XRC)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;14&amp;quot; | &#039;&#039;&#039;Brojač naredbi&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Brojač&amp;amp;nbsp;Naredbi&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| IC&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzorni indikatori&#039;&#039;&#039; - su posebni statusni bitovi u IBM 704 koj su se u praksi rabili za provjeru grešaka, grananje ovisno o stanju sustava, upravljanje perifernim jedinicama, te za signalizaciju posebnih događaja. Kroz njih programeri su mogli održavati stanje sustava, signalizirati određene uvjete tokom izvršavanje naredbi, čitanje i postavljanje naredbi i tako su služili za jednostane oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Sense Indicators (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! SI broj&lt;br /&gt;
! Naziv / funkcija&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Overflow flag&lt;br /&gt;
| Postavlja se pri prekoračenju rezultata u akumulatoru (AC) ili količniku (MQ).&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Divide check&lt;br /&gt;
| Signalizira pogrešku pri dijeljenju, uključujući dijeljenje nulom.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| I/O ready&lt;br /&gt;
| Uređaj spreman za prijenos podataka.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| I/O complete&lt;br /&gt;
| Završetak operacije ulaza/izlaza.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Tape mark&lt;br /&gt;
| Očitana oznaka kraja bloka na magnetskoj vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Printer ready&lt;br /&gt;
| Pisač spreman za rad.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Card reader ready&lt;br /&gt;
| Čitač kartica spreman.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Card punch ready&lt;br /&gt;
| Bušilica kartica spremna.&lt;br /&gt;
|-&lt;br /&gt;
| 8–15&lt;br /&gt;
| Peripheral flags&lt;br /&gt;
| Razni signali perifernih uređaja (disk, vrpca, pisač).&lt;br /&gt;
|-&lt;br /&gt;
| 16–35&lt;br /&gt;
| User-defined flags&lt;br /&gt;
| Zastavice koje programer može slobodno koristiti za logiku grananja.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Korištenje u IBM 704 assembleru ====&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao posebne instrukcije za rad sa Sense Indicators:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;TSI n&#039;&#039;&#039;&lt;br /&gt;
: Testira Sense Indicator &#039;&#039;n&#039;&#039;. Ako je postavljen, izvršavanje se nastavlja normalno; ako nije, preskače se sljedeća instrukcija.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3      / provjeri je li I/O complete&lt;br /&gt;
TRA DONE   / ako je postavljen, skoči na DONE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;SSI n&#039;&#039;&#039;&lt;br /&gt;
: Postavlja Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;RSI n&#039;&#039;&#039;&lt;br /&gt;
: Resetira Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 1      / provjeri divide check&lt;br /&gt;
TRA ERROR  / ako je SI1 = 1, idi na ERROR&lt;br /&gt;
&lt;br /&gt;
SSI 20     / postavi korisnički indikator 20&lt;br /&gt;
RSI 3      / resetiraj I/O complete indikator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Usporedba s modernim statusnim registrima ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! IBM 704 Sense Indicators&lt;br /&gt;
! Moderni statusni registri (x86, ARM, RISC-V)&lt;br /&gt;
|-&lt;br /&gt;
| 36 jednobitnih zastavica&lt;br /&gt;
| 8–32 bitni statusni registri&lt;br /&gt;
|-&lt;br /&gt;
| Ručno postavljanje i brisanje&lt;br /&gt;
| Automatsko postavljanje od strane ALU&lt;br /&gt;
|-&lt;br /&gt;
| Koriste se za I/O signalizaciju&lt;br /&gt;
| I/O signalizacija preko interrupt kontrolera&lt;br /&gt;
|-&lt;br /&gt;
| Jednostavne logičke zastavice&lt;br /&gt;
| Zastavice za aritmetiku, usporedbe, prekide&lt;br /&gt;
|-&lt;br /&gt;
| Programer koristi dio SI kao &amp;quot;user flags&amp;quot;&lt;br /&gt;
| Moderni jezici koriste varijable, strukture, objekte&lt;br /&gt;
|-&lt;br /&gt;
| Grananje preko TSI instrukcije&lt;br /&gt;
| Grananje preko CMP/JMP, BEQ/BNE, BLT/BGT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Primjeri IBM 704 assembler koda ==&lt;br /&gt;
&lt;br /&gt;
=== Zbrajanje dvaju brojeva ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj A u AC&lt;br /&gt;
ADD B        / dodaj B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Provjera negativnog broja ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA X        / učitaj X&lt;br /&gt;
TMI NEG      / ako je X &amp;lt; 0, idi na NEG&lt;br /&gt;
TRA DONE     / inače nastavi&lt;br /&gt;
NEG STO Y    / spremi negativnu vrijednost&lt;br /&gt;
DONE HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Množenje i dijeljenje ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A&lt;br /&gt;
MPY B        / AC*B → AC/MQ&lt;br /&gt;
DIV C        / (AC/MQ) / C → MQ (količnik), AC (ostatak)&lt;br /&gt;
STO Q        / spremi količnik&lt;br /&gt;
STO R        / spremi ostatak&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Korištenje Sense Indicators ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3        / provjeri I/O complete&lt;br /&gt;
TRA IO_OK    / ako je SI3 = 1, idi na IO_OK&lt;br /&gt;
SSI 20       / postavi korisnički indikator 20&lt;br /&gt;
IO_OK HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Performanse IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od najbržih znanstvenih računala svoje generacije. Njegova arhitektura s pomičnim zarezom, magnetskom jezgrom i specijaliziranim aritmetičkim registrima omogućavala je znatno bolje performanse u odnosu na prethodne modele IBM 701 i IBM 702. Sustav je bio optimiziran za matematičke operacije, simulacije, statističke izračune i obradu velikih numeričkih skupova podataka.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Performanse računala IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Brzina zbrajanja&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za izvršavanje jedne ADD instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina množenja&lt;br /&gt;
| ~20 μs&lt;br /&gt;
| Vrijeme za MPY instrukciju; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina dijeljenja&lt;br /&gt;
| ~38 μs&lt;br /&gt;
| Vrijeme za DIV instrukciju; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| Memorija&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Magnetska jezgra; pristup ~12 μs.&lt;br /&gt;
|-&lt;br /&gt;
| Ciklus instrukcije&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Prosječno vrijeme za dohvat i izvršavanje jednostavne instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina I/O operacija&lt;br /&gt;
| 7200 kartica/min (čitač)&lt;br /&gt;
| Kartični čitač i bušilica bili su glavni ulazno/izlazni sustavi.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| 12 500 znakovnih blokova/s&lt;br /&gt;
| Ovisno o uređaju; korišteno za masovno spremanje podataka.&lt;br /&gt;
|-&lt;br /&gt;
| Preciznost pomičnog zareza&lt;br /&gt;
| 27-bitni eksponent + 8-bitna mantisa&lt;br /&gt;
| Omogućavalo znanstvene izračune velike preciznosti.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pouzdanost ==&lt;br /&gt;
&lt;br /&gt;
Iako je IBM 704 bio znatno pouzdaniji od svog prethodnika IBM 701, i dalje je bio stroj temeljen na vakuumskim cijevima, što je značilo relativno česte kvarove prema današnjim standardima. Prosječno vrijeme između kvarova iznosilo je oko 8 sati, što je ograničavalo veličinu programa koje je bilo moguće kompajlirati ili izvršavati bez prekida.&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN kompajleri morali su biti iznimno učinkoviti jer bi preduga kompilacija mogla biti prekinuta kvarom sustava. Unatoč tome, IBM 704 je bio dovoljno pouzdan da postane temelj za razvoj FORTRAN-a, LISP-a, ranih neuralnih mreža i brojnih znanstvenih projekata.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Pouzdanost IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| MTBF (mean time between failure)&lt;br /&gt;
| ~8 sati&lt;br /&gt;
| Prosječno vrijeme rada prije kvara.&lt;br /&gt;
|-&lt;br /&gt;
| Usporedba s IBM 701&lt;br /&gt;
| ~30 minuta&lt;br /&gt;
| IBM 704 bio je znatno pouzdaniji od svog prethodnika.&lt;br /&gt;
|-&lt;br /&gt;
| Utjecaj na softver&lt;br /&gt;
| Ograničena veličina programa&lt;br /&gt;
| Kompilacije su morale biti kratke zbog mogućih kvarova.&lt;br /&gt;
|-&lt;br /&gt;
| Tehnologija&lt;br /&gt;
| Vakuumske cijevi&lt;br /&gt;
| Glavni uzrok kvarova i zagrijavanja sustava.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SAP asembler ==&lt;br /&gt;
&lt;br /&gt;
SAP (&#039;&#039;Symbolic Assembly Program&#039;&#039;) bio je službeni asembler za IBM 704 i predstavljao je jedan od najranijih i najutjecajnijih asemblera u povijesti računarstva. Razvijen je unutar IBM-a sredinom 1950-ih kako bi programerima omogućio pisanje simboličkog koda umjesto ručnog unošenja numeričkih opkoda i adresa.&lt;br /&gt;
&lt;br /&gt;
SAP je bio ključan za razvoj FORTRAN-a, LISP-a i mnogih ranih znanstvenih aplikacija, jer je omogućio jednostavnije pisanje, čitanje i održavanje programa na IBM 704.&lt;br /&gt;
&lt;br /&gt;
=== Značajke SAP asemblera ===&lt;br /&gt;
&lt;br /&gt;
SAP je imao nekoliko naprednih značajki za svoje vrijeme:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simboličke oznake&#039;&#039;&#039; – programeri su mogli koristiti imena umjesto numeričkih adresa.&lt;br /&gt;
* &#039;&#039;&#039;Automatsko izračunavanje adresa&#039;&#039;&#039; – asembler je sam određivao lokacije instrukcija.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za indeksne registre&#039;&#039;&#039; – XR1, XR2 i XR4 mogli su se koristiti u adresiranju.&lt;br /&gt;
* &#039;&#039;&#039;Jednostavna sintaksa&#039;&#039;&#039; – instrukcije su bile kratke i čitljive.&lt;br /&gt;
* &#039;&#039;&#039;Integracija s FORTRAN-om&#039;&#039;&#039; – FORTRAN kompajler generirao je SAP kod.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za floating‑point operacije&#039;&#039;&#039; – izravno korištenje AC/MQ jedinice.&lt;br /&gt;
&lt;br /&gt;
SAP je bio jedan od prvih asemblera koji je omogućio relativno visok stupanj apstrakcije u odnosu na strojni kod.&lt;br /&gt;
&lt;br /&gt;
=== Struktura SAP instrukcije ===&lt;br /&gt;
&lt;br /&gt;
Instrukcije su se sastojale od:&lt;br /&gt;
&lt;br /&gt;
* mnemonika (ADD, SUB, MPY, DIV, TRA…)&lt;br /&gt;
* adrese ili simbola&lt;br /&gt;
* opcionalnog indeksnog modifikatora&lt;br /&gt;
* komentara&lt;br /&gt;
&lt;br /&gt;
Primjer strukture:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
MNEMONIK  ADRESA,XR   / komentar&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Primjer SAP koda ===&lt;br /&gt;
&lt;br /&gt;
Slijedi povijesno točan primjer SAP koda za IBM 704:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
A      DEC 5          / definiraj konstantu A&lt;br /&gt;
B      DEC 7          / definiraj konstantu B&lt;br /&gt;
C      BSS 1          / rezerviraj prostor za rezultat&lt;br /&gt;
&lt;br /&gt;
       CLA A          / učitaj A u AC&lt;br /&gt;
       ADD B          / dodaj B&lt;br /&gt;
       STO C          / spremi rezultat u C&lt;br /&gt;
       HLT            / zaustavi program&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Korištenje indeksnih registara ===&lt;br /&gt;
&lt;br /&gt;
SAP je omogućavao jednostavno korištenje XR1, XR2 i XR4:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
LOOP   CLA ARRAY,XR1  / učitaj element polja&lt;br /&gt;
       ADD SUM        / dodaj na sumu&lt;br /&gt;
       STO SUM        / spremi rezultat&lt;br /&gt;
       TXI XR1,1      / povećaj indeks&lt;br /&gt;
       TPL LOOP       / ako je pozitivan, nastavi petlju&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio preteča modernih petlji u visokorazinskim jezicima.&lt;br /&gt;
&lt;br /&gt;
=== SAP i FORTRAN ===&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN kompajler generirao je SAP kod koji se zatim prevodio u strojni kod IBM 704.  &lt;br /&gt;
Zbog toga je SAP bio ključan za:&lt;br /&gt;
&lt;br /&gt;
* optimizaciju FORTRAN programa,&lt;br /&gt;
* implementaciju DO petlji,&lt;br /&gt;
* rad s poljima i matricama,&lt;br /&gt;
* floating‑point operacije,&lt;br /&gt;
* kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
=== SAP i LISP ===&lt;br /&gt;
&lt;br /&gt;
Prva implementacija LISP-a (1958.) bila je napisana upravo u SAP asembleru.  &lt;br /&gt;
SAP je omogućio:&lt;br /&gt;
&lt;br /&gt;
* manipulaciju cons‑struktura,&lt;br /&gt;
* implementaciju CAR i CDR operacija,&lt;br /&gt;
* rekurziju,&lt;br /&gt;
* dinamičko upravljanje memorijom.&lt;br /&gt;
&lt;br /&gt;
Bez SAP-a, LISP ne bi mogao biti implementiran na IBM 704.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj SAP-a ===&lt;br /&gt;
&lt;br /&gt;
SAP je bio jedan od najvažnijih asemblera 1950-ih i 1960-ih.  &lt;br /&gt;
Njegov utjecaj vidljiv je u:&lt;br /&gt;
&lt;br /&gt;
* razvoju FORTRAN-a,&lt;br /&gt;
* nastanku LISP-a,&lt;br /&gt;
* ranim AI projektima,&lt;br /&gt;
* znanstvenim simulacijama,&lt;br /&gt;
* razvoju modernih asemblera i kompajlera.&lt;br /&gt;
&lt;br /&gt;
SAP je postavio temelje za simboličko programiranje i bio je ključni alat u zlatnom dobu ranog računarstva.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju LISP-a ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je ključnu ulogu u nastanku programskog jezika LISP, jednog od najvažnijih jezika u povijesti računarstva. LISP je 1958. godine razvio John McCarthy na MIT-u, a upravo je IBM 704 bio prvo računalo na kojem je LISP implementiran i izvršavan.&amp;lt;ref&amp;gt;http://jmc.stanford.edu/articles/lisp/lisp.pdf &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Razvoj LISP-a bio je izravno povezan s arhitekturom IBM 704, posebno s njegovim:&lt;br /&gt;
* 36-bitnim riječima,&lt;br /&gt;
* aritmetičkom jedinicom AC/MQ,&lt;br /&gt;
* indeksnim registrima,&lt;br /&gt;
* mogućnošću manipulacije adresama,&lt;br /&gt;
* podrškom za uvjetno grananje,&lt;br /&gt;
* te fleksibilnim instrukcijskim formatom.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio pogodan za LISP ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je nekoliko arhitekturnih značajki koje su se pokazale idealnima za implementaciju LISP-a:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;36-bitne riječi&#039;&#039;&#039; omogućavale su učinkovito predstavljanje parova (cons cells).&lt;br /&gt;
* &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039; olakšavali su rad s listama i rekurzivnim strukturama.&lt;br /&gt;
* &#039;&#039;&#039;Instrukcije grananja&#039;&#039;&#039; (TRA, TMI, TPL, TZE) omogućavale su jednostavnu implementaciju rekurzije.&lt;br /&gt;
* &#039;&#039;&#039;Magnetska jezgra&#039;&#039;&#039; bila je dovoljno brza za dinamičke strukture podataka.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za floating-point&#039;&#039;&#039; olakšala je rad s matematičkim funkcijama.&lt;br /&gt;
&lt;br /&gt;
McCarthy je iskoristio ove mogućnosti kako bi implementirao osnovne LISP konstrukte: CONS, CAR, CDR, rekurziju, lambda‑izraze i funkcije višeg reda.&lt;br /&gt;
&lt;br /&gt;
=== Prva implementacija LISP-a ===&lt;br /&gt;
&lt;br /&gt;
Prva verzija LISP-a bila je napisana u SAP asembleru za IBM 704.  &lt;br /&gt;
Ova implementacija uključivala je:&lt;br /&gt;
&lt;br /&gt;
* interpreter,&lt;br /&gt;
* evaluator,&lt;br /&gt;
* upravljanje memorijom,&lt;br /&gt;
* implementaciju cons‑struktura,&lt;br /&gt;
* osnovne matematičke funkcije,&lt;br /&gt;
* te mehanizme za rekurziju i funkcije višeg reda.&lt;br /&gt;
&lt;br /&gt;
LISP je na IBM 704 radio kao interpretirani jezik, a programi su se izvršavali izravno nad strukturom lista u memoriji.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je omogućio LISP-u da postane prvi široko korišteni jezik za:&lt;br /&gt;
&lt;br /&gt;
* umjetnu inteligenciju,&lt;br /&gt;
* simboličku manipulaciju,&lt;br /&gt;
* matematičku logiku,&lt;br /&gt;
* rane ekspertske sustave,&lt;br /&gt;
* istraživanje strojnog učenja.&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, LISP bi vjerojatno bio znatno drugačiji — ili bi se pojavio mnogo kasnije.&lt;br /&gt;
&lt;br /&gt;
=== Primjer ranog LISP izraza (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Iako se LISP nije zapisivao u assembleru, njegovi izrazi su se prevodili u SAP kod za IBM 704.  &lt;br /&gt;
Primjer jednostavne LISP funkcije:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(define (square x)&lt;br /&gt;
  (* x x))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj izraz bi se na IBM 704 interno pretvorio u operacije nad cons‑struktura i pozive aritmetičkih instrukcija MPY i ADD.&lt;br /&gt;
&lt;br /&gt;
=== Utjecaj na daljnji razvoj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je bio platforma na kojoj su nastale ključne ideje:&lt;br /&gt;
&lt;br /&gt;
* automatsko upravljanje memorijom,&lt;br /&gt;
* rekurzija kao temeljni mehanizam,&lt;br /&gt;
* funkcije višeg reda,&lt;br /&gt;
* lambda‑račun,&lt;br /&gt;
* simbolička obrada podataka.&lt;br /&gt;
&lt;br /&gt;
Ove ideje postale su temelj modernih programskih jezika, od Schemea i Prologa do Pythona i JavaScripta.&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju FORTRAN-a ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je presudnu ulogu u nastanku FORTRAN-a (Formula Translation), prvog široko korištenog visokorazinskog programskog jezika. FORTRAN je razvijen 1957. godine u IBM-u pod vodstvom Johna Backusa, a IBM 704 bio je prvo računalo na kojem je FORTRAN implementiran, kompajliran i izvršavan.&lt;br /&gt;
&lt;br /&gt;
Arhitektura IBM 704 izravno je oblikovala dizajn FORTRAN-a. Njegova podrška za aritmetiku s pomičnim zarezom, indeksne registre, statusne indikatore i 36-bitne riječi omogućila je stvaranje jezika koji je bio optimiziran za znanstvene i tehničke izračune.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio ključan za FORTRAN ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 posjedovao je nekoliko arhitekturnih značajki koje su bile presudne za razvoj FORTRAN-a:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Hardverska floating‑point jedinica&#039;&#039;&#039; – omogućila je izravnu podršku za matematičke operacije.&lt;br /&gt;
* &#039;&#039;&#039;Aritmetički registri AC i MQ&#039;&#039;&#039; – olakšali su implement&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju ranih neuralnih mreža ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je važnu ulogu u razvoju najranijih modela umjetnih neuronskih mreža tijekom kasnih 1950-ih i ranih 1960-ih. Iako su ti modeli bili daleko jednostavniji od današnjih dubokih mreža, IBM 704 je bio jedno od rijetkih računala koje je imalo dovoljno memorije, brzine i aritmetičkih mogućnosti da može izvoditi simulacije neuronskih mreža u praksi.&lt;br /&gt;
&lt;br /&gt;
Rani pioniri umjetne inteligencije, uključujući Franka Rosenblatta, Herberta Simona, Allena Newella i istraživače s MIT-a i Cornell Aeronautical Laboratory, koristili su IBM 704 za implementaciju i testiranje prvih algoritama koji su simulirali neuronsko učenje.&lt;br /&gt;
&lt;br /&gt;
=== IBM 704 i perceptron ===&lt;br /&gt;
&lt;br /&gt;
Najvažniji doprinos IBM 704 razvoju neuralnih mreža bio je u implementaciji i simulaciji **Rosenblattovog perceptrona**, prvog formalnog modela neuronske mreže koji je mogao učiti iz podataka.&amp;lt;ref&amp;gt;https://as.cornell.edu/news/professors-perceptron-paved-way-ai-60-years-too-soon&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IBM 704 omogućio je:&lt;br /&gt;
&lt;br /&gt;
* izračun težina perceptrona,&lt;br /&gt;
* simulaciju učenja kroz iteracije,&lt;br /&gt;
* rad s matricama i vektorima,&lt;br /&gt;
* evaluaciju linearnih klasifikatora,&lt;br /&gt;
* testiranje različitih skupova podataka.&lt;br /&gt;
&lt;br /&gt;
Iako je perceptron kasnije imao i hardversku implementaciju (Mark I Perceptron), IBM 704 bio je ključan za **prve softverske simulacije** koje su potvrdile da se neuronske mreže mogu trenirati računalno.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio pogodan za neuralne mreže ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je nekoliko arhitekturnih značajki koje su bile iznimno korisne za rane AI eksperimente:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Floating‑point jedinica&#039;&#039;&#039; – omogućila je precizne izračune težina i aktivacijskih funkcija.&lt;br /&gt;
* &#039;&#039;&#039;Aritmetički registri AC/MQ&#039;&#039;&#039; – ubrzali su operacije nad vektorima.&lt;br /&gt;
* &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039; – olakšali su rad s matricama i iteracijama.&lt;br /&gt;
* &#039;&#039;&#039;Magnetska jezgra&#039;&#039;&#039; – bila je dovoljno brza za ponavljajuće izračune.&lt;br /&gt;
* &#039;&#039;&#039;Instrukcije grananja&#039;&#039;&#039; – omogućile su implementaciju algoritama učenja.&lt;br /&gt;
&lt;br /&gt;
Zbog toga je IBM 704 bio jedno od prvih računala koje je moglo izvoditi **iterativne algoritme učenja**, temeljne za neuralne mreže.&lt;br /&gt;
&lt;br /&gt;
=== Rani eksperimenti umjetne inteligencije ===&lt;br /&gt;
&lt;br /&gt;
Na IBM 704 provodili su se rani eksperimenti koji su uključivali:&lt;br /&gt;
&lt;br /&gt;
* simulaciju perceptrona,&lt;br /&gt;
* klasifikaciju jednostavnih vizualnih uzoraka,&lt;br /&gt;
* prepoznavanje znakova,&lt;br /&gt;
* rane oblike strojne percepcije,&lt;br /&gt;
* istraživanje linearnih i nelinearnih funkcija aktivacije.&lt;br /&gt;
&lt;br /&gt;
Ovi eksperimenti bili su temelj za kasniji razvoj:&lt;br /&gt;
&lt;br /&gt;
* višeslojnih perceptrona,&lt;br /&gt;
* backpropagation algoritma,&lt;br /&gt;
* dubokog učenja,&lt;br /&gt;
* računalnog vida.&lt;br /&gt;
&lt;br /&gt;
=== Primjer jednostavne perceptronske iteracije (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći pseudokod prikazuje kako je perceptron bio implementiran na IBM 704:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA W1        / učitaj težinu&lt;br /&gt;
MPY X1        / pomnoži s ulazom&lt;br /&gt;
ADD SUM       / dodaj na akumuliranu sumu&lt;br /&gt;
STO SUM       / spremi novu vrijednost&lt;br /&gt;
&lt;br /&gt;
... ponavljati za sve ulaze ...&lt;br /&gt;
&lt;br /&gt;
CLA SUM&lt;br /&gt;
TMI UPDATE    / ako je pogreška negativna, ažuriraj težine&lt;br /&gt;
TPL UPDATE    / ako je pogreška pozitivna, također ažuriraj&lt;br /&gt;
&lt;br /&gt;
UPDATE:&lt;br /&gt;
ADD ERROR     / korekcija težine&lt;br /&gt;
STO W1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio jedan od prvih primjera **računalnog učenja** u povijesti.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je ključan za rani razvoj umjetne inteligencije jer je:&lt;br /&gt;
&lt;br /&gt;
* omogućio prve računalne simulacije neuronskih mreža,&lt;br /&gt;
* bio platforma za perceptron i rane modele učenja,&lt;br /&gt;
* omogućio istraživanje algoritama koji su kasnije postali temelj dubokog učenja,&lt;br /&gt;
* povezao AI istraživanje s praktičnim računalnim sustavima.&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, razvoj ranih neuralnih mreža bio bi znatno sporiji i ograničeniji.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u ranoj robotici ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je važnu ulogu u razvoju najranijih oblika robotike i automatizacije tijekom kasnih 1950-ih i ranih 1960-ih. Iako se u to vrijeme pojam „robotika“ tek počeo pojavljivati u znanstvenoj literaturi, IBM 704 bio je jedno od prvih računala koje je moglo upravljati mehaničkim sustavima, analizirati senzorske podatke i izvoditi algoritme koji su predstavljali preteču modernog upravljanja robotima.&lt;br /&gt;
&lt;br /&gt;
Rani robotski sustavi bili su primitivni u odnosu na današnje, ali IBM 704 je omogućio:&lt;br /&gt;
&lt;br /&gt;
* upravljanje aktuatorima i elektromehaničkim uređajima,&lt;br /&gt;
* obradu ulaznih signala iz senzora,&lt;br /&gt;
* simulaciju kretanja i kontrolnih petlji,&lt;br /&gt;
* rane eksperimente u automatskom upravljanju,&lt;br /&gt;
* integraciju s vizualnim sustavima (CRT prikaz IBM 740).&lt;br /&gt;
&lt;br /&gt;
=== Rani eksperimenti automatizacije ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 korišten je u laboratorijima i istraživačkim centrima za:&lt;br /&gt;
&lt;br /&gt;
* upravljanje robotskim manipulatorima,&lt;br /&gt;
* simulaciju kinematike i dinamike,&lt;br /&gt;
* upravljanje servo‑motorima,&lt;br /&gt;
* automatizaciju industrijskih procesa,&lt;br /&gt;
* rane oblike povratne sprege (feedback control).&lt;br /&gt;
&lt;br /&gt;
Ovi sustavi nisu bili roboti u modernom smislu, ali su predstavljali ključne korake prema:&lt;br /&gt;
&lt;br /&gt;
* numeričkom upravljanju strojevima (NC machines),&lt;br /&gt;
* automatskim manipulatorima,&lt;br /&gt;
* sustavima za automatsko pozicioniranje,&lt;br /&gt;
* ranim oblicima cybernetike.&lt;br /&gt;
&lt;br /&gt;
=== IBM 704 i cybernetika ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je često korišten u istraživanjima inspiriranim radom Norberta Wienera, osnivača cybernetike.  &lt;br /&gt;
Sustav je omogućavao:&lt;br /&gt;
&lt;br /&gt;
* simulaciju povratne sprege,&lt;br /&gt;
* analizu stabilnosti sustava,&lt;br /&gt;
* implementaciju kontrolnih algoritama,&lt;br /&gt;
* rane oblike adaptivnog upravljanja.&lt;br /&gt;
&lt;br /&gt;
Ovo je bilo ključno za razvoj robotskih sustava koji se mogu prilagođavati promjenama u okruženju.&lt;br /&gt;
&lt;br /&gt;
=== Vizualni sustavi i IBM 740 ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 se mogao povezati s CRT zaslonom IBM 740, koji je omogućavao:&lt;br /&gt;
&lt;br /&gt;
* prikaz vektorskih grafika,&lt;br /&gt;
* vizualizaciju putanja kretanja,&lt;br /&gt;
* prikaz senzorskih podataka,&lt;br /&gt;
* rane eksperimente u računalnom vidu.&lt;br /&gt;
&lt;br /&gt;
Iako primitivni, ovi sustavi bili su preteča kasnijih robotskih vizualnih sustava.&lt;br /&gt;
&lt;br /&gt;
=== Primjer jednostavne kontrolne petlje (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći SAP kod prikazuje kako je IBM 704 mogao implementirati jednostavnu kontrolnu petlju za upravljanje aktuatorom:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
READSENSOR  RDS SENS        / očitaj senzor&lt;br /&gt;
           CLA SENS        / učitaj vrijednost&lt;br /&gt;
           SUB TARGET      / usporedi s ciljem&lt;br /&gt;
           TPL INCREASE    / ako je pozitivno, povećaj izlaz&lt;br /&gt;
           TMI DECREASE    / ako je negativno, smanji izlaz&lt;br /&gt;
&lt;br /&gt;
INCREASE   ADD STEP        / povećaj upravljački signal&lt;br /&gt;
           STO ACTUATOR&lt;br /&gt;
           TRA LOOP&lt;br /&gt;
&lt;br /&gt;
DECREASE   SUB STEP        / smanji upravljački signal&lt;br /&gt;
           STO ACTUATOR&lt;br /&gt;
           TRA LOOP&lt;br /&gt;
&lt;br /&gt;
LOOP       TRA READSENSOR  / ponovi petlju&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio jedan od prvih primjera računalno upravljanih mehaničkih sustava.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je ključan za rani razvoj robotike jer je:&lt;br /&gt;
&lt;br /&gt;
* omogućio prve računalne simulacije upravljanja strojevima,&lt;br /&gt;
* bio platforma za cybernetičke eksperimente,&lt;br /&gt;
* omogućio integraciju senzora i aktuatora,&lt;br /&gt;
* pružio temelj za numeričko upravljanje strojevima (NC),&lt;br /&gt;
* povezao mehaniku, elektroniku i računalne algoritme.&lt;br /&gt;
&lt;br /&gt;
IBM 704 je time postavio temelje za kasniji razvoj industrijskih robota, autonomnih sustava i modernih robotskih tehnologija.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u ranom računalnom vidu ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je važnu ulogu u najranijim eksperimentima računalnog vida tijekom kasnih 1950-ih i ranih 1960-ih. Iako se računalni vid kao disciplina tek počeo formirati, IBM 704 bio je jedno od rijetkih računala koje je imalo dovoljno memorije, aritmetičke snage i mogućnosti prikaza da može obrađivati jednostavne vizualne podatke.&lt;br /&gt;
&lt;br /&gt;
Rani eksperimenti računalnog vida bili su usko povezani s istraživanjima umjetne inteligencije, perceptrona i robotike, a IBM 704 služio je kao platforma za:&lt;br /&gt;
&lt;br /&gt;
* prepoznavanje jednostavnih uzoraka,&lt;br /&gt;
* klasifikaciju vizualnih znakova,&lt;br /&gt;
* obradu digitaliziranih slika niske rezolucije,&lt;br /&gt;
* vizualizaciju podataka na CRT zaslonu IBM 740,&lt;br /&gt;
* rane eksperimente u strojnoj percepciji.&lt;br /&gt;
&lt;br /&gt;
=== IBM 704 i CRT zaslon IBM 740 ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 se mogao povezati s vektorskim CRT zaslonom IBM 740, koji je omogućavao:&lt;br /&gt;
&lt;br /&gt;
* prikaz linija, oblika i grafičkih uzoraka,&lt;br /&gt;
* vizualizaciju rezultata algoritama,&lt;br /&gt;
* prikaz putanja kretanja u robotskim sustavima,&lt;br /&gt;
* rane oblike grafičke analize.&lt;br /&gt;
&lt;br /&gt;
Iako primitivni, ovi sustavi bili su preteča kasnijih grafičkih terminala i vizualnih procesora.&lt;br /&gt;
&lt;br /&gt;
=== Rani eksperimenti prepoznavanja uzoraka ===&lt;br /&gt;
&lt;br /&gt;
Na IBM 704 provodili su se rani eksperimenti koji su uključivali:&lt;br /&gt;
&lt;br /&gt;
* prepoznavanje slova i brojeva,&lt;br /&gt;
* klasifikaciju jednostavnih geometrijskih oblika,&lt;br /&gt;
* analizu kontrasta i rubova,&lt;br /&gt;
* rane oblike segmentacije slike.&lt;br /&gt;
&lt;br /&gt;
Podaci su se obično unosili preko:&lt;br /&gt;
&lt;br /&gt;
* digitaliziranih kartica,&lt;br /&gt;
* ručno kodiranih matrica piksela,&lt;br /&gt;
* senzorskih uređaja povezanih s robotima.&lt;br /&gt;
&lt;br /&gt;
=== Veza s perceptronom i neuralnim mrežama ===&lt;br /&gt;
&lt;br /&gt;
Rosenblattov perceptron, koji je IBM 704 koristio za simulacije učenja, bio je izravno primijenjen na rane zadatke računalnog vida:&lt;br /&gt;
&lt;br /&gt;
* klasifikacija vizualnih uzoraka,&lt;br /&gt;
* prepoznavanje znakova,&lt;br /&gt;
* jednostavni modeli prepoznavanja oblika.&lt;br /&gt;
&lt;br /&gt;
IBM 704 omogućio je iterativno treniranje perceptrona nad vizualnim podacima, što je bio jedan od prvih primjera **računalnog učenja iz slike**.&lt;br /&gt;
&lt;br /&gt;
=== Primjer jednostavne vizualne analize (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći SAP kod prikazuje kako je IBM 704 mogao analizirati jednostavnu matricu piksela:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA PIXEL      / učitaj vrijednost piksela&lt;br /&gt;
SUB THRESH     / usporedi s pragom&lt;br /&gt;
TPL BRIGHT     / ako je veće od praga → svijetli piksel&lt;br /&gt;
TMI DARK       / ako je manje → tamni piksel&lt;br /&gt;
&lt;br /&gt;
BRIGHT STO OUT1&lt;br /&gt;
TRA NEXT&lt;br /&gt;
&lt;br /&gt;
DARK   STO OUT0&lt;br /&gt;
NEXT   TRA LOOP&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio jedan od prvih primitivnih algoritama za binarnu segmentaciju slike.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je ključan za rani razvoj računalnog vida jer je:&lt;br /&gt;
&lt;br /&gt;
* omogućio prve računalne eksperimente prepoznavanja uzoraka,&lt;br /&gt;
* bio platforma za vizualne simulacije u robotici,&lt;br /&gt;
* povezao neuralne mreže s vizualnim podacima,&lt;br /&gt;
* omogućio prikaz grafike na CRT zaslonu,&lt;br /&gt;
* postavio temelje za kasniji razvoj računalnog vida u 1960-ima i 1970-ima.&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, rani razvoj računalnog vida bio bi znatno sporiji i ograničeniji.&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju rane računalne glazbe ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je iznimno važnu ulogu u povijesti računalne glazbe. Bio je prvo računalo koje je ikada generiralo glazbu sintetički, koristeći digitalne algoritme za stvaranje zvuka. Ovaj povijesni događaj zbio se 1957. godine na Bell Labsu, kada su Max Mathews i njegov tim razvili program &#039;&#039;&#039;MUSIC I&#039;&#039;&#039; – prvi računalni sustav za digitalnu sintezu zvuka.&amp;lt;ref&amp;gt;https://ccrma.stanford.edu/radiobaton/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IBM 704 je time postao temelj cijelog područja računalne glazbe, digitalne sinteze, elektroničke glazbe i kasnije MIDI tehnologije.&lt;br /&gt;
&lt;br /&gt;
=== MUSIC I – prvi računalni glazbeni program ===&lt;br /&gt;
&lt;br /&gt;
Max Mathews je 1957. na IBM 704 napisao program &#039;&#039;&#039;MUSIC I&#039;&#039;&#039;, koji je:&lt;br /&gt;
&lt;br /&gt;
* generirao digitalne valne oblike,&lt;br /&gt;
* sintetizirao tonove i melodije,&lt;br /&gt;
* omogućio kontrolu frekvencije, amplitude i trajanja,&lt;br /&gt;
* stvarao zvuk numeričkim izračunima, a ne analognom elektronikom.&lt;br /&gt;
&lt;br /&gt;
Ovo je bio prvi put u povijesti da je glazba nastala isključivo računalnim izračunom.&lt;br /&gt;
&lt;br /&gt;
Kasnije verzije (MUSIC II, III, IV, V) postale su temelj modernih glazbenih sintesajzera i digitalnih audio sustava.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio pogodan za glazbenu sintezu ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je nekoliko ključnih značajki koje su omogućile digitalnu sintezu zvuka:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Floating‑point jedinica&#039;&#039;&#039; – omogućila precizne izračune valnih oblika.&lt;br /&gt;
* &#039;&#039;&#039;Brza magnetska jezgra&#039;&#039;&#039; – omogućila generiranje uzoraka u stvarnom vremenu (za to doba).&lt;br /&gt;
* &#039;&#039;&#039;Aritmetička jedinica AC/MQ&#039;&#039;&#039; – ubrzala izračune sinusnih i drugih funkcija.&lt;br /&gt;
* &#039;&#039;&#039;Instrukcijski skup optimiziran za matematičke operacije&#039;&#039;&#039; – savršen za DSP (digital signal processing).&lt;br /&gt;
* &#039;&#039;&#039;Mogućnost generiranja velikih nizova podataka&#039;&#039;&#039; – potrebnih za audio uzorke.&lt;br /&gt;
&lt;br /&gt;
IBM 704 je tako postao prvo računalo koje je moglo generirati digitalni zvuk dovoljno brzo da se može rekonstruirati na analognom pretvaraču.&lt;br /&gt;
&lt;br /&gt;
=== Prva računalno generirana pjesma ===&lt;br /&gt;
&lt;br /&gt;
Prvi glazbeni komad generiran na IBM 704 bio je jednostavan ton i kratka melodijska sekvenca.  &lt;br /&gt;
Kasnije su generirani:&lt;br /&gt;
&lt;br /&gt;
* jednostavni glazbeni motivi,&lt;br /&gt;
* kratke melodije,&lt;br /&gt;
* eksperimentalni zvukovi,&lt;br /&gt;
* rani oblici elektroničke glazbe.&lt;br /&gt;
&lt;br /&gt;
Ovi eksperimenti bili su preteča:&lt;br /&gt;
&lt;br /&gt;
* digitalnih sintesajzera,&lt;br /&gt;
* računalne glazbene kompozicije,&lt;br /&gt;
* algoritamske glazbe,&lt;br /&gt;
* elektroničke glazbe 1960-ih i 1970-ih.&lt;br /&gt;
&lt;br /&gt;
=== Primjer generiranja tona (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći SAP kod ilustrira kako je IBM 704 mogao generirati digitalni uzorak sinusnog vala:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA FREQ         / učitaj frekvenciju&lt;br /&gt;
MPY TIME         / pomnoži s vremenom&lt;br /&gt;
CALL SIN         / pozovi sinusnu funkciju&lt;br /&gt;
STO SAMPLE       / spremi uzorak&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj uzorak bi se zatim slao na digitalno‑analogni pretvarač.&lt;br /&gt;
&lt;br /&gt;
=== Utjecaj na glazbu i tehnologiju ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao ogroman utjecaj na razvoj glazbene tehnologije:&lt;br /&gt;
&lt;br /&gt;
* postavio je temelje digitalne sinteze,&lt;br /&gt;
* omogućio razvoj računalne kompozicije,&lt;br /&gt;
* inspirirao elektroničku glazbu,&lt;br /&gt;
* doveo do nastanka glazbenih jezika (MUSIC V, Csound),&lt;br /&gt;
* utjecao na razvoj MIDI standarda,&lt;br /&gt;
* otvorio put modernim DAW sustavima (Ableton, Logic, Pro Tools).&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, digitalna glazba bi se pojavila mnogo kasnije – ili u potpuno drugačijem obliku.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je bio:&lt;br /&gt;
&lt;br /&gt;
* prvo računalo koje je generiralo glazbu,&lt;br /&gt;
* temelj digitalne sinteze,&lt;br /&gt;
* ključni alat za Maxa Mathewsa, „oca računalne glazbe“,&lt;br /&gt;
* preteča svih modernih glazbenih algoritama, sintesajzera i audio procesora.&lt;br /&gt;
&lt;br /&gt;
Njegova uloga u glazbenoj povijesti jednako je važna kao i njegova uloga u razvoju FORTRAN-a, LISP-a, robotike i neuralnih mreža.&lt;br /&gt;
&lt;br /&gt;
==Programska podrška==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/rhobbie/Sim704  Simulator IBM 704]&lt;br /&gt;
* [https://sky-visions.com/ibm/704/ Arhiva programa za IBM 704]&lt;br /&gt;
* [https://www.piercefuller.com/library/share.html Druga arhiva programa za IBM 704]&lt;br /&gt;
* [https://bitsavers.org/pdf/ibm/704/24-6661-2_704_Manual_1955.pdf Operacijski priručnik za IBM 704]&lt;br /&gt;
&lt;br /&gt;
==Izvori==&lt;br /&gt;
{{izvori}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorija:IBM]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787644</id>
		<title>IBM 704</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787644"/>
		<updated>2026-07-07T10:23:18Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Uloga IBM‑704 u razvoju rane računalne glazbe */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;IBM 704&#039;&#039;&#039; ime je za računalo prve generacije koje je razvila tvrtka [[IBM]] i jedan je iz serije računala IBM 700. Ovo računalo se proizvodilo od 1954. do 1964. godine.&amp;lt;ref&amp;gt;https://www.ibm.com/history/700&amp;lt;/ref&amp;gt;. Povijesna važnost ovog računala jest da je na njemu bio razvijen programski jezik [[FORTRAN]] i [[LISP]] te SAP asembler. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Povijest razvoja IBM 700 serije ==&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija bila je prva generacija komercijalnih znanstvenih računala koju je IBM razvio početkom 1950-ih. Serija je započela s modelom IBM 701 (1952.), poznatim kao „Defense Calculator“, koji je bio namijenjen vojnoj i zrakoplovnoj industriji.&lt;br /&gt;
&lt;br /&gt;
* IBM 702 (1953.) bio je poslovno orijentiran sustav, dok je IBM 703 bio eksperimentalni model.&lt;br /&gt;
* IBM 704 je postao temelj za razvoj FORTRAN-a (1957.), prvog visokorazinskog programskog jezika.&lt;br /&gt;
&lt;br /&gt;
Pravi tehnološki iskorak dogodio se s modelom &#039;&#039;&#039;IBM 704&#039;&#039;&#039; (1954.), prvim računalom koje je podržavalo:&lt;br /&gt;
* aritmetiku s pomičnim zarezom,&lt;br /&gt;
* indeksne registre,&lt;br /&gt;
* statusne indikatore,&lt;br /&gt;
* magnetsku jezgru kao primarnu memoriju.&lt;br /&gt;
&lt;br /&gt;
Serija se nastavila s modelima IBM 709 (1958.) i IBM 7090 (1959.), koji su bili tranzistorski nasljednici i koristili se u NASA-i, NORAD-u i velikim znanstvenim centrima.&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija ostavila je dubok trag u povijesti računarstva, postavivši standarde arhitekture koji su se zadržali desetljećima.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arhitektura IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od prvih komercijalnih računala koje je uvodilo napredne koncepte arhitekture, uključujući rad s pomičnim zarezom, indeksne registre i statusne indikatore. Sustav je bio dizajniran za znanstvene i tehničke izračune, što ga je činilo ključnim alatom u laboratorijima, sveučilištima i ranim zrakoplovnim projektima.&lt;br /&gt;
&lt;br /&gt;
=== Memorija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 koristio je magnetsku jezgru kao primarnu memoriju, što je u to vrijeme predstavljalo veliki tehnološki napredak u odnosu na Williamsove cijevi korištene u IBM-u 701. Magnetska jezgra bila je brža, pouzdanija i omogućavala stabilno zadržavanje podataka bez potrebe za stalnim osvježavanjem.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Memorijske karakteristike IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Vrsta memorije&lt;br /&gt;
| Magnetska jezgra&lt;br /&gt;
| Stabilna, brza i pouzdana tehnologija za 1950-e.&lt;br /&gt;
|-&lt;br /&gt;
| Kapacitet&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Ukupno 147 456 bitova (18 432 bajta).&lt;br /&gt;
|-&lt;br /&gt;
| Vrijeme pristupa&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za čitanje ili pisanje jedne riječi.&lt;br /&gt;
|-&lt;br /&gt;
| Format riječi&lt;br /&gt;
| 36-bitna riječ&lt;br /&gt;
| Koristi se za instrukcije, podatke i floating-point brojeve.&lt;br /&gt;
|-&lt;br /&gt;
| Floating-point format&lt;br /&gt;
| 8-bitni eksponent + 27-bitna mantisa&lt;br /&gt;
| Bez skrivenog bita; excess-128 eksponent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Periferni uređaji ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 podržavao je širok spektar perifernih uređaja, što ga je činilo pogodnim za znanstvene, tehničke i administrativne zadatke. Ulazno/izlazni sustav bio je temeljen na magnetskim vrpcama, kartičnim čitačima i pisačima, uz mogućnost prikaza podataka na CRT zaslonima.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Periferni uređaji IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Uređaj&lt;br /&gt;
! Model&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Čitač kartica&lt;br /&gt;
| IBM 711&lt;br /&gt;
| Učitava programe i podatke s bušenih kartica.&lt;br /&gt;
|-&lt;br /&gt;
| Pisač&lt;br /&gt;
| IBM 716&lt;br /&gt;
| Ispisuje tekstualni izlaz; glavni uređaj za ljudsko čitanje rezultata.&lt;br /&gt;
|-&lt;br /&gt;
| Bušilica kartica&lt;br /&gt;
| IBM 721&lt;br /&gt;
| Zapisuje podatke na bušene kartice.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| IBM 727&lt;br /&gt;
| Glavni masovni spremnik; preko 5 milijuna znakova po vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrolna jedinica vrpci&lt;br /&gt;
| IBM 753&lt;br /&gt;
| Upravljanje magnetskim vrpcama.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetski bubanj&lt;br /&gt;
| IBM 733&lt;br /&gt;
| Dodatna memorija za brzi pristup.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetska jezgra (RAM)&lt;br /&gt;
| IBM 737&lt;br /&gt;
| Primarna memorija sustava (4096 × 36-bitnih riječi).&lt;br /&gt;
|-&lt;br /&gt;
| CRT zaslon&lt;br /&gt;
| IBM 740&lt;br /&gt;
| 21-inčni vektorski prikaz s dugom fosfornom postojanošću; korišten za vizualizaciju podataka.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aritmetička jedinica (AC i MQ) ===&lt;br /&gt;
Aritmetička jedinica sastojala se od dva glavna 36-bitna registra:&lt;br /&gt;
* &#039;&#039;&#039;AC (Accumulator)&#039;&#039;&#039; – glavni registar za aritmetiku.&lt;br /&gt;
* &#039;&#039;&#039;MQ (Multiplier/Quotient)&#039;&#039;&#039; – registar za množenje i dijeljenje.&lt;br /&gt;
&lt;br /&gt;
Ova dva registra zajedno su omogućavala učinkovite operacije nad velikim brojevima i pomičnim zarezom.&lt;br /&gt;
&lt;br /&gt;
=== Indeksni registri (XR1, XR2, XR4) ===&lt;br /&gt;
IBM 704 je koristio tri indeksna registra:&lt;br /&gt;
* &#039;&#039;&#039;XR1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Indeksni registri omogućavali su modifikaciju adresa, implementaciju petlji i rad s velikim poljima podataka. Ovo je bio preteča modernog adresiranja u procesorima.&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori (SI) ===&lt;br /&gt;
Sustav je imao 36 senzorskih indikatora koji su služili kao statusne zastavice:&lt;br /&gt;
* indikatori grešaka (overflow, divide check)&lt;br /&gt;
* indikatori stanja I/O uređaja&lt;br /&gt;
* korisnički definirani indikatori&lt;br /&gt;
&lt;br /&gt;
Programi su mogli testirati i postavljati SI bitove, što je omogućavalo primitivne oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
=== Instrukcijski format ===&lt;br /&gt;
Instrukcije su bile 36-bitne, s poljima:&lt;br /&gt;
* opkod&lt;br /&gt;
* adresa&lt;br /&gt;
* indeksni modifikator&lt;br /&gt;
* bitovi za uvjetno grananje&lt;br /&gt;
&lt;br /&gt;
Ovaj format omogućavao je fleksibilno adresiranje i kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Floating‑point implementacija ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je prvo komercijalno računalo koje je imalo ugrađenu hardversku podršku za aritmetiku s pomičnim zarezom. Ovo je bio ključni tehnološki iskorak koji je omogućio razvoj FORTRAN-a i znanstvenih aplikacija koje su zahtijevale visoku numeričku preciznost.&lt;br /&gt;
&lt;br /&gt;
Floating‑point brojevi u IBM 704 bili su pohranjeni u 36‑bitnim riječima, podijeljenima na dva glavna dijela:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Mantisa&#039;&#039;&#039; – 27 bitova  &lt;br /&gt;
* &#039;&#039;&#039;Eksponent&#039;&#039;&#039; – 8 bitova (excess‑128 format)  &lt;br /&gt;
* &#039;&#039;&#039;Znak&#039;&#039;&#039; – 1 bit&lt;br /&gt;
&lt;br /&gt;
=== Format floating‑point riječi ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Format floating‑point broja (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! Polje&lt;br /&gt;
! Duljina&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Znak mantise&lt;br /&gt;
| 1 bit&lt;br /&gt;
| Određuje pozitivan ili negativan broj.&lt;br /&gt;
|-&lt;br /&gt;
| Mantisa&lt;br /&gt;
| 27 bitova&lt;br /&gt;
| Normalizirana mantisa bez skrivenog bita.&lt;br /&gt;
|-&lt;br /&gt;
| Eksponent&lt;br /&gt;
| 8 bitova&lt;br /&gt;
| Excess‑128 format (stvarni eksponent = pohranjeni − 128).&lt;br /&gt;
|-&lt;br /&gt;
| Rezervirano&lt;br /&gt;
| 0 bitova&lt;br /&gt;
| Format je potpuno iskorišten; nema neiskorištenih bitova.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Excess‑128 eksponent ===&lt;br /&gt;
&lt;br /&gt;
Eksponent je pohranjen u obliku:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
stvarni_eksponent = pohranjeni_eksponent − 128&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj pristup omogućavao je jednostavnije usporedbe i normalizaciju brojeva.&lt;br /&gt;
&lt;br /&gt;
=== Normalizacija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 zahtijevao je da mantisa bude normalizirana tako da najviši bit mantise bude različit od nule.  &lt;br /&gt;
To je omogućavalo maksimalnu preciznost pri izračunima.&lt;br /&gt;
&lt;br /&gt;
=== Floating‑point operacije ===&lt;br /&gt;
&lt;br /&gt;
Računalo je podržavalo sljedeće operacije nad floating‑point brojevima:&lt;br /&gt;
&lt;br /&gt;
* zbrajanje (ADD)  &lt;br /&gt;
* oduzimanje (SUB)  &lt;br /&gt;
* množenje (MPY)  &lt;br /&gt;
* dijeljenje (DIV)&lt;br /&gt;
&lt;br /&gt;
Sve operacije koristile su aritmetičku jedinicu AC/MQ, pri čemu se rezultat normalizirao automatski.&lt;br /&gt;
&lt;br /&gt;
=== Primjer floating‑point operacije u assembleru ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj floating-point broj A&lt;br /&gt;
ADD B        / zbroji ga s B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Važnost floating‑point implementacije ===&lt;br /&gt;
&lt;br /&gt;
Hardverska podrška za pomični zarez bila je ključna za:&lt;br /&gt;
&lt;br /&gt;
* razvoj FORTRAN-a (1957.)&lt;br /&gt;
* balističke izračune&lt;br /&gt;
* aerodinamičke simulacije&lt;br /&gt;
* nuklearne proračune&lt;br /&gt;
* statističke modele&lt;br /&gt;
* rane znanstvene aplikacije NASA-e&lt;br /&gt;
&lt;br /&gt;
IBM 704 je time postavio standard koji će kasnije preuzeti svi moderni procesori.&lt;br /&gt;
&lt;br /&gt;
== Instrukcijski skup IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Glavne grupe instrukcija IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Grupa&lt;br /&gt;
! Primjeri&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Aritmetičke instrukcije&lt;br /&gt;
| ADD, SUB, MPY, DIV&lt;br /&gt;
| Operacije nad AC i MQ registrima; podrška za cijele brojeve i pomični zarez.&lt;br /&gt;
|-&lt;br /&gt;
| Logičke instrukcije&lt;br /&gt;
| CLA, CLM, COM&lt;br /&gt;
| Čišćenje, komplementiranje i manipulacija bitovima.&lt;br /&gt;
|-&lt;br /&gt;
| Uvjetno grananje&lt;br /&gt;
| TRA, TMI, TPL, TZE&lt;br /&gt;
| Skokovi ovisno o sadržaju AC ili MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Rad sa Sense Indicators&lt;br /&gt;
| TSI, SSI, RSI&lt;br /&gt;
| Testiranje, postavljanje i resetiranje statusnih bitova.&lt;br /&gt;
|-&lt;br /&gt;
| Indeksno adresiranje&lt;br /&gt;
| AXT, TXI&lt;br /&gt;
| Modifikacija adresa pomoću XR1, XR2, XR4.&lt;br /&gt;
|-&lt;br /&gt;
| Ulazno/izlazne instrukcije&lt;br /&gt;
| RDS, WRS, RWT&lt;br /&gt;
| Rad s magnetskom vrpcom, kartičnim čitačem i pisačem.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrola toka programa&lt;br /&gt;
| HLT, NOP&lt;br /&gt;
| Zaustavljanje programa, prazna instrukcija.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Opkodovi IBM 704 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Kompletan popis opkoda IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Opkod&lt;br /&gt;
! Mnemonik&lt;br /&gt;
! Grupa&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 000&lt;br /&gt;
| NOP&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Prazna instrukcija; ne radi ništa.&lt;br /&gt;
|-&lt;br /&gt;
| 001&lt;br /&gt;
| HLT&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Zaustavlja izvršavanje programa.&lt;br /&gt;
|-&lt;br /&gt;
| 002&lt;br /&gt;
| TRA&lt;br /&gt;
| Grananje&lt;br /&gt;
| Bezuvjetni skok na adresu.&lt;br /&gt;
|-&lt;br /&gt;
| 003&lt;br /&gt;
| TRN&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC negativan.&lt;br /&gt;
|-&lt;br /&gt;
| 004&lt;br /&gt;
| TMI&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC manji od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 005&lt;br /&gt;
| TPL&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC veći od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 006&lt;br /&gt;
| TZE&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC jednak nuli.&lt;br /&gt;
|-&lt;br /&gt;
| 007&lt;br /&gt;
| TOV&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je overflow zastavica postavljena.&lt;br /&gt;
|-&lt;br /&gt;
| 010&lt;br /&gt;
| ADD&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Zbrajanje sadržaja memorije s AC.&lt;br /&gt;
|-&lt;br /&gt;
| 011&lt;br /&gt;
| SUB&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Oduzimanje sadržaja memorije od AC.&lt;br /&gt;
|-&lt;br /&gt;
| 012&lt;br /&gt;
| MPY&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Množenje; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 013&lt;br /&gt;
| DIV&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Dijeljenje; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 014&lt;br /&gt;
| CLA&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 015&lt;br /&gt;
| CLM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 016&lt;br /&gt;
| COM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Komplementira AC.&lt;br /&gt;
|-&lt;br /&gt;
| 020&lt;br /&gt;
| SHL&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak ulijevo.&lt;br /&gt;
|-&lt;br /&gt;
| 021&lt;br /&gt;
| SHR&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak udesno.&lt;br /&gt;
|-&lt;br /&gt;
| 030&lt;br /&gt;
| AXT&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Učitava vrijednost u XR1, XR2 ili XR4.&lt;br /&gt;
|-&lt;br /&gt;
| 031&lt;br /&gt;
| TXI&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Dodaje vrijednost indeksnom registru.&lt;br /&gt;
|-&lt;br /&gt;
| 040&lt;br /&gt;
| RDS&lt;br /&gt;
| I/O&lt;br /&gt;
| Čitanje s magnetske vrpce.&lt;br /&gt;
|-&lt;br /&gt;
| 041&lt;br /&gt;
| WRS&lt;br /&gt;
| I/O&lt;br /&gt;
| Pisanje na magnetsku vrpcu.&lt;br /&gt;
|-&lt;br /&gt;
| 042&lt;br /&gt;
| RWT&lt;br /&gt;
| I/O&lt;br /&gt;
| Čekanje na I/O operaciju.&lt;br /&gt;
|-&lt;br /&gt;
| 050&lt;br /&gt;
| TSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Testira Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 051&lt;br /&gt;
| SSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Postavlja Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 052&lt;br /&gt;
| RSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Resetira Sense Indicator n.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Registri==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--             --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:88%;width:34em;&amp;quot;&lt;br /&gt;
|+ Registri u računalu IBM 704&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| style=&amp;quot;font-size:88%;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Podatkovni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | S&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | Q&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | P&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;14&amp;quot;| Akumulator&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | AC&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;1&amp;quot;| S&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;11&amp;quot;| Množitelj/Količnik&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | MQ&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;12&amp;quot;| Senzorni indikatori&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | SI&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 1&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR1 (XRA)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 2&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR2 (XRB)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 4 &lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR4 (XRC)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;14&amp;quot; | &#039;&#039;&#039;Brojač naredbi&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Brojač&amp;amp;nbsp;Naredbi&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| IC&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzorni indikatori&#039;&#039;&#039; - su posebni statusni bitovi u IBM 704 koj su se u praksi rabili za provjeru grešaka, grananje ovisno o stanju sustava, upravljanje perifernim jedinicama, te za signalizaciju posebnih događaja. Kroz njih programeri su mogli održavati stanje sustava, signalizirati određene uvjete tokom izvršavanje naredbi, čitanje i postavljanje naredbi i tako su služili za jednostane oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Sense Indicators (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! SI broj&lt;br /&gt;
! Naziv / funkcija&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Overflow flag&lt;br /&gt;
| Postavlja se pri prekoračenju rezultata u akumulatoru (AC) ili količniku (MQ).&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Divide check&lt;br /&gt;
| Signalizira pogrešku pri dijeljenju, uključujući dijeljenje nulom.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| I/O ready&lt;br /&gt;
| Uređaj spreman za prijenos podataka.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| I/O complete&lt;br /&gt;
| Završetak operacije ulaza/izlaza.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Tape mark&lt;br /&gt;
| Očitana oznaka kraja bloka na magnetskoj vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Printer ready&lt;br /&gt;
| Pisač spreman za rad.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Card reader ready&lt;br /&gt;
| Čitač kartica spreman.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Card punch ready&lt;br /&gt;
| Bušilica kartica spremna.&lt;br /&gt;
|-&lt;br /&gt;
| 8–15&lt;br /&gt;
| Peripheral flags&lt;br /&gt;
| Razni signali perifernih uređaja (disk, vrpca, pisač).&lt;br /&gt;
|-&lt;br /&gt;
| 16–35&lt;br /&gt;
| User-defined flags&lt;br /&gt;
| Zastavice koje programer može slobodno koristiti za logiku grananja.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Korištenje u IBM 704 assembleru ====&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao posebne instrukcije za rad sa Sense Indicators:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;TSI n&#039;&#039;&#039;&lt;br /&gt;
: Testira Sense Indicator &#039;&#039;n&#039;&#039;. Ako je postavljen, izvršavanje se nastavlja normalno; ako nije, preskače se sljedeća instrukcija.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3      / provjeri je li I/O complete&lt;br /&gt;
TRA DONE   / ako je postavljen, skoči na DONE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;SSI n&#039;&#039;&#039;&lt;br /&gt;
: Postavlja Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;RSI n&#039;&#039;&#039;&lt;br /&gt;
: Resetira Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 1      / provjeri divide check&lt;br /&gt;
TRA ERROR  / ako je SI1 = 1, idi na ERROR&lt;br /&gt;
&lt;br /&gt;
SSI 20     / postavi korisnički indikator 20&lt;br /&gt;
RSI 3      / resetiraj I/O complete indikator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Usporedba s modernim statusnim registrima ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! IBM 704 Sense Indicators&lt;br /&gt;
! Moderni statusni registri (x86, ARM, RISC-V)&lt;br /&gt;
|-&lt;br /&gt;
| 36 jednobitnih zastavica&lt;br /&gt;
| 8–32 bitni statusni registri&lt;br /&gt;
|-&lt;br /&gt;
| Ručno postavljanje i brisanje&lt;br /&gt;
| Automatsko postavljanje od strane ALU&lt;br /&gt;
|-&lt;br /&gt;
| Koriste se za I/O signalizaciju&lt;br /&gt;
| I/O signalizacija preko interrupt kontrolera&lt;br /&gt;
|-&lt;br /&gt;
| Jednostavne logičke zastavice&lt;br /&gt;
| Zastavice za aritmetiku, usporedbe, prekide&lt;br /&gt;
|-&lt;br /&gt;
| Programer koristi dio SI kao &amp;quot;user flags&amp;quot;&lt;br /&gt;
| Moderni jezici koriste varijable, strukture, objekte&lt;br /&gt;
|-&lt;br /&gt;
| Grananje preko TSI instrukcije&lt;br /&gt;
| Grananje preko CMP/JMP, BEQ/BNE, BLT/BGT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Primjeri IBM 704 assembler koda ==&lt;br /&gt;
&lt;br /&gt;
=== Zbrajanje dvaju brojeva ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj A u AC&lt;br /&gt;
ADD B        / dodaj B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Provjera negativnog broja ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA X        / učitaj X&lt;br /&gt;
TMI NEG      / ako je X &amp;lt; 0, idi na NEG&lt;br /&gt;
TRA DONE     / inače nastavi&lt;br /&gt;
NEG STO Y    / spremi negativnu vrijednost&lt;br /&gt;
DONE HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Množenje i dijeljenje ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A&lt;br /&gt;
MPY B        / AC*B → AC/MQ&lt;br /&gt;
DIV C        / (AC/MQ) / C → MQ (količnik), AC (ostatak)&lt;br /&gt;
STO Q        / spremi količnik&lt;br /&gt;
STO R        / spremi ostatak&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Korištenje Sense Indicators ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3        / provjeri I/O complete&lt;br /&gt;
TRA IO_OK    / ako je SI3 = 1, idi na IO_OK&lt;br /&gt;
SSI 20       / postavi korisnički indikator 20&lt;br /&gt;
IO_OK HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Performanse IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od najbržih znanstvenih računala svoje generacije. Njegova arhitektura s pomičnim zarezom, magnetskom jezgrom i specijaliziranim aritmetičkim registrima omogućavala je znatno bolje performanse u odnosu na prethodne modele IBM 701 i IBM 702. Sustav je bio optimiziran za matematičke operacije, simulacije, statističke izračune i obradu velikih numeričkih skupova podataka.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Performanse računala IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Brzina zbrajanja&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za izvršavanje jedne ADD instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina množenja&lt;br /&gt;
| ~20 μs&lt;br /&gt;
| Vrijeme za MPY instrukciju; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina dijeljenja&lt;br /&gt;
| ~38 μs&lt;br /&gt;
| Vrijeme za DIV instrukciju; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| Memorija&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Magnetska jezgra; pristup ~12 μs.&lt;br /&gt;
|-&lt;br /&gt;
| Ciklus instrukcije&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Prosječno vrijeme za dohvat i izvršavanje jednostavne instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina I/O operacija&lt;br /&gt;
| 7200 kartica/min (čitač)&lt;br /&gt;
| Kartični čitač i bušilica bili su glavni ulazno/izlazni sustavi.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| 12 500 znakovnih blokova/s&lt;br /&gt;
| Ovisno o uređaju; korišteno za masovno spremanje podataka.&lt;br /&gt;
|-&lt;br /&gt;
| Preciznost pomičnog zareza&lt;br /&gt;
| 27-bitni eksponent + 8-bitna mantisa&lt;br /&gt;
| Omogućavalo znanstvene izračune velike preciznosti.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pouzdanost ==&lt;br /&gt;
&lt;br /&gt;
Iako je IBM 704 bio znatno pouzdaniji od svog prethodnika IBM 701, i dalje je bio stroj temeljen na vakuumskim cijevima, što je značilo relativno česte kvarove prema današnjim standardima. Prosječno vrijeme između kvarova iznosilo je oko 8 sati, što je ograničavalo veličinu programa koje je bilo moguće kompajlirati ili izvršavati bez prekida.&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN kompajleri morali su biti iznimno učinkoviti jer bi preduga kompilacija mogla biti prekinuta kvarom sustava. Unatoč tome, IBM 704 je bio dovoljno pouzdan da postane temelj za razvoj FORTRAN-a, LISP-a, ranih neuralnih mreža i brojnih znanstvenih projekata.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Pouzdanost IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| MTBF (mean time between failure)&lt;br /&gt;
| ~8 sati&lt;br /&gt;
| Prosječno vrijeme rada prije kvara.&lt;br /&gt;
|-&lt;br /&gt;
| Usporedba s IBM 701&lt;br /&gt;
| ~30 minuta&lt;br /&gt;
| IBM 704 bio je znatno pouzdaniji od svog prethodnika.&lt;br /&gt;
|-&lt;br /&gt;
| Utjecaj na softver&lt;br /&gt;
| Ograničena veličina programa&lt;br /&gt;
| Kompilacije su morale biti kratke zbog mogućih kvarova.&lt;br /&gt;
|-&lt;br /&gt;
| Tehnologija&lt;br /&gt;
| Vakuumske cijevi&lt;br /&gt;
| Glavni uzrok kvarova i zagrijavanja sustava.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SAP asembler ==&lt;br /&gt;
&lt;br /&gt;
SAP (&#039;&#039;Symbolic Assembly Program&#039;&#039;) bio je službeni asembler za IBM 704 i predstavljao je jedan od najranijih i najutjecajnijih asemblera u povijesti računarstva. Razvijen je unutar IBM-a sredinom 1950-ih kako bi programerima omogućio pisanje simboličkog koda umjesto ručnog unošenja numeričkih opkoda i adresa.&lt;br /&gt;
&lt;br /&gt;
SAP je bio ključan za razvoj FORTRAN-a, LISP-a i mnogih ranih znanstvenih aplikacija, jer je omogućio jednostavnije pisanje, čitanje i održavanje programa na IBM 704.&lt;br /&gt;
&lt;br /&gt;
=== Značajke SAP asemblera ===&lt;br /&gt;
&lt;br /&gt;
SAP je imao nekoliko naprednih značajki za svoje vrijeme:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simboličke oznake&#039;&#039;&#039; – programeri su mogli koristiti imena umjesto numeričkih adresa.&lt;br /&gt;
* &#039;&#039;&#039;Automatsko izračunavanje adresa&#039;&#039;&#039; – asembler je sam određivao lokacije instrukcija.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za indeksne registre&#039;&#039;&#039; – XR1, XR2 i XR4 mogli su se koristiti u adresiranju.&lt;br /&gt;
* &#039;&#039;&#039;Jednostavna sintaksa&#039;&#039;&#039; – instrukcije su bile kratke i čitljive.&lt;br /&gt;
* &#039;&#039;&#039;Integracija s FORTRAN-om&#039;&#039;&#039; – FORTRAN kompajler generirao je SAP kod.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za floating‑point operacije&#039;&#039;&#039; – izravno korištenje AC/MQ jedinice.&lt;br /&gt;
&lt;br /&gt;
SAP je bio jedan od prvih asemblera koji je omogućio relativno visok stupanj apstrakcije u odnosu na strojni kod.&lt;br /&gt;
&lt;br /&gt;
=== Struktura SAP instrukcije ===&lt;br /&gt;
&lt;br /&gt;
Instrukcije su se sastojale od:&lt;br /&gt;
&lt;br /&gt;
* mnemonika (ADD, SUB, MPY, DIV, TRA…)&lt;br /&gt;
* adrese ili simbola&lt;br /&gt;
* opcionalnog indeksnog modifikatora&lt;br /&gt;
* komentara&lt;br /&gt;
&lt;br /&gt;
Primjer strukture:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
MNEMONIK  ADRESA,XR   / komentar&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Primjer SAP koda ===&lt;br /&gt;
&lt;br /&gt;
Slijedi povijesno točan primjer SAP koda za IBM 704:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
A      DEC 5          / definiraj konstantu A&lt;br /&gt;
B      DEC 7          / definiraj konstantu B&lt;br /&gt;
C      BSS 1          / rezerviraj prostor za rezultat&lt;br /&gt;
&lt;br /&gt;
       CLA A          / učitaj A u AC&lt;br /&gt;
       ADD B          / dodaj B&lt;br /&gt;
       STO C          / spremi rezultat u C&lt;br /&gt;
       HLT            / zaustavi program&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Korištenje indeksnih registara ===&lt;br /&gt;
&lt;br /&gt;
SAP je omogućavao jednostavno korištenje XR1, XR2 i XR4:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
LOOP   CLA ARRAY,XR1  / učitaj element polja&lt;br /&gt;
       ADD SUM        / dodaj na sumu&lt;br /&gt;
       STO SUM        / spremi rezultat&lt;br /&gt;
       TXI XR1,1      / povećaj indeks&lt;br /&gt;
       TPL LOOP       / ako je pozitivan, nastavi petlju&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio preteča modernih petlji u visokorazinskim jezicima.&lt;br /&gt;
&lt;br /&gt;
=== SAP i FORTRAN ===&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN kompajler generirao je SAP kod koji se zatim prevodio u strojni kod IBM 704.  &lt;br /&gt;
Zbog toga je SAP bio ključan za:&lt;br /&gt;
&lt;br /&gt;
* optimizaciju FORTRAN programa,&lt;br /&gt;
* implementaciju DO petlji,&lt;br /&gt;
* rad s poljima i matricama,&lt;br /&gt;
* floating‑point operacije,&lt;br /&gt;
* kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
=== SAP i LISP ===&lt;br /&gt;
&lt;br /&gt;
Prva implementacija LISP-a (1958.) bila je napisana upravo u SAP asembleru.  &lt;br /&gt;
SAP je omogućio:&lt;br /&gt;
&lt;br /&gt;
* manipulaciju cons‑struktura,&lt;br /&gt;
* implementaciju CAR i CDR operacija,&lt;br /&gt;
* rekurziju,&lt;br /&gt;
* dinamičko upravljanje memorijom.&lt;br /&gt;
&lt;br /&gt;
Bez SAP-a, LISP ne bi mogao biti implementiran na IBM 704.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj SAP-a ===&lt;br /&gt;
&lt;br /&gt;
SAP je bio jedan od najvažnijih asemblera 1950-ih i 1960-ih.  &lt;br /&gt;
Njegov utjecaj vidljiv je u:&lt;br /&gt;
&lt;br /&gt;
* razvoju FORTRAN-a,&lt;br /&gt;
* nastanku LISP-a,&lt;br /&gt;
* ranim AI projektima,&lt;br /&gt;
* znanstvenim simulacijama,&lt;br /&gt;
* razvoju modernih asemblera i kompajlera.&lt;br /&gt;
&lt;br /&gt;
SAP je postavio temelje za simboličko programiranje i bio je ključni alat u zlatnom dobu ranog računarstva.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju LISP-a ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je ključnu ulogu u nastanku programskog jezika LISP, jednog od najvažnijih jezika u povijesti računarstva. LISP je 1958. godine razvio John McCarthy na MIT-u, a upravo je IBM 704 bio prvo računalo na kojem je LISP implementiran i izvršavan.&amp;lt;ref&amp;gt;http://jmc.stanford.edu/articles/lisp/lisp.pdf &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Razvoj LISP-a bio je izravno povezan s arhitekturom IBM 704, posebno s njegovim:&lt;br /&gt;
* 36-bitnim riječima,&lt;br /&gt;
* aritmetičkom jedinicom AC/MQ,&lt;br /&gt;
* indeksnim registrima,&lt;br /&gt;
* mogućnošću manipulacije adresama,&lt;br /&gt;
* podrškom za uvjetno grananje,&lt;br /&gt;
* te fleksibilnim instrukcijskim formatom.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio pogodan za LISP ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je nekoliko arhitekturnih značajki koje su se pokazale idealnima za implementaciju LISP-a:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;36-bitne riječi&#039;&#039;&#039; omogućavale su učinkovito predstavljanje parova (cons cells).&lt;br /&gt;
* &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039; olakšavali su rad s listama i rekurzivnim strukturama.&lt;br /&gt;
* &#039;&#039;&#039;Instrukcije grananja&#039;&#039;&#039; (TRA, TMI, TPL, TZE) omogućavale su jednostavnu implementaciju rekurzije.&lt;br /&gt;
* &#039;&#039;&#039;Magnetska jezgra&#039;&#039;&#039; bila je dovoljno brza za dinamičke strukture podataka.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za floating-point&#039;&#039;&#039; olakšala je rad s matematičkim funkcijama.&lt;br /&gt;
&lt;br /&gt;
McCarthy je iskoristio ove mogućnosti kako bi implementirao osnovne LISP konstrukte: CONS, CAR, CDR, rekurziju, lambda‑izraze i funkcije višeg reda.&lt;br /&gt;
&lt;br /&gt;
=== Prva implementacija LISP-a ===&lt;br /&gt;
&lt;br /&gt;
Prva verzija LISP-a bila je napisana u SAP asembleru za IBM 704.  &lt;br /&gt;
Ova implementacija uključivala je:&lt;br /&gt;
&lt;br /&gt;
* interpreter,&lt;br /&gt;
* evaluator,&lt;br /&gt;
* upravljanje memorijom,&lt;br /&gt;
* implementaciju cons‑struktura,&lt;br /&gt;
* osnovne matematičke funkcije,&lt;br /&gt;
* te mehanizme za rekurziju i funkcije višeg reda.&lt;br /&gt;
&lt;br /&gt;
LISP je na IBM 704 radio kao interpretirani jezik, a programi su se izvršavali izravno nad strukturom lista u memoriji.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je omogućio LISP-u da postane prvi široko korišteni jezik za:&lt;br /&gt;
&lt;br /&gt;
* umjetnu inteligenciju,&lt;br /&gt;
* simboličku manipulaciju,&lt;br /&gt;
* matematičku logiku,&lt;br /&gt;
* rane ekspertske sustave,&lt;br /&gt;
* istraživanje strojnog učenja.&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, LISP bi vjerojatno bio znatno drugačiji — ili bi se pojavio mnogo kasnije.&lt;br /&gt;
&lt;br /&gt;
=== Primjer ranog LISP izraza (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Iako se LISP nije zapisivao u assembleru, njegovi izrazi su se prevodili u SAP kod za IBM 704.  &lt;br /&gt;
Primjer jednostavne LISP funkcije:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(define (square x)&lt;br /&gt;
  (* x x))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj izraz bi se na IBM 704 interno pretvorio u operacije nad cons‑struktura i pozive aritmetičkih instrukcija MPY i ADD.&lt;br /&gt;
&lt;br /&gt;
=== Utjecaj na daljnji razvoj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je bio platforma na kojoj su nastale ključne ideje:&lt;br /&gt;
&lt;br /&gt;
* automatsko upravljanje memorijom,&lt;br /&gt;
* rekurzija kao temeljni mehanizam,&lt;br /&gt;
* funkcije višeg reda,&lt;br /&gt;
* lambda‑račun,&lt;br /&gt;
* simbolička obrada podataka.&lt;br /&gt;
&lt;br /&gt;
Ove ideje postale su temelj modernih programskih jezika, od Schemea i Prologa do Pythona i JavaScripta.&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju FORTRAN-a ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je presudnu ulogu u nastanku FORTRAN-a (Formula Translation), prvog široko korištenog visokorazinskog programskog jezika. FORTRAN je razvijen 1957. godine u IBM-u pod vodstvom Johna Backusa, a IBM 704 bio je prvo računalo na kojem je FORTRAN implementiran, kompajliran i izvršavan.&lt;br /&gt;
&lt;br /&gt;
Arhitektura IBM 704 izravno je oblikovala dizajn FORTRAN-a. Njegova podrška za aritmetiku s pomičnim zarezom, indeksne registre, statusne indikatore i 36-bitne riječi omogućila je stvaranje jezika koji je bio optimiziran za znanstvene i tehničke izračune.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio ključan za FORTRAN ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 posjedovao je nekoliko arhitekturnih značajki koje su bile presudne za razvoj FORTRAN-a:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Hardverska floating‑point jedinica&#039;&#039;&#039; – omogućila je izravnu podršku za matematičke operacije.&lt;br /&gt;
* &#039;&#039;&#039;Aritmetički registri AC i MQ&#039;&#039;&#039; – olakšali su implement&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju ranih neuralnih mreža ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je važnu ulogu u razvoju najranijih modela umjetnih neuronskih mreža tijekom kasnih 1950-ih i ranih 1960-ih. Iako su ti modeli bili daleko jednostavniji od današnjih dubokih mreža, IBM 704 je bio jedno od rijetkih računala koje je imalo dovoljno memorije, brzine i aritmetičkih mogućnosti da može izvoditi simulacije neuronskih mreža u praksi.&lt;br /&gt;
&lt;br /&gt;
Rani pioniri umjetne inteligencije, uključujući Franka Rosenblatta, Herberta Simona, Allena Newella i istraživače s MIT-a i Cornell Aeronautical Laboratory, koristili su IBM 704 za implementaciju i testiranje prvih algoritama koji su simulirali neuronsko učenje.&lt;br /&gt;
&lt;br /&gt;
=== IBM 704 i perceptron ===&lt;br /&gt;
&lt;br /&gt;
Najvažniji doprinos IBM 704 razvoju neuralnih mreža bio je u implementaciji i simulaciji **Rosenblattovog perceptrona**, prvog formalnog modela neuronske mreže koji je mogao učiti iz podataka.&lt;br /&gt;
&lt;br /&gt;
IBM 704 omogućio je:&lt;br /&gt;
&lt;br /&gt;
* izračun težina perceptrona,&lt;br /&gt;
* simulaciju učenja kroz iteracije,&lt;br /&gt;
* rad s matricama i vektorima,&lt;br /&gt;
* evaluaciju linearnih klasifikatora,&lt;br /&gt;
* testiranje različitih skupova podataka.&lt;br /&gt;
&lt;br /&gt;
Iako je perceptron kasnije imao i hardversku implementaciju (Mark I Perceptron), IBM 704 bio je ključan za **prve softverske simulacije** koje su potvrdile da se neuronske mreže mogu trenirati računalno.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio pogodan za neuralne mreže ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je nekoliko arhitekturnih značajki koje su bile iznimno korisne za rane AI eksperimente:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Floating‑point jedinica&#039;&#039;&#039; – omogućila je precizne izračune težina i aktivacijskih funkcija.&lt;br /&gt;
* &#039;&#039;&#039;Aritmetički registri AC/MQ&#039;&#039;&#039; – ubrzali su operacije nad vektorima.&lt;br /&gt;
* &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039; – olakšali su rad s matricama i iteracijama.&lt;br /&gt;
* &#039;&#039;&#039;Magnetska jezgra&#039;&#039;&#039; – bila je dovoljno brza za ponavljajuće izračune.&lt;br /&gt;
* &#039;&#039;&#039;Instrukcije grananja&#039;&#039;&#039; – omogućile su implementaciju algoritama učenja.&lt;br /&gt;
&lt;br /&gt;
Zbog toga je IBM 704 bio jedno od prvih računala koje je moglo izvoditi **iterativne algoritme učenja**, temeljne za neuralne mreže.&lt;br /&gt;
&lt;br /&gt;
=== Rani eksperimenti umjetne inteligencije ===&lt;br /&gt;
&lt;br /&gt;
Na IBM 704 provodili su se rani eksperimenti koji su uključivali:&lt;br /&gt;
&lt;br /&gt;
* simulaciju perceptrona,&lt;br /&gt;
* klasifikaciju jednostavnih vizualnih uzoraka,&lt;br /&gt;
* prepoznavanje znakova,&lt;br /&gt;
* rane oblike strojne percepcije,&lt;br /&gt;
* istraživanje linearnih i nelinearnih funkcija aktivacije.&lt;br /&gt;
&lt;br /&gt;
Ovi eksperimenti bili su temelj za kasniji razvoj:&lt;br /&gt;
&lt;br /&gt;
* višeslojnih perceptrona,&lt;br /&gt;
* backpropagation algoritma,&lt;br /&gt;
* dubokog učenja,&lt;br /&gt;
* računalnog vida.&lt;br /&gt;
&lt;br /&gt;
=== Primjer jednostavne perceptronske iteracije (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći pseudokod prikazuje kako je perceptron bio implementiran na IBM 704:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA W1        / učitaj težinu&lt;br /&gt;
MPY X1        / pomnoži s ulazom&lt;br /&gt;
ADD SUM       / dodaj na akumuliranu sumu&lt;br /&gt;
STO SUM       / spremi novu vrijednost&lt;br /&gt;
&lt;br /&gt;
... ponavljati za sve ulaze ...&lt;br /&gt;
&lt;br /&gt;
CLA SUM&lt;br /&gt;
TMI UPDATE    / ako je pogreška negativna, ažuriraj težine&lt;br /&gt;
TPL UPDATE    / ako je pogreška pozitivna, također ažuriraj&lt;br /&gt;
&lt;br /&gt;
UPDATE:&lt;br /&gt;
ADD ERROR     / korekcija težine&lt;br /&gt;
STO W1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio jedan od prvih primjera **računalnog učenja** u povijesti.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je ključan za rani razvoj umjetne inteligencije jer je:&lt;br /&gt;
&lt;br /&gt;
* omogućio prve računalne simulacije neuronskih mreža,&lt;br /&gt;
* bio platforma za perceptron i rane modele učenja,&lt;br /&gt;
* omogućio istraživanje algoritama koji su kasnije postali temelj dubokog učenja,&lt;br /&gt;
* povezao AI istraživanje s praktičnim računalnim sustavima.&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, razvoj ranih neuralnih mreža bio bi znatno sporiji i ograničeniji.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u ranoj robotici ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je važnu ulogu u razvoju najranijih oblika robotike i automatizacije tijekom kasnih 1950-ih i ranih 1960-ih. Iako se u to vrijeme pojam „robotika“ tek počeo pojavljivati u znanstvenoj literaturi, IBM 704 bio je jedno od prvih računala koje je moglo upravljati mehaničkim sustavima, analizirati senzorske podatke i izvoditi algoritme koji su predstavljali preteču modernog upravljanja robotima.&lt;br /&gt;
&lt;br /&gt;
Rani robotski sustavi bili su primitivni u odnosu na današnje, ali IBM 704 je omogućio:&lt;br /&gt;
&lt;br /&gt;
* upravljanje aktuatorima i elektromehaničkim uređajima,&lt;br /&gt;
* obradu ulaznih signala iz senzora,&lt;br /&gt;
* simulaciju kretanja i kontrolnih petlji,&lt;br /&gt;
* rane eksperimente u automatskom upravljanju,&lt;br /&gt;
* integraciju s vizualnim sustavima (CRT prikaz IBM 740).&lt;br /&gt;
&lt;br /&gt;
=== Rani eksperimenti automatizacije ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 korišten je u laboratorijima i istraživačkim centrima za:&lt;br /&gt;
&lt;br /&gt;
* upravljanje robotskim manipulatorima,&lt;br /&gt;
* simulaciju kinematike i dinamike,&lt;br /&gt;
* upravljanje servo‑motorima,&lt;br /&gt;
* automatizaciju industrijskih procesa,&lt;br /&gt;
* rane oblike povratne sprege (feedback control).&lt;br /&gt;
&lt;br /&gt;
Ovi sustavi nisu bili roboti u modernom smislu, ali su predstavljali ključne korake prema:&lt;br /&gt;
&lt;br /&gt;
* numeričkom upravljanju strojevima (NC machines),&lt;br /&gt;
* automatskim manipulatorima,&lt;br /&gt;
* sustavima za automatsko pozicioniranje,&lt;br /&gt;
* ranim oblicima cybernetike.&lt;br /&gt;
&lt;br /&gt;
=== IBM 704 i cybernetika ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je često korišten u istraživanjima inspiriranim radom Norberta Wienera, osnivača cybernetike.  &lt;br /&gt;
Sustav je omogućavao:&lt;br /&gt;
&lt;br /&gt;
* simulaciju povratne sprege,&lt;br /&gt;
* analizu stabilnosti sustava,&lt;br /&gt;
* implementaciju kontrolnih algoritama,&lt;br /&gt;
* rane oblike adaptivnog upravljanja.&lt;br /&gt;
&lt;br /&gt;
Ovo je bilo ključno za razvoj robotskih sustava koji se mogu prilagođavati promjenama u okruženju.&lt;br /&gt;
&lt;br /&gt;
=== Vizualni sustavi i IBM 740 ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 se mogao povezati s CRT zaslonom IBM 740, koji je omogućavao:&lt;br /&gt;
&lt;br /&gt;
* prikaz vektorskih grafika,&lt;br /&gt;
* vizualizaciju putanja kretanja,&lt;br /&gt;
* prikaz senzorskih podataka,&lt;br /&gt;
* rane eksperimente u računalnom vidu.&lt;br /&gt;
&lt;br /&gt;
Iako primitivni, ovi sustavi bili su preteča kasnijih robotskih vizualnih sustava.&lt;br /&gt;
&lt;br /&gt;
=== Primjer jednostavne kontrolne petlje (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći SAP kod prikazuje kako je IBM 704 mogao implementirati jednostavnu kontrolnu petlju za upravljanje aktuatorom:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
READSENSOR  RDS SENS        / očitaj senzor&lt;br /&gt;
           CLA SENS        / učitaj vrijednost&lt;br /&gt;
           SUB TARGET      / usporedi s ciljem&lt;br /&gt;
           TPL INCREASE    / ako je pozitivno, povećaj izlaz&lt;br /&gt;
           TMI DECREASE    / ako je negativno, smanji izlaz&lt;br /&gt;
&lt;br /&gt;
INCREASE   ADD STEP        / povećaj upravljački signal&lt;br /&gt;
           STO ACTUATOR&lt;br /&gt;
           TRA LOOP&lt;br /&gt;
&lt;br /&gt;
DECREASE   SUB STEP        / smanji upravljački signal&lt;br /&gt;
           STO ACTUATOR&lt;br /&gt;
           TRA LOOP&lt;br /&gt;
&lt;br /&gt;
LOOP       TRA READSENSOR  / ponovi petlju&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio jedan od prvih primjera računalno upravljanih mehaničkih sustava.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je ključan za rani razvoj robotike jer je:&lt;br /&gt;
&lt;br /&gt;
* omogućio prve računalne simulacije upravljanja strojevima,&lt;br /&gt;
* bio platforma za cybernetičke eksperimente,&lt;br /&gt;
* omogućio integraciju senzora i aktuatora,&lt;br /&gt;
* pružio temelj za numeričko upravljanje strojevima (NC),&lt;br /&gt;
* povezao mehaniku, elektroniku i računalne algoritme.&lt;br /&gt;
&lt;br /&gt;
IBM 704 je time postavio temelje za kasniji razvoj industrijskih robota, autonomnih sustava i modernih robotskih tehnologija.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u ranom računalnom vidu ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je važnu ulogu u najranijim eksperimentima računalnog vida tijekom kasnih 1950-ih i ranih 1960-ih. Iako se računalni vid kao disciplina tek počeo formirati, IBM 704 bio je jedno od rijetkih računala koje je imalo dovoljno memorije, aritmetičke snage i mogućnosti prikaza da može obrađivati jednostavne vizualne podatke.&lt;br /&gt;
&lt;br /&gt;
Rani eksperimenti računalnog vida bili su usko povezani s istraživanjima umjetne inteligencije, perceptrona i robotike, a IBM 704 služio je kao platforma za:&lt;br /&gt;
&lt;br /&gt;
* prepoznavanje jednostavnih uzoraka,&lt;br /&gt;
* klasifikaciju vizualnih znakova,&lt;br /&gt;
* obradu digitaliziranih slika niske rezolucije,&lt;br /&gt;
* vizualizaciju podataka na CRT zaslonu IBM 740,&lt;br /&gt;
* rane eksperimente u strojnoj percepciji.&lt;br /&gt;
&lt;br /&gt;
=== IBM 704 i CRT zaslon IBM 740 ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 se mogao povezati s vektorskim CRT zaslonom IBM 740, koji je omogućavao:&lt;br /&gt;
&lt;br /&gt;
* prikaz linija, oblika i grafičkih uzoraka,&lt;br /&gt;
* vizualizaciju rezultata algoritama,&lt;br /&gt;
* prikaz putanja kretanja u robotskim sustavima,&lt;br /&gt;
* rane oblike grafičke analize.&lt;br /&gt;
&lt;br /&gt;
Iako primitivni, ovi sustavi bili su preteča kasnijih grafičkih terminala i vizualnih procesora.&lt;br /&gt;
&lt;br /&gt;
=== Rani eksperimenti prepoznavanja uzoraka ===&lt;br /&gt;
&lt;br /&gt;
Na IBM 704 provodili su se rani eksperimenti koji su uključivali:&lt;br /&gt;
&lt;br /&gt;
* prepoznavanje slova i brojeva,&lt;br /&gt;
* klasifikaciju jednostavnih geometrijskih oblika,&lt;br /&gt;
* analizu kontrasta i rubova,&lt;br /&gt;
* rane oblike segmentacije slike.&lt;br /&gt;
&lt;br /&gt;
Podaci su se obično unosili preko:&lt;br /&gt;
&lt;br /&gt;
* digitaliziranih kartica,&lt;br /&gt;
* ručno kodiranih matrica piksela,&lt;br /&gt;
* senzorskih uređaja povezanih s robotima.&lt;br /&gt;
&lt;br /&gt;
=== Veza s perceptronom i neuralnim mrežama ===&lt;br /&gt;
&lt;br /&gt;
Rosenblattov perceptron, koji je IBM 704 koristio za simulacije učenja, bio je izravno primijenjen na rane zadatke računalnog vida:&lt;br /&gt;
&lt;br /&gt;
* klasifikacija vizualnih uzoraka,&lt;br /&gt;
* prepoznavanje znakova,&lt;br /&gt;
* jednostavni modeli prepoznavanja oblika.&lt;br /&gt;
&lt;br /&gt;
IBM 704 omogućio je iterativno treniranje perceptrona nad vizualnim podacima, što je bio jedan od prvih primjera **računalnog učenja iz slike**.&lt;br /&gt;
&lt;br /&gt;
=== Primjer jednostavne vizualne analize (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći SAP kod prikazuje kako je IBM 704 mogao analizirati jednostavnu matricu piksela:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA PIXEL      / učitaj vrijednost piksela&lt;br /&gt;
SUB THRESH     / usporedi s pragom&lt;br /&gt;
TPL BRIGHT     / ako je veće od praga → svijetli piksel&lt;br /&gt;
TMI DARK       / ako je manje → tamni piksel&lt;br /&gt;
&lt;br /&gt;
BRIGHT STO OUT1&lt;br /&gt;
TRA NEXT&lt;br /&gt;
&lt;br /&gt;
DARK   STO OUT0&lt;br /&gt;
NEXT   TRA LOOP&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio jedan od prvih primitivnih algoritama za binarnu segmentaciju slike.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je ključan za rani razvoj računalnog vida jer je:&lt;br /&gt;
&lt;br /&gt;
* omogućio prve računalne eksperimente prepoznavanja uzoraka,&lt;br /&gt;
* bio platforma za vizualne simulacije u robotici,&lt;br /&gt;
* povezao neuralne mreže s vizualnim podacima,&lt;br /&gt;
* omogućio prikaz grafike na CRT zaslonu,&lt;br /&gt;
* postavio temelje za kasniji razvoj računalnog vida u 1960-ima i 1970-ima.&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, rani razvoj računalnog vida bio bi znatno sporiji i ograničeniji.&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju rane računalne glazbe ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je iznimno važnu ulogu u povijesti računalne glazbe. Bio je prvo računalo koje je ikada generiralo glazbu sintetički, koristeći digitalne algoritme za stvaranje zvuka. Ovaj povijesni događaj zbio se 1957. godine na Bell Labsu, kada su Max Mathews i njegov tim razvili program &#039;&#039;&#039;MUSIC I&#039;&#039;&#039; – prvi računalni sustav za digitalnu sintezu zvuka.&amp;lt;ref&amp;gt;https://ccrma.stanford.edu/radiobaton/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IBM 704 je time postao temelj cijelog područja računalne glazbe, digitalne sinteze, elektroničke glazbe i kasnije MIDI tehnologije.&lt;br /&gt;
&lt;br /&gt;
=== MUSIC I – prvi računalni glazbeni program ===&lt;br /&gt;
&lt;br /&gt;
Max Mathews je 1957. na IBM 704 napisao program &#039;&#039;&#039;MUSIC I&#039;&#039;&#039;, koji je:&lt;br /&gt;
&lt;br /&gt;
* generirao digitalne valne oblike,&lt;br /&gt;
* sintetizirao tonove i melodije,&lt;br /&gt;
* omogućio kontrolu frekvencije, amplitude i trajanja,&lt;br /&gt;
* stvarao zvuk numeričkim izračunima, a ne analognom elektronikom.&lt;br /&gt;
&lt;br /&gt;
Ovo je bio prvi put u povijesti da je glazba nastala isključivo računalnim izračunom.&lt;br /&gt;
&lt;br /&gt;
Kasnije verzije (MUSIC II, III, IV, V) postale su temelj modernih glazbenih sintesajzera i digitalnih audio sustava.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio pogodan za glazbenu sintezu ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je nekoliko ključnih značajki koje su omogućile digitalnu sintezu zvuka:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Floating‑point jedinica&#039;&#039;&#039; – omogućila precizne izračune valnih oblika.&lt;br /&gt;
* &#039;&#039;&#039;Brza magnetska jezgra&#039;&#039;&#039; – omogućila generiranje uzoraka u stvarnom vremenu (za to doba).&lt;br /&gt;
* &#039;&#039;&#039;Aritmetička jedinica AC/MQ&#039;&#039;&#039; – ubrzala izračune sinusnih i drugih funkcija.&lt;br /&gt;
* &#039;&#039;&#039;Instrukcijski skup optimiziran za matematičke operacije&#039;&#039;&#039; – savršen za DSP (digital signal processing).&lt;br /&gt;
* &#039;&#039;&#039;Mogućnost generiranja velikih nizova podataka&#039;&#039;&#039; – potrebnih za audio uzorke.&lt;br /&gt;
&lt;br /&gt;
IBM 704 je tako postao prvo računalo koje je moglo generirati digitalni zvuk dovoljno brzo da se može rekonstruirati na analognom pretvaraču.&lt;br /&gt;
&lt;br /&gt;
=== Prva računalno generirana pjesma ===&lt;br /&gt;
&lt;br /&gt;
Prvi glazbeni komad generiran na IBM 704 bio je jednostavan ton i kratka melodijska sekvenca.  &lt;br /&gt;
Kasnije su generirani:&lt;br /&gt;
&lt;br /&gt;
* jednostavni glazbeni motivi,&lt;br /&gt;
* kratke melodije,&lt;br /&gt;
* eksperimentalni zvukovi,&lt;br /&gt;
* rani oblici elektroničke glazbe.&lt;br /&gt;
&lt;br /&gt;
Ovi eksperimenti bili su preteča:&lt;br /&gt;
&lt;br /&gt;
* digitalnih sintesajzera,&lt;br /&gt;
* računalne glazbene kompozicije,&lt;br /&gt;
* algoritamske glazbe,&lt;br /&gt;
* elektroničke glazbe 1960-ih i 1970-ih.&lt;br /&gt;
&lt;br /&gt;
=== Primjer generiranja tona (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći SAP kod ilustrira kako je IBM 704 mogao generirati digitalni uzorak sinusnog vala:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA FREQ         / učitaj frekvenciju&lt;br /&gt;
MPY TIME         / pomnoži s vremenom&lt;br /&gt;
CALL SIN         / pozovi sinusnu funkciju&lt;br /&gt;
STO SAMPLE       / spremi uzorak&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj uzorak bi se zatim slao na digitalno‑analogni pretvarač.&lt;br /&gt;
&lt;br /&gt;
=== Utjecaj na glazbu i tehnologiju ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao ogroman utjecaj na razvoj glazbene tehnologije:&lt;br /&gt;
&lt;br /&gt;
* postavio je temelje digitalne sinteze,&lt;br /&gt;
* omogućio razvoj računalne kompozicije,&lt;br /&gt;
* inspirirao elektroničku glazbu,&lt;br /&gt;
* doveo do nastanka glazbenih jezika (MUSIC V, Csound),&lt;br /&gt;
* utjecao na razvoj MIDI standarda,&lt;br /&gt;
* otvorio put modernim DAW sustavima (Ableton, Logic, Pro Tools).&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, digitalna glazba bi se pojavila mnogo kasnije – ili u potpuno drugačijem obliku.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je bio:&lt;br /&gt;
&lt;br /&gt;
* prvo računalo koje je generiralo glazbu,&lt;br /&gt;
* temelj digitalne sinteze,&lt;br /&gt;
* ključni alat za Maxa Mathewsa, „oca računalne glazbe“,&lt;br /&gt;
* preteča svih modernih glazbenih algoritama, sintesajzera i audio procesora.&lt;br /&gt;
&lt;br /&gt;
Njegova uloga u glazbenoj povijesti jednako je važna kao i njegova uloga u razvoju FORTRAN-a, LISP-a, robotike i neuralnih mreža.&lt;br /&gt;
&lt;br /&gt;
==Programska podrška==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/rhobbie/Sim704  Simulator IBM 704]&lt;br /&gt;
* [https://sky-visions.com/ibm/704/ Arhiva programa za IBM 704]&lt;br /&gt;
* [https://www.piercefuller.com/library/share.html Druga arhiva programa za IBM 704]&lt;br /&gt;
* [https://bitsavers.org/pdf/ibm/704/24-6661-2_704_Manual_1955.pdf Operacijski priručnik za IBM 704]&lt;br /&gt;
&lt;br /&gt;
==Izvori==&lt;br /&gt;
{{izvori}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorija:IBM]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787643</id>
		<title>IBM 704</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787643"/>
		<updated>2026-07-07T10:21:20Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Uloga IBM‑704 u razvoju LISP-a */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;IBM 704&#039;&#039;&#039; ime je za računalo prve generacije koje je razvila tvrtka [[IBM]] i jedan je iz serije računala IBM 700. Ovo računalo se proizvodilo od 1954. do 1964. godine.&amp;lt;ref&amp;gt;https://www.ibm.com/history/700&amp;lt;/ref&amp;gt;. Povijesna važnost ovog računala jest da je na njemu bio razvijen programski jezik [[FORTRAN]] i [[LISP]] te SAP asembler. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Povijest razvoja IBM 700 serije ==&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija bila je prva generacija komercijalnih znanstvenih računala koju je IBM razvio početkom 1950-ih. Serija je započela s modelom IBM 701 (1952.), poznatim kao „Defense Calculator“, koji je bio namijenjen vojnoj i zrakoplovnoj industriji.&lt;br /&gt;
&lt;br /&gt;
* IBM 702 (1953.) bio je poslovno orijentiran sustav, dok je IBM 703 bio eksperimentalni model.&lt;br /&gt;
* IBM 704 je postao temelj za razvoj FORTRAN-a (1957.), prvog visokorazinskog programskog jezika.&lt;br /&gt;
&lt;br /&gt;
Pravi tehnološki iskorak dogodio se s modelom &#039;&#039;&#039;IBM 704&#039;&#039;&#039; (1954.), prvim računalom koje je podržavalo:&lt;br /&gt;
* aritmetiku s pomičnim zarezom,&lt;br /&gt;
* indeksne registre,&lt;br /&gt;
* statusne indikatore,&lt;br /&gt;
* magnetsku jezgru kao primarnu memoriju.&lt;br /&gt;
&lt;br /&gt;
Serija se nastavila s modelima IBM 709 (1958.) i IBM 7090 (1959.), koji su bili tranzistorski nasljednici i koristili se u NASA-i, NORAD-u i velikim znanstvenim centrima.&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija ostavila je dubok trag u povijesti računarstva, postavivši standarde arhitekture koji su se zadržali desetljećima.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arhitektura IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od prvih komercijalnih računala koje je uvodilo napredne koncepte arhitekture, uključujući rad s pomičnim zarezom, indeksne registre i statusne indikatore. Sustav je bio dizajniran za znanstvene i tehničke izračune, što ga je činilo ključnim alatom u laboratorijima, sveučilištima i ranim zrakoplovnim projektima.&lt;br /&gt;
&lt;br /&gt;
=== Memorija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 koristio je magnetsku jezgru kao primarnu memoriju, što je u to vrijeme predstavljalo veliki tehnološki napredak u odnosu na Williamsove cijevi korištene u IBM-u 701. Magnetska jezgra bila je brža, pouzdanija i omogućavala stabilno zadržavanje podataka bez potrebe za stalnim osvježavanjem.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Memorijske karakteristike IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Vrsta memorije&lt;br /&gt;
| Magnetska jezgra&lt;br /&gt;
| Stabilna, brza i pouzdana tehnologija za 1950-e.&lt;br /&gt;
|-&lt;br /&gt;
| Kapacitet&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Ukupno 147 456 bitova (18 432 bajta).&lt;br /&gt;
|-&lt;br /&gt;
| Vrijeme pristupa&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za čitanje ili pisanje jedne riječi.&lt;br /&gt;
|-&lt;br /&gt;
| Format riječi&lt;br /&gt;
| 36-bitna riječ&lt;br /&gt;
| Koristi se za instrukcije, podatke i floating-point brojeve.&lt;br /&gt;
|-&lt;br /&gt;
| Floating-point format&lt;br /&gt;
| 8-bitni eksponent + 27-bitna mantisa&lt;br /&gt;
| Bez skrivenog bita; excess-128 eksponent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Periferni uređaji ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 podržavao je širok spektar perifernih uređaja, što ga je činilo pogodnim za znanstvene, tehničke i administrativne zadatke. Ulazno/izlazni sustav bio je temeljen na magnetskim vrpcama, kartičnim čitačima i pisačima, uz mogućnost prikaza podataka na CRT zaslonima.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Periferni uređaji IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Uređaj&lt;br /&gt;
! Model&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Čitač kartica&lt;br /&gt;
| IBM 711&lt;br /&gt;
| Učitava programe i podatke s bušenih kartica.&lt;br /&gt;
|-&lt;br /&gt;
| Pisač&lt;br /&gt;
| IBM 716&lt;br /&gt;
| Ispisuje tekstualni izlaz; glavni uređaj za ljudsko čitanje rezultata.&lt;br /&gt;
|-&lt;br /&gt;
| Bušilica kartica&lt;br /&gt;
| IBM 721&lt;br /&gt;
| Zapisuje podatke na bušene kartice.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| IBM 727&lt;br /&gt;
| Glavni masovni spremnik; preko 5 milijuna znakova po vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrolna jedinica vrpci&lt;br /&gt;
| IBM 753&lt;br /&gt;
| Upravljanje magnetskim vrpcama.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetski bubanj&lt;br /&gt;
| IBM 733&lt;br /&gt;
| Dodatna memorija za brzi pristup.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetska jezgra (RAM)&lt;br /&gt;
| IBM 737&lt;br /&gt;
| Primarna memorija sustava (4096 × 36-bitnih riječi).&lt;br /&gt;
|-&lt;br /&gt;
| CRT zaslon&lt;br /&gt;
| IBM 740&lt;br /&gt;
| 21-inčni vektorski prikaz s dugom fosfornom postojanošću; korišten za vizualizaciju podataka.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aritmetička jedinica (AC i MQ) ===&lt;br /&gt;
Aritmetička jedinica sastojala se od dva glavna 36-bitna registra:&lt;br /&gt;
* &#039;&#039;&#039;AC (Accumulator)&#039;&#039;&#039; – glavni registar za aritmetiku.&lt;br /&gt;
* &#039;&#039;&#039;MQ (Multiplier/Quotient)&#039;&#039;&#039; – registar za množenje i dijeljenje.&lt;br /&gt;
&lt;br /&gt;
Ova dva registra zajedno su omogućavala učinkovite operacije nad velikim brojevima i pomičnim zarezom.&lt;br /&gt;
&lt;br /&gt;
=== Indeksni registri (XR1, XR2, XR4) ===&lt;br /&gt;
IBM 704 je koristio tri indeksna registra:&lt;br /&gt;
* &#039;&#039;&#039;XR1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Indeksni registri omogućavali su modifikaciju adresa, implementaciju petlji i rad s velikim poljima podataka. Ovo je bio preteča modernog adresiranja u procesorima.&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori (SI) ===&lt;br /&gt;
Sustav je imao 36 senzorskih indikatora koji su služili kao statusne zastavice:&lt;br /&gt;
* indikatori grešaka (overflow, divide check)&lt;br /&gt;
* indikatori stanja I/O uređaja&lt;br /&gt;
* korisnički definirani indikatori&lt;br /&gt;
&lt;br /&gt;
Programi su mogli testirati i postavljati SI bitove, što je omogućavalo primitivne oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
=== Instrukcijski format ===&lt;br /&gt;
Instrukcije su bile 36-bitne, s poljima:&lt;br /&gt;
* opkod&lt;br /&gt;
* adresa&lt;br /&gt;
* indeksni modifikator&lt;br /&gt;
* bitovi za uvjetno grananje&lt;br /&gt;
&lt;br /&gt;
Ovaj format omogućavao je fleksibilno adresiranje i kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Floating‑point implementacija ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je prvo komercijalno računalo koje je imalo ugrađenu hardversku podršku za aritmetiku s pomičnim zarezom. Ovo je bio ključni tehnološki iskorak koji je omogućio razvoj FORTRAN-a i znanstvenih aplikacija koje su zahtijevale visoku numeričku preciznost.&lt;br /&gt;
&lt;br /&gt;
Floating‑point brojevi u IBM 704 bili su pohranjeni u 36‑bitnim riječima, podijeljenima na dva glavna dijela:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Mantisa&#039;&#039;&#039; – 27 bitova  &lt;br /&gt;
* &#039;&#039;&#039;Eksponent&#039;&#039;&#039; – 8 bitova (excess‑128 format)  &lt;br /&gt;
* &#039;&#039;&#039;Znak&#039;&#039;&#039; – 1 bit&lt;br /&gt;
&lt;br /&gt;
=== Format floating‑point riječi ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Format floating‑point broja (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! Polje&lt;br /&gt;
! Duljina&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Znak mantise&lt;br /&gt;
| 1 bit&lt;br /&gt;
| Određuje pozitivan ili negativan broj.&lt;br /&gt;
|-&lt;br /&gt;
| Mantisa&lt;br /&gt;
| 27 bitova&lt;br /&gt;
| Normalizirana mantisa bez skrivenog bita.&lt;br /&gt;
|-&lt;br /&gt;
| Eksponent&lt;br /&gt;
| 8 bitova&lt;br /&gt;
| Excess‑128 format (stvarni eksponent = pohranjeni − 128).&lt;br /&gt;
|-&lt;br /&gt;
| Rezervirano&lt;br /&gt;
| 0 bitova&lt;br /&gt;
| Format je potpuno iskorišten; nema neiskorištenih bitova.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Excess‑128 eksponent ===&lt;br /&gt;
&lt;br /&gt;
Eksponent je pohranjen u obliku:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
stvarni_eksponent = pohranjeni_eksponent − 128&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj pristup omogućavao je jednostavnije usporedbe i normalizaciju brojeva.&lt;br /&gt;
&lt;br /&gt;
=== Normalizacija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 zahtijevao je da mantisa bude normalizirana tako da najviši bit mantise bude različit od nule.  &lt;br /&gt;
To je omogućavalo maksimalnu preciznost pri izračunima.&lt;br /&gt;
&lt;br /&gt;
=== Floating‑point operacije ===&lt;br /&gt;
&lt;br /&gt;
Računalo je podržavalo sljedeće operacije nad floating‑point brojevima:&lt;br /&gt;
&lt;br /&gt;
* zbrajanje (ADD)  &lt;br /&gt;
* oduzimanje (SUB)  &lt;br /&gt;
* množenje (MPY)  &lt;br /&gt;
* dijeljenje (DIV)&lt;br /&gt;
&lt;br /&gt;
Sve operacije koristile su aritmetičku jedinicu AC/MQ, pri čemu se rezultat normalizirao automatski.&lt;br /&gt;
&lt;br /&gt;
=== Primjer floating‑point operacije u assembleru ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj floating-point broj A&lt;br /&gt;
ADD B        / zbroji ga s B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Važnost floating‑point implementacije ===&lt;br /&gt;
&lt;br /&gt;
Hardverska podrška za pomični zarez bila je ključna za:&lt;br /&gt;
&lt;br /&gt;
* razvoj FORTRAN-a (1957.)&lt;br /&gt;
* balističke izračune&lt;br /&gt;
* aerodinamičke simulacije&lt;br /&gt;
* nuklearne proračune&lt;br /&gt;
* statističke modele&lt;br /&gt;
* rane znanstvene aplikacije NASA-e&lt;br /&gt;
&lt;br /&gt;
IBM 704 je time postavio standard koji će kasnije preuzeti svi moderni procesori.&lt;br /&gt;
&lt;br /&gt;
== Instrukcijski skup IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Glavne grupe instrukcija IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Grupa&lt;br /&gt;
! Primjeri&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Aritmetičke instrukcije&lt;br /&gt;
| ADD, SUB, MPY, DIV&lt;br /&gt;
| Operacije nad AC i MQ registrima; podrška za cijele brojeve i pomični zarez.&lt;br /&gt;
|-&lt;br /&gt;
| Logičke instrukcije&lt;br /&gt;
| CLA, CLM, COM&lt;br /&gt;
| Čišćenje, komplementiranje i manipulacija bitovima.&lt;br /&gt;
|-&lt;br /&gt;
| Uvjetno grananje&lt;br /&gt;
| TRA, TMI, TPL, TZE&lt;br /&gt;
| Skokovi ovisno o sadržaju AC ili MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Rad sa Sense Indicators&lt;br /&gt;
| TSI, SSI, RSI&lt;br /&gt;
| Testiranje, postavljanje i resetiranje statusnih bitova.&lt;br /&gt;
|-&lt;br /&gt;
| Indeksno adresiranje&lt;br /&gt;
| AXT, TXI&lt;br /&gt;
| Modifikacija adresa pomoću XR1, XR2, XR4.&lt;br /&gt;
|-&lt;br /&gt;
| Ulazno/izlazne instrukcije&lt;br /&gt;
| RDS, WRS, RWT&lt;br /&gt;
| Rad s magnetskom vrpcom, kartičnim čitačem i pisačem.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrola toka programa&lt;br /&gt;
| HLT, NOP&lt;br /&gt;
| Zaustavljanje programa, prazna instrukcija.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Opkodovi IBM 704 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Kompletan popis opkoda IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Opkod&lt;br /&gt;
! Mnemonik&lt;br /&gt;
! Grupa&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 000&lt;br /&gt;
| NOP&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Prazna instrukcija; ne radi ništa.&lt;br /&gt;
|-&lt;br /&gt;
| 001&lt;br /&gt;
| HLT&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Zaustavlja izvršavanje programa.&lt;br /&gt;
|-&lt;br /&gt;
| 002&lt;br /&gt;
| TRA&lt;br /&gt;
| Grananje&lt;br /&gt;
| Bezuvjetni skok na adresu.&lt;br /&gt;
|-&lt;br /&gt;
| 003&lt;br /&gt;
| TRN&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC negativan.&lt;br /&gt;
|-&lt;br /&gt;
| 004&lt;br /&gt;
| TMI&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC manji od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 005&lt;br /&gt;
| TPL&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC veći od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 006&lt;br /&gt;
| TZE&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC jednak nuli.&lt;br /&gt;
|-&lt;br /&gt;
| 007&lt;br /&gt;
| TOV&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je overflow zastavica postavljena.&lt;br /&gt;
|-&lt;br /&gt;
| 010&lt;br /&gt;
| ADD&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Zbrajanje sadržaja memorije s AC.&lt;br /&gt;
|-&lt;br /&gt;
| 011&lt;br /&gt;
| SUB&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Oduzimanje sadržaja memorije od AC.&lt;br /&gt;
|-&lt;br /&gt;
| 012&lt;br /&gt;
| MPY&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Množenje; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 013&lt;br /&gt;
| DIV&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Dijeljenje; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 014&lt;br /&gt;
| CLA&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 015&lt;br /&gt;
| CLM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 016&lt;br /&gt;
| COM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Komplementira AC.&lt;br /&gt;
|-&lt;br /&gt;
| 020&lt;br /&gt;
| SHL&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak ulijevo.&lt;br /&gt;
|-&lt;br /&gt;
| 021&lt;br /&gt;
| SHR&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak udesno.&lt;br /&gt;
|-&lt;br /&gt;
| 030&lt;br /&gt;
| AXT&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Učitava vrijednost u XR1, XR2 ili XR4.&lt;br /&gt;
|-&lt;br /&gt;
| 031&lt;br /&gt;
| TXI&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Dodaje vrijednost indeksnom registru.&lt;br /&gt;
|-&lt;br /&gt;
| 040&lt;br /&gt;
| RDS&lt;br /&gt;
| I/O&lt;br /&gt;
| Čitanje s magnetske vrpce.&lt;br /&gt;
|-&lt;br /&gt;
| 041&lt;br /&gt;
| WRS&lt;br /&gt;
| I/O&lt;br /&gt;
| Pisanje na magnetsku vrpcu.&lt;br /&gt;
|-&lt;br /&gt;
| 042&lt;br /&gt;
| RWT&lt;br /&gt;
| I/O&lt;br /&gt;
| Čekanje na I/O operaciju.&lt;br /&gt;
|-&lt;br /&gt;
| 050&lt;br /&gt;
| TSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Testira Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 051&lt;br /&gt;
| SSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Postavlja Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 052&lt;br /&gt;
| RSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Resetira Sense Indicator n.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Registri==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--             --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:88%;width:34em;&amp;quot;&lt;br /&gt;
|+ Registri u računalu IBM 704&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| style=&amp;quot;font-size:88%;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Podatkovni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | S&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | Q&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | P&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;14&amp;quot;| Akumulator&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | AC&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;1&amp;quot;| S&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;11&amp;quot;| Množitelj/Količnik&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | MQ&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;12&amp;quot;| Senzorni indikatori&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | SI&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 1&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR1 (XRA)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 2&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR2 (XRB)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 4 &lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR4 (XRC)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;14&amp;quot; | &#039;&#039;&#039;Brojač naredbi&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Brojač&amp;amp;nbsp;Naredbi&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| IC&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzorni indikatori&#039;&#039;&#039; - su posebni statusni bitovi u IBM 704 koj su se u praksi rabili za provjeru grešaka, grananje ovisno o stanju sustava, upravljanje perifernim jedinicama, te za signalizaciju posebnih događaja. Kroz njih programeri su mogli održavati stanje sustava, signalizirati određene uvjete tokom izvršavanje naredbi, čitanje i postavljanje naredbi i tako su služili za jednostane oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Sense Indicators (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! SI broj&lt;br /&gt;
! Naziv / funkcija&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Overflow flag&lt;br /&gt;
| Postavlja se pri prekoračenju rezultata u akumulatoru (AC) ili količniku (MQ).&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Divide check&lt;br /&gt;
| Signalizira pogrešku pri dijeljenju, uključujući dijeljenje nulom.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| I/O ready&lt;br /&gt;
| Uređaj spreman za prijenos podataka.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| I/O complete&lt;br /&gt;
| Završetak operacije ulaza/izlaza.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Tape mark&lt;br /&gt;
| Očitana oznaka kraja bloka na magnetskoj vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Printer ready&lt;br /&gt;
| Pisač spreman za rad.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Card reader ready&lt;br /&gt;
| Čitač kartica spreman.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Card punch ready&lt;br /&gt;
| Bušilica kartica spremna.&lt;br /&gt;
|-&lt;br /&gt;
| 8–15&lt;br /&gt;
| Peripheral flags&lt;br /&gt;
| Razni signali perifernih uređaja (disk, vrpca, pisač).&lt;br /&gt;
|-&lt;br /&gt;
| 16–35&lt;br /&gt;
| User-defined flags&lt;br /&gt;
| Zastavice koje programer može slobodno koristiti za logiku grananja.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Korištenje u IBM 704 assembleru ====&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao posebne instrukcije za rad sa Sense Indicators:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;TSI n&#039;&#039;&#039;&lt;br /&gt;
: Testira Sense Indicator &#039;&#039;n&#039;&#039;. Ako je postavljen, izvršavanje se nastavlja normalno; ako nije, preskače se sljedeća instrukcija.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3      / provjeri je li I/O complete&lt;br /&gt;
TRA DONE   / ako je postavljen, skoči na DONE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;SSI n&#039;&#039;&#039;&lt;br /&gt;
: Postavlja Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;RSI n&#039;&#039;&#039;&lt;br /&gt;
: Resetira Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 1      / provjeri divide check&lt;br /&gt;
TRA ERROR  / ako je SI1 = 1, idi na ERROR&lt;br /&gt;
&lt;br /&gt;
SSI 20     / postavi korisnički indikator 20&lt;br /&gt;
RSI 3      / resetiraj I/O complete indikator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Usporedba s modernim statusnim registrima ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! IBM 704 Sense Indicators&lt;br /&gt;
! Moderni statusni registri (x86, ARM, RISC-V)&lt;br /&gt;
|-&lt;br /&gt;
| 36 jednobitnih zastavica&lt;br /&gt;
| 8–32 bitni statusni registri&lt;br /&gt;
|-&lt;br /&gt;
| Ručno postavljanje i brisanje&lt;br /&gt;
| Automatsko postavljanje od strane ALU&lt;br /&gt;
|-&lt;br /&gt;
| Koriste se za I/O signalizaciju&lt;br /&gt;
| I/O signalizacija preko interrupt kontrolera&lt;br /&gt;
|-&lt;br /&gt;
| Jednostavne logičke zastavice&lt;br /&gt;
| Zastavice za aritmetiku, usporedbe, prekide&lt;br /&gt;
|-&lt;br /&gt;
| Programer koristi dio SI kao &amp;quot;user flags&amp;quot;&lt;br /&gt;
| Moderni jezici koriste varijable, strukture, objekte&lt;br /&gt;
|-&lt;br /&gt;
| Grananje preko TSI instrukcije&lt;br /&gt;
| Grananje preko CMP/JMP, BEQ/BNE, BLT/BGT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Primjeri IBM 704 assembler koda ==&lt;br /&gt;
&lt;br /&gt;
=== Zbrajanje dvaju brojeva ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj A u AC&lt;br /&gt;
ADD B        / dodaj B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Provjera negativnog broja ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA X        / učitaj X&lt;br /&gt;
TMI NEG      / ako je X &amp;lt; 0, idi na NEG&lt;br /&gt;
TRA DONE     / inače nastavi&lt;br /&gt;
NEG STO Y    / spremi negativnu vrijednost&lt;br /&gt;
DONE HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Množenje i dijeljenje ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A&lt;br /&gt;
MPY B        / AC*B → AC/MQ&lt;br /&gt;
DIV C        / (AC/MQ) / C → MQ (količnik), AC (ostatak)&lt;br /&gt;
STO Q        / spremi količnik&lt;br /&gt;
STO R        / spremi ostatak&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Korištenje Sense Indicators ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3        / provjeri I/O complete&lt;br /&gt;
TRA IO_OK    / ako je SI3 = 1, idi na IO_OK&lt;br /&gt;
SSI 20       / postavi korisnički indikator 20&lt;br /&gt;
IO_OK HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Performanse IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od najbržih znanstvenih računala svoje generacije. Njegova arhitektura s pomičnim zarezom, magnetskom jezgrom i specijaliziranim aritmetičkim registrima omogućavala je znatno bolje performanse u odnosu na prethodne modele IBM 701 i IBM 702. Sustav je bio optimiziran za matematičke operacije, simulacije, statističke izračune i obradu velikih numeričkih skupova podataka.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Performanse računala IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Brzina zbrajanja&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za izvršavanje jedne ADD instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina množenja&lt;br /&gt;
| ~20 μs&lt;br /&gt;
| Vrijeme za MPY instrukciju; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina dijeljenja&lt;br /&gt;
| ~38 μs&lt;br /&gt;
| Vrijeme za DIV instrukciju; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| Memorija&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Magnetska jezgra; pristup ~12 μs.&lt;br /&gt;
|-&lt;br /&gt;
| Ciklus instrukcije&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Prosječno vrijeme za dohvat i izvršavanje jednostavne instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina I/O operacija&lt;br /&gt;
| 7200 kartica/min (čitač)&lt;br /&gt;
| Kartični čitač i bušilica bili su glavni ulazno/izlazni sustavi.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| 12 500 znakovnih blokova/s&lt;br /&gt;
| Ovisno o uređaju; korišteno za masovno spremanje podataka.&lt;br /&gt;
|-&lt;br /&gt;
| Preciznost pomičnog zareza&lt;br /&gt;
| 27-bitni eksponent + 8-bitna mantisa&lt;br /&gt;
| Omogućavalo znanstvene izračune velike preciznosti.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pouzdanost ==&lt;br /&gt;
&lt;br /&gt;
Iako je IBM 704 bio znatno pouzdaniji od svog prethodnika IBM 701, i dalje je bio stroj temeljen na vakuumskim cijevima, što je značilo relativno česte kvarove prema današnjim standardima. Prosječno vrijeme između kvarova iznosilo je oko 8 sati, što je ograničavalo veličinu programa koje je bilo moguće kompajlirati ili izvršavati bez prekida.&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN kompajleri morali su biti iznimno učinkoviti jer bi preduga kompilacija mogla biti prekinuta kvarom sustava. Unatoč tome, IBM 704 je bio dovoljno pouzdan da postane temelj za razvoj FORTRAN-a, LISP-a, ranih neuralnih mreža i brojnih znanstvenih projekata.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Pouzdanost IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| MTBF (mean time between failure)&lt;br /&gt;
| ~8 sati&lt;br /&gt;
| Prosječno vrijeme rada prije kvara.&lt;br /&gt;
|-&lt;br /&gt;
| Usporedba s IBM 701&lt;br /&gt;
| ~30 minuta&lt;br /&gt;
| IBM 704 bio je znatno pouzdaniji od svog prethodnika.&lt;br /&gt;
|-&lt;br /&gt;
| Utjecaj na softver&lt;br /&gt;
| Ograničena veličina programa&lt;br /&gt;
| Kompilacije su morale biti kratke zbog mogućih kvarova.&lt;br /&gt;
|-&lt;br /&gt;
| Tehnologija&lt;br /&gt;
| Vakuumske cijevi&lt;br /&gt;
| Glavni uzrok kvarova i zagrijavanja sustava.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SAP asembler ==&lt;br /&gt;
&lt;br /&gt;
SAP (&#039;&#039;Symbolic Assembly Program&#039;&#039;) bio je službeni asembler za IBM 704 i predstavljao je jedan od najranijih i najutjecajnijih asemblera u povijesti računarstva. Razvijen je unutar IBM-a sredinom 1950-ih kako bi programerima omogućio pisanje simboličkog koda umjesto ručnog unošenja numeričkih opkoda i adresa.&lt;br /&gt;
&lt;br /&gt;
SAP je bio ključan za razvoj FORTRAN-a, LISP-a i mnogih ranih znanstvenih aplikacija, jer je omogućio jednostavnije pisanje, čitanje i održavanje programa na IBM 704.&lt;br /&gt;
&lt;br /&gt;
=== Značajke SAP asemblera ===&lt;br /&gt;
&lt;br /&gt;
SAP je imao nekoliko naprednih značajki za svoje vrijeme:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simboličke oznake&#039;&#039;&#039; – programeri su mogli koristiti imena umjesto numeričkih adresa.&lt;br /&gt;
* &#039;&#039;&#039;Automatsko izračunavanje adresa&#039;&#039;&#039; – asembler je sam određivao lokacije instrukcija.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za indeksne registre&#039;&#039;&#039; – XR1, XR2 i XR4 mogli su se koristiti u adresiranju.&lt;br /&gt;
* &#039;&#039;&#039;Jednostavna sintaksa&#039;&#039;&#039; – instrukcije su bile kratke i čitljive.&lt;br /&gt;
* &#039;&#039;&#039;Integracija s FORTRAN-om&#039;&#039;&#039; – FORTRAN kompajler generirao je SAP kod.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za floating‑point operacije&#039;&#039;&#039; – izravno korištenje AC/MQ jedinice.&lt;br /&gt;
&lt;br /&gt;
SAP je bio jedan od prvih asemblera koji je omogućio relativno visok stupanj apstrakcije u odnosu na strojni kod.&lt;br /&gt;
&lt;br /&gt;
=== Struktura SAP instrukcije ===&lt;br /&gt;
&lt;br /&gt;
Instrukcije su se sastojale od:&lt;br /&gt;
&lt;br /&gt;
* mnemonika (ADD, SUB, MPY, DIV, TRA…)&lt;br /&gt;
* adrese ili simbola&lt;br /&gt;
* opcionalnog indeksnog modifikatora&lt;br /&gt;
* komentara&lt;br /&gt;
&lt;br /&gt;
Primjer strukture:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
MNEMONIK  ADRESA,XR   / komentar&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Primjer SAP koda ===&lt;br /&gt;
&lt;br /&gt;
Slijedi povijesno točan primjer SAP koda za IBM 704:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
A      DEC 5          / definiraj konstantu A&lt;br /&gt;
B      DEC 7          / definiraj konstantu B&lt;br /&gt;
C      BSS 1          / rezerviraj prostor za rezultat&lt;br /&gt;
&lt;br /&gt;
       CLA A          / učitaj A u AC&lt;br /&gt;
       ADD B          / dodaj B&lt;br /&gt;
       STO C          / spremi rezultat u C&lt;br /&gt;
       HLT            / zaustavi program&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Korištenje indeksnih registara ===&lt;br /&gt;
&lt;br /&gt;
SAP je omogućavao jednostavno korištenje XR1, XR2 i XR4:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
LOOP   CLA ARRAY,XR1  / učitaj element polja&lt;br /&gt;
       ADD SUM        / dodaj na sumu&lt;br /&gt;
       STO SUM        / spremi rezultat&lt;br /&gt;
       TXI XR1,1      / povećaj indeks&lt;br /&gt;
       TPL LOOP       / ako je pozitivan, nastavi petlju&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio preteča modernih petlji u visokorazinskim jezicima.&lt;br /&gt;
&lt;br /&gt;
=== SAP i FORTRAN ===&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN kompajler generirao je SAP kod koji se zatim prevodio u strojni kod IBM 704.  &lt;br /&gt;
Zbog toga je SAP bio ključan za:&lt;br /&gt;
&lt;br /&gt;
* optimizaciju FORTRAN programa,&lt;br /&gt;
* implementaciju DO petlji,&lt;br /&gt;
* rad s poljima i matricama,&lt;br /&gt;
* floating‑point operacije,&lt;br /&gt;
* kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
=== SAP i LISP ===&lt;br /&gt;
&lt;br /&gt;
Prva implementacija LISP-a (1958.) bila je napisana upravo u SAP asembleru.  &lt;br /&gt;
SAP je omogućio:&lt;br /&gt;
&lt;br /&gt;
* manipulaciju cons‑struktura,&lt;br /&gt;
* implementaciju CAR i CDR operacija,&lt;br /&gt;
* rekurziju,&lt;br /&gt;
* dinamičko upravljanje memorijom.&lt;br /&gt;
&lt;br /&gt;
Bez SAP-a, LISP ne bi mogao biti implementiran na IBM 704.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj SAP-a ===&lt;br /&gt;
&lt;br /&gt;
SAP je bio jedan od najvažnijih asemblera 1950-ih i 1960-ih.  &lt;br /&gt;
Njegov utjecaj vidljiv je u:&lt;br /&gt;
&lt;br /&gt;
* razvoju FORTRAN-a,&lt;br /&gt;
* nastanku LISP-a,&lt;br /&gt;
* ranim AI projektima,&lt;br /&gt;
* znanstvenim simulacijama,&lt;br /&gt;
* razvoju modernih asemblera i kompajlera.&lt;br /&gt;
&lt;br /&gt;
SAP je postavio temelje za simboličko programiranje i bio je ključni alat u zlatnom dobu ranog računarstva.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju LISP-a ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je ključnu ulogu u nastanku programskog jezika LISP, jednog od najvažnijih jezika u povijesti računarstva. LISP je 1958. godine razvio John McCarthy na MIT-u, a upravo je IBM 704 bio prvo računalo na kojem je LISP implementiran i izvršavan.&amp;lt;ref&amp;gt;http://jmc.stanford.edu/articles/lisp/lisp.pdf &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Razvoj LISP-a bio je izravno povezan s arhitekturom IBM 704, posebno s njegovim:&lt;br /&gt;
* 36-bitnim riječima,&lt;br /&gt;
* aritmetičkom jedinicom AC/MQ,&lt;br /&gt;
* indeksnim registrima,&lt;br /&gt;
* mogućnošću manipulacije adresama,&lt;br /&gt;
* podrškom za uvjetno grananje,&lt;br /&gt;
* te fleksibilnim instrukcijskim formatom.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio pogodan za LISP ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je nekoliko arhitekturnih značajki koje su se pokazale idealnima za implementaciju LISP-a:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;36-bitne riječi&#039;&#039;&#039; omogućavale su učinkovito predstavljanje parova (cons cells).&lt;br /&gt;
* &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039; olakšavali su rad s listama i rekurzivnim strukturama.&lt;br /&gt;
* &#039;&#039;&#039;Instrukcije grananja&#039;&#039;&#039; (TRA, TMI, TPL, TZE) omogućavale su jednostavnu implementaciju rekurzije.&lt;br /&gt;
* &#039;&#039;&#039;Magnetska jezgra&#039;&#039;&#039; bila je dovoljno brza za dinamičke strukture podataka.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za floating-point&#039;&#039;&#039; olakšala je rad s matematičkim funkcijama.&lt;br /&gt;
&lt;br /&gt;
McCarthy je iskoristio ove mogućnosti kako bi implementirao osnovne LISP konstrukte: CONS, CAR, CDR, rekurziju, lambda‑izraze i funkcije višeg reda.&lt;br /&gt;
&lt;br /&gt;
=== Prva implementacija LISP-a ===&lt;br /&gt;
&lt;br /&gt;
Prva verzija LISP-a bila je napisana u SAP asembleru za IBM 704.  &lt;br /&gt;
Ova implementacija uključivala je:&lt;br /&gt;
&lt;br /&gt;
* interpreter,&lt;br /&gt;
* evaluator,&lt;br /&gt;
* upravljanje memorijom,&lt;br /&gt;
* implementaciju cons‑struktura,&lt;br /&gt;
* osnovne matematičke funkcije,&lt;br /&gt;
* te mehanizme za rekurziju i funkcije višeg reda.&lt;br /&gt;
&lt;br /&gt;
LISP je na IBM 704 radio kao interpretirani jezik, a programi su se izvršavali izravno nad strukturom lista u memoriji.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je omogućio LISP-u da postane prvi široko korišteni jezik za:&lt;br /&gt;
&lt;br /&gt;
* umjetnu inteligenciju,&lt;br /&gt;
* simboličku manipulaciju,&lt;br /&gt;
* matematičku logiku,&lt;br /&gt;
* rane ekspertske sustave,&lt;br /&gt;
* istraživanje strojnog učenja.&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, LISP bi vjerojatno bio znatno drugačiji — ili bi se pojavio mnogo kasnije.&lt;br /&gt;
&lt;br /&gt;
=== Primjer ranog LISP izraza (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Iako se LISP nije zapisivao u assembleru, njegovi izrazi su se prevodili u SAP kod za IBM 704.  &lt;br /&gt;
Primjer jednostavne LISP funkcije:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(define (square x)&lt;br /&gt;
  (* x x))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj izraz bi se na IBM 704 interno pretvorio u operacije nad cons‑struktura i pozive aritmetičkih instrukcija MPY i ADD.&lt;br /&gt;
&lt;br /&gt;
=== Utjecaj na daljnji razvoj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je bio platforma na kojoj su nastale ključne ideje:&lt;br /&gt;
&lt;br /&gt;
* automatsko upravljanje memorijom,&lt;br /&gt;
* rekurzija kao temeljni mehanizam,&lt;br /&gt;
* funkcije višeg reda,&lt;br /&gt;
* lambda‑račun,&lt;br /&gt;
* simbolička obrada podataka.&lt;br /&gt;
&lt;br /&gt;
Ove ideje postale su temelj modernih programskih jezika, od Schemea i Prologa do Pythona i JavaScripta.&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju FORTRAN-a ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je presudnu ulogu u nastanku FORTRAN-a (Formula Translation), prvog široko korištenog visokorazinskog programskog jezika. FORTRAN je razvijen 1957. godine u IBM-u pod vodstvom Johna Backusa, a IBM 704 bio je prvo računalo na kojem je FORTRAN implementiran, kompajliran i izvršavan.&lt;br /&gt;
&lt;br /&gt;
Arhitektura IBM 704 izravno je oblikovala dizajn FORTRAN-a. Njegova podrška za aritmetiku s pomičnim zarezom, indeksne registre, statusne indikatore i 36-bitne riječi omogućila je stvaranje jezika koji je bio optimiziran za znanstvene i tehničke izračune.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio ključan za FORTRAN ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 posjedovao je nekoliko arhitekturnih značajki koje su bile presudne za razvoj FORTRAN-a:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Hardverska floating‑point jedinica&#039;&#039;&#039; – omogućila je izravnu podršku za matematičke operacije.&lt;br /&gt;
* &#039;&#039;&#039;Aritmetički registri AC i MQ&#039;&#039;&#039; – olakšali su implement&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju ranih neuralnih mreža ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je važnu ulogu u razvoju najranijih modela umjetnih neuronskih mreža tijekom kasnih 1950-ih i ranih 1960-ih. Iako su ti modeli bili daleko jednostavniji od današnjih dubokih mreža, IBM 704 je bio jedno od rijetkih računala koje je imalo dovoljno memorije, brzine i aritmetičkih mogućnosti da može izvoditi simulacije neuronskih mreža u praksi.&lt;br /&gt;
&lt;br /&gt;
Rani pioniri umjetne inteligencije, uključujući Franka Rosenblatta, Herberta Simona, Allena Newella i istraživače s MIT-a i Cornell Aeronautical Laboratory, koristili su IBM 704 za implementaciju i testiranje prvih algoritama koji su simulirali neuronsko učenje.&lt;br /&gt;
&lt;br /&gt;
=== IBM 704 i perceptron ===&lt;br /&gt;
&lt;br /&gt;
Najvažniji doprinos IBM 704 razvoju neuralnih mreža bio je u implementaciji i simulaciji **Rosenblattovog perceptrona**, prvog formalnog modela neuronske mreže koji je mogao učiti iz podataka.&lt;br /&gt;
&lt;br /&gt;
IBM 704 omogućio je:&lt;br /&gt;
&lt;br /&gt;
* izračun težina perceptrona,&lt;br /&gt;
* simulaciju učenja kroz iteracije,&lt;br /&gt;
* rad s matricama i vektorima,&lt;br /&gt;
* evaluaciju linearnih klasifikatora,&lt;br /&gt;
* testiranje različitih skupova podataka.&lt;br /&gt;
&lt;br /&gt;
Iako je perceptron kasnije imao i hardversku implementaciju (Mark I Perceptron), IBM 704 bio je ključan za **prve softverske simulacije** koje su potvrdile da se neuronske mreže mogu trenirati računalno.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio pogodan za neuralne mreže ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je nekoliko arhitekturnih značajki koje su bile iznimno korisne za rane AI eksperimente:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Floating‑point jedinica&#039;&#039;&#039; – omogućila je precizne izračune težina i aktivacijskih funkcija.&lt;br /&gt;
* &#039;&#039;&#039;Aritmetički registri AC/MQ&#039;&#039;&#039; – ubrzali su operacije nad vektorima.&lt;br /&gt;
* &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039; – olakšali su rad s matricama i iteracijama.&lt;br /&gt;
* &#039;&#039;&#039;Magnetska jezgra&#039;&#039;&#039; – bila je dovoljno brza za ponavljajuće izračune.&lt;br /&gt;
* &#039;&#039;&#039;Instrukcije grananja&#039;&#039;&#039; – omogućile su implementaciju algoritama učenja.&lt;br /&gt;
&lt;br /&gt;
Zbog toga je IBM 704 bio jedno od prvih računala koje je moglo izvoditi **iterativne algoritme učenja**, temeljne za neuralne mreže.&lt;br /&gt;
&lt;br /&gt;
=== Rani eksperimenti umjetne inteligencije ===&lt;br /&gt;
&lt;br /&gt;
Na IBM 704 provodili su se rani eksperimenti koji su uključivali:&lt;br /&gt;
&lt;br /&gt;
* simulaciju perceptrona,&lt;br /&gt;
* klasifikaciju jednostavnih vizualnih uzoraka,&lt;br /&gt;
* prepoznavanje znakova,&lt;br /&gt;
* rane oblike strojne percepcije,&lt;br /&gt;
* istraživanje linearnih i nelinearnih funkcija aktivacije.&lt;br /&gt;
&lt;br /&gt;
Ovi eksperimenti bili su temelj za kasniji razvoj:&lt;br /&gt;
&lt;br /&gt;
* višeslojnih perceptrona,&lt;br /&gt;
* backpropagation algoritma,&lt;br /&gt;
* dubokog učenja,&lt;br /&gt;
* računalnog vida.&lt;br /&gt;
&lt;br /&gt;
=== Primjer jednostavne perceptronske iteracije (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći pseudokod prikazuje kako je perceptron bio implementiran na IBM 704:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA W1        / učitaj težinu&lt;br /&gt;
MPY X1        / pomnoži s ulazom&lt;br /&gt;
ADD SUM       / dodaj na akumuliranu sumu&lt;br /&gt;
STO SUM       / spremi novu vrijednost&lt;br /&gt;
&lt;br /&gt;
... ponavljati za sve ulaze ...&lt;br /&gt;
&lt;br /&gt;
CLA SUM&lt;br /&gt;
TMI UPDATE    / ako je pogreška negativna, ažuriraj težine&lt;br /&gt;
TPL UPDATE    / ako je pogreška pozitivna, također ažuriraj&lt;br /&gt;
&lt;br /&gt;
UPDATE:&lt;br /&gt;
ADD ERROR     / korekcija težine&lt;br /&gt;
STO W1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio jedan od prvih primjera **računalnog učenja** u povijesti.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je ključan za rani razvoj umjetne inteligencije jer je:&lt;br /&gt;
&lt;br /&gt;
* omogućio prve računalne simulacije neuronskih mreža,&lt;br /&gt;
* bio platforma za perceptron i rane modele učenja,&lt;br /&gt;
* omogućio istraživanje algoritama koji su kasnije postali temelj dubokog učenja,&lt;br /&gt;
* povezao AI istraživanje s praktičnim računalnim sustavima.&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, razvoj ranih neuralnih mreža bio bi znatno sporiji i ograničeniji.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u ranoj robotici ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je važnu ulogu u razvoju najranijih oblika robotike i automatizacije tijekom kasnih 1950-ih i ranih 1960-ih. Iako se u to vrijeme pojam „robotika“ tek počeo pojavljivati u znanstvenoj literaturi, IBM 704 bio je jedno od prvih računala koje je moglo upravljati mehaničkim sustavima, analizirati senzorske podatke i izvoditi algoritme koji su predstavljali preteču modernog upravljanja robotima.&lt;br /&gt;
&lt;br /&gt;
Rani robotski sustavi bili su primitivni u odnosu na današnje, ali IBM 704 je omogućio:&lt;br /&gt;
&lt;br /&gt;
* upravljanje aktuatorima i elektromehaničkim uređajima,&lt;br /&gt;
* obradu ulaznih signala iz senzora,&lt;br /&gt;
* simulaciju kretanja i kontrolnih petlji,&lt;br /&gt;
* rane eksperimente u automatskom upravljanju,&lt;br /&gt;
* integraciju s vizualnim sustavima (CRT prikaz IBM 740).&lt;br /&gt;
&lt;br /&gt;
=== Rani eksperimenti automatizacije ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 korišten je u laboratorijima i istraživačkim centrima za:&lt;br /&gt;
&lt;br /&gt;
* upravljanje robotskim manipulatorima,&lt;br /&gt;
* simulaciju kinematike i dinamike,&lt;br /&gt;
* upravljanje servo‑motorima,&lt;br /&gt;
* automatizaciju industrijskih procesa,&lt;br /&gt;
* rane oblike povratne sprege (feedback control).&lt;br /&gt;
&lt;br /&gt;
Ovi sustavi nisu bili roboti u modernom smislu, ali su predstavljali ključne korake prema:&lt;br /&gt;
&lt;br /&gt;
* numeričkom upravljanju strojevima (NC machines),&lt;br /&gt;
* automatskim manipulatorima,&lt;br /&gt;
* sustavima za automatsko pozicioniranje,&lt;br /&gt;
* ranim oblicima cybernetike.&lt;br /&gt;
&lt;br /&gt;
=== IBM 704 i cybernetika ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je često korišten u istraživanjima inspiriranim radom Norberta Wienera, osnivača cybernetike.  &lt;br /&gt;
Sustav je omogućavao:&lt;br /&gt;
&lt;br /&gt;
* simulaciju povratne sprege,&lt;br /&gt;
* analizu stabilnosti sustava,&lt;br /&gt;
* implementaciju kontrolnih algoritama,&lt;br /&gt;
* rane oblike adaptivnog upravljanja.&lt;br /&gt;
&lt;br /&gt;
Ovo je bilo ključno za razvoj robotskih sustava koji se mogu prilagođavati promjenama u okruženju.&lt;br /&gt;
&lt;br /&gt;
=== Vizualni sustavi i IBM 740 ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 se mogao povezati s CRT zaslonom IBM 740, koji je omogućavao:&lt;br /&gt;
&lt;br /&gt;
* prikaz vektorskih grafika,&lt;br /&gt;
* vizualizaciju putanja kretanja,&lt;br /&gt;
* prikaz senzorskih podataka,&lt;br /&gt;
* rane eksperimente u računalnom vidu.&lt;br /&gt;
&lt;br /&gt;
Iako primitivni, ovi sustavi bili su preteča kasnijih robotskih vizualnih sustava.&lt;br /&gt;
&lt;br /&gt;
=== Primjer jednostavne kontrolne petlje (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći SAP kod prikazuje kako je IBM 704 mogao implementirati jednostavnu kontrolnu petlju za upravljanje aktuatorom:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
READSENSOR  RDS SENS        / očitaj senzor&lt;br /&gt;
           CLA SENS        / učitaj vrijednost&lt;br /&gt;
           SUB TARGET      / usporedi s ciljem&lt;br /&gt;
           TPL INCREASE    / ako je pozitivno, povećaj izlaz&lt;br /&gt;
           TMI DECREASE    / ako je negativno, smanji izlaz&lt;br /&gt;
&lt;br /&gt;
INCREASE   ADD STEP        / povećaj upravljački signal&lt;br /&gt;
           STO ACTUATOR&lt;br /&gt;
           TRA LOOP&lt;br /&gt;
&lt;br /&gt;
DECREASE   SUB STEP        / smanji upravljački signal&lt;br /&gt;
           STO ACTUATOR&lt;br /&gt;
           TRA LOOP&lt;br /&gt;
&lt;br /&gt;
LOOP       TRA READSENSOR  / ponovi petlju&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio jedan od prvih primjera računalno upravljanih mehaničkih sustava.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je ključan za rani razvoj robotike jer je:&lt;br /&gt;
&lt;br /&gt;
* omogućio prve računalne simulacije upravljanja strojevima,&lt;br /&gt;
* bio platforma za cybernetičke eksperimente,&lt;br /&gt;
* omogućio integraciju senzora i aktuatora,&lt;br /&gt;
* pružio temelj za numeričko upravljanje strojevima (NC),&lt;br /&gt;
* povezao mehaniku, elektroniku i računalne algoritme.&lt;br /&gt;
&lt;br /&gt;
IBM 704 je time postavio temelje za kasniji razvoj industrijskih robota, autonomnih sustava i modernih robotskih tehnologija.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u ranom računalnom vidu ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je važnu ulogu u najranijim eksperimentima računalnog vida tijekom kasnih 1950-ih i ranih 1960-ih. Iako se računalni vid kao disciplina tek počeo formirati, IBM 704 bio je jedno od rijetkih računala koje je imalo dovoljno memorije, aritmetičke snage i mogućnosti prikaza da može obrađivati jednostavne vizualne podatke.&lt;br /&gt;
&lt;br /&gt;
Rani eksperimenti računalnog vida bili su usko povezani s istraživanjima umjetne inteligencije, perceptrona i robotike, a IBM 704 služio je kao platforma za:&lt;br /&gt;
&lt;br /&gt;
* prepoznavanje jednostavnih uzoraka,&lt;br /&gt;
* klasifikaciju vizualnih znakova,&lt;br /&gt;
* obradu digitaliziranih slika niske rezolucije,&lt;br /&gt;
* vizualizaciju podataka na CRT zaslonu IBM 740,&lt;br /&gt;
* rane eksperimente u strojnoj percepciji.&lt;br /&gt;
&lt;br /&gt;
=== IBM 704 i CRT zaslon IBM 740 ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 se mogao povezati s vektorskim CRT zaslonom IBM 740, koji je omogućavao:&lt;br /&gt;
&lt;br /&gt;
* prikaz linija, oblika i grafičkih uzoraka,&lt;br /&gt;
* vizualizaciju rezultata algoritama,&lt;br /&gt;
* prikaz putanja kretanja u robotskim sustavima,&lt;br /&gt;
* rane oblike grafičke analize.&lt;br /&gt;
&lt;br /&gt;
Iako primitivni, ovi sustavi bili su preteča kasnijih grafičkih terminala i vizualnih procesora.&lt;br /&gt;
&lt;br /&gt;
=== Rani eksperimenti prepoznavanja uzoraka ===&lt;br /&gt;
&lt;br /&gt;
Na IBM 704 provodili su se rani eksperimenti koji su uključivali:&lt;br /&gt;
&lt;br /&gt;
* prepoznavanje slova i brojeva,&lt;br /&gt;
* klasifikaciju jednostavnih geometrijskih oblika,&lt;br /&gt;
* analizu kontrasta i rubova,&lt;br /&gt;
* rane oblike segmentacije slike.&lt;br /&gt;
&lt;br /&gt;
Podaci su se obično unosili preko:&lt;br /&gt;
&lt;br /&gt;
* digitaliziranih kartica,&lt;br /&gt;
* ručno kodiranih matrica piksela,&lt;br /&gt;
* senzorskih uređaja povezanih s robotima.&lt;br /&gt;
&lt;br /&gt;
=== Veza s perceptronom i neuralnim mrežama ===&lt;br /&gt;
&lt;br /&gt;
Rosenblattov perceptron, koji je IBM 704 koristio za simulacije učenja, bio je izravno primijenjen na rane zadatke računalnog vida:&lt;br /&gt;
&lt;br /&gt;
* klasifikacija vizualnih uzoraka,&lt;br /&gt;
* prepoznavanje znakova,&lt;br /&gt;
* jednostavni modeli prepoznavanja oblika.&lt;br /&gt;
&lt;br /&gt;
IBM 704 omogućio je iterativno treniranje perceptrona nad vizualnim podacima, što je bio jedan od prvih primjera **računalnog učenja iz slike**.&lt;br /&gt;
&lt;br /&gt;
=== Primjer jednostavne vizualne analize (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći SAP kod prikazuje kako je IBM 704 mogao analizirati jednostavnu matricu piksela:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA PIXEL      / učitaj vrijednost piksela&lt;br /&gt;
SUB THRESH     / usporedi s pragom&lt;br /&gt;
TPL BRIGHT     / ako je veće od praga → svijetli piksel&lt;br /&gt;
TMI DARK       / ako je manje → tamni piksel&lt;br /&gt;
&lt;br /&gt;
BRIGHT STO OUT1&lt;br /&gt;
TRA NEXT&lt;br /&gt;
&lt;br /&gt;
DARK   STO OUT0&lt;br /&gt;
NEXT   TRA LOOP&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio jedan od prvih primitivnih algoritama za binarnu segmentaciju slike.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je ključan za rani razvoj računalnog vida jer je:&lt;br /&gt;
&lt;br /&gt;
* omogućio prve računalne eksperimente prepoznavanja uzoraka,&lt;br /&gt;
* bio platforma za vizualne simulacije u robotici,&lt;br /&gt;
* povezao neuralne mreže s vizualnim podacima,&lt;br /&gt;
* omogućio prikaz grafike na CRT zaslonu,&lt;br /&gt;
* postavio temelje za kasniji razvoj računalnog vida u 1960-ima i 1970-ima.&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, rani razvoj računalnog vida bio bi znatno sporiji i ograničeniji.&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju rane računalne glazbe ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je iznimno važnu ulogu u povijesti računalne glazbe. Bio je prvo računalo koje je ikada generiralo glazbu sintetički, koristeći digitalne algoritme za stvaranje zvuka. Ovaj povijesni događaj zbio se 1957. godine na Bell Labsu, kada su Max Mathews i njegov tim razvili program &#039;&#039;&#039;MUSIC I&#039;&#039;&#039; – prvi računalni sustav za digitalnu sintezu zvuka.&lt;br /&gt;
&lt;br /&gt;
IBM 704 je time postao temelj cijelog područja računalne glazbe, digitalne sinteze, elektroničke glazbe i kasnije MIDI tehnologije.&lt;br /&gt;
&lt;br /&gt;
=== MUSIC I – prvi računalni glazbeni program ===&lt;br /&gt;
&lt;br /&gt;
Max Mathews je 1957. na IBM 704 napisao program &#039;&#039;&#039;MUSIC I&#039;&#039;&#039;, koji je:&lt;br /&gt;
&lt;br /&gt;
* generirao digitalne valne oblike,&lt;br /&gt;
* sintetizirao tonove i melodije,&lt;br /&gt;
* omogućio kontrolu frekvencije, amplitude i trajanja,&lt;br /&gt;
* stvarao zvuk numeričkim izračunima, a ne analognom elektronikom.&lt;br /&gt;
&lt;br /&gt;
Ovo je bio prvi put u povijesti da je glazba nastala isključivo računalnim izračunom.&lt;br /&gt;
&lt;br /&gt;
Kasnije verzije (MUSIC II, III, IV, V) postale su temelj modernih glazbenih sintesajzera i digitalnih audio sustava.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio pogodan za glazbenu sintezu ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je nekoliko ključnih značajki koje su omogućile digitalnu sintezu zvuka:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Floating‑point jedinica&#039;&#039;&#039; – omogućila precizne izračune valnih oblika.&lt;br /&gt;
* &#039;&#039;&#039;Brza magnetska jezgra&#039;&#039;&#039; – omogućila generiranje uzoraka u stvarnom vremenu (za to doba).&lt;br /&gt;
* &#039;&#039;&#039;Aritmetička jedinica AC/MQ&#039;&#039;&#039; – ubrzala izračune sinusnih i drugih funkcija.&lt;br /&gt;
* &#039;&#039;&#039;Instrukcijski skup optimiziran za matematičke operacije&#039;&#039;&#039; – savršen za DSP (digital signal processing).&lt;br /&gt;
* &#039;&#039;&#039;Mogućnost generiranja velikih nizova podataka&#039;&#039;&#039; – potrebnih za audio uzorke.&lt;br /&gt;
&lt;br /&gt;
IBM 704 je tako postao prvo računalo koje je moglo generirati digitalni zvuk dovoljno brzo da se može rekonstruirati na analognom pretvaraču.&lt;br /&gt;
&lt;br /&gt;
=== Prva računalno generirana pjesma ===&lt;br /&gt;
&lt;br /&gt;
Prvi glazbeni komad generiran na IBM 704 bio je jednostavan ton i kratka melodijska sekvenca.  &lt;br /&gt;
Kasnije su generirani:&lt;br /&gt;
&lt;br /&gt;
* jednostavni glazbeni motivi,&lt;br /&gt;
* kratke melodije,&lt;br /&gt;
* eksperimentalni zvukovi,&lt;br /&gt;
* rani oblici elektroničke glazbe.&lt;br /&gt;
&lt;br /&gt;
Ovi eksperimenti bili su preteča:&lt;br /&gt;
&lt;br /&gt;
* digitalnih sintesajzera,&lt;br /&gt;
* računalne glazbene kompozicije,&lt;br /&gt;
* algoritamske glazbe,&lt;br /&gt;
* elektroničke glazbe 1960-ih i 1970-ih.&lt;br /&gt;
&lt;br /&gt;
=== Primjer generiranja tona (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći SAP kod ilustrira kako je IBM 704 mogao generirati digitalni uzorak sinusnog vala:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA FREQ         / učitaj frekvenciju&lt;br /&gt;
MPY TIME         / pomnoži s vremenom&lt;br /&gt;
CALL SIN         / pozovi sinusnu funkciju&lt;br /&gt;
STO SAMPLE       / spremi uzorak&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj uzorak bi se zatim slao na digitalno‑analogni pretvarač.&lt;br /&gt;
&lt;br /&gt;
=== Utjecaj na glazbu i tehnologiju ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao ogroman utjecaj na razvoj glazbene tehnologije:&lt;br /&gt;
&lt;br /&gt;
* postavio je temelje digitalne sinteze,&lt;br /&gt;
* omogućio razvoj računalne kompozicije,&lt;br /&gt;
* inspirirao elektroničku glazbu,&lt;br /&gt;
* doveo do nastanka glazbenih jezika (MUSIC V, Csound),&lt;br /&gt;
* utjecao na razvoj MIDI standarda,&lt;br /&gt;
* otvorio put modernim DAW sustavima (Ableton, Logic, Pro Tools).&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, digitalna glazba bi se pojavila mnogo kasnije – ili u potpuno drugačijem obliku.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je bio:&lt;br /&gt;
&lt;br /&gt;
* prvo računalo koje je generiralo glazbu,&lt;br /&gt;
* temelj digitalne sinteze,&lt;br /&gt;
* ključni alat za Maxa Mathewsa, „oca računalne glazbe“,&lt;br /&gt;
* preteča svih modernih glazbenih algoritama, sintesajzera i audio procesora.&lt;br /&gt;
&lt;br /&gt;
Njegova uloga u glazbenoj povijesti jednako je važna kao i njegova uloga u razvoju FORTRAN-a, LISP-a, robotike i neuralnih mreža.&lt;br /&gt;
&lt;br /&gt;
==Programska podrška==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/rhobbie/Sim704  Simulator IBM 704]&lt;br /&gt;
* [https://sky-visions.com/ibm/704/ Arhiva programa za IBM 704]&lt;br /&gt;
* [https://www.piercefuller.com/library/share.html Druga arhiva programa za IBM 704]&lt;br /&gt;
* [https://bitsavers.org/pdf/ibm/704/24-6661-2_704_Manual_1955.pdf Operacijski priručnik za IBM 704]&lt;br /&gt;
&lt;br /&gt;
==Izvori==&lt;br /&gt;
{{izvori}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorija:IBM]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787642</id>
		<title>IBM 704</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787642"/>
		<updated>2026-07-07T10:19:29Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Programska podrška */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;IBM 704&#039;&#039;&#039; ime je za računalo prve generacije koje je razvila tvrtka [[IBM]] i jedan je iz serije računala IBM 700. Ovo računalo se proizvodilo od 1954. do 1964. godine.&amp;lt;ref&amp;gt;https://www.ibm.com/history/700&amp;lt;/ref&amp;gt;. Povijesna važnost ovog računala jest da je na njemu bio razvijen programski jezik [[FORTRAN]] i [[LISP]] te SAP asembler. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Povijest razvoja IBM 700 serije ==&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija bila je prva generacija komercijalnih znanstvenih računala koju je IBM razvio početkom 1950-ih. Serija je započela s modelom IBM 701 (1952.), poznatim kao „Defense Calculator“, koji je bio namijenjen vojnoj i zrakoplovnoj industriji.&lt;br /&gt;
&lt;br /&gt;
* IBM 702 (1953.) bio je poslovno orijentiran sustav, dok je IBM 703 bio eksperimentalni model.&lt;br /&gt;
* IBM 704 je postao temelj za razvoj FORTRAN-a (1957.), prvog visokorazinskog programskog jezika.&lt;br /&gt;
&lt;br /&gt;
Pravi tehnološki iskorak dogodio se s modelom &#039;&#039;&#039;IBM 704&#039;&#039;&#039; (1954.), prvim računalom koje je podržavalo:&lt;br /&gt;
* aritmetiku s pomičnim zarezom,&lt;br /&gt;
* indeksne registre,&lt;br /&gt;
* statusne indikatore,&lt;br /&gt;
* magnetsku jezgru kao primarnu memoriju.&lt;br /&gt;
&lt;br /&gt;
Serija se nastavila s modelima IBM 709 (1958.) i IBM 7090 (1959.), koji su bili tranzistorski nasljednici i koristili se u NASA-i, NORAD-u i velikim znanstvenim centrima.&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija ostavila je dubok trag u povijesti računarstva, postavivši standarde arhitekture koji su se zadržali desetljećima.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arhitektura IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od prvih komercijalnih računala koje je uvodilo napredne koncepte arhitekture, uključujući rad s pomičnim zarezom, indeksne registre i statusne indikatore. Sustav je bio dizajniran za znanstvene i tehničke izračune, što ga je činilo ključnim alatom u laboratorijima, sveučilištima i ranim zrakoplovnim projektima.&lt;br /&gt;
&lt;br /&gt;
=== Memorija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 koristio je magnetsku jezgru kao primarnu memoriju, što je u to vrijeme predstavljalo veliki tehnološki napredak u odnosu na Williamsove cijevi korištene u IBM-u 701. Magnetska jezgra bila je brža, pouzdanija i omogućavala stabilno zadržavanje podataka bez potrebe za stalnim osvježavanjem.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Memorijske karakteristike IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Vrsta memorije&lt;br /&gt;
| Magnetska jezgra&lt;br /&gt;
| Stabilna, brza i pouzdana tehnologija za 1950-e.&lt;br /&gt;
|-&lt;br /&gt;
| Kapacitet&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Ukupno 147 456 bitova (18 432 bajta).&lt;br /&gt;
|-&lt;br /&gt;
| Vrijeme pristupa&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za čitanje ili pisanje jedne riječi.&lt;br /&gt;
|-&lt;br /&gt;
| Format riječi&lt;br /&gt;
| 36-bitna riječ&lt;br /&gt;
| Koristi se za instrukcije, podatke i floating-point brojeve.&lt;br /&gt;
|-&lt;br /&gt;
| Floating-point format&lt;br /&gt;
| 8-bitni eksponent + 27-bitna mantisa&lt;br /&gt;
| Bez skrivenog bita; excess-128 eksponent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Periferni uređaji ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 podržavao je širok spektar perifernih uređaja, što ga je činilo pogodnim za znanstvene, tehničke i administrativne zadatke. Ulazno/izlazni sustav bio je temeljen na magnetskim vrpcama, kartičnim čitačima i pisačima, uz mogućnost prikaza podataka na CRT zaslonima.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Periferni uređaji IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Uređaj&lt;br /&gt;
! Model&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Čitač kartica&lt;br /&gt;
| IBM 711&lt;br /&gt;
| Učitava programe i podatke s bušenih kartica.&lt;br /&gt;
|-&lt;br /&gt;
| Pisač&lt;br /&gt;
| IBM 716&lt;br /&gt;
| Ispisuje tekstualni izlaz; glavni uređaj za ljudsko čitanje rezultata.&lt;br /&gt;
|-&lt;br /&gt;
| Bušilica kartica&lt;br /&gt;
| IBM 721&lt;br /&gt;
| Zapisuje podatke na bušene kartice.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| IBM 727&lt;br /&gt;
| Glavni masovni spremnik; preko 5 milijuna znakova po vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrolna jedinica vrpci&lt;br /&gt;
| IBM 753&lt;br /&gt;
| Upravljanje magnetskim vrpcama.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetski bubanj&lt;br /&gt;
| IBM 733&lt;br /&gt;
| Dodatna memorija za brzi pristup.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetska jezgra (RAM)&lt;br /&gt;
| IBM 737&lt;br /&gt;
| Primarna memorija sustava (4096 × 36-bitnih riječi).&lt;br /&gt;
|-&lt;br /&gt;
| CRT zaslon&lt;br /&gt;
| IBM 740&lt;br /&gt;
| 21-inčni vektorski prikaz s dugom fosfornom postojanošću; korišten za vizualizaciju podataka.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aritmetička jedinica (AC i MQ) ===&lt;br /&gt;
Aritmetička jedinica sastojala se od dva glavna 36-bitna registra:&lt;br /&gt;
* &#039;&#039;&#039;AC (Accumulator)&#039;&#039;&#039; – glavni registar za aritmetiku.&lt;br /&gt;
* &#039;&#039;&#039;MQ (Multiplier/Quotient)&#039;&#039;&#039; – registar za množenje i dijeljenje.&lt;br /&gt;
&lt;br /&gt;
Ova dva registra zajedno su omogućavala učinkovite operacije nad velikim brojevima i pomičnim zarezom.&lt;br /&gt;
&lt;br /&gt;
=== Indeksni registri (XR1, XR2, XR4) ===&lt;br /&gt;
IBM 704 je koristio tri indeksna registra:&lt;br /&gt;
* &#039;&#039;&#039;XR1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Indeksni registri omogućavali su modifikaciju adresa, implementaciju petlji i rad s velikim poljima podataka. Ovo je bio preteča modernog adresiranja u procesorima.&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori (SI) ===&lt;br /&gt;
Sustav je imao 36 senzorskih indikatora koji su služili kao statusne zastavice:&lt;br /&gt;
* indikatori grešaka (overflow, divide check)&lt;br /&gt;
* indikatori stanja I/O uređaja&lt;br /&gt;
* korisnički definirani indikatori&lt;br /&gt;
&lt;br /&gt;
Programi su mogli testirati i postavljati SI bitove, što je omogućavalo primitivne oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
=== Instrukcijski format ===&lt;br /&gt;
Instrukcije su bile 36-bitne, s poljima:&lt;br /&gt;
* opkod&lt;br /&gt;
* adresa&lt;br /&gt;
* indeksni modifikator&lt;br /&gt;
* bitovi za uvjetno grananje&lt;br /&gt;
&lt;br /&gt;
Ovaj format omogućavao je fleksibilno adresiranje i kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Floating‑point implementacija ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je prvo komercijalno računalo koje je imalo ugrađenu hardversku podršku za aritmetiku s pomičnim zarezom. Ovo je bio ključni tehnološki iskorak koji je omogućio razvoj FORTRAN-a i znanstvenih aplikacija koje su zahtijevale visoku numeričku preciznost.&lt;br /&gt;
&lt;br /&gt;
Floating‑point brojevi u IBM 704 bili su pohranjeni u 36‑bitnim riječima, podijeljenima na dva glavna dijela:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Mantisa&#039;&#039;&#039; – 27 bitova  &lt;br /&gt;
* &#039;&#039;&#039;Eksponent&#039;&#039;&#039; – 8 bitova (excess‑128 format)  &lt;br /&gt;
* &#039;&#039;&#039;Znak&#039;&#039;&#039; – 1 bit&lt;br /&gt;
&lt;br /&gt;
=== Format floating‑point riječi ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Format floating‑point broja (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! Polje&lt;br /&gt;
! Duljina&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Znak mantise&lt;br /&gt;
| 1 bit&lt;br /&gt;
| Određuje pozitivan ili negativan broj.&lt;br /&gt;
|-&lt;br /&gt;
| Mantisa&lt;br /&gt;
| 27 bitova&lt;br /&gt;
| Normalizirana mantisa bez skrivenog bita.&lt;br /&gt;
|-&lt;br /&gt;
| Eksponent&lt;br /&gt;
| 8 bitova&lt;br /&gt;
| Excess‑128 format (stvarni eksponent = pohranjeni − 128).&lt;br /&gt;
|-&lt;br /&gt;
| Rezervirano&lt;br /&gt;
| 0 bitova&lt;br /&gt;
| Format je potpuno iskorišten; nema neiskorištenih bitova.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Excess‑128 eksponent ===&lt;br /&gt;
&lt;br /&gt;
Eksponent je pohranjen u obliku:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
stvarni_eksponent = pohranjeni_eksponent − 128&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj pristup omogućavao je jednostavnije usporedbe i normalizaciju brojeva.&lt;br /&gt;
&lt;br /&gt;
=== Normalizacija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 zahtijevao je da mantisa bude normalizirana tako da najviši bit mantise bude različit od nule.  &lt;br /&gt;
To je omogućavalo maksimalnu preciznost pri izračunima.&lt;br /&gt;
&lt;br /&gt;
=== Floating‑point operacije ===&lt;br /&gt;
&lt;br /&gt;
Računalo je podržavalo sljedeće operacije nad floating‑point brojevima:&lt;br /&gt;
&lt;br /&gt;
* zbrajanje (ADD)  &lt;br /&gt;
* oduzimanje (SUB)  &lt;br /&gt;
* množenje (MPY)  &lt;br /&gt;
* dijeljenje (DIV)&lt;br /&gt;
&lt;br /&gt;
Sve operacije koristile su aritmetičku jedinicu AC/MQ, pri čemu se rezultat normalizirao automatski.&lt;br /&gt;
&lt;br /&gt;
=== Primjer floating‑point operacije u assembleru ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj floating-point broj A&lt;br /&gt;
ADD B        / zbroji ga s B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Važnost floating‑point implementacije ===&lt;br /&gt;
&lt;br /&gt;
Hardverska podrška za pomični zarez bila je ključna za:&lt;br /&gt;
&lt;br /&gt;
* razvoj FORTRAN-a (1957.)&lt;br /&gt;
* balističke izračune&lt;br /&gt;
* aerodinamičke simulacije&lt;br /&gt;
* nuklearne proračune&lt;br /&gt;
* statističke modele&lt;br /&gt;
* rane znanstvene aplikacije NASA-e&lt;br /&gt;
&lt;br /&gt;
IBM 704 je time postavio standard koji će kasnije preuzeti svi moderni procesori.&lt;br /&gt;
&lt;br /&gt;
== Instrukcijski skup IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Glavne grupe instrukcija IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Grupa&lt;br /&gt;
! Primjeri&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Aritmetičke instrukcije&lt;br /&gt;
| ADD, SUB, MPY, DIV&lt;br /&gt;
| Operacije nad AC i MQ registrima; podrška za cijele brojeve i pomični zarez.&lt;br /&gt;
|-&lt;br /&gt;
| Logičke instrukcije&lt;br /&gt;
| CLA, CLM, COM&lt;br /&gt;
| Čišćenje, komplementiranje i manipulacija bitovima.&lt;br /&gt;
|-&lt;br /&gt;
| Uvjetno grananje&lt;br /&gt;
| TRA, TMI, TPL, TZE&lt;br /&gt;
| Skokovi ovisno o sadržaju AC ili MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Rad sa Sense Indicators&lt;br /&gt;
| TSI, SSI, RSI&lt;br /&gt;
| Testiranje, postavljanje i resetiranje statusnih bitova.&lt;br /&gt;
|-&lt;br /&gt;
| Indeksno adresiranje&lt;br /&gt;
| AXT, TXI&lt;br /&gt;
| Modifikacija adresa pomoću XR1, XR2, XR4.&lt;br /&gt;
|-&lt;br /&gt;
| Ulazno/izlazne instrukcije&lt;br /&gt;
| RDS, WRS, RWT&lt;br /&gt;
| Rad s magnetskom vrpcom, kartičnim čitačem i pisačem.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrola toka programa&lt;br /&gt;
| HLT, NOP&lt;br /&gt;
| Zaustavljanje programa, prazna instrukcija.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Opkodovi IBM 704 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Kompletan popis opkoda IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Opkod&lt;br /&gt;
! Mnemonik&lt;br /&gt;
! Grupa&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 000&lt;br /&gt;
| NOP&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Prazna instrukcija; ne radi ništa.&lt;br /&gt;
|-&lt;br /&gt;
| 001&lt;br /&gt;
| HLT&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Zaustavlja izvršavanje programa.&lt;br /&gt;
|-&lt;br /&gt;
| 002&lt;br /&gt;
| TRA&lt;br /&gt;
| Grananje&lt;br /&gt;
| Bezuvjetni skok na adresu.&lt;br /&gt;
|-&lt;br /&gt;
| 003&lt;br /&gt;
| TRN&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC negativan.&lt;br /&gt;
|-&lt;br /&gt;
| 004&lt;br /&gt;
| TMI&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC manji od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 005&lt;br /&gt;
| TPL&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC veći od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 006&lt;br /&gt;
| TZE&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC jednak nuli.&lt;br /&gt;
|-&lt;br /&gt;
| 007&lt;br /&gt;
| TOV&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je overflow zastavica postavljena.&lt;br /&gt;
|-&lt;br /&gt;
| 010&lt;br /&gt;
| ADD&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Zbrajanje sadržaja memorije s AC.&lt;br /&gt;
|-&lt;br /&gt;
| 011&lt;br /&gt;
| SUB&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Oduzimanje sadržaja memorije od AC.&lt;br /&gt;
|-&lt;br /&gt;
| 012&lt;br /&gt;
| MPY&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Množenje; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 013&lt;br /&gt;
| DIV&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Dijeljenje; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 014&lt;br /&gt;
| CLA&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 015&lt;br /&gt;
| CLM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 016&lt;br /&gt;
| COM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Komplementira AC.&lt;br /&gt;
|-&lt;br /&gt;
| 020&lt;br /&gt;
| SHL&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak ulijevo.&lt;br /&gt;
|-&lt;br /&gt;
| 021&lt;br /&gt;
| SHR&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak udesno.&lt;br /&gt;
|-&lt;br /&gt;
| 030&lt;br /&gt;
| AXT&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Učitava vrijednost u XR1, XR2 ili XR4.&lt;br /&gt;
|-&lt;br /&gt;
| 031&lt;br /&gt;
| TXI&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Dodaje vrijednost indeksnom registru.&lt;br /&gt;
|-&lt;br /&gt;
| 040&lt;br /&gt;
| RDS&lt;br /&gt;
| I/O&lt;br /&gt;
| Čitanje s magnetske vrpce.&lt;br /&gt;
|-&lt;br /&gt;
| 041&lt;br /&gt;
| WRS&lt;br /&gt;
| I/O&lt;br /&gt;
| Pisanje na magnetsku vrpcu.&lt;br /&gt;
|-&lt;br /&gt;
| 042&lt;br /&gt;
| RWT&lt;br /&gt;
| I/O&lt;br /&gt;
| Čekanje na I/O operaciju.&lt;br /&gt;
|-&lt;br /&gt;
| 050&lt;br /&gt;
| TSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Testira Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 051&lt;br /&gt;
| SSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Postavlja Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 052&lt;br /&gt;
| RSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Resetira Sense Indicator n.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Registri==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--             --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:88%;width:34em;&amp;quot;&lt;br /&gt;
|+ Registri u računalu IBM 704&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| style=&amp;quot;font-size:88%;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Podatkovni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | S&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | Q&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | P&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;14&amp;quot;| Akumulator&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | AC&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;1&amp;quot;| S&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;11&amp;quot;| Množitelj/Količnik&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | MQ&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;12&amp;quot;| Senzorni indikatori&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | SI&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 1&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR1 (XRA)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 2&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR2 (XRB)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 4 &lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR4 (XRC)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;14&amp;quot; | &#039;&#039;&#039;Brojač naredbi&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Brojač&amp;amp;nbsp;Naredbi&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| IC&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzorni indikatori&#039;&#039;&#039; - su posebni statusni bitovi u IBM 704 koj su se u praksi rabili za provjeru grešaka, grananje ovisno o stanju sustava, upravljanje perifernim jedinicama, te za signalizaciju posebnih događaja. Kroz njih programeri su mogli održavati stanje sustava, signalizirati određene uvjete tokom izvršavanje naredbi, čitanje i postavljanje naredbi i tako su služili za jednostane oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Sense Indicators (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! SI broj&lt;br /&gt;
! Naziv / funkcija&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Overflow flag&lt;br /&gt;
| Postavlja se pri prekoračenju rezultata u akumulatoru (AC) ili količniku (MQ).&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Divide check&lt;br /&gt;
| Signalizira pogrešku pri dijeljenju, uključujući dijeljenje nulom.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| I/O ready&lt;br /&gt;
| Uređaj spreman za prijenos podataka.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| I/O complete&lt;br /&gt;
| Završetak operacije ulaza/izlaza.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Tape mark&lt;br /&gt;
| Očitana oznaka kraja bloka na magnetskoj vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Printer ready&lt;br /&gt;
| Pisač spreman za rad.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Card reader ready&lt;br /&gt;
| Čitač kartica spreman.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Card punch ready&lt;br /&gt;
| Bušilica kartica spremna.&lt;br /&gt;
|-&lt;br /&gt;
| 8–15&lt;br /&gt;
| Peripheral flags&lt;br /&gt;
| Razni signali perifernih uređaja (disk, vrpca, pisač).&lt;br /&gt;
|-&lt;br /&gt;
| 16–35&lt;br /&gt;
| User-defined flags&lt;br /&gt;
| Zastavice koje programer može slobodno koristiti za logiku grananja.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Korištenje u IBM 704 assembleru ====&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao posebne instrukcije za rad sa Sense Indicators:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;TSI n&#039;&#039;&#039;&lt;br /&gt;
: Testira Sense Indicator &#039;&#039;n&#039;&#039;. Ako je postavljen, izvršavanje se nastavlja normalno; ako nije, preskače se sljedeća instrukcija.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3      / provjeri je li I/O complete&lt;br /&gt;
TRA DONE   / ako je postavljen, skoči na DONE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;SSI n&#039;&#039;&#039;&lt;br /&gt;
: Postavlja Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;RSI n&#039;&#039;&#039;&lt;br /&gt;
: Resetira Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 1      / provjeri divide check&lt;br /&gt;
TRA ERROR  / ako je SI1 = 1, idi na ERROR&lt;br /&gt;
&lt;br /&gt;
SSI 20     / postavi korisnički indikator 20&lt;br /&gt;
RSI 3      / resetiraj I/O complete indikator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Usporedba s modernim statusnim registrima ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! IBM 704 Sense Indicators&lt;br /&gt;
! Moderni statusni registri (x86, ARM, RISC-V)&lt;br /&gt;
|-&lt;br /&gt;
| 36 jednobitnih zastavica&lt;br /&gt;
| 8–32 bitni statusni registri&lt;br /&gt;
|-&lt;br /&gt;
| Ručno postavljanje i brisanje&lt;br /&gt;
| Automatsko postavljanje od strane ALU&lt;br /&gt;
|-&lt;br /&gt;
| Koriste se za I/O signalizaciju&lt;br /&gt;
| I/O signalizacija preko interrupt kontrolera&lt;br /&gt;
|-&lt;br /&gt;
| Jednostavne logičke zastavice&lt;br /&gt;
| Zastavice za aritmetiku, usporedbe, prekide&lt;br /&gt;
|-&lt;br /&gt;
| Programer koristi dio SI kao &amp;quot;user flags&amp;quot;&lt;br /&gt;
| Moderni jezici koriste varijable, strukture, objekte&lt;br /&gt;
|-&lt;br /&gt;
| Grananje preko TSI instrukcije&lt;br /&gt;
| Grananje preko CMP/JMP, BEQ/BNE, BLT/BGT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Primjeri IBM 704 assembler koda ==&lt;br /&gt;
&lt;br /&gt;
=== Zbrajanje dvaju brojeva ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj A u AC&lt;br /&gt;
ADD B        / dodaj B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Provjera negativnog broja ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA X        / učitaj X&lt;br /&gt;
TMI NEG      / ako je X &amp;lt; 0, idi na NEG&lt;br /&gt;
TRA DONE     / inače nastavi&lt;br /&gt;
NEG STO Y    / spremi negativnu vrijednost&lt;br /&gt;
DONE HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Množenje i dijeljenje ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A&lt;br /&gt;
MPY B        / AC*B → AC/MQ&lt;br /&gt;
DIV C        / (AC/MQ) / C → MQ (količnik), AC (ostatak)&lt;br /&gt;
STO Q        / spremi količnik&lt;br /&gt;
STO R        / spremi ostatak&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Korištenje Sense Indicators ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3        / provjeri I/O complete&lt;br /&gt;
TRA IO_OK    / ako je SI3 = 1, idi na IO_OK&lt;br /&gt;
SSI 20       / postavi korisnički indikator 20&lt;br /&gt;
IO_OK HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Performanse IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od najbržih znanstvenih računala svoje generacije. Njegova arhitektura s pomičnim zarezom, magnetskom jezgrom i specijaliziranim aritmetičkim registrima omogućavala je znatno bolje performanse u odnosu na prethodne modele IBM 701 i IBM 702. Sustav je bio optimiziran za matematičke operacije, simulacije, statističke izračune i obradu velikih numeričkih skupova podataka.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Performanse računala IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Brzina zbrajanja&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za izvršavanje jedne ADD instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina množenja&lt;br /&gt;
| ~20 μs&lt;br /&gt;
| Vrijeme za MPY instrukciju; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina dijeljenja&lt;br /&gt;
| ~38 μs&lt;br /&gt;
| Vrijeme za DIV instrukciju; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| Memorija&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Magnetska jezgra; pristup ~12 μs.&lt;br /&gt;
|-&lt;br /&gt;
| Ciklus instrukcije&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Prosječno vrijeme za dohvat i izvršavanje jednostavne instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina I/O operacija&lt;br /&gt;
| 7200 kartica/min (čitač)&lt;br /&gt;
| Kartični čitač i bušilica bili su glavni ulazno/izlazni sustavi.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| 12 500 znakovnih blokova/s&lt;br /&gt;
| Ovisno o uređaju; korišteno za masovno spremanje podataka.&lt;br /&gt;
|-&lt;br /&gt;
| Preciznost pomičnog zareza&lt;br /&gt;
| 27-bitni eksponent + 8-bitna mantisa&lt;br /&gt;
| Omogućavalo znanstvene izračune velike preciznosti.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pouzdanost ==&lt;br /&gt;
&lt;br /&gt;
Iako je IBM 704 bio znatno pouzdaniji od svog prethodnika IBM 701, i dalje je bio stroj temeljen na vakuumskim cijevima, što je značilo relativno česte kvarove prema današnjim standardima. Prosječno vrijeme između kvarova iznosilo je oko 8 sati, što je ograničavalo veličinu programa koje je bilo moguće kompajlirati ili izvršavati bez prekida.&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN kompajleri morali su biti iznimno učinkoviti jer bi preduga kompilacija mogla biti prekinuta kvarom sustava. Unatoč tome, IBM 704 je bio dovoljno pouzdan da postane temelj za razvoj FORTRAN-a, LISP-a, ranih neuralnih mreža i brojnih znanstvenih projekata.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Pouzdanost IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| MTBF (mean time between failure)&lt;br /&gt;
| ~8 sati&lt;br /&gt;
| Prosječno vrijeme rada prije kvara.&lt;br /&gt;
|-&lt;br /&gt;
| Usporedba s IBM 701&lt;br /&gt;
| ~30 minuta&lt;br /&gt;
| IBM 704 bio je znatno pouzdaniji od svog prethodnika.&lt;br /&gt;
|-&lt;br /&gt;
| Utjecaj na softver&lt;br /&gt;
| Ograničena veličina programa&lt;br /&gt;
| Kompilacije su morale biti kratke zbog mogućih kvarova.&lt;br /&gt;
|-&lt;br /&gt;
| Tehnologija&lt;br /&gt;
| Vakuumske cijevi&lt;br /&gt;
| Glavni uzrok kvarova i zagrijavanja sustava.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SAP asembler ==&lt;br /&gt;
&lt;br /&gt;
SAP (&#039;&#039;Symbolic Assembly Program&#039;&#039;) bio je službeni asembler za IBM 704 i predstavljao je jedan od najranijih i najutjecajnijih asemblera u povijesti računarstva. Razvijen je unutar IBM-a sredinom 1950-ih kako bi programerima omogućio pisanje simboličkog koda umjesto ručnog unošenja numeričkih opkoda i adresa.&lt;br /&gt;
&lt;br /&gt;
SAP je bio ključan za razvoj FORTRAN-a, LISP-a i mnogih ranih znanstvenih aplikacija, jer je omogućio jednostavnije pisanje, čitanje i održavanje programa na IBM 704.&lt;br /&gt;
&lt;br /&gt;
=== Značajke SAP asemblera ===&lt;br /&gt;
&lt;br /&gt;
SAP je imao nekoliko naprednih značajki za svoje vrijeme:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simboličke oznake&#039;&#039;&#039; – programeri su mogli koristiti imena umjesto numeričkih adresa.&lt;br /&gt;
* &#039;&#039;&#039;Automatsko izračunavanje adresa&#039;&#039;&#039; – asembler je sam određivao lokacije instrukcija.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za indeksne registre&#039;&#039;&#039; – XR1, XR2 i XR4 mogli su se koristiti u adresiranju.&lt;br /&gt;
* &#039;&#039;&#039;Jednostavna sintaksa&#039;&#039;&#039; – instrukcije su bile kratke i čitljive.&lt;br /&gt;
* &#039;&#039;&#039;Integracija s FORTRAN-om&#039;&#039;&#039; – FORTRAN kompajler generirao je SAP kod.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za floating‑point operacije&#039;&#039;&#039; – izravno korištenje AC/MQ jedinice.&lt;br /&gt;
&lt;br /&gt;
SAP je bio jedan od prvih asemblera koji je omogućio relativno visok stupanj apstrakcije u odnosu na strojni kod.&lt;br /&gt;
&lt;br /&gt;
=== Struktura SAP instrukcije ===&lt;br /&gt;
&lt;br /&gt;
Instrukcije su se sastojale od:&lt;br /&gt;
&lt;br /&gt;
* mnemonika (ADD, SUB, MPY, DIV, TRA…)&lt;br /&gt;
* adrese ili simbola&lt;br /&gt;
* opcionalnog indeksnog modifikatora&lt;br /&gt;
* komentara&lt;br /&gt;
&lt;br /&gt;
Primjer strukture:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
MNEMONIK  ADRESA,XR   / komentar&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Primjer SAP koda ===&lt;br /&gt;
&lt;br /&gt;
Slijedi povijesno točan primjer SAP koda za IBM 704:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
A      DEC 5          / definiraj konstantu A&lt;br /&gt;
B      DEC 7          / definiraj konstantu B&lt;br /&gt;
C      BSS 1          / rezerviraj prostor za rezultat&lt;br /&gt;
&lt;br /&gt;
       CLA A          / učitaj A u AC&lt;br /&gt;
       ADD B          / dodaj B&lt;br /&gt;
       STO C          / spremi rezultat u C&lt;br /&gt;
       HLT            / zaustavi program&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Korištenje indeksnih registara ===&lt;br /&gt;
&lt;br /&gt;
SAP je omogućavao jednostavno korištenje XR1, XR2 i XR4:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
LOOP   CLA ARRAY,XR1  / učitaj element polja&lt;br /&gt;
       ADD SUM        / dodaj na sumu&lt;br /&gt;
       STO SUM        / spremi rezultat&lt;br /&gt;
       TXI XR1,1      / povećaj indeks&lt;br /&gt;
       TPL LOOP       / ako je pozitivan, nastavi petlju&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio preteča modernih petlji u visokorazinskim jezicima.&lt;br /&gt;
&lt;br /&gt;
=== SAP i FORTRAN ===&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN kompajler generirao je SAP kod koji se zatim prevodio u strojni kod IBM 704.  &lt;br /&gt;
Zbog toga je SAP bio ključan za:&lt;br /&gt;
&lt;br /&gt;
* optimizaciju FORTRAN programa,&lt;br /&gt;
* implementaciju DO petlji,&lt;br /&gt;
* rad s poljima i matricama,&lt;br /&gt;
* floating‑point operacije,&lt;br /&gt;
* kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
=== SAP i LISP ===&lt;br /&gt;
&lt;br /&gt;
Prva implementacija LISP-a (1958.) bila je napisana upravo u SAP asembleru.  &lt;br /&gt;
SAP je omogućio:&lt;br /&gt;
&lt;br /&gt;
* manipulaciju cons‑struktura,&lt;br /&gt;
* implementaciju CAR i CDR operacija,&lt;br /&gt;
* rekurziju,&lt;br /&gt;
* dinamičko upravljanje memorijom.&lt;br /&gt;
&lt;br /&gt;
Bez SAP-a, LISP ne bi mogao biti implementiran na IBM 704.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj SAP-a ===&lt;br /&gt;
&lt;br /&gt;
SAP je bio jedan od najvažnijih asemblera 1950-ih i 1960-ih.  &lt;br /&gt;
Njegov utjecaj vidljiv je u:&lt;br /&gt;
&lt;br /&gt;
* razvoju FORTRAN-a,&lt;br /&gt;
* nastanku LISP-a,&lt;br /&gt;
* ranim AI projektima,&lt;br /&gt;
* znanstvenim simulacijama,&lt;br /&gt;
* razvoju modernih asemblera i kompajlera.&lt;br /&gt;
&lt;br /&gt;
SAP je postavio temelje za simboličko programiranje i bio je ključni alat u zlatnom dobu ranog računarstva.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju LISP-a ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je ključnu ulogu u nastanku programskog jezika LISP, jednog od najvažnijih jezika u povijesti računarstva. LISP je 1958. godine razvio John McCarthy na MIT-u, a upravo je IBM 704 bio prvo računalo na kojem je LISP implementiran i izvršavan.&lt;br /&gt;
&lt;br /&gt;
Razvoj LISP-a bio je izravno povezan s arhitekturom IBM 704, posebno s njegovim:&lt;br /&gt;
* 36-bitnim riječima,&lt;br /&gt;
* aritmetičkom jedinicom AC/MQ,&lt;br /&gt;
* indeksnim registrima,&lt;br /&gt;
* mogućnošću manipulacije adresama,&lt;br /&gt;
* podrškom za uvjetno grananje,&lt;br /&gt;
* te fleksibilnim instrukcijskim formatom.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio pogodan za LISP ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je nekoliko arhitekturnih značajki koje su se pokazale idealnima za implementaciju LISP-a:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;36-bitne riječi&#039;&#039;&#039; omogućavale su učinkovito predstavljanje parova (cons cells).&lt;br /&gt;
* &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039; olakšavali su rad s listama i rekurzivnim strukturama.&lt;br /&gt;
* &#039;&#039;&#039;Instrukcije grananja&#039;&#039;&#039; (TRA, TMI, TPL, TZE) omogućavale su jednostavnu implementaciju rekurzije.&lt;br /&gt;
* &#039;&#039;&#039;Magnetska jezgra&#039;&#039;&#039; bila je dovoljno brza za dinamičke strukture podataka.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za floating-point&#039;&#039;&#039; olakšala je rad s matematičkim funkcijama.&lt;br /&gt;
&lt;br /&gt;
McCarthy je iskoristio ove mogućnosti kako bi implementirao osnovne LISP konstrukte: CONS, CAR, CDR, rekurziju, lambda‑izraze i funkcije višeg reda.&lt;br /&gt;
&lt;br /&gt;
=== Prva implementacija LISP-a ===&lt;br /&gt;
&lt;br /&gt;
Prva verzija LISP-a bila je napisana u SAP asembleru za IBM 704.  &lt;br /&gt;
Ova implementacija uključivala je:&lt;br /&gt;
&lt;br /&gt;
* interpreter,&lt;br /&gt;
* evaluator,&lt;br /&gt;
* upravljanje memorijom,&lt;br /&gt;
* implementaciju cons‑struktura,&lt;br /&gt;
* osnovne matematičke funkcije,&lt;br /&gt;
* te mehanizme za rekurziju i funkcije višeg reda.&lt;br /&gt;
&lt;br /&gt;
LISP je na IBM 704 radio kao interpretirani jezik, a programi su se izvršavali izravno nad strukturom lista u memoriji.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je omogućio LISP-u da postane prvi široko korišteni jezik za:&lt;br /&gt;
&lt;br /&gt;
* umjetnu inteligenciju,&lt;br /&gt;
* simboličku manipulaciju,&lt;br /&gt;
* matematičku logiku,&lt;br /&gt;
* rane ekspertske sustave,&lt;br /&gt;
* istraživanje strojnog učenja.&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, LISP bi vjerojatno bio znatno drugačiji — ili bi se pojavio mnogo kasnije.&lt;br /&gt;
&lt;br /&gt;
=== Primjer ranog LISP izraza (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Iako se LISP nije zapisivao u assembleru, njegovi izrazi su se prevodili u SAP kod za IBM 704.  &lt;br /&gt;
Primjer jednostavne LISP funkcije:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(define (square x)&lt;br /&gt;
  (* x x))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj izraz bi se na IBM 704 interno pretvorio u operacije nad cons‑struktura i pozive aritmetičkih instrukcija MPY i ADD.&lt;br /&gt;
&lt;br /&gt;
=== Utjecaj na daljnji razvoj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je bio platforma na kojoj su nastale ključne ideje:&lt;br /&gt;
&lt;br /&gt;
* automatsko upravljanje memorijom,&lt;br /&gt;
* rekurzija kao temeljni mehanizam,&lt;br /&gt;
* funkcije višeg reda,&lt;br /&gt;
* lambda‑račun,&lt;br /&gt;
* simbolička obrada podataka.&lt;br /&gt;
&lt;br /&gt;
Ove ideje postale su temelj modernih programskih jezika, od Schemea i Prologa do Pythona i JavaScripta.&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju FORTRAN-a ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je presudnu ulogu u nastanku FORTRAN-a (Formula Translation), prvog široko korištenog visokorazinskog programskog jezika. FORTRAN je razvijen 1957. godine u IBM-u pod vodstvom Johna Backusa, a IBM 704 bio je prvo računalo na kojem je FORTRAN implementiran, kompajliran i izvršavan.&lt;br /&gt;
&lt;br /&gt;
Arhitektura IBM 704 izravno je oblikovala dizajn FORTRAN-a. Njegova podrška za aritmetiku s pomičnim zarezom, indeksne registre, statusne indikatore i 36-bitne riječi omogućila je stvaranje jezika koji je bio optimiziran za znanstvene i tehničke izračune.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio ključan za FORTRAN ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 posjedovao je nekoliko arhitekturnih značajki koje su bile presudne za razvoj FORTRAN-a:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Hardverska floating‑point jedinica&#039;&#039;&#039; – omogućila je izravnu podršku za matematičke operacije.&lt;br /&gt;
* &#039;&#039;&#039;Aritmetički registri AC i MQ&#039;&#039;&#039; – olakšali su implement&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju ranih neuralnih mreža ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je važnu ulogu u razvoju najranijih modela umjetnih neuronskih mreža tijekom kasnih 1950-ih i ranih 1960-ih. Iako su ti modeli bili daleko jednostavniji od današnjih dubokih mreža, IBM 704 je bio jedno od rijetkih računala koje je imalo dovoljno memorije, brzine i aritmetičkih mogućnosti da može izvoditi simulacije neuronskih mreža u praksi.&lt;br /&gt;
&lt;br /&gt;
Rani pioniri umjetne inteligencije, uključujući Franka Rosenblatta, Herberta Simona, Allena Newella i istraživače s MIT-a i Cornell Aeronautical Laboratory, koristili su IBM 704 za implementaciju i testiranje prvih algoritama koji su simulirali neuronsko učenje.&lt;br /&gt;
&lt;br /&gt;
=== IBM 704 i perceptron ===&lt;br /&gt;
&lt;br /&gt;
Najvažniji doprinos IBM 704 razvoju neuralnih mreža bio je u implementaciji i simulaciji **Rosenblattovog perceptrona**, prvog formalnog modela neuronske mreže koji je mogao učiti iz podataka.&lt;br /&gt;
&lt;br /&gt;
IBM 704 omogućio je:&lt;br /&gt;
&lt;br /&gt;
* izračun težina perceptrona,&lt;br /&gt;
* simulaciju učenja kroz iteracije,&lt;br /&gt;
* rad s matricama i vektorima,&lt;br /&gt;
* evaluaciju linearnih klasifikatora,&lt;br /&gt;
* testiranje različitih skupova podataka.&lt;br /&gt;
&lt;br /&gt;
Iako je perceptron kasnije imao i hardversku implementaciju (Mark I Perceptron), IBM 704 bio je ključan za **prve softverske simulacije** koje su potvrdile da se neuronske mreže mogu trenirati računalno.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio pogodan za neuralne mreže ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je nekoliko arhitekturnih značajki koje su bile iznimno korisne za rane AI eksperimente:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Floating‑point jedinica&#039;&#039;&#039; – omogućila je precizne izračune težina i aktivacijskih funkcija.&lt;br /&gt;
* &#039;&#039;&#039;Aritmetički registri AC/MQ&#039;&#039;&#039; – ubrzali su operacije nad vektorima.&lt;br /&gt;
* &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039; – olakšali su rad s matricama i iteracijama.&lt;br /&gt;
* &#039;&#039;&#039;Magnetska jezgra&#039;&#039;&#039; – bila je dovoljno brza za ponavljajuće izračune.&lt;br /&gt;
* &#039;&#039;&#039;Instrukcije grananja&#039;&#039;&#039; – omogućile su implementaciju algoritama učenja.&lt;br /&gt;
&lt;br /&gt;
Zbog toga je IBM 704 bio jedno od prvih računala koje je moglo izvoditi **iterativne algoritme učenja**, temeljne za neuralne mreže.&lt;br /&gt;
&lt;br /&gt;
=== Rani eksperimenti umjetne inteligencije ===&lt;br /&gt;
&lt;br /&gt;
Na IBM 704 provodili su se rani eksperimenti koji su uključivali:&lt;br /&gt;
&lt;br /&gt;
* simulaciju perceptrona,&lt;br /&gt;
* klasifikaciju jednostavnih vizualnih uzoraka,&lt;br /&gt;
* prepoznavanje znakova,&lt;br /&gt;
* rane oblike strojne percepcije,&lt;br /&gt;
* istraživanje linearnih i nelinearnih funkcija aktivacije.&lt;br /&gt;
&lt;br /&gt;
Ovi eksperimenti bili su temelj za kasniji razvoj:&lt;br /&gt;
&lt;br /&gt;
* višeslojnih perceptrona,&lt;br /&gt;
* backpropagation algoritma,&lt;br /&gt;
* dubokog učenja,&lt;br /&gt;
* računalnog vida.&lt;br /&gt;
&lt;br /&gt;
=== Primjer jednostavne perceptronske iteracije (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći pseudokod prikazuje kako je perceptron bio implementiran na IBM 704:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA W1        / učitaj težinu&lt;br /&gt;
MPY X1        / pomnoži s ulazom&lt;br /&gt;
ADD SUM       / dodaj na akumuliranu sumu&lt;br /&gt;
STO SUM       / spremi novu vrijednost&lt;br /&gt;
&lt;br /&gt;
... ponavljati za sve ulaze ...&lt;br /&gt;
&lt;br /&gt;
CLA SUM&lt;br /&gt;
TMI UPDATE    / ako je pogreška negativna, ažuriraj težine&lt;br /&gt;
TPL UPDATE    / ako je pogreška pozitivna, također ažuriraj&lt;br /&gt;
&lt;br /&gt;
UPDATE:&lt;br /&gt;
ADD ERROR     / korekcija težine&lt;br /&gt;
STO W1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio jedan od prvih primjera **računalnog učenja** u povijesti.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je ključan za rani razvoj umjetne inteligencije jer je:&lt;br /&gt;
&lt;br /&gt;
* omogućio prve računalne simulacije neuronskih mreža,&lt;br /&gt;
* bio platforma za perceptron i rane modele učenja,&lt;br /&gt;
* omogućio istraživanje algoritama koji su kasnije postali temelj dubokog učenja,&lt;br /&gt;
* povezao AI istraživanje s praktičnim računalnim sustavima.&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, razvoj ranih neuralnih mreža bio bi znatno sporiji i ograničeniji.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u ranoj robotici ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je važnu ulogu u razvoju najranijih oblika robotike i automatizacije tijekom kasnih 1950-ih i ranih 1960-ih. Iako se u to vrijeme pojam „robotika“ tek počeo pojavljivati u znanstvenoj literaturi, IBM 704 bio je jedno od prvih računala koje je moglo upravljati mehaničkim sustavima, analizirati senzorske podatke i izvoditi algoritme koji su predstavljali preteču modernog upravljanja robotima.&lt;br /&gt;
&lt;br /&gt;
Rani robotski sustavi bili su primitivni u odnosu na današnje, ali IBM 704 je omogućio:&lt;br /&gt;
&lt;br /&gt;
* upravljanje aktuatorima i elektromehaničkim uređajima,&lt;br /&gt;
* obradu ulaznih signala iz senzora,&lt;br /&gt;
* simulaciju kretanja i kontrolnih petlji,&lt;br /&gt;
* rane eksperimente u automatskom upravljanju,&lt;br /&gt;
* integraciju s vizualnim sustavima (CRT prikaz IBM 740).&lt;br /&gt;
&lt;br /&gt;
=== Rani eksperimenti automatizacije ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 korišten je u laboratorijima i istraživačkim centrima za:&lt;br /&gt;
&lt;br /&gt;
* upravljanje robotskim manipulatorima,&lt;br /&gt;
* simulaciju kinematike i dinamike,&lt;br /&gt;
* upravljanje servo‑motorima,&lt;br /&gt;
* automatizaciju industrijskih procesa,&lt;br /&gt;
* rane oblike povratne sprege (feedback control).&lt;br /&gt;
&lt;br /&gt;
Ovi sustavi nisu bili roboti u modernom smislu, ali su predstavljali ključne korake prema:&lt;br /&gt;
&lt;br /&gt;
* numeričkom upravljanju strojevima (NC machines),&lt;br /&gt;
* automatskim manipulatorima,&lt;br /&gt;
* sustavima za automatsko pozicioniranje,&lt;br /&gt;
* ranim oblicima cybernetike.&lt;br /&gt;
&lt;br /&gt;
=== IBM 704 i cybernetika ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je često korišten u istraživanjima inspiriranim radom Norberta Wienera, osnivača cybernetike.  &lt;br /&gt;
Sustav je omogućavao:&lt;br /&gt;
&lt;br /&gt;
* simulaciju povratne sprege,&lt;br /&gt;
* analizu stabilnosti sustava,&lt;br /&gt;
* implementaciju kontrolnih algoritama,&lt;br /&gt;
* rane oblike adaptivnog upravljanja.&lt;br /&gt;
&lt;br /&gt;
Ovo je bilo ključno za razvoj robotskih sustava koji se mogu prilagođavati promjenama u okruženju.&lt;br /&gt;
&lt;br /&gt;
=== Vizualni sustavi i IBM 740 ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 se mogao povezati s CRT zaslonom IBM 740, koji je omogućavao:&lt;br /&gt;
&lt;br /&gt;
* prikaz vektorskih grafika,&lt;br /&gt;
* vizualizaciju putanja kretanja,&lt;br /&gt;
* prikaz senzorskih podataka,&lt;br /&gt;
* rane eksperimente u računalnom vidu.&lt;br /&gt;
&lt;br /&gt;
Iako primitivni, ovi sustavi bili su preteča kasnijih robotskih vizualnih sustava.&lt;br /&gt;
&lt;br /&gt;
=== Primjer jednostavne kontrolne petlje (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći SAP kod prikazuje kako je IBM 704 mogao implementirati jednostavnu kontrolnu petlju za upravljanje aktuatorom:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
READSENSOR  RDS SENS        / očitaj senzor&lt;br /&gt;
           CLA SENS        / učitaj vrijednost&lt;br /&gt;
           SUB TARGET      / usporedi s ciljem&lt;br /&gt;
           TPL INCREASE    / ako je pozitivno, povećaj izlaz&lt;br /&gt;
           TMI DECREASE    / ako je negativno, smanji izlaz&lt;br /&gt;
&lt;br /&gt;
INCREASE   ADD STEP        / povećaj upravljački signal&lt;br /&gt;
           STO ACTUATOR&lt;br /&gt;
           TRA LOOP&lt;br /&gt;
&lt;br /&gt;
DECREASE   SUB STEP        / smanji upravljački signal&lt;br /&gt;
           STO ACTUATOR&lt;br /&gt;
           TRA LOOP&lt;br /&gt;
&lt;br /&gt;
LOOP       TRA READSENSOR  / ponovi petlju&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio jedan od prvih primjera računalno upravljanih mehaničkih sustava.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je ključan za rani razvoj robotike jer je:&lt;br /&gt;
&lt;br /&gt;
* omogućio prve računalne simulacije upravljanja strojevima,&lt;br /&gt;
* bio platforma za cybernetičke eksperimente,&lt;br /&gt;
* omogućio integraciju senzora i aktuatora,&lt;br /&gt;
* pružio temelj za numeričko upravljanje strojevima (NC),&lt;br /&gt;
* povezao mehaniku, elektroniku i računalne algoritme.&lt;br /&gt;
&lt;br /&gt;
IBM 704 je time postavio temelje za kasniji razvoj industrijskih robota, autonomnih sustava i modernih robotskih tehnologija.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u ranom računalnom vidu ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je važnu ulogu u najranijim eksperimentima računalnog vida tijekom kasnih 1950-ih i ranih 1960-ih. Iako se računalni vid kao disciplina tek počeo formirati, IBM 704 bio je jedno od rijetkih računala koje je imalo dovoljno memorije, aritmetičke snage i mogućnosti prikaza da može obrađivati jednostavne vizualne podatke.&lt;br /&gt;
&lt;br /&gt;
Rani eksperimenti računalnog vida bili su usko povezani s istraživanjima umjetne inteligencije, perceptrona i robotike, a IBM 704 služio je kao platforma za:&lt;br /&gt;
&lt;br /&gt;
* prepoznavanje jednostavnih uzoraka,&lt;br /&gt;
* klasifikaciju vizualnih znakova,&lt;br /&gt;
* obradu digitaliziranih slika niske rezolucije,&lt;br /&gt;
* vizualizaciju podataka na CRT zaslonu IBM 740,&lt;br /&gt;
* rane eksperimente u strojnoj percepciji.&lt;br /&gt;
&lt;br /&gt;
=== IBM 704 i CRT zaslon IBM 740 ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 se mogao povezati s vektorskim CRT zaslonom IBM 740, koji je omogućavao:&lt;br /&gt;
&lt;br /&gt;
* prikaz linija, oblika i grafičkih uzoraka,&lt;br /&gt;
* vizualizaciju rezultata algoritama,&lt;br /&gt;
* prikaz putanja kretanja u robotskim sustavima,&lt;br /&gt;
* rane oblike grafičke analize.&lt;br /&gt;
&lt;br /&gt;
Iako primitivni, ovi sustavi bili su preteča kasnijih grafičkih terminala i vizualnih procesora.&lt;br /&gt;
&lt;br /&gt;
=== Rani eksperimenti prepoznavanja uzoraka ===&lt;br /&gt;
&lt;br /&gt;
Na IBM 704 provodili su se rani eksperimenti koji su uključivali:&lt;br /&gt;
&lt;br /&gt;
* prepoznavanje slova i brojeva,&lt;br /&gt;
* klasifikaciju jednostavnih geometrijskih oblika,&lt;br /&gt;
* analizu kontrasta i rubova,&lt;br /&gt;
* rane oblike segmentacije slike.&lt;br /&gt;
&lt;br /&gt;
Podaci su se obično unosili preko:&lt;br /&gt;
&lt;br /&gt;
* digitaliziranih kartica,&lt;br /&gt;
* ručno kodiranih matrica piksela,&lt;br /&gt;
* senzorskih uređaja povezanih s robotima.&lt;br /&gt;
&lt;br /&gt;
=== Veza s perceptronom i neuralnim mrežama ===&lt;br /&gt;
&lt;br /&gt;
Rosenblattov perceptron, koji je IBM 704 koristio za simulacije učenja, bio je izravno primijenjen na rane zadatke računalnog vida:&lt;br /&gt;
&lt;br /&gt;
* klasifikacija vizualnih uzoraka,&lt;br /&gt;
* prepoznavanje znakova,&lt;br /&gt;
* jednostavni modeli prepoznavanja oblika.&lt;br /&gt;
&lt;br /&gt;
IBM 704 omogućio je iterativno treniranje perceptrona nad vizualnim podacima, što je bio jedan od prvih primjera **računalnog učenja iz slike**.&lt;br /&gt;
&lt;br /&gt;
=== Primjer jednostavne vizualne analize (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći SAP kod prikazuje kako je IBM 704 mogao analizirati jednostavnu matricu piksela:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA PIXEL      / učitaj vrijednost piksela&lt;br /&gt;
SUB THRESH     / usporedi s pragom&lt;br /&gt;
TPL BRIGHT     / ako je veće od praga → svijetli piksel&lt;br /&gt;
TMI DARK       / ako je manje → tamni piksel&lt;br /&gt;
&lt;br /&gt;
BRIGHT STO OUT1&lt;br /&gt;
TRA NEXT&lt;br /&gt;
&lt;br /&gt;
DARK   STO OUT0&lt;br /&gt;
NEXT   TRA LOOP&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio jedan od prvih primitivnih algoritama za binarnu segmentaciju slike.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je ključan za rani razvoj računalnog vida jer je:&lt;br /&gt;
&lt;br /&gt;
* omogućio prve računalne eksperimente prepoznavanja uzoraka,&lt;br /&gt;
* bio platforma za vizualne simulacije u robotici,&lt;br /&gt;
* povezao neuralne mreže s vizualnim podacima,&lt;br /&gt;
* omogućio prikaz grafike na CRT zaslonu,&lt;br /&gt;
* postavio temelje za kasniji razvoj računalnog vida u 1960-ima i 1970-ima.&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, rani razvoj računalnog vida bio bi znatno sporiji i ograničeniji.&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju rane računalne glazbe ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je iznimno važnu ulogu u povijesti računalne glazbe. Bio je prvo računalo koje je ikada generiralo glazbu sintetički, koristeći digitalne algoritme za stvaranje zvuka. Ovaj povijesni događaj zbio se 1957. godine na Bell Labsu, kada su Max Mathews i njegov tim razvili program &#039;&#039;&#039;MUSIC I&#039;&#039;&#039; – prvi računalni sustav za digitalnu sintezu zvuka.&lt;br /&gt;
&lt;br /&gt;
IBM 704 je time postao temelj cijelog područja računalne glazbe, digitalne sinteze, elektroničke glazbe i kasnije MIDI tehnologije.&lt;br /&gt;
&lt;br /&gt;
=== MUSIC I – prvi računalni glazbeni program ===&lt;br /&gt;
&lt;br /&gt;
Max Mathews je 1957. na IBM 704 napisao program &#039;&#039;&#039;MUSIC I&#039;&#039;&#039;, koji je:&lt;br /&gt;
&lt;br /&gt;
* generirao digitalne valne oblike,&lt;br /&gt;
* sintetizirao tonove i melodije,&lt;br /&gt;
* omogućio kontrolu frekvencije, amplitude i trajanja,&lt;br /&gt;
* stvarao zvuk numeričkim izračunima, a ne analognom elektronikom.&lt;br /&gt;
&lt;br /&gt;
Ovo je bio prvi put u povijesti da je glazba nastala isključivo računalnim izračunom.&lt;br /&gt;
&lt;br /&gt;
Kasnije verzije (MUSIC II, III, IV, V) postale su temelj modernih glazbenih sintesajzera i digitalnih audio sustava.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio pogodan za glazbenu sintezu ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je nekoliko ključnih značajki koje su omogućile digitalnu sintezu zvuka:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Floating‑point jedinica&#039;&#039;&#039; – omogućila precizne izračune valnih oblika.&lt;br /&gt;
* &#039;&#039;&#039;Brza magnetska jezgra&#039;&#039;&#039; – omogućila generiranje uzoraka u stvarnom vremenu (za to doba).&lt;br /&gt;
* &#039;&#039;&#039;Aritmetička jedinica AC/MQ&#039;&#039;&#039; – ubrzala izračune sinusnih i drugih funkcija.&lt;br /&gt;
* &#039;&#039;&#039;Instrukcijski skup optimiziran za matematičke operacije&#039;&#039;&#039; – savršen za DSP (digital signal processing).&lt;br /&gt;
* &#039;&#039;&#039;Mogućnost generiranja velikih nizova podataka&#039;&#039;&#039; – potrebnih za audio uzorke.&lt;br /&gt;
&lt;br /&gt;
IBM 704 je tako postao prvo računalo koje je moglo generirati digitalni zvuk dovoljno brzo da se može rekonstruirati na analognom pretvaraču.&lt;br /&gt;
&lt;br /&gt;
=== Prva računalno generirana pjesma ===&lt;br /&gt;
&lt;br /&gt;
Prvi glazbeni komad generiran na IBM 704 bio je jednostavan ton i kratka melodijska sekvenca.  &lt;br /&gt;
Kasnije su generirani:&lt;br /&gt;
&lt;br /&gt;
* jednostavni glazbeni motivi,&lt;br /&gt;
* kratke melodije,&lt;br /&gt;
* eksperimentalni zvukovi,&lt;br /&gt;
* rani oblici elektroničke glazbe.&lt;br /&gt;
&lt;br /&gt;
Ovi eksperimenti bili su preteča:&lt;br /&gt;
&lt;br /&gt;
* digitalnih sintesajzera,&lt;br /&gt;
* računalne glazbene kompozicije,&lt;br /&gt;
* algoritamske glazbe,&lt;br /&gt;
* elektroničke glazbe 1960-ih i 1970-ih.&lt;br /&gt;
&lt;br /&gt;
=== Primjer generiranja tona (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći SAP kod ilustrira kako je IBM 704 mogao generirati digitalni uzorak sinusnog vala:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA FREQ         / učitaj frekvenciju&lt;br /&gt;
MPY TIME         / pomnoži s vremenom&lt;br /&gt;
CALL SIN         / pozovi sinusnu funkciju&lt;br /&gt;
STO SAMPLE       / spremi uzorak&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj uzorak bi se zatim slao na digitalno‑analogni pretvarač.&lt;br /&gt;
&lt;br /&gt;
=== Utjecaj na glazbu i tehnologiju ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao ogroman utjecaj na razvoj glazbene tehnologije:&lt;br /&gt;
&lt;br /&gt;
* postavio je temelje digitalne sinteze,&lt;br /&gt;
* omogućio razvoj računalne kompozicije,&lt;br /&gt;
* inspirirao elektroničku glazbu,&lt;br /&gt;
* doveo do nastanka glazbenih jezika (MUSIC V, Csound),&lt;br /&gt;
* utjecao na razvoj MIDI standarda,&lt;br /&gt;
* otvorio put modernim DAW sustavima (Ableton, Logic, Pro Tools).&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, digitalna glazba bi se pojavila mnogo kasnije – ili u potpuno drugačijem obliku.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je bio:&lt;br /&gt;
&lt;br /&gt;
* prvo računalo koje je generiralo glazbu,&lt;br /&gt;
* temelj digitalne sinteze,&lt;br /&gt;
* ključni alat za Maxa Mathewsa, „oca računalne glazbe“,&lt;br /&gt;
* preteča svih modernih glazbenih algoritama, sintesajzera i audio procesora.&lt;br /&gt;
&lt;br /&gt;
Njegova uloga u glazbenoj povijesti jednako je važna kao i njegova uloga u razvoju FORTRAN-a, LISP-a, robotike i neuralnih mreža.&lt;br /&gt;
&lt;br /&gt;
==Programska podrška==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/rhobbie/Sim704  Simulator IBM 704]&lt;br /&gt;
* [https://sky-visions.com/ibm/704/ Arhiva programa za IBM 704]&lt;br /&gt;
* [https://www.piercefuller.com/library/share.html Druga arhiva programa za IBM 704]&lt;br /&gt;
* [https://bitsavers.org/pdf/ibm/704/24-6661-2_704_Manual_1955.pdf Operacijski priručnik za IBM 704]&lt;br /&gt;
&lt;br /&gt;
==Izvori==&lt;br /&gt;
{{izvori}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorija:IBM]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787641</id>
		<title>IBM 704</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787641"/>
		<updated>2026-07-07T10:19:14Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Izvori */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;IBM 704&#039;&#039;&#039; ime je za računalo prve generacije koje je razvila tvrtka [[IBM]] i jedan je iz serije računala IBM 700. Ovo računalo se proizvodilo od 1954. do 1964. godine.&amp;lt;ref&amp;gt;https://www.ibm.com/history/700&amp;lt;/ref&amp;gt;. Povijesna važnost ovog računala jest da je na njemu bio razvijen programski jezik [[FORTRAN]] i [[LISP]] te SAP asembler. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Povijest razvoja IBM 700 serije ==&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija bila je prva generacija komercijalnih znanstvenih računala koju je IBM razvio početkom 1950-ih. Serija je započela s modelom IBM 701 (1952.), poznatim kao „Defense Calculator“, koji je bio namijenjen vojnoj i zrakoplovnoj industriji.&lt;br /&gt;
&lt;br /&gt;
* IBM 702 (1953.) bio je poslovno orijentiran sustav, dok je IBM 703 bio eksperimentalni model.&lt;br /&gt;
* IBM 704 je postao temelj za razvoj FORTRAN-a (1957.), prvog visokorazinskog programskog jezika.&lt;br /&gt;
&lt;br /&gt;
Pravi tehnološki iskorak dogodio se s modelom &#039;&#039;&#039;IBM 704&#039;&#039;&#039; (1954.), prvim računalom koje je podržavalo:&lt;br /&gt;
* aritmetiku s pomičnim zarezom,&lt;br /&gt;
* indeksne registre,&lt;br /&gt;
* statusne indikatore,&lt;br /&gt;
* magnetsku jezgru kao primarnu memoriju.&lt;br /&gt;
&lt;br /&gt;
Serija se nastavila s modelima IBM 709 (1958.) i IBM 7090 (1959.), koji su bili tranzistorski nasljednici i koristili se u NASA-i, NORAD-u i velikim znanstvenim centrima.&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija ostavila je dubok trag u povijesti računarstva, postavivši standarde arhitekture koji su se zadržali desetljećima.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arhitektura IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od prvih komercijalnih računala koje je uvodilo napredne koncepte arhitekture, uključujući rad s pomičnim zarezom, indeksne registre i statusne indikatore. Sustav je bio dizajniran za znanstvene i tehničke izračune, što ga je činilo ključnim alatom u laboratorijima, sveučilištima i ranim zrakoplovnim projektima.&lt;br /&gt;
&lt;br /&gt;
=== Memorija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 koristio je magnetsku jezgru kao primarnu memoriju, što je u to vrijeme predstavljalo veliki tehnološki napredak u odnosu na Williamsove cijevi korištene u IBM-u 701. Magnetska jezgra bila je brža, pouzdanija i omogućavala stabilno zadržavanje podataka bez potrebe za stalnim osvježavanjem.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Memorijske karakteristike IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Vrsta memorije&lt;br /&gt;
| Magnetska jezgra&lt;br /&gt;
| Stabilna, brza i pouzdana tehnologija za 1950-e.&lt;br /&gt;
|-&lt;br /&gt;
| Kapacitet&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Ukupno 147 456 bitova (18 432 bajta).&lt;br /&gt;
|-&lt;br /&gt;
| Vrijeme pristupa&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za čitanje ili pisanje jedne riječi.&lt;br /&gt;
|-&lt;br /&gt;
| Format riječi&lt;br /&gt;
| 36-bitna riječ&lt;br /&gt;
| Koristi se za instrukcije, podatke i floating-point brojeve.&lt;br /&gt;
|-&lt;br /&gt;
| Floating-point format&lt;br /&gt;
| 8-bitni eksponent + 27-bitna mantisa&lt;br /&gt;
| Bez skrivenog bita; excess-128 eksponent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Periferni uređaji ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 podržavao je širok spektar perifernih uređaja, što ga je činilo pogodnim za znanstvene, tehničke i administrativne zadatke. Ulazno/izlazni sustav bio je temeljen na magnetskim vrpcama, kartičnim čitačima i pisačima, uz mogućnost prikaza podataka na CRT zaslonima.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Periferni uređaji IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Uređaj&lt;br /&gt;
! Model&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Čitač kartica&lt;br /&gt;
| IBM 711&lt;br /&gt;
| Učitava programe i podatke s bušenih kartica.&lt;br /&gt;
|-&lt;br /&gt;
| Pisač&lt;br /&gt;
| IBM 716&lt;br /&gt;
| Ispisuje tekstualni izlaz; glavni uređaj za ljudsko čitanje rezultata.&lt;br /&gt;
|-&lt;br /&gt;
| Bušilica kartica&lt;br /&gt;
| IBM 721&lt;br /&gt;
| Zapisuje podatke na bušene kartice.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| IBM 727&lt;br /&gt;
| Glavni masovni spremnik; preko 5 milijuna znakova po vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrolna jedinica vrpci&lt;br /&gt;
| IBM 753&lt;br /&gt;
| Upravljanje magnetskim vrpcama.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetski bubanj&lt;br /&gt;
| IBM 733&lt;br /&gt;
| Dodatna memorija za brzi pristup.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetska jezgra (RAM)&lt;br /&gt;
| IBM 737&lt;br /&gt;
| Primarna memorija sustava (4096 × 36-bitnih riječi).&lt;br /&gt;
|-&lt;br /&gt;
| CRT zaslon&lt;br /&gt;
| IBM 740&lt;br /&gt;
| 21-inčni vektorski prikaz s dugom fosfornom postojanošću; korišten za vizualizaciju podataka.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aritmetička jedinica (AC i MQ) ===&lt;br /&gt;
Aritmetička jedinica sastojala se od dva glavna 36-bitna registra:&lt;br /&gt;
* &#039;&#039;&#039;AC (Accumulator)&#039;&#039;&#039; – glavni registar za aritmetiku.&lt;br /&gt;
* &#039;&#039;&#039;MQ (Multiplier/Quotient)&#039;&#039;&#039; – registar za množenje i dijeljenje.&lt;br /&gt;
&lt;br /&gt;
Ova dva registra zajedno su omogućavala učinkovite operacije nad velikim brojevima i pomičnim zarezom.&lt;br /&gt;
&lt;br /&gt;
=== Indeksni registri (XR1, XR2, XR4) ===&lt;br /&gt;
IBM 704 je koristio tri indeksna registra:&lt;br /&gt;
* &#039;&#039;&#039;XR1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Indeksni registri omogućavali su modifikaciju adresa, implementaciju petlji i rad s velikim poljima podataka. Ovo je bio preteča modernog adresiranja u procesorima.&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori (SI) ===&lt;br /&gt;
Sustav je imao 36 senzorskih indikatora koji su služili kao statusne zastavice:&lt;br /&gt;
* indikatori grešaka (overflow, divide check)&lt;br /&gt;
* indikatori stanja I/O uređaja&lt;br /&gt;
* korisnički definirani indikatori&lt;br /&gt;
&lt;br /&gt;
Programi su mogli testirati i postavljati SI bitove, što je omogućavalo primitivne oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
=== Instrukcijski format ===&lt;br /&gt;
Instrukcije su bile 36-bitne, s poljima:&lt;br /&gt;
* opkod&lt;br /&gt;
* adresa&lt;br /&gt;
* indeksni modifikator&lt;br /&gt;
* bitovi za uvjetno grananje&lt;br /&gt;
&lt;br /&gt;
Ovaj format omogućavao je fleksibilno adresiranje i kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Floating‑point implementacija ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je prvo komercijalno računalo koje je imalo ugrađenu hardversku podršku za aritmetiku s pomičnim zarezom. Ovo je bio ključni tehnološki iskorak koji je omogućio razvoj FORTRAN-a i znanstvenih aplikacija koje su zahtijevale visoku numeričku preciznost.&lt;br /&gt;
&lt;br /&gt;
Floating‑point brojevi u IBM 704 bili su pohranjeni u 36‑bitnim riječima, podijeljenima na dva glavna dijela:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Mantisa&#039;&#039;&#039; – 27 bitova  &lt;br /&gt;
* &#039;&#039;&#039;Eksponent&#039;&#039;&#039; – 8 bitova (excess‑128 format)  &lt;br /&gt;
* &#039;&#039;&#039;Znak&#039;&#039;&#039; – 1 bit&lt;br /&gt;
&lt;br /&gt;
=== Format floating‑point riječi ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Format floating‑point broja (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! Polje&lt;br /&gt;
! Duljina&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Znak mantise&lt;br /&gt;
| 1 bit&lt;br /&gt;
| Određuje pozitivan ili negativan broj.&lt;br /&gt;
|-&lt;br /&gt;
| Mantisa&lt;br /&gt;
| 27 bitova&lt;br /&gt;
| Normalizirana mantisa bez skrivenog bita.&lt;br /&gt;
|-&lt;br /&gt;
| Eksponent&lt;br /&gt;
| 8 bitova&lt;br /&gt;
| Excess‑128 format (stvarni eksponent = pohranjeni − 128).&lt;br /&gt;
|-&lt;br /&gt;
| Rezervirano&lt;br /&gt;
| 0 bitova&lt;br /&gt;
| Format je potpuno iskorišten; nema neiskorištenih bitova.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Excess‑128 eksponent ===&lt;br /&gt;
&lt;br /&gt;
Eksponent je pohranjen u obliku:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
stvarni_eksponent = pohranjeni_eksponent − 128&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj pristup omogućavao je jednostavnije usporedbe i normalizaciju brojeva.&lt;br /&gt;
&lt;br /&gt;
=== Normalizacija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 zahtijevao je da mantisa bude normalizirana tako da najviši bit mantise bude različit od nule.  &lt;br /&gt;
To je omogućavalo maksimalnu preciznost pri izračunima.&lt;br /&gt;
&lt;br /&gt;
=== Floating‑point operacije ===&lt;br /&gt;
&lt;br /&gt;
Računalo je podržavalo sljedeće operacije nad floating‑point brojevima:&lt;br /&gt;
&lt;br /&gt;
* zbrajanje (ADD)  &lt;br /&gt;
* oduzimanje (SUB)  &lt;br /&gt;
* množenje (MPY)  &lt;br /&gt;
* dijeljenje (DIV)&lt;br /&gt;
&lt;br /&gt;
Sve operacije koristile su aritmetičku jedinicu AC/MQ, pri čemu se rezultat normalizirao automatski.&lt;br /&gt;
&lt;br /&gt;
=== Primjer floating‑point operacije u assembleru ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj floating-point broj A&lt;br /&gt;
ADD B        / zbroji ga s B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Važnost floating‑point implementacije ===&lt;br /&gt;
&lt;br /&gt;
Hardverska podrška za pomični zarez bila je ključna za:&lt;br /&gt;
&lt;br /&gt;
* razvoj FORTRAN-a (1957.)&lt;br /&gt;
* balističke izračune&lt;br /&gt;
* aerodinamičke simulacije&lt;br /&gt;
* nuklearne proračune&lt;br /&gt;
* statističke modele&lt;br /&gt;
* rane znanstvene aplikacije NASA-e&lt;br /&gt;
&lt;br /&gt;
IBM 704 je time postavio standard koji će kasnije preuzeti svi moderni procesori.&lt;br /&gt;
&lt;br /&gt;
== Instrukcijski skup IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Glavne grupe instrukcija IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Grupa&lt;br /&gt;
! Primjeri&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Aritmetičke instrukcije&lt;br /&gt;
| ADD, SUB, MPY, DIV&lt;br /&gt;
| Operacije nad AC i MQ registrima; podrška za cijele brojeve i pomični zarez.&lt;br /&gt;
|-&lt;br /&gt;
| Logičke instrukcije&lt;br /&gt;
| CLA, CLM, COM&lt;br /&gt;
| Čišćenje, komplementiranje i manipulacija bitovima.&lt;br /&gt;
|-&lt;br /&gt;
| Uvjetno grananje&lt;br /&gt;
| TRA, TMI, TPL, TZE&lt;br /&gt;
| Skokovi ovisno o sadržaju AC ili MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Rad sa Sense Indicators&lt;br /&gt;
| TSI, SSI, RSI&lt;br /&gt;
| Testiranje, postavljanje i resetiranje statusnih bitova.&lt;br /&gt;
|-&lt;br /&gt;
| Indeksno adresiranje&lt;br /&gt;
| AXT, TXI&lt;br /&gt;
| Modifikacija adresa pomoću XR1, XR2, XR4.&lt;br /&gt;
|-&lt;br /&gt;
| Ulazno/izlazne instrukcije&lt;br /&gt;
| RDS, WRS, RWT&lt;br /&gt;
| Rad s magnetskom vrpcom, kartičnim čitačem i pisačem.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrola toka programa&lt;br /&gt;
| HLT, NOP&lt;br /&gt;
| Zaustavljanje programa, prazna instrukcija.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Opkodovi IBM 704 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Kompletan popis opkoda IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Opkod&lt;br /&gt;
! Mnemonik&lt;br /&gt;
! Grupa&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 000&lt;br /&gt;
| NOP&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Prazna instrukcija; ne radi ništa.&lt;br /&gt;
|-&lt;br /&gt;
| 001&lt;br /&gt;
| HLT&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Zaustavlja izvršavanje programa.&lt;br /&gt;
|-&lt;br /&gt;
| 002&lt;br /&gt;
| TRA&lt;br /&gt;
| Grananje&lt;br /&gt;
| Bezuvjetni skok na adresu.&lt;br /&gt;
|-&lt;br /&gt;
| 003&lt;br /&gt;
| TRN&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC negativan.&lt;br /&gt;
|-&lt;br /&gt;
| 004&lt;br /&gt;
| TMI&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC manji od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 005&lt;br /&gt;
| TPL&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC veći od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 006&lt;br /&gt;
| TZE&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC jednak nuli.&lt;br /&gt;
|-&lt;br /&gt;
| 007&lt;br /&gt;
| TOV&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je overflow zastavica postavljena.&lt;br /&gt;
|-&lt;br /&gt;
| 010&lt;br /&gt;
| ADD&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Zbrajanje sadržaja memorije s AC.&lt;br /&gt;
|-&lt;br /&gt;
| 011&lt;br /&gt;
| SUB&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Oduzimanje sadržaja memorije od AC.&lt;br /&gt;
|-&lt;br /&gt;
| 012&lt;br /&gt;
| MPY&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Množenje; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 013&lt;br /&gt;
| DIV&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Dijeljenje; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 014&lt;br /&gt;
| CLA&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 015&lt;br /&gt;
| CLM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 016&lt;br /&gt;
| COM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Komplementira AC.&lt;br /&gt;
|-&lt;br /&gt;
| 020&lt;br /&gt;
| SHL&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak ulijevo.&lt;br /&gt;
|-&lt;br /&gt;
| 021&lt;br /&gt;
| SHR&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak udesno.&lt;br /&gt;
|-&lt;br /&gt;
| 030&lt;br /&gt;
| AXT&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Učitava vrijednost u XR1, XR2 ili XR4.&lt;br /&gt;
|-&lt;br /&gt;
| 031&lt;br /&gt;
| TXI&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Dodaje vrijednost indeksnom registru.&lt;br /&gt;
|-&lt;br /&gt;
| 040&lt;br /&gt;
| RDS&lt;br /&gt;
| I/O&lt;br /&gt;
| Čitanje s magnetske vrpce.&lt;br /&gt;
|-&lt;br /&gt;
| 041&lt;br /&gt;
| WRS&lt;br /&gt;
| I/O&lt;br /&gt;
| Pisanje na magnetsku vrpcu.&lt;br /&gt;
|-&lt;br /&gt;
| 042&lt;br /&gt;
| RWT&lt;br /&gt;
| I/O&lt;br /&gt;
| Čekanje na I/O operaciju.&lt;br /&gt;
|-&lt;br /&gt;
| 050&lt;br /&gt;
| TSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Testira Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 051&lt;br /&gt;
| SSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Postavlja Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 052&lt;br /&gt;
| RSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Resetira Sense Indicator n.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Registri==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--             --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:88%;width:34em;&amp;quot;&lt;br /&gt;
|+ Registri u računalu IBM 704&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| style=&amp;quot;font-size:88%;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Podatkovni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | S&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | Q&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | P&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;14&amp;quot;| Akumulator&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | AC&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;1&amp;quot;| S&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;11&amp;quot;| Množitelj/Količnik&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | MQ&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;12&amp;quot;| Senzorni indikatori&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | SI&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 1&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR1 (XRA)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 2&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR2 (XRB)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 4 &lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR4 (XRC)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;14&amp;quot; | &#039;&#039;&#039;Brojač naredbi&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Brojač&amp;amp;nbsp;Naredbi&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| IC&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzorni indikatori&#039;&#039;&#039; - su posebni statusni bitovi u IBM 704 koj su se u praksi rabili za provjeru grešaka, grananje ovisno o stanju sustava, upravljanje perifernim jedinicama, te za signalizaciju posebnih događaja. Kroz njih programeri su mogli održavati stanje sustava, signalizirati određene uvjete tokom izvršavanje naredbi, čitanje i postavljanje naredbi i tako su služili za jednostane oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Sense Indicators (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! SI broj&lt;br /&gt;
! Naziv / funkcija&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Overflow flag&lt;br /&gt;
| Postavlja se pri prekoračenju rezultata u akumulatoru (AC) ili količniku (MQ).&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Divide check&lt;br /&gt;
| Signalizira pogrešku pri dijeljenju, uključujući dijeljenje nulom.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| I/O ready&lt;br /&gt;
| Uređaj spreman za prijenos podataka.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| I/O complete&lt;br /&gt;
| Završetak operacije ulaza/izlaza.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Tape mark&lt;br /&gt;
| Očitana oznaka kraja bloka na magnetskoj vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Printer ready&lt;br /&gt;
| Pisač spreman za rad.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Card reader ready&lt;br /&gt;
| Čitač kartica spreman.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Card punch ready&lt;br /&gt;
| Bušilica kartica spremna.&lt;br /&gt;
|-&lt;br /&gt;
| 8–15&lt;br /&gt;
| Peripheral flags&lt;br /&gt;
| Razni signali perifernih uređaja (disk, vrpca, pisač).&lt;br /&gt;
|-&lt;br /&gt;
| 16–35&lt;br /&gt;
| User-defined flags&lt;br /&gt;
| Zastavice koje programer može slobodno koristiti za logiku grananja.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Korištenje u IBM 704 assembleru ====&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao posebne instrukcije za rad sa Sense Indicators:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;TSI n&#039;&#039;&#039;&lt;br /&gt;
: Testira Sense Indicator &#039;&#039;n&#039;&#039;. Ako je postavljen, izvršavanje se nastavlja normalno; ako nije, preskače se sljedeća instrukcija.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3      / provjeri je li I/O complete&lt;br /&gt;
TRA DONE   / ako je postavljen, skoči na DONE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;SSI n&#039;&#039;&#039;&lt;br /&gt;
: Postavlja Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;RSI n&#039;&#039;&#039;&lt;br /&gt;
: Resetira Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 1      / provjeri divide check&lt;br /&gt;
TRA ERROR  / ako je SI1 = 1, idi na ERROR&lt;br /&gt;
&lt;br /&gt;
SSI 20     / postavi korisnički indikator 20&lt;br /&gt;
RSI 3      / resetiraj I/O complete indikator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Usporedba s modernim statusnim registrima ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! IBM 704 Sense Indicators&lt;br /&gt;
! Moderni statusni registri (x86, ARM, RISC-V)&lt;br /&gt;
|-&lt;br /&gt;
| 36 jednobitnih zastavica&lt;br /&gt;
| 8–32 bitni statusni registri&lt;br /&gt;
|-&lt;br /&gt;
| Ručno postavljanje i brisanje&lt;br /&gt;
| Automatsko postavljanje od strane ALU&lt;br /&gt;
|-&lt;br /&gt;
| Koriste se za I/O signalizaciju&lt;br /&gt;
| I/O signalizacija preko interrupt kontrolera&lt;br /&gt;
|-&lt;br /&gt;
| Jednostavne logičke zastavice&lt;br /&gt;
| Zastavice za aritmetiku, usporedbe, prekide&lt;br /&gt;
|-&lt;br /&gt;
| Programer koristi dio SI kao &amp;quot;user flags&amp;quot;&lt;br /&gt;
| Moderni jezici koriste varijable, strukture, objekte&lt;br /&gt;
|-&lt;br /&gt;
| Grananje preko TSI instrukcije&lt;br /&gt;
| Grananje preko CMP/JMP, BEQ/BNE, BLT/BGT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Primjeri IBM 704 assembler koda ==&lt;br /&gt;
&lt;br /&gt;
=== Zbrajanje dvaju brojeva ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj A u AC&lt;br /&gt;
ADD B        / dodaj B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Provjera negativnog broja ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA X        / učitaj X&lt;br /&gt;
TMI NEG      / ako je X &amp;lt; 0, idi na NEG&lt;br /&gt;
TRA DONE     / inače nastavi&lt;br /&gt;
NEG STO Y    / spremi negativnu vrijednost&lt;br /&gt;
DONE HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Množenje i dijeljenje ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A&lt;br /&gt;
MPY B        / AC*B → AC/MQ&lt;br /&gt;
DIV C        / (AC/MQ) / C → MQ (količnik), AC (ostatak)&lt;br /&gt;
STO Q        / spremi količnik&lt;br /&gt;
STO R        / spremi ostatak&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Korištenje Sense Indicators ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3        / provjeri I/O complete&lt;br /&gt;
TRA IO_OK    / ako je SI3 = 1, idi na IO_OK&lt;br /&gt;
SSI 20       / postavi korisnički indikator 20&lt;br /&gt;
IO_OK HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Performanse IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od najbržih znanstvenih računala svoje generacije. Njegova arhitektura s pomičnim zarezom, magnetskom jezgrom i specijaliziranim aritmetičkim registrima omogućavala je znatno bolje performanse u odnosu na prethodne modele IBM 701 i IBM 702. Sustav je bio optimiziran za matematičke operacije, simulacije, statističke izračune i obradu velikih numeričkih skupova podataka.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Performanse računala IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Brzina zbrajanja&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za izvršavanje jedne ADD instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina množenja&lt;br /&gt;
| ~20 μs&lt;br /&gt;
| Vrijeme za MPY instrukciju; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina dijeljenja&lt;br /&gt;
| ~38 μs&lt;br /&gt;
| Vrijeme za DIV instrukciju; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| Memorija&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Magnetska jezgra; pristup ~12 μs.&lt;br /&gt;
|-&lt;br /&gt;
| Ciklus instrukcije&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Prosječno vrijeme za dohvat i izvršavanje jednostavne instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina I/O operacija&lt;br /&gt;
| 7200 kartica/min (čitač)&lt;br /&gt;
| Kartični čitač i bušilica bili su glavni ulazno/izlazni sustavi.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| 12 500 znakovnih blokova/s&lt;br /&gt;
| Ovisno o uređaju; korišteno za masovno spremanje podataka.&lt;br /&gt;
|-&lt;br /&gt;
| Preciznost pomičnog zareza&lt;br /&gt;
| 27-bitni eksponent + 8-bitna mantisa&lt;br /&gt;
| Omogućavalo znanstvene izračune velike preciznosti.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pouzdanost ==&lt;br /&gt;
&lt;br /&gt;
Iako je IBM 704 bio znatno pouzdaniji od svog prethodnika IBM 701, i dalje je bio stroj temeljen na vakuumskim cijevima, što je značilo relativno česte kvarove prema današnjim standardima. Prosječno vrijeme između kvarova iznosilo je oko 8 sati, što je ograničavalo veličinu programa koje je bilo moguće kompajlirati ili izvršavati bez prekida.&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN kompajleri morali su biti iznimno učinkoviti jer bi preduga kompilacija mogla biti prekinuta kvarom sustava. Unatoč tome, IBM 704 je bio dovoljno pouzdan da postane temelj za razvoj FORTRAN-a, LISP-a, ranih neuralnih mreža i brojnih znanstvenih projekata.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Pouzdanost IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| MTBF (mean time between failure)&lt;br /&gt;
| ~8 sati&lt;br /&gt;
| Prosječno vrijeme rada prije kvara.&lt;br /&gt;
|-&lt;br /&gt;
| Usporedba s IBM 701&lt;br /&gt;
| ~30 minuta&lt;br /&gt;
| IBM 704 bio je znatno pouzdaniji od svog prethodnika.&lt;br /&gt;
|-&lt;br /&gt;
| Utjecaj na softver&lt;br /&gt;
| Ograničena veličina programa&lt;br /&gt;
| Kompilacije su morale biti kratke zbog mogućih kvarova.&lt;br /&gt;
|-&lt;br /&gt;
| Tehnologija&lt;br /&gt;
| Vakuumske cijevi&lt;br /&gt;
| Glavni uzrok kvarova i zagrijavanja sustava.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SAP asembler ==&lt;br /&gt;
&lt;br /&gt;
SAP (&#039;&#039;Symbolic Assembly Program&#039;&#039;) bio je službeni asembler za IBM 704 i predstavljao je jedan od najranijih i najutjecajnijih asemblera u povijesti računarstva. Razvijen je unutar IBM-a sredinom 1950-ih kako bi programerima omogućio pisanje simboličkog koda umjesto ručnog unošenja numeričkih opkoda i adresa.&lt;br /&gt;
&lt;br /&gt;
SAP je bio ključan za razvoj FORTRAN-a, LISP-a i mnogih ranih znanstvenih aplikacija, jer je omogućio jednostavnije pisanje, čitanje i održavanje programa na IBM 704.&lt;br /&gt;
&lt;br /&gt;
=== Značajke SAP asemblera ===&lt;br /&gt;
&lt;br /&gt;
SAP je imao nekoliko naprednih značajki za svoje vrijeme:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simboličke oznake&#039;&#039;&#039; – programeri su mogli koristiti imena umjesto numeričkih adresa.&lt;br /&gt;
* &#039;&#039;&#039;Automatsko izračunavanje adresa&#039;&#039;&#039; – asembler je sam određivao lokacije instrukcija.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za indeksne registre&#039;&#039;&#039; – XR1, XR2 i XR4 mogli su se koristiti u adresiranju.&lt;br /&gt;
* &#039;&#039;&#039;Jednostavna sintaksa&#039;&#039;&#039; – instrukcije su bile kratke i čitljive.&lt;br /&gt;
* &#039;&#039;&#039;Integracija s FORTRAN-om&#039;&#039;&#039; – FORTRAN kompajler generirao je SAP kod.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za floating‑point operacije&#039;&#039;&#039; – izravno korištenje AC/MQ jedinice.&lt;br /&gt;
&lt;br /&gt;
SAP je bio jedan od prvih asemblera koji je omogućio relativno visok stupanj apstrakcije u odnosu na strojni kod.&lt;br /&gt;
&lt;br /&gt;
=== Struktura SAP instrukcije ===&lt;br /&gt;
&lt;br /&gt;
Instrukcije su se sastojale od:&lt;br /&gt;
&lt;br /&gt;
* mnemonika (ADD, SUB, MPY, DIV, TRA…)&lt;br /&gt;
* adrese ili simbola&lt;br /&gt;
* opcionalnog indeksnog modifikatora&lt;br /&gt;
* komentara&lt;br /&gt;
&lt;br /&gt;
Primjer strukture:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
MNEMONIK  ADRESA,XR   / komentar&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Primjer SAP koda ===&lt;br /&gt;
&lt;br /&gt;
Slijedi povijesno točan primjer SAP koda za IBM 704:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
A      DEC 5          / definiraj konstantu A&lt;br /&gt;
B      DEC 7          / definiraj konstantu B&lt;br /&gt;
C      BSS 1          / rezerviraj prostor za rezultat&lt;br /&gt;
&lt;br /&gt;
       CLA A          / učitaj A u AC&lt;br /&gt;
       ADD B          / dodaj B&lt;br /&gt;
       STO C          / spremi rezultat u C&lt;br /&gt;
       HLT            / zaustavi program&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Korištenje indeksnih registara ===&lt;br /&gt;
&lt;br /&gt;
SAP je omogućavao jednostavno korištenje XR1, XR2 i XR4:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
LOOP   CLA ARRAY,XR1  / učitaj element polja&lt;br /&gt;
       ADD SUM        / dodaj na sumu&lt;br /&gt;
       STO SUM        / spremi rezultat&lt;br /&gt;
       TXI XR1,1      / povećaj indeks&lt;br /&gt;
       TPL LOOP       / ako je pozitivan, nastavi petlju&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio preteča modernih petlji u visokorazinskim jezicima.&lt;br /&gt;
&lt;br /&gt;
=== SAP i FORTRAN ===&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN kompajler generirao je SAP kod koji se zatim prevodio u strojni kod IBM 704.  &lt;br /&gt;
Zbog toga je SAP bio ključan za:&lt;br /&gt;
&lt;br /&gt;
* optimizaciju FORTRAN programa,&lt;br /&gt;
* implementaciju DO petlji,&lt;br /&gt;
* rad s poljima i matricama,&lt;br /&gt;
* floating‑point operacije,&lt;br /&gt;
* kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
=== SAP i LISP ===&lt;br /&gt;
&lt;br /&gt;
Prva implementacija LISP-a (1958.) bila je napisana upravo u SAP asembleru.  &lt;br /&gt;
SAP je omogućio:&lt;br /&gt;
&lt;br /&gt;
* manipulaciju cons‑struktura,&lt;br /&gt;
* implementaciju CAR i CDR operacija,&lt;br /&gt;
* rekurziju,&lt;br /&gt;
* dinamičko upravljanje memorijom.&lt;br /&gt;
&lt;br /&gt;
Bez SAP-a, LISP ne bi mogao biti implementiran na IBM 704.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj SAP-a ===&lt;br /&gt;
&lt;br /&gt;
SAP je bio jedan od najvažnijih asemblera 1950-ih i 1960-ih.  &lt;br /&gt;
Njegov utjecaj vidljiv je u:&lt;br /&gt;
&lt;br /&gt;
* razvoju FORTRAN-a,&lt;br /&gt;
* nastanku LISP-a,&lt;br /&gt;
* ranim AI projektima,&lt;br /&gt;
* znanstvenim simulacijama,&lt;br /&gt;
* razvoju modernih asemblera i kompajlera.&lt;br /&gt;
&lt;br /&gt;
SAP je postavio temelje za simboličko programiranje i bio je ključni alat u zlatnom dobu ranog računarstva.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju LISP-a ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je ključnu ulogu u nastanku programskog jezika LISP, jednog od najvažnijih jezika u povijesti računarstva. LISP je 1958. godine razvio John McCarthy na MIT-u, a upravo je IBM 704 bio prvo računalo na kojem je LISP implementiran i izvršavan.&lt;br /&gt;
&lt;br /&gt;
Razvoj LISP-a bio je izravno povezan s arhitekturom IBM 704, posebno s njegovim:&lt;br /&gt;
* 36-bitnim riječima,&lt;br /&gt;
* aritmetičkom jedinicom AC/MQ,&lt;br /&gt;
* indeksnim registrima,&lt;br /&gt;
* mogućnošću manipulacije adresama,&lt;br /&gt;
* podrškom za uvjetno grananje,&lt;br /&gt;
* te fleksibilnim instrukcijskim formatom.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio pogodan za LISP ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je nekoliko arhitekturnih značajki koje su se pokazale idealnima za implementaciju LISP-a:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;36-bitne riječi&#039;&#039;&#039; omogućavale su učinkovito predstavljanje parova (cons cells).&lt;br /&gt;
* &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039; olakšavali su rad s listama i rekurzivnim strukturama.&lt;br /&gt;
* &#039;&#039;&#039;Instrukcije grananja&#039;&#039;&#039; (TRA, TMI, TPL, TZE) omogućavale su jednostavnu implementaciju rekurzije.&lt;br /&gt;
* &#039;&#039;&#039;Magnetska jezgra&#039;&#039;&#039; bila je dovoljno brza za dinamičke strukture podataka.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za floating-point&#039;&#039;&#039; olakšala je rad s matematičkim funkcijama.&lt;br /&gt;
&lt;br /&gt;
McCarthy je iskoristio ove mogućnosti kako bi implementirao osnovne LISP konstrukte: CONS, CAR, CDR, rekurziju, lambda‑izraze i funkcije višeg reda.&lt;br /&gt;
&lt;br /&gt;
=== Prva implementacija LISP-a ===&lt;br /&gt;
&lt;br /&gt;
Prva verzija LISP-a bila je napisana u SAP asembleru za IBM 704.  &lt;br /&gt;
Ova implementacija uključivala je:&lt;br /&gt;
&lt;br /&gt;
* interpreter,&lt;br /&gt;
* evaluator,&lt;br /&gt;
* upravljanje memorijom,&lt;br /&gt;
* implementaciju cons‑struktura,&lt;br /&gt;
* osnovne matematičke funkcije,&lt;br /&gt;
* te mehanizme za rekurziju i funkcije višeg reda.&lt;br /&gt;
&lt;br /&gt;
LISP je na IBM 704 radio kao interpretirani jezik, a programi su se izvršavali izravno nad strukturom lista u memoriji.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je omogućio LISP-u da postane prvi široko korišteni jezik za:&lt;br /&gt;
&lt;br /&gt;
* umjetnu inteligenciju,&lt;br /&gt;
* simboličku manipulaciju,&lt;br /&gt;
* matematičku logiku,&lt;br /&gt;
* rane ekspertske sustave,&lt;br /&gt;
* istraživanje strojnog učenja.&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, LISP bi vjerojatno bio znatno drugačiji — ili bi se pojavio mnogo kasnije.&lt;br /&gt;
&lt;br /&gt;
=== Primjer ranog LISP izraza (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Iako se LISP nije zapisivao u assembleru, njegovi izrazi su se prevodili u SAP kod za IBM 704.  &lt;br /&gt;
Primjer jednostavne LISP funkcije:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(define (square x)&lt;br /&gt;
  (* x x))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj izraz bi se na IBM 704 interno pretvorio u operacije nad cons‑struktura i pozive aritmetičkih instrukcija MPY i ADD.&lt;br /&gt;
&lt;br /&gt;
=== Utjecaj na daljnji razvoj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je bio platforma na kojoj su nastale ključne ideje:&lt;br /&gt;
&lt;br /&gt;
* automatsko upravljanje memorijom,&lt;br /&gt;
* rekurzija kao temeljni mehanizam,&lt;br /&gt;
* funkcije višeg reda,&lt;br /&gt;
* lambda‑račun,&lt;br /&gt;
* simbolička obrada podataka.&lt;br /&gt;
&lt;br /&gt;
Ove ideje postale su temelj modernih programskih jezika, od Schemea i Prologa do Pythona i JavaScripta.&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju FORTRAN-a ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je presudnu ulogu u nastanku FORTRAN-a (Formula Translation), prvog široko korištenog visokorazinskog programskog jezika. FORTRAN je razvijen 1957. godine u IBM-u pod vodstvom Johna Backusa, a IBM 704 bio je prvo računalo na kojem je FORTRAN implementiran, kompajliran i izvršavan.&lt;br /&gt;
&lt;br /&gt;
Arhitektura IBM 704 izravno je oblikovala dizajn FORTRAN-a. Njegova podrška za aritmetiku s pomičnim zarezom, indeksne registre, statusne indikatore i 36-bitne riječi omogućila je stvaranje jezika koji je bio optimiziran za znanstvene i tehničke izračune.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio ključan za FORTRAN ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 posjedovao je nekoliko arhitekturnih značajki koje su bile presudne za razvoj FORTRAN-a:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Hardverska floating‑point jedinica&#039;&#039;&#039; – omogućila je izravnu podršku za matematičke operacije.&lt;br /&gt;
* &#039;&#039;&#039;Aritmetički registri AC i MQ&#039;&#039;&#039; – olakšali su implement&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju ranih neuralnih mreža ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je važnu ulogu u razvoju najranijih modela umjetnih neuronskih mreža tijekom kasnih 1950-ih i ranih 1960-ih. Iako su ti modeli bili daleko jednostavniji od današnjih dubokih mreža, IBM 704 je bio jedno od rijetkih računala koje je imalo dovoljno memorije, brzine i aritmetičkih mogućnosti da može izvoditi simulacije neuronskih mreža u praksi.&lt;br /&gt;
&lt;br /&gt;
Rani pioniri umjetne inteligencije, uključujući Franka Rosenblatta, Herberta Simona, Allena Newella i istraživače s MIT-a i Cornell Aeronautical Laboratory, koristili su IBM 704 za implementaciju i testiranje prvih algoritama koji su simulirali neuronsko učenje.&lt;br /&gt;
&lt;br /&gt;
=== IBM 704 i perceptron ===&lt;br /&gt;
&lt;br /&gt;
Najvažniji doprinos IBM 704 razvoju neuralnih mreža bio je u implementaciji i simulaciji **Rosenblattovog perceptrona**, prvog formalnog modela neuronske mreže koji je mogao učiti iz podataka.&lt;br /&gt;
&lt;br /&gt;
IBM 704 omogućio je:&lt;br /&gt;
&lt;br /&gt;
* izračun težina perceptrona,&lt;br /&gt;
* simulaciju učenja kroz iteracije,&lt;br /&gt;
* rad s matricama i vektorima,&lt;br /&gt;
* evaluaciju linearnih klasifikatora,&lt;br /&gt;
* testiranje različitih skupova podataka.&lt;br /&gt;
&lt;br /&gt;
Iako je perceptron kasnije imao i hardversku implementaciju (Mark I Perceptron), IBM 704 bio je ključan za **prve softverske simulacije** koje su potvrdile da se neuronske mreže mogu trenirati računalno.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio pogodan za neuralne mreže ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je nekoliko arhitekturnih značajki koje su bile iznimno korisne za rane AI eksperimente:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Floating‑point jedinica&#039;&#039;&#039; – omogućila je precizne izračune težina i aktivacijskih funkcija.&lt;br /&gt;
* &#039;&#039;&#039;Aritmetički registri AC/MQ&#039;&#039;&#039; – ubrzali su operacije nad vektorima.&lt;br /&gt;
* &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039; – olakšali su rad s matricama i iteracijama.&lt;br /&gt;
* &#039;&#039;&#039;Magnetska jezgra&#039;&#039;&#039; – bila je dovoljno brza za ponavljajuće izračune.&lt;br /&gt;
* &#039;&#039;&#039;Instrukcije grananja&#039;&#039;&#039; – omogućile su implementaciju algoritama učenja.&lt;br /&gt;
&lt;br /&gt;
Zbog toga je IBM 704 bio jedno od prvih računala koje je moglo izvoditi **iterativne algoritme učenja**, temeljne za neuralne mreže.&lt;br /&gt;
&lt;br /&gt;
=== Rani eksperimenti umjetne inteligencije ===&lt;br /&gt;
&lt;br /&gt;
Na IBM 704 provodili su se rani eksperimenti koji su uključivali:&lt;br /&gt;
&lt;br /&gt;
* simulaciju perceptrona,&lt;br /&gt;
* klasifikaciju jednostavnih vizualnih uzoraka,&lt;br /&gt;
* prepoznavanje znakova,&lt;br /&gt;
* rane oblike strojne percepcije,&lt;br /&gt;
* istraživanje linearnih i nelinearnih funkcija aktivacije.&lt;br /&gt;
&lt;br /&gt;
Ovi eksperimenti bili su temelj za kasniji razvoj:&lt;br /&gt;
&lt;br /&gt;
* višeslojnih perceptrona,&lt;br /&gt;
* backpropagation algoritma,&lt;br /&gt;
* dubokog učenja,&lt;br /&gt;
* računalnog vida.&lt;br /&gt;
&lt;br /&gt;
=== Primjer jednostavne perceptronske iteracije (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći pseudokod prikazuje kako je perceptron bio implementiran na IBM 704:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA W1        / učitaj težinu&lt;br /&gt;
MPY X1        / pomnoži s ulazom&lt;br /&gt;
ADD SUM       / dodaj na akumuliranu sumu&lt;br /&gt;
STO SUM       / spremi novu vrijednost&lt;br /&gt;
&lt;br /&gt;
... ponavljati za sve ulaze ...&lt;br /&gt;
&lt;br /&gt;
CLA SUM&lt;br /&gt;
TMI UPDATE    / ako je pogreška negativna, ažuriraj težine&lt;br /&gt;
TPL UPDATE    / ako je pogreška pozitivna, također ažuriraj&lt;br /&gt;
&lt;br /&gt;
UPDATE:&lt;br /&gt;
ADD ERROR     / korekcija težine&lt;br /&gt;
STO W1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio jedan od prvih primjera **računalnog učenja** u povijesti.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je ključan za rani razvoj umjetne inteligencije jer je:&lt;br /&gt;
&lt;br /&gt;
* omogućio prve računalne simulacije neuronskih mreža,&lt;br /&gt;
* bio platforma za perceptron i rane modele učenja,&lt;br /&gt;
* omogućio istraživanje algoritama koji su kasnije postali temelj dubokog učenja,&lt;br /&gt;
* povezao AI istraživanje s praktičnim računalnim sustavima.&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, razvoj ranih neuralnih mreža bio bi znatno sporiji i ograničeniji.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u ranoj robotici ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je važnu ulogu u razvoju najranijih oblika robotike i automatizacije tijekom kasnih 1950-ih i ranih 1960-ih. Iako se u to vrijeme pojam „robotika“ tek počeo pojavljivati u znanstvenoj literaturi, IBM 704 bio je jedno od prvih računala koje je moglo upravljati mehaničkim sustavima, analizirati senzorske podatke i izvoditi algoritme koji su predstavljali preteču modernog upravljanja robotima.&lt;br /&gt;
&lt;br /&gt;
Rani robotski sustavi bili su primitivni u odnosu na današnje, ali IBM 704 je omogućio:&lt;br /&gt;
&lt;br /&gt;
* upravljanje aktuatorima i elektromehaničkim uređajima,&lt;br /&gt;
* obradu ulaznih signala iz senzora,&lt;br /&gt;
* simulaciju kretanja i kontrolnih petlji,&lt;br /&gt;
* rane eksperimente u automatskom upravljanju,&lt;br /&gt;
* integraciju s vizualnim sustavima (CRT prikaz IBM 740).&lt;br /&gt;
&lt;br /&gt;
=== Rani eksperimenti automatizacije ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 korišten je u laboratorijima i istraživačkim centrima za:&lt;br /&gt;
&lt;br /&gt;
* upravljanje robotskim manipulatorima,&lt;br /&gt;
* simulaciju kinematike i dinamike,&lt;br /&gt;
* upravljanje servo‑motorima,&lt;br /&gt;
* automatizaciju industrijskih procesa,&lt;br /&gt;
* rane oblike povratne sprege (feedback control).&lt;br /&gt;
&lt;br /&gt;
Ovi sustavi nisu bili roboti u modernom smislu, ali su predstavljali ključne korake prema:&lt;br /&gt;
&lt;br /&gt;
* numeričkom upravljanju strojevima (NC machines),&lt;br /&gt;
* automatskim manipulatorima,&lt;br /&gt;
* sustavima za automatsko pozicioniranje,&lt;br /&gt;
* ranim oblicima cybernetike.&lt;br /&gt;
&lt;br /&gt;
=== IBM 704 i cybernetika ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je često korišten u istraživanjima inspiriranim radom Norberta Wienera, osnivača cybernetike.  &lt;br /&gt;
Sustav je omogućavao:&lt;br /&gt;
&lt;br /&gt;
* simulaciju povratne sprege,&lt;br /&gt;
* analizu stabilnosti sustava,&lt;br /&gt;
* implementaciju kontrolnih algoritama,&lt;br /&gt;
* rane oblike adaptivnog upravljanja.&lt;br /&gt;
&lt;br /&gt;
Ovo je bilo ključno za razvoj robotskih sustava koji se mogu prilagođavati promjenama u okruženju.&lt;br /&gt;
&lt;br /&gt;
=== Vizualni sustavi i IBM 740 ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 se mogao povezati s CRT zaslonom IBM 740, koji je omogućavao:&lt;br /&gt;
&lt;br /&gt;
* prikaz vektorskih grafika,&lt;br /&gt;
* vizualizaciju putanja kretanja,&lt;br /&gt;
* prikaz senzorskih podataka,&lt;br /&gt;
* rane eksperimente u računalnom vidu.&lt;br /&gt;
&lt;br /&gt;
Iako primitivni, ovi sustavi bili su preteča kasnijih robotskih vizualnih sustava.&lt;br /&gt;
&lt;br /&gt;
=== Primjer jednostavne kontrolne petlje (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći SAP kod prikazuje kako je IBM 704 mogao implementirati jednostavnu kontrolnu petlju za upravljanje aktuatorom:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
READSENSOR  RDS SENS        / očitaj senzor&lt;br /&gt;
           CLA SENS        / učitaj vrijednost&lt;br /&gt;
           SUB TARGET      / usporedi s ciljem&lt;br /&gt;
           TPL INCREASE    / ako je pozitivno, povećaj izlaz&lt;br /&gt;
           TMI DECREASE    / ako je negativno, smanji izlaz&lt;br /&gt;
&lt;br /&gt;
INCREASE   ADD STEP        / povećaj upravljački signal&lt;br /&gt;
           STO ACTUATOR&lt;br /&gt;
           TRA LOOP&lt;br /&gt;
&lt;br /&gt;
DECREASE   SUB STEP        / smanji upravljački signal&lt;br /&gt;
           STO ACTUATOR&lt;br /&gt;
           TRA LOOP&lt;br /&gt;
&lt;br /&gt;
LOOP       TRA READSENSOR  / ponovi petlju&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio jedan od prvih primjera računalno upravljanih mehaničkih sustava.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je ključan za rani razvoj robotike jer je:&lt;br /&gt;
&lt;br /&gt;
* omogućio prve računalne simulacije upravljanja strojevima,&lt;br /&gt;
* bio platforma za cybernetičke eksperimente,&lt;br /&gt;
* omogućio integraciju senzora i aktuatora,&lt;br /&gt;
* pružio temelj za numeričko upravljanje strojevima (NC),&lt;br /&gt;
* povezao mehaniku, elektroniku i računalne algoritme.&lt;br /&gt;
&lt;br /&gt;
IBM 704 je time postavio temelje za kasniji razvoj industrijskih robota, autonomnih sustava i modernih robotskih tehnologija.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u ranom računalnom vidu ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je važnu ulogu u najranijim eksperimentima računalnog vida tijekom kasnih 1950-ih i ranih 1960-ih. Iako se računalni vid kao disciplina tek počeo formirati, IBM 704 bio je jedno od rijetkih računala koje je imalo dovoljno memorije, aritmetičke snage i mogućnosti prikaza da može obrađivati jednostavne vizualne podatke.&lt;br /&gt;
&lt;br /&gt;
Rani eksperimenti računalnog vida bili su usko povezani s istraživanjima umjetne inteligencije, perceptrona i robotike, a IBM 704 služio je kao platforma za:&lt;br /&gt;
&lt;br /&gt;
* prepoznavanje jednostavnih uzoraka,&lt;br /&gt;
* klasifikaciju vizualnih znakova,&lt;br /&gt;
* obradu digitaliziranih slika niske rezolucije,&lt;br /&gt;
* vizualizaciju podataka na CRT zaslonu IBM 740,&lt;br /&gt;
* rane eksperimente u strojnoj percepciji.&lt;br /&gt;
&lt;br /&gt;
=== IBM 704 i CRT zaslon IBM 740 ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 se mogao povezati s vektorskim CRT zaslonom IBM 740, koji je omogućavao:&lt;br /&gt;
&lt;br /&gt;
* prikaz linija, oblika i grafičkih uzoraka,&lt;br /&gt;
* vizualizaciju rezultata algoritama,&lt;br /&gt;
* prikaz putanja kretanja u robotskim sustavima,&lt;br /&gt;
* rane oblike grafičke analize.&lt;br /&gt;
&lt;br /&gt;
Iako primitivni, ovi sustavi bili su preteča kasnijih grafičkih terminala i vizualnih procesora.&lt;br /&gt;
&lt;br /&gt;
=== Rani eksperimenti prepoznavanja uzoraka ===&lt;br /&gt;
&lt;br /&gt;
Na IBM 704 provodili su se rani eksperimenti koji su uključivali:&lt;br /&gt;
&lt;br /&gt;
* prepoznavanje slova i brojeva,&lt;br /&gt;
* klasifikaciju jednostavnih geometrijskih oblika,&lt;br /&gt;
* analizu kontrasta i rubova,&lt;br /&gt;
* rane oblike segmentacije slike.&lt;br /&gt;
&lt;br /&gt;
Podaci su se obično unosili preko:&lt;br /&gt;
&lt;br /&gt;
* digitaliziranih kartica,&lt;br /&gt;
* ručno kodiranih matrica piksela,&lt;br /&gt;
* senzorskih uređaja povezanih s robotima.&lt;br /&gt;
&lt;br /&gt;
=== Veza s perceptronom i neuralnim mrežama ===&lt;br /&gt;
&lt;br /&gt;
Rosenblattov perceptron, koji je IBM 704 koristio za simulacije učenja, bio je izravno primijenjen na rane zadatke računalnog vida:&lt;br /&gt;
&lt;br /&gt;
* klasifikacija vizualnih uzoraka,&lt;br /&gt;
* prepoznavanje znakova,&lt;br /&gt;
* jednostavni modeli prepoznavanja oblika.&lt;br /&gt;
&lt;br /&gt;
IBM 704 omogućio je iterativno treniranje perceptrona nad vizualnim podacima, što je bio jedan od prvih primjera **računalnog učenja iz slike**.&lt;br /&gt;
&lt;br /&gt;
=== Primjer jednostavne vizualne analize (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći SAP kod prikazuje kako je IBM 704 mogao analizirati jednostavnu matricu piksela:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA PIXEL      / učitaj vrijednost piksela&lt;br /&gt;
SUB THRESH     / usporedi s pragom&lt;br /&gt;
TPL BRIGHT     / ako je veće od praga → svijetli piksel&lt;br /&gt;
TMI DARK       / ako je manje → tamni piksel&lt;br /&gt;
&lt;br /&gt;
BRIGHT STO OUT1&lt;br /&gt;
TRA NEXT&lt;br /&gt;
&lt;br /&gt;
DARK   STO OUT0&lt;br /&gt;
NEXT   TRA LOOP&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio jedan od prvih primitivnih algoritama za binarnu segmentaciju slike.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je ključan za rani razvoj računalnog vida jer je:&lt;br /&gt;
&lt;br /&gt;
* omogućio prve računalne eksperimente prepoznavanja uzoraka,&lt;br /&gt;
* bio platforma za vizualne simulacije u robotici,&lt;br /&gt;
* povezao neuralne mreže s vizualnim podacima,&lt;br /&gt;
* omogućio prikaz grafike na CRT zaslonu,&lt;br /&gt;
* postavio temelje za kasniji razvoj računalnog vida u 1960-ima i 1970-ima.&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, rani razvoj računalnog vida bio bi znatno sporiji i ograničeniji.&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju rane računalne glazbe ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je iznimno važnu ulogu u povijesti računalne glazbe. Bio je prvo računalo koje je ikada generiralo glazbu sintetički, koristeći digitalne algoritme za stvaranje zvuka. Ovaj povijesni događaj zbio se 1957. godine na Bell Labsu, kada su Max Mathews i njegov tim razvili program &#039;&#039;&#039;MUSIC I&#039;&#039;&#039; – prvi računalni sustav za digitalnu sintezu zvuka.&lt;br /&gt;
&lt;br /&gt;
IBM 704 je time postao temelj cijelog područja računalne glazbe, digitalne sinteze, elektroničke glazbe i kasnije MIDI tehnologije.&lt;br /&gt;
&lt;br /&gt;
=== MUSIC I – prvi računalni glazbeni program ===&lt;br /&gt;
&lt;br /&gt;
Max Mathews je 1957. na IBM 704 napisao program &#039;&#039;&#039;MUSIC I&#039;&#039;&#039;, koji je:&lt;br /&gt;
&lt;br /&gt;
* generirao digitalne valne oblike,&lt;br /&gt;
* sintetizirao tonove i melodije,&lt;br /&gt;
* omogućio kontrolu frekvencije, amplitude i trajanja,&lt;br /&gt;
* stvarao zvuk numeričkim izračunima, a ne analognom elektronikom.&lt;br /&gt;
&lt;br /&gt;
Ovo je bio prvi put u povijesti da je glazba nastala isključivo računalnim izračunom.&lt;br /&gt;
&lt;br /&gt;
Kasnije verzije (MUSIC II, III, IV, V) postale su temelj modernih glazbenih sintesajzera i digitalnih audio sustava.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio pogodan za glazbenu sintezu ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je nekoliko ključnih značajki koje su omogućile digitalnu sintezu zvuka:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Floating‑point jedinica&#039;&#039;&#039; – omogućila precizne izračune valnih oblika.&lt;br /&gt;
* &#039;&#039;&#039;Brza magnetska jezgra&#039;&#039;&#039; – omogućila generiranje uzoraka u stvarnom vremenu (za to doba).&lt;br /&gt;
* &#039;&#039;&#039;Aritmetička jedinica AC/MQ&#039;&#039;&#039; – ubrzala izračune sinusnih i drugih funkcija.&lt;br /&gt;
* &#039;&#039;&#039;Instrukcijski skup optimiziran za matematičke operacije&#039;&#039;&#039; – savršen za DSP (digital signal processing).&lt;br /&gt;
* &#039;&#039;&#039;Mogućnost generiranja velikih nizova podataka&#039;&#039;&#039; – potrebnih za audio uzorke.&lt;br /&gt;
&lt;br /&gt;
IBM 704 je tako postao prvo računalo koje je moglo generirati digitalni zvuk dovoljno brzo da se može rekonstruirati na analognom pretvaraču.&lt;br /&gt;
&lt;br /&gt;
=== Prva računalno generirana pjesma ===&lt;br /&gt;
&lt;br /&gt;
Prvi glazbeni komad generiran na IBM 704 bio je jednostavan ton i kratka melodijska sekvenca.  &lt;br /&gt;
Kasnije su generirani:&lt;br /&gt;
&lt;br /&gt;
* jednostavni glazbeni motivi,&lt;br /&gt;
* kratke melodije,&lt;br /&gt;
* eksperimentalni zvukovi,&lt;br /&gt;
* rani oblici elektroničke glazbe.&lt;br /&gt;
&lt;br /&gt;
Ovi eksperimenti bili su preteča:&lt;br /&gt;
&lt;br /&gt;
* digitalnih sintesajzera,&lt;br /&gt;
* računalne glazbene kompozicije,&lt;br /&gt;
* algoritamske glazbe,&lt;br /&gt;
* elektroničke glazbe 1960-ih i 1970-ih.&lt;br /&gt;
&lt;br /&gt;
=== Primjer generiranja tona (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći SAP kod ilustrira kako je IBM 704 mogao generirati digitalni uzorak sinusnog vala:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA FREQ         / učitaj frekvenciju&lt;br /&gt;
MPY TIME         / pomnoži s vremenom&lt;br /&gt;
CALL SIN         / pozovi sinusnu funkciju&lt;br /&gt;
STO SAMPLE       / spremi uzorak&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj uzorak bi se zatim slao na digitalno‑analogni pretvarač.&lt;br /&gt;
&lt;br /&gt;
=== Utjecaj na glazbu i tehnologiju ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao ogroman utjecaj na razvoj glazbene tehnologije:&lt;br /&gt;
&lt;br /&gt;
* postavio je temelje digitalne sinteze,&lt;br /&gt;
* omogućio razvoj računalne kompozicije,&lt;br /&gt;
* inspirirao elektroničku glazbu,&lt;br /&gt;
* doveo do nastanka glazbenih jezika (MUSIC V, Csound),&lt;br /&gt;
* utjecao na razvoj MIDI standarda,&lt;br /&gt;
* otvorio put modernim DAW sustavima (Ableton, Logic, Pro Tools).&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, digitalna glazba bi se pojavila mnogo kasnije – ili u potpuno drugačijem obliku.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je bio:&lt;br /&gt;
&lt;br /&gt;
* prvo računalo koje je generiralo glazbu,&lt;br /&gt;
* temelj digitalne sinteze,&lt;br /&gt;
* ključni alat za Maxa Mathewsa, „oca računalne glazbe“,&lt;br /&gt;
* preteča svih modernih glazbenih algoritama, sintesajzera i audio procesora.&lt;br /&gt;
&lt;br /&gt;
Njegova uloga u glazbenoj povijesti jednako je važna kao i njegova uloga u razvoju FORTRAN-a, LISP-a, robotike i neuralnih mreža.&lt;br /&gt;
&lt;br /&gt;
==Programska podrška==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/rhobbie/Sim704  Simulator IBM 704]&lt;br /&gt;
* [https://sky-visions.com/ibm/704/ Arhiva programa za IBM 704]&lt;br /&gt;
* [https://www.piercefuller.com/library/share.html Druga arhiva programa za IBM 704]&lt;br /&gt;
* [https://bitsavers.org/pdf/ibm/704/24-6661-2_704_Manual_1955.pdf Operacijski priručnik za IBM 704]]&lt;br /&gt;
&lt;br /&gt;
==Izvori==&lt;br /&gt;
{{izvori}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorija:IBM]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787640</id>
		<title>IBM 704</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787640"/>
		<updated>2026-07-07T10:13:27Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Povijesni značaj */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;IBM 704&#039;&#039;&#039; ime je za računalo prve generacije koje je razvila tvrtka [[IBM]] i jedan je iz serije računala IBM 700. Ovo računalo se proizvodilo od 1954. do 1964. godine.&amp;lt;ref&amp;gt;https://www.ibm.com/history/700&amp;lt;/ref&amp;gt;. Povijesna važnost ovog računala jest da je na njemu bio razvijen programski jezik [[FORTRAN]] i [[LISP]] te SAP asembler. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Povijest razvoja IBM 700 serije ==&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija bila je prva generacija komercijalnih znanstvenih računala koju je IBM razvio početkom 1950-ih. Serija je započela s modelom IBM 701 (1952.), poznatim kao „Defense Calculator“, koji je bio namijenjen vojnoj i zrakoplovnoj industriji.&lt;br /&gt;
&lt;br /&gt;
* IBM 702 (1953.) bio je poslovno orijentiran sustav, dok je IBM 703 bio eksperimentalni model.&lt;br /&gt;
* IBM 704 je postao temelj za razvoj FORTRAN-a (1957.), prvog visokorazinskog programskog jezika.&lt;br /&gt;
&lt;br /&gt;
Pravi tehnološki iskorak dogodio se s modelom &#039;&#039;&#039;IBM 704&#039;&#039;&#039; (1954.), prvim računalom koje je podržavalo:&lt;br /&gt;
* aritmetiku s pomičnim zarezom,&lt;br /&gt;
* indeksne registre,&lt;br /&gt;
* statusne indikatore,&lt;br /&gt;
* magnetsku jezgru kao primarnu memoriju.&lt;br /&gt;
&lt;br /&gt;
Serija se nastavila s modelima IBM 709 (1958.) i IBM 7090 (1959.), koji su bili tranzistorski nasljednici i koristili se u NASA-i, NORAD-u i velikim znanstvenim centrima.&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija ostavila je dubok trag u povijesti računarstva, postavivši standarde arhitekture koji su se zadržali desetljećima.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arhitektura IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od prvih komercijalnih računala koje je uvodilo napredne koncepte arhitekture, uključujući rad s pomičnim zarezom, indeksne registre i statusne indikatore. Sustav je bio dizajniran za znanstvene i tehničke izračune, što ga je činilo ključnim alatom u laboratorijima, sveučilištima i ranim zrakoplovnim projektima.&lt;br /&gt;
&lt;br /&gt;
=== Memorija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 koristio je magnetsku jezgru kao primarnu memoriju, što je u to vrijeme predstavljalo veliki tehnološki napredak u odnosu na Williamsove cijevi korištene u IBM-u 701. Magnetska jezgra bila je brža, pouzdanija i omogućavala stabilno zadržavanje podataka bez potrebe za stalnim osvježavanjem.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Memorijske karakteristike IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Vrsta memorije&lt;br /&gt;
| Magnetska jezgra&lt;br /&gt;
| Stabilna, brza i pouzdana tehnologija za 1950-e.&lt;br /&gt;
|-&lt;br /&gt;
| Kapacitet&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Ukupno 147 456 bitova (18 432 bajta).&lt;br /&gt;
|-&lt;br /&gt;
| Vrijeme pristupa&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za čitanje ili pisanje jedne riječi.&lt;br /&gt;
|-&lt;br /&gt;
| Format riječi&lt;br /&gt;
| 36-bitna riječ&lt;br /&gt;
| Koristi se za instrukcije, podatke i floating-point brojeve.&lt;br /&gt;
|-&lt;br /&gt;
| Floating-point format&lt;br /&gt;
| 8-bitni eksponent + 27-bitna mantisa&lt;br /&gt;
| Bez skrivenog bita; excess-128 eksponent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Periferni uređaji ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 podržavao je širok spektar perifernih uređaja, što ga je činilo pogodnim za znanstvene, tehničke i administrativne zadatke. Ulazno/izlazni sustav bio je temeljen na magnetskim vrpcama, kartičnim čitačima i pisačima, uz mogućnost prikaza podataka na CRT zaslonima.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Periferni uređaji IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Uređaj&lt;br /&gt;
! Model&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Čitač kartica&lt;br /&gt;
| IBM 711&lt;br /&gt;
| Učitava programe i podatke s bušenih kartica.&lt;br /&gt;
|-&lt;br /&gt;
| Pisač&lt;br /&gt;
| IBM 716&lt;br /&gt;
| Ispisuje tekstualni izlaz; glavni uređaj za ljudsko čitanje rezultata.&lt;br /&gt;
|-&lt;br /&gt;
| Bušilica kartica&lt;br /&gt;
| IBM 721&lt;br /&gt;
| Zapisuje podatke na bušene kartice.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| IBM 727&lt;br /&gt;
| Glavni masovni spremnik; preko 5 milijuna znakova po vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrolna jedinica vrpci&lt;br /&gt;
| IBM 753&lt;br /&gt;
| Upravljanje magnetskim vrpcama.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetski bubanj&lt;br /&gt;
| IBM 733&lt;br /&gt;
| Dodatna memorija za brzi pristup.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetska jezgra (RAM)&lt;br /&gt;
| IBM 737&lt;br /&gt;
| Primarna memorija sustava (4096 × 36-bitnih riječi).&lt;br /&gt;
|-&lt;br /&gt;
| CRT zaslon&lt;br /&gt;
| IBM 740&lt;br /&gt;
| 21-inčni vektorski prikaz s dugom fosfornom postojanošću; korišten za vizualizaciju podataka.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aritmetička jedinica (AC i MQ) ===&lt;br /&gt;
Aritmetička jedinica sastojala se od dva glavna 36-bitna registra:&lt;br /&gt;
* &#039;&#039;&#039;AC (Accumulator)&#039;&#039;&#039; – glavni registar za aritmetiku.&lt;br /&gt;
* &#039;&#039;&#039;MQ (Multiplier/Quotient)&#039;&#039;&#039; – registar za množenje i dijeljenje.&lt;br /&gt;
&lt;br /&gt;
Ova dva registra zajedno su omogućavala učinkovite operacije nad velikim brojevima i pomičnim zarezom.&lt;br /&gt;
&lt;br /&gt;
=== Indeksni registri (XR1, XR2, XR4) ===&lt;br /&gt;
IBM 704 je koristio tri indeksna registra:&lt;br /&gt;
* &#039;&#039;&#039;XR1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Indeksni registri omogućavali su modifikaciju adresa, implementaciju petlji i rad s velikim poljima podataka. Ovo je bio preteča modernog adresiranja u procesorima.&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori (SI) ===&lt;br /&gt;
Sustav je imao 36 senzorskih indikatora koji su služili kao statusne zastavice:&lt;br /&gt;
* indikatori grešaka (overflow, divide check)&lt;br /&gt;
* indikatori stanja I/O uređaja&lt;br /&gt;
* korisnički definirani indikatori&lt;br /&gt;
&lt;br /&gt;
Programi su mogli testirati i postavljati SI bitove, što je omogućavalo primitivne oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
=== Instrukcijski format ===&lt;br /&gt;
Instrukcije su bile 36-bitne, s poljima:&lt;br /&gt;
* opkod&lt;br /&gt;
* adresa&lt;br /&gt;
* indeksni modifikator&lt;br /&gt;
* bitovi za uvjetno grananje&lt;br /&gt;
&lt;br /&gt;
Ovaj format omogućavao je fleksibilno adresiranje i kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Floating‑point implementacija ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je prvo komercijalno računalo koje je imalo ugrađenu hardversku podršku za aritmetiku s pomičnim zarezom. Ovo je bio ključni tehnološki iskorak koji je omogućio razvoj FORTRAN-a i znanstvenih aplikacija koje su zahtijevale visoku numeričku preciznost.&lt;br /&gt;
&lt;br /&gt;
Floating‑point brojevi u IBM 704 bili su pohranjeni u 36‑bitnim riječima, podijeljenima na dva glavna dijela:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Mantisa&#039;&#039;&#039; – 27 bitova  &lt;br /&gt;
* &#039;&#039;&#039;Eksponent&#039;&#039;&#039; – 8 bitova (excess‑128 format)  &lt;br /&gt;
* &#039;&#039;&#039;Znak&#039;&#039;&#039; – 1 bit&lt;br /&gt;
&lt;br /&gt;
=== Format floating‑point riječi ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Format floating‑point broja (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! Polje&lt;br /&gt;
! Duljina&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Znak mantise&lt;br /&gt;
| 1 bit&lt;br /&gt;
| Određuje pozitivan ili negativan broj.&lt;br /&gt;
|-&lt;br /&gt;
| Mantisa&lt;br /&gt;
| 27 bitova&lt;br /&gt;
| Normalizirana mantisa bez skrivenog bita.&lt;br /&gt;
|-&lt;br /&gt;
| Eksponent&lt;br /&gt;
| 8 bitova&lt;br /&gt;
| Excess‑128 format (stvarni eksponent = pohranjeni − 128).&lt;br /&gt;
|-&lt;br /&gt;
| Rezervirano&lt;br /&gt;
| 0 bitova&lt;br /&gt;
| Format je potpuno iskorišten; nema neiskorištenih bitova.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Excess‑128 eksponent ===&lt;br /&gt;
&lt;br /&gt;
Eksponent je pohranjen u obliku:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
stvarni_eksponent = pohranjeni_eksponent − 128&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj pristup omogućavao je jednostavnije usporedbe i normalizaciju brojeva.&lt;br /&gt;
&lt;br /&gt;
=== Normalizacija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 zahtijevao je da mantisa bude normalizirana tako da najviši bit mantise bude različit od nule.  &lt;br /&gt;
To je omogućavalo maksimalnu preciznost pri izračunima.&lt;br /&gt;
&lt;br /&gt;
=== Floating‑point operacije ===&lt;br /&gt;
&lt;br /&gt;
Računalo je podržavalo sljedeće operacije nad floating‑point brojevima:&lt;br /&gt;
&lt;br /&gt;
* zbrajanje (ADD)  &lt;br /&gt;
* oduzimanje (SUB)  &lt;br /&gt;
* množenje (MPY)  &lt;br /&gt;
* dijeljenje (DIV)&lt;br /&gt;
&lt;br /&gt;
Sve operacije koristile su aritmetičku jedinicu AC/MQ, pri čemu se rezultat normalizirao automatski.&lt;br /&gt;
&lt;br /&gt;
=== Primjer floating‑point operacije u assembleru ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj floating-point broj A&lt;br /&gt;
ADD B        / zbroji ga s B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Važnost floating‑point implementacije ===&lt;br /&gt;
&lt;br /&gt;
Hardverska podrška za pomični zarez bila je ključna za:&lt;br /&gt;
&lt;br /&gt;
* razvoj FORTRAN-a (1957.)&lt;br /&gt;
* balističke izračune&lt;br /&gt;
* aerodinamičke simulacije&lt;br /&gt;
* nuklearne proračune&lt;br /&gt;
* statističke modele&lt;br /&gt;
* rane znanstvene aplikacije NASA-e&lt;br /&gt;
&lt;br /&gt;
IBM 704 je time postavio standard koji će kasnije preuzeti svi moderni procesori.&lt;br /&gt;
&lt;br /&gt;
== Instrukcijski skup IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Glavne grupe instrukcija IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Grupa&lt;br /&gt;
! Primjeri&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Aritmetičke instrukcije&lt;br /&gt;
| ADD, SUB, MPY, DIV&lt;br /&gt;
| Operacije nad AC i MQ registrima; podrška za cijele brojeve i pomični zarez.&lt;br /&gt;
|-&lt;br /&gt;
| Logičke instrukcije&lt;br /&gt;
| CLA, CLM, COM&lt;br /&gt;
| Čišćenje, komplementiranje i manipulacija bitovima.&lt;br /&gt;
|-&lt;br /&gt;
| Uvjetno grananje&lt;br /&gt;
| TRA, TMI, TPL, TZE&lt;br /&gt;
| Skokovi ovisno o sadržaju AC ili MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Rad sa Sense Indicators&lt;br /&gt;
| TSI, SSI, RSI&lt;br /&gt;
| Testiranje, postavljanje i resetiranje statusnih bitova.&lt;br /&gt;
|-&lt;br /&gt;
| Indeksno adresiranje&lt;br /&gt;
| AXT, TXI&lt;br /&gt;
| Modifikacija adresa pomoću XR1, XR2, XR4.&lt;br /&gt;
|-&lt;br /&gt;
| Ulazno/izlazne instrukcije&lt;br /&gt;
| RDS, WRS, RWT&lt;br /&gt;
| Rad s magnetskom vrpcom, kartičnim čitačem i pisačem.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrola toka programa&lt;br /&gt;
| HLT, NOP&lt;br /&gt;
| Zaustavljanje programa, prazna instrukcija.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Opkodovi IBM 704 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Kompletan popis opkoda IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Opkod&lt;br /&gt;
! Mnemonik&lt;br /&gt;
! Grupa&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 000&lt;br /&gt;
| NOP&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Prazna instrukcija; ne radi ništa.&lt;br /&gt;
|-&lt;br /&gt;
| 001&lt;br /&gt;
| HLT&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Zaustavlja izvršavanje programa.&lt;br /&gt;
|-&lt;br /&gt;
| 002&lt;br /&gt;
| TRA&lt;br /&gt;
| Grananje&lt;br /&gt;
| Bezuvjetni skok na adresu.&lt;br /&gt;
|-&lt;br /&gt;
| 003&lt;br /&gt;
| TRN&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC negativan.&lt;br /&gt;
|-&lt;br /&gt;
| 004&lt;br /&gt;
| TMI&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC manji od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 005&lt;br /&gt;
| TPL&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC veći od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 006&lt;br /&gt;
| TZE&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC jednak nuli.&lt;br /&gt;
|-&lt;br /&gt;
| 007&lt;br /&gt;
| TOV&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je overflow zastavica postavljena.&lt;br /&gt;
|-&lt;br /&gt;
| 010&lt;br /&gt;
| ADD&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Zbrajanje sadržaja memorije s AC.&lt;br /&gt;
|-&lt;br /&gt;
| 011&lt;br /&gt;
| SUB&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Oduzimanje sadržaja memorije od AC.&lt;br /&gt;
|-&lt;br /&gt;
| 012&lt;br /&gt;
| MPY&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Množenje; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 013&lt;br /&gt;
| DIV&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Dijeljenje; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 014&lt;br /&gt;
| CLA&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 015&lt;br /&gt;
| CLM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 016&lt;br /&gt;
| COM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Komplementira AC.&lt;br /&gt;
|-&lt;br /&gt;
| 020&lt;br /&gt;
| SHL&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak ulijevo.&lt;br /&gt;
|-&lt;br /&gt;
| 021&lt;br /&gt;
| SHR&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak udesno.&lt;br /&gt;
|-&lt;br /&gt;
| 030&lt;br /&gt;
| AXT&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Učitava vrijednost u XR1, XR2 ili XR4.&lt;br /&gt;
|-&lt;br /&gt;
| 031&lt;br /&gt;
| TXI&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Dodaje vrijednost indeksnom registru.&lt;br /&gt;
|-&lt;br /&gt;
| 040&lt;br /&gt;
| RDS&lt;br /&gt;
| I/O&lt;br /&gt;
| Čitanje s magnetske vrpce.&lt;br /&gt;
|-&lt;br /&gt;
| 041&lt;br /&gt;
| WRS&lt;br /&gt;
| I/O&lt;br /&gt;
| Pisanje na magnetsku vrpcu.&lt;br /&gt;
|-&lt;br /&gt;
| 042&lt;br /&gt;
| RWT&lt;br /&gt;
| I/O&lt;br /&gt;
| Čekanje na I/O operaciju.&lt;br /&gt;
|-&lt;br /&gt;
| 050&lt;br /&gt;
| TSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Testira Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 051&lt;br /&gt;
| SSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Postavlja Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 052&lt;br /&gt;
| RSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Resetira Sense Indicator n.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Registri==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--             --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:88%;width:34em;&amp;quot;&lt;br /&gt;
|+ Registri u računalu IBM 704&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| style=&amp;quot;font-size:88%;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Podatkovni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | S&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | Q&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | P&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;14&amp;quot;| Akumulator&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | AC&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;1&amp;quot;| S&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;11&amp;quot;| Množitelj/Količnik&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | MQ&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;12&amp;quot;| Senzorni indikatori&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | SI&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 1&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR1 (XRA)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 2&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR2 (XRB)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 4 &lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR4 (XRC)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;14&amp;quot; | &#039;&#039;&#039;Brojač naredbi&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Brojač&amp;amp;nbsp;Naredbi&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| IC&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzorni indikatori&#039;&#039;&#039; - su posebni statusni bitovi u IBM 704 koj su se u praksi rabili za provjeru grešaka, grananje ovisno o stanju sustava, upravljanje perifernim jedinicama, te za signalizaciju posebnih događaja. Kroz njih programeri su mogli održavati stanje sustava, signalizirati određene uvjete tokom izvršavanje naredbi, čitanje i postavljanje naredbi i tako su služili za jednostane oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Sense Indicators (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! SI broj&lt;br /&gt;
! Naziv / funkcija&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Overflow flag&lt;br /&gt;
| Postavlja se pri prekoračenju rezultata u akumulatoru (AC) ili količniku (MQ).&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Divide check&lt;br /&gt;
| Signalizira pogrešku pri dijeljenju, uključujući dijeljenje nulom.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| I/O ready&lt;br /&gt;
| Uređaj spreman za prijenos podataka.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| I/O complete&lt;br /&gt;
| Završetak operacije ulaza/izlaza.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Tape mark&lt;br /&gt;
| Očitana oznaka kraja bloka na magnetskoj vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Printer ready&lt;br /&gt;
| Pisač spreman za rad.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Card reader ready&lt;br /&gt;
| Čitač kartica spreman.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Card punch ready&lt;br /&gt;
| Bušilica kartica spremna.&lt;br /&gt;
|-&lt;br /&gt;
| 8–15&lt;br /&gt;
| Peripheral flags&lt;br /&gt;
| Razni signali perifernih uređaja (disk, vrpca, pisač).&lt;br /&gt;
|-&lt;br /&gt;
| 16–35&lt;br /&gt;
| User-defined flags&lt;br /&gt;
| Zastavice koje programer može slobodno koristiti za logiku grananja.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Korištenje u IBM 704 assembleru ====&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao posebne instrukcije za rad sa Sense Indicators:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;TSI n&#039;&#039;&#039;&lt;br /&gt;
: Testira Sense Indicator &#039;&#039;n&#039;&#039;. Ako je postavljen, izvršavanje se nastavlja normalno; ako nije, preskače se sljedeća instrukcija.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3      / provjeri je li I/O complete&lt;br /&gt;
TRA DONE   / ako je postavljen, skoči na DONE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;SSI n&#039;&#039;&#039;&lt;br /&gt;
: Postavlja Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;RSI n&#039;&#039;&#039;&lt;br /&gt;
: Resetira Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 1      / provjeri divide check&lt;br /&gt;
TRA ERROR  / ako je SI1 = 1, idi na ERROR&lt;br /&gt;
&lt;br /&gt;
SSI 20     / postavi korisnički indikator 20&lt;br /&gt;
RSI 3      / resetiraj I/O complete indikator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Usporedba s modernim statusnim registrima ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! IBM 704 Sense Indicators&lt;br /&gt;
! Moderni statusni registri (x86, ARM, RISC-V)&lt;br /&gt;
|-&lt;br /&gt;
| 36 jednobitnih zastavica&lt;br /&gt;
| 8–32 bitni statusni registri&lt;br /&gt;
|-&lt;br /&gt;
| Ručno postavljanje i brisanje&lt;br /&gt;
| Automatsko postavljanje od strane ALU&lt;br /&gt;
|-&lt;br /&gt;
| Koriste se za I/O signalizaciju&lt;br /&gt;
| I/O signalizacija preko interrupt kontrolera&lt;br /&gt;
|-&lt;br /&gt;
| Jednostavne logičke zastavice&lt;br /&gt;
| Zastavice za aritmetiku, usporedbe, prekide&lt;br /&gt;
|-&lt;br /&gt;
| Programer koristi dio SI kao &amp;quot;user flags&amp;quot;&lt;br /&gt;
| Moderni jezici koriste varijable, strukture, objekte&lt;br /&gt;
|-&lt;br /&gt;
| Grananje preko TSI instrukcije&lt;br /&gt;
| Grananje preko CMP/JMP, BEQ/BNE, BLT/BGT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Primjeri IBM 704 assembler koda ==&lt;br /&gt;
&lt;br /&gt;
=== Zbrajanje dvaju brojeva ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj A u AC&lt;br /&gt;
ADD B        / dodaj B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Provjera negativnog broja ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA X        / učitaj X&lt;br /&gt;
TMI NEG      / ako je X &amp;lt; 0, idi na NEG&lt;br /&gt;
TRA DONE     / inače nastavi&lt;br /&gt;
NEG STO Y    / spremi negativnu vrijednost&lt;br /&gt;
DONE HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Množenje i dijeljenje ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A&lt;br /&gt;
MPY B        / AC*B → AC/MQ&lt;br /&gt;
DIV C        / (AC/MQ) / C → MQ (količnik), AC (ostatak)&lt;br /&gt;
STO Q        / spremi količnik&lt;br /&gt;
STO R        / spremi ostatak&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Korištenje Sense Indicators ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3        / provjeri I/O complete&lt;br /&gt;
TRA IO_OK    / ako je SI3 = 1, idi na IO_OK&lt;br /&gt;
SSI 20       / postavi korisnički indikator 20&lt;br /&gt;
IO_OK HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Performanse IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od najbržih znanstvenih računala svoje generacije. Njegova arhitektura s pomičnim zarezom, magnetskom jezgrom i specijaliziranim aritmetičkim registrima omogućavala je znatno bolje performanse u odnosu na prethodne modele IBM 701 i IBM 702. Sustav je bio optimiziran za matematičke operacije, simulacije, statističke izračune i obradu velikih numeričkih skupova podataka.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Performanse računala IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Brzina zbrajanja&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za izvršavanje jedne ADD instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina množenja&lt;br /&gt;
| ~20 μs&lt;br /&gt;
| Vrijeme za MPY instrukciju; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina dijeljenja&lt;br /&gt;
| ~38 μs&lt;br /&gt;
| Vrijeme za DIV instrukciju; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| Memorija&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Magnetska jezgra; pristup ~12 μs.&lt;br /&gt;
|-&lt;br /&gt;
| Ciklus instrukcije&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Prosječno vrijeme za dohvat i izvršavanje jednostavne instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina I/O operacija&lt;br /&gt;
| 7200 kartica/min (čitač)&lt;br /&gt;
| Kartični čitač i bušilica bili su glavni ulazno/izlazni sustavi.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| 12 500 znakovnih blokova/s&lt;br /&gt;
| Ovisno o uređaju; korišteno za masovno spremanje podataka.&lt;br /&gt;
|-&lt;br /&gt;
| Preciznost pomičnog zareza&lt;br /&gt;
| 27-bitni eksponent + 8-bitna mantisa&lt;br /&gt;
| Omogućavalo znanstvene izračune velike preciznosti.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pouzdanost ==&lt;br /&gt;
&lt;br /&gt;
Iako je IBM 704 bio znatno pouzdaniji od svog prethodnika IBM 701, i dalje je bio stroj temeljen na vakuumskim cijevima, što je značilo relativno česte kvarove prema današnjim standardima. Prosječno vrijeme između kvarova iznosilo je oko 8 sati, što je ograničavalo veličinu programa koje je bilo moguće kompajlirati ili izvršavati bez prekida.&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN kompajleri morali su biti iznimno učinkoviti jer bi preduga kompilacija mogla biti prekinuta kvarom sustava. Unatoč tome, IBM 704 je bio dovoljno pouzdan da postane temelj za razvoj FORTRAN-a, LISP-a, ranih neuralnih mreža i brojnih znanstvenih projekata.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Pouzdanost IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| MTBF (mean time between failure)&lt;br /&gt;
| ~8 sati&lt;br /&gt;
| Prosječno vrijeme rada prije kvara.&lt;br /&gt;
|-&lt;br /&gt;
| Usporedba s IBM 701&lt;br /&gt;
| ~30 minuta&lt;br /&gt;
| IBM 704 bio je znatno pouzdaniji od svog prethodnika.&lt;br /&gt;
|-&lt;br /&gt;
| Utjecaj na softver&lt;br /&gt;
| Ograničena veličina programa&lt;br /&gt;
| Kompilacije su morale biti kratke zbog mogućih kvarova.&lt;br /&gt;
|-&lt;br /&gt;
| Tehnologija&lt;br /&gt;
| Vakuumske cijevi&lt;br /&gt;
| Glavni uzrok kvarova i zagrijavanja sustava.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SAP asembler ==&lt;br /&gt;
&lt;br /&gt;
SAP (&#039;&#039;Symbolic Assembly Program&#039;&#039;) bio je službeni asembler za IBM 704 i predstavljao je jedan od najranijih i najutjecajnijih asemblera u povijesti računarstva. Razvijen je unutar IBM-a sredinom 1950-ih kako bi programerima omogućio pisanje simboličkog koda umjesto ručnog unošenja numeričkih opkoda i adresa.&lt;br /&gt;
&lt;br /&gt;
SAP je bio ključan za razvoj FORTRAN-a, LISP-a i mnogih ranih znanstvenih aplikacija, jer je omogućio jednostavnije pisanje, čitanje i održavanje programa na IBM 704.&lt;br /&gt;
&lt;br /&gt;
=== Značajke SAP asemblera ===&lt;br /&gt;
&lt;br /&gt;
SAP je imao nekoliko naprednih značajki za svoje vrijeme:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simboličke oznake&#039;&#039;&#039; – programeri su mogli koristiti imena umjesto numeričkih adresa.&lt;br /&gt;
* &#039;&#039;&#039;Automatsko izračunavanje adresa&#039;&#039;&#039; – asembler je sam određivao lokacije instrukcija.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za indeksne registre&#039;&#039;&#039; – XR1, XR2 i XR4 mogli su se koristiti u adresiranju.&lt;br /&gt;
* &#039;&#039;&#039;Jednostavna sintaksa&#039;&#039;&#039; – instrukcije su bile kratke i čitljive.&lt;br /&gt;
* &#039;&#039;&#039;Integracija s FORTRAN-om&#039;&#039;&#039; – FORTRAN kompajler generirao je SAP kod.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za floating‑point operacije&#039;&#039;&#039; – izravno korištenje AC/MQ jedinice.&lt;br /&gt;
&lt;br /&gt;
SAP je bio jedan od prvih asemblera koji je omogućio relativno visok stupanj apstrakcije u odnosu na strojni kod.&lt;br /&gt;
&lt;br /&gt;
=== Struktura SAP instrukcije ===&lt;br /&gt;
&lt;br /&gt;
Instrukcije su se sastojale od:&lt;br /&gt;
&lt;br /&gt;
* mnemonika (ADD, SUB, MPY, DIV, TRA…)&lt;br /&gt;
* adrese ili simbola&lt;br /&gt;
* opcionalnog indeksnog modifikatora&lt;br /&gt;
* komentara&lt;br /&gt;
&lt;br /&gt;
Primjer strukture:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
MNEMONIK  ADRESA,XR   / komentar&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Primjer SAP koda ===&lt;br /&gt;
&lt;br /&gt;
Slijedi povijesno točan primjer SAP koda za IBM 704:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
A      DEC 5          / definiraj konstantu A&lt;br /&gt;
B      DEC 7          / definiraj konstantu B&lt;br /&gt;
C      BSS 1          / rezerviraj prostor za rezultat&lt;br /&gt;
&lt;br /&gt;
       CLA A          / učitaj A u AC&lt;br /&gt;
       ADD B          / dodaj B&lt;br /&gt;
       STO C          / spremi rezultat u C&lt;br /&gt;
       HLT            / zaustavi program&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Korištenje indeksnih registara ===&lt;br /&gt;
&lt;br /&gt;
SAP je omogućavao jednostavno korištenje XR1, XR2 i XR4:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
LOOP   CLA ARRAY,XR1  / učitaj element polja&lt;br /&gt;
       ADD SUM        / dodaj na sumu&lt;br /&gt;
       STO SUM        / spremi rezultat&lt;br /&gt;
       TXI XR1,1      / povećaj indeks&lt;br /&gt;
       TPL LOOP       / ako je pozitivan, nastavi petlju&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio preteča modernih petlji u visokorazinskim jezicima.&lt;br /&gt;
&lt;br /&gt;
=== SAP i FORTRAN ===&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN kompajler generirao je SAP kod koji se zatim prevodio u strojni kod IBM 704.  &lt;br /&gt;
Zbog toga je SAP bio ključan za:&lt;br /&gt;
&lt;br /&gt;
* optimizaciju FORTRAN programa,&lt;br /&gt;
* implementaciju DO petlji,&lt;br /&gt;
* rad s poljima i matricama,&lt;br /&gt;
* floating‑point operacije,&lt;br /&gt;
* kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
=== SAP i LISP ===&lt;br /&gt;
&lt;br /&gt;
Prva implementacija LISP-a (1958.) bila je napisana upravo u SAP asembleru.  &lt;br /&gt;
SAP je omogućio:&lt;br /&gt;
&lt;br /&gt;
* manipulaciju cons‑struktura,&lt;br /&gt;
* implementaciju CAR i CDR operacija,&lt;br /&gt;
* rekurziju,&lt;br /&gt;
* dinamičko upravljanje memorijom.&lt;br /&gt;
&lt;br /&gt;
Bez SAP-a, LISP ne bi mogao biti implementiran na IBM 704.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj SAP-a ===&lt;br /&gt;
&lt;br /&gt;
SAP je bio jedan od najvažnijih asemblera 1950-ih i 1960-ih.  &lt;br /&gt;
Njegov utjecaj vidljiv je u:&lt;br /&gt;
&lt;br /&gt;
* razvoju FORTRAN-a,&lt;br /&gt;
* nastanku LISP-a,&lt;br /&gt;
* ranim AI projektima,&lt;br /&gt;
* znanstvenim simulacijama,&lt;br /&gt;
* razvoju modernih asemblera i kompajlera.&lt;br /&gt;
&lt;br /&gt;
SAP je postavio temelje za simboličko programiranje i bio je ključni alat u zlatnom dobu ranog računarstva.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju LISP-a ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je ključnu ulogu u nastanku programskog jezika LISP, jednog od najvažnijih jezika u povijesti računarstva. LISP je 1958. godine razvio John McCarthy na MIT-u, a upravo je IBM 704 bio prvo računalo na kojem je LISP implementiran i izvršavan.&lt;br /&gt;
&lt;br /&gt;
Razvoj LISP-a bio je izravno povezan s arhitekturom IBM 704, posebno s njegovim:&lt;br /&gt;
* 36-bitnim riječima,&lt;br /&gt;
* aritmetičkom jedinicom AC/MQ,&lt;br /&gt;
* indeksnim registrima,&lt;br /&gt;
* mogućnošću manipulacije adresama,&lt;br /&gt;
* podrškom za uvjetno grananje,&lt;br /&gt;
* te fleksibilnim instrukcijskim formatom.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio pogodan za LISP ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je nekoliko arhitekturnih značajki koje su se pokazale idealnima za implementaciju LISP-a:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;36-bitne riječi&#039;&#039;&#039; omogućavale su učinkovito predstavljanje parova (cons cells).&lt;br /&gt;
* &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039; olakšavali su rad s listama i rekurzivnim strukturama.&lt;br /&gt;
* &#039;&#039;&#039;Instrukcije grananja&#039;&#039;&#039; (TRA, TMI, TPL, TZE) omogućavale su jednostavnu implementaciju rekurzije.&lt;br /&gt;
* &#039;&#039;&#039;Magnetska jezgra&#039;&#039;&#039; bila je dovoljno brza za dinamičke strukture podataka.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za floating-point&#039;&#039;&#039; olakšala je rad s matematičkim funkcijama.&lt;br /&gt;
&lt;br /&gt;
McCarthy je iskoristio ove mogućnosti kako bi implementirao osnovne LISP konstrukte: CONS, CAR, CDR, rekurziju, lambda‑izraze i funkcije višeg reda.&lt;br /&gt;
&lt;br /&gt;
=== Prva implementacija LISP-a ===&lt;br /&gt;
&lt;br /&gt;
Prva verzija LISP-a bila je napisana u SAP asembleru za IBM 704.  &lt;br /&gt;
Ova implementacija uključivala je:&lt;br /&gt;
&lt;br /&gt;
* interpreter,&lt;br /&gt;
* evaluator,&lt;br /&gt;
* upravljanje memorijom,&lt;br /&gt;
* implementaciju cons‑struktura,&lt;br /&gt;
* osnovne matematičke funkcije,&lt;br /&gt;
* te mehanizme za rekurziju i funkcije višeg reda.&lt;br /&gt;
&lt;br /&gt;
LISP je na IBM 704 radio kao interpretirani jezik, a programi su se izvršavali izravno nad strukturom lista u memoriji.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je omogućio LISP-u da postane prvi široko korišteni jezik za:&lt;br /&gt;
&lt;br /&gt;
* umjetnu inteligenciju,&lt;br /&gt;
* simboličku manipulaciju,&lt;br /&gt;
* matematičku logiku,&lt;br /&gt;
* rane ekspertske sustave,&lt;br /&gt;
* istraživanje strojnog učenja.&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, LISP bi vjerojatno bio znatno drugačiji — ili bi se pojavio mnogo kasnije.&lt;br /&gt;
&lt;br /&gt;
=== Primjer ranog LISP izraza (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Iako se LISP nije zapisivao u assembleru, njegovi izrazi su se prevodili u SAP kod za IBM 704.  &lt;br /&gt;
Primjer jednostavne LISP funkcije:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(define (square x)&lt;br /&gt;
  (* x x))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj izraz bi se na IBM 704 interno pretvorio u operacije nad cons‑struktura i pozive aritmetičkih instrukcija MPY i ADD.&lt;br /&gt;
&lt;br /&gt;
=== Utjecaj na daljnji razvoj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je bio platforma na kojoj su nastale ključne ideje:&lt;br /&gt;
&lt;br /&gt;
* automatsko upravljanje memorijom,&lt;br /&gt;
* rekurzija kao temeljni mehanizam,&lt;br /&gt;
* funkcije višeg reda,&lt;br /&gt;
* lambda‑račun,&lt;br /&gt;
* simbolička obrada podataka.&lt;br /&gt;
&lt;br /&gt;
Ove ideje postale su temelj modernih programskih jezika, od Schemea i Prologa do Pythona i JavaScripta.&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju FORTRAN-a ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je presudnu ulogu u nastanku FORTRAN-a (Formula Translation), prvog široko korištenog visokorazinskog programskog jezika. FORTRAN je razvijen 1957. godine u IBM-u pod vodstvom Johna Backusa, a IBM 704 bio je prvo računalo na kojem je FORTRAN implementiran, kompajliran i izvršavan.&lt;br /&gt;
&lt;br /&gt;
Arhitektura IBM 704 izravno je oblikovala dizajn FORTRAN-a. Njegova podrška za aritmetiku s pomičnim zarezom, indeksne registre, statusne indikatore i 36-bitne riječi omogućila je stvaranje jezika koji je bio optimiziran za znanstvene i tehničke izračune.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio ključan za FORTRAN ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 posjedovao je nekoliko arhitekturnih značajki koje su bile presudne za razvoj FORTRAN-a:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Hardverska floating‑point jedinica&#039;&#039;&#039; – omogućila je izravnu podršku za matematičke operacije.&lt;br /&gt;
* &#039;&#039;&#039;Aritmetički registri AC i MQ&#039;&#039;&#039; – olakšali su implement&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju ranih neuralnih mreža ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je važnu ulogu u razvoju najranijih modela umjetnih neuronskih mreža tijekom kasnih 1950-ih i ranih 1960-ih. Iako su ti modeli bili daleko jednostavniji od današnjih dubokih mreža, IBM 704 je bio jedno od rijetkih računala koje je imalo dovoljno memorije, brzine i aritmetičkih mogućnosti da može izvoditi simulacije neuronskih mreža u praksi.&lt;br /&gt;
&lt;br /&gt;
Rani pioniri umjetne inteligencije, uključujući Franka Rosenblatta, Herberta Simona, Allena Newella i istraživače s MIT-a i Cornell Aeronautical Laboratory, koristili su IBM 704 za implementaciju i testiranje prvih algoritama koji su simulirali neuronsko učenje.&lt;br /&gt;
&lt;br /&gt;
=== IBM 704 i perceptron ===&lt;br /&gt;
&lt;br /&gt;
Najvažniji doprinos IBM 704 razvoju neuralnih mreža bio je u implementaciji i simulaciji **Rosenblattovog perceptrona**, prvog formalnog modela neuronske mreže koji je mogao učiti iz podataka.&lt;br /&gt;
&lt;br /&gt;
IBM 704 omogućio je:&lt;br /&gt;
&lt;br /&gt;
* izračun težina perceptrona,&lt;br /&gt;
* simulaciju učenja kroz iteracije,&lt;br /&gt;
* rad s matricama i vektorima,&lt;br /&gt;
* evaluaciju linearnih klasifikatora,&lt;br /&gt;
* testiranje različitih skupova podataka.&lt;br /&gt;
&lt;br /&gt;
Iako je perceptron kasnije imao i hardversku implementaciju (Mark I Perceptron), IBM 704 bio je ključan za **prve softverske simulacije** koje su potvrdile da se neuronske mreže mogu trenirati računalno.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio pogodan za neuralne mreže ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je nekoliko arhitekturnih značajki koje su bile iznimno korisne za rane AI eksperimente:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Floating‑point jedinica&#039;&#039;&#039; – omogućila je precizne izračune težina i aktivacijskih funkcija.&lt;br /&gt;
* &#039;&#039;&#039;Aritmetički registri AC/MQ&#039;&#039;&#039; – ubrzali su operacije nad vektorima.&lt;br /&gt;
* &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039; – olakšali su rad s matricama i iteracijama.&lt;br /&gt;
* &#039;&#039;&#039;Magnetska jezgra&#039;&#039;&#039; – bila je dovoljno brza za ponavljajuće izračune.&lt;br /&gt;
* &#039;&#039;&#039;Instrukcije grananja&#039;&#039;&#039; – omogućile su implementaciju algoritama učenja.&lt;br /&gt;
&lt;br /&gt;
Zbog toga je IBM 704 bio jedno od prvih računala koje je moglo izvoditi **iterativne algoritme učenja**, temeljne za neuralne mreže.&lt;br /&gt;
&lt;br /&gt;
=== Rani eksperimenti umjetne inteligencije ===&lt;br /&gt;
&lt;br /&gt;
Na IBM 704 provodili su se rani eksperimenti koji su uključivali:&lt;br /&gt;
&lt;br /&gt;
* simulaciju perceptrona,&lt;br /&gt;
* klasifikaciju jednostavnih vizualnih uzoraka,&lt;br /&gt;
* prepoznavanje znakova,&lt;br /&gt;
* rane oblike strojne percepcije,&lt;br /&gt;
* istraživanje linearnih i nelinearnih funkcija aktivacije.&lt;br /&gt;
&lt;br /&gt;
Ovi eksperimenti bili su temelj za kasniji razvoj:&lt;br /&gt;
&lt;br /&gt;
* višeslojnih perceptrona,&lt;br /&gt;
* backpropagation algoritma,&lt;br /&gt;
* dubokog učenja,&lt;br /&gt;
* računalnog vida.&lt;br /&gt;
&lt;br /&gt;
=== Primjer jednostavne perceptronske iteracije (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći pseudokod prikazuje kako je perceptron bio implementiran na IBM 704:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA W1        / učitaj težinu&lt;br /&gt;
MPY X1        / pomnoži s ulazom&lt;br /&gt;
ADD SUM       / dodaj na akumuliranu sumu&lt;br /&gt;
STO SUM       / spremi novu vrijednost&lt;br /&gt;
&lt;br /&gt;
... ponavljati za sve ulaze ...&lt;br /&gt;
&lt;br /&gt;
CLA SUM&lt;br /&gt;
TMI UPDATE    / ako je pogreška negativna, ažuriraj težine&lt;br /&gt;
TPL UPDATE    / ako je pogreška pozitivna, također ažuriraj&lt;br /&gt;
&lt;br /&gt;
UPDATE:&lt;br /&gt;
ADD ERROR     / korekcija težine&lt;br /&gt;
STO W1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio jedan od prvih primjera **računalnog učenja** u povijesti.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je ključan za rani razvoj umjetne inteligencije jer je:&lt;br /&gt;
&lt;br /&gt;
* omogućio prve računalne simulacije neuronskih mreža,&lt;br /&gt;
* bio platforma za perceptron i rane modele učenja,&lt;br /&gt;
* omogućio istraživanje algoritama koji su kasnije postali temelj dubokog učenja,&lt;br /&gt;
* povezao AI istraživanje s praktičnim računalnim sustavima.&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, razvoj ranih neuralnih mreža bio bi znatno sporiji i ograničeniji.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u ranoj robotici ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je važnu ulogu u razvoju najranijih oblika robotike i automatizacije tijekom kasnih 1950-ih i ranih 1960-ih. Iako se u to vrijeme pojam „robotika“ tek počeo pojavljivati u znanstvenoj literaturi, IBM 704 bio je jedno od prvih računala koje je moglo upravljati mehaničkim sustavima, analizirati senzorske podatke i izvoditi algoritme koji su predstavljali preteču modernog upravljanja robotima.&lt;br /&gt;
&lt;br /&gt;
Rani robotski sustavi bili su primitivni u odnosu na današnje, ali IBM 704 je omogućio:&lt;br /&gt;
&lt;br /&gt;
* upravljanje aktuatorima i elektromehaničkim uređajima,&lt;br /&gt;
* obradu ulaznih signala iz senzora,&lt;br /&gt;
* simulaciju kretanja i kontrolnih petlji,&lt;br /&gt;
* rane eksperimente u automatskom upravljanju,&lt;br /&gt;
* integraciju s vizualnim sustavima (CRT prikaz IBM 740).&lt;br /&gt;
&lt;br /&gt;
=== Rani eksperimenti automatizacije ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 korišten je u laboratorijima i istraživačkim centrima za:&lt;br /&gt;
&lt;br /&gt;
* upravljanje robotskim manipulatorima,&lt;br /&gt;
* simulaciju kinematike i dinamike,&lt;br /&gt;
* upravljanje servo‑motorima,&lt;br /&gt;
* automatizaciju industrijskih procesa,&lt;br /&gt;
* rane oblike povratne sprege (feedback control).&lt;br /&gt;
&lt;br /&gt;
Ovi sustavi nisu bili roboti u modernom smislu, ali su predstavljali ključne korake prema:&lt;br /&gt;
&lt;br /&gt;
* numeričkom upravljanju strojevima (NC machines),&lt;br /&gt;
* automatskim manipulatorima,&lt;br /&gt;
* sustavima za automatsko pozicioniranje,&lt;br /&gt;
* ranim oblicima cybernetike.&lt;br /&gt;
&lt;br /&gt;
=== IBM 704 i cybernetika ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je često korišten u istraživanjima inspiriranim radom Norberta Wienera, osnivača cybernetike.  &lt;br /&gt;
Sustav je omogućavao:&lt;br /&gt;
&lt;br /&gt;
* simulaciju povratne sprege,&lt;br /&gt;
* analizu stabilnosti sustava,&lt;br /&gt;
* implementaciju kontrolnih algoritama,&lt;br /&gt;
* rane oblike adaptivnog upravljanja.&lt;br /&gt;
&lt;br /&gt;
Ovo je bilo ključno za razvoj robotskih sustava koji se mogu prilagođavati promjenama u okruženju.&lt;br /&gt;
&lt;br /&gt;
=== Vizualni sustavi i IBM 740 ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 se mogao povezati s CRT zaslonom IBM 740, koji je omogućavao:&lt;br /&gt;
&lt;br /&gt;
* prikaz vektorskih grafika,&lt;br /&gt;
* vizualizaciju putanja kretanja,&lt;br /&gt;
* prikaz senzorskih podataka,&lt;br /&gt;
* rane eksperimente u računalnom vidu.&lt;br /&gt;
&lt;br /&gt;
Iako primitivni, ovi sustavi bili su preteča kasnijih robotskih vizualnih sustava.&lt;br /&gt;
&lt;br /&gt;
=== Primjer jednostavne kontrolne petlje (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći SAP kod prikazuje kako je IBM 704 mogao implementirati jednostavnu kontrolnu petlju za upravljanje aktuatorom:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
READSENSOR  RDS SENS        / očitaj senzor&lt;br /&gt;
           CLA SENS        / učitaj vrijednost&lt;br /&gt;
           SUB TARGET      / usporedi s ciljem&lt;br /&gt;
           TPL INCREASE    / ako je pozitivno, povećaj izlaz&lt;br /&gt;
           TMI DECREASE    / ako je negativno, smanji izlaz&lt;br /&gt;
&lt;br /&gt;
INCREASE   ADD STEP        / povećaj upravljački signal&lt;br /&gt;
           STO ACTUATOR&lt;br /&gt;
           TRA LOOP&lt;br /&gt;
&lt;br /&gt;
DECREASE   SUB STEP        / smanji upravljački signal&lt;br /&gt;
           STO ACTUATOR&lt;br /&gt;
           TRA LOOP&lt;br /&gt;
&lt;br /&gt;
LOOP       TRA READSENSOR  / ponovi petlju&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio jedan od prvih primjera računalno upravljanih mehaničkih sustava.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je ključan za rani razvoj robotike jer je:&lt;br /&gt;
&lt;br /&gt;
* omogućio prve računalne simulacije upravljanja strojevima,&lt;br /&gt;
* bio platforma za cybernetičke eksperimente,&lt;br /&gt;
* omogućio integraciju senzora i aktuatora,&lt;br /&gt;
* pružio temelj za numeričko upravljanje strojevima (NC),&lt;br /&gt;
* povezao mehaniku, elektroniku i računalne algoritme.&lt;br /&gt;
&lt;br /&gt;
IBM 704 je time postavio temelje za kasniji razvoj industrijskih robota, autonomnih sustava i modernih robotskih tehnologija.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u ranom računalnom vidu ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je važnu ulogu u najranijim eksperimentima računalnog vida tijekom kasnih 1950-ih i ranih 1960-ih. Iako se računalni vid kao disciplina tek počeo formirati, IBM 704 bio je jedno od rijetkih računala koje je imalo dovoljno memorije, aritmetičke snage i mogućnosti prikaza da može obrađivati jednostavne vizualne podatke.&lt;br /&gt;
&lt;br /&gt;
Rani eksperimenti računalnog vida bili su usko povezani s istraživanjima umjetne inteligencije, perceptrona i robotike, a IBM 704 služio je kao platforma za:&lt;br /&gt;
&lt;br /&gt;
* prepoznavanje jednostavnih uzoraka,&lt;br /&gt;
* klasifikaciju vizualnih znakova,&lt;br /&gt;
* obradu digitaliziranih slika niske rezolucije,&lt;br /&gt;
* vizualizaciju podataka na CRT zaslonu IBM 740,&lt;br /&gt;
* rane eksperimente u strojnoj percepciji.&lt;br /&gt;
&lt;br /&gt;
=== IBM 704 i CRT zaslon IBM 740 ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 se mogao povezati s vektorskim CRT zaslonom IBM 740, koji je omogućavao:&lt;br /&gt;
&lt;br /&gt;
* prikaz linija, oblika i grafičkih uzoraka,&lt;br /&gt;
* vizualizaciju rezultata algoritama,&lt;br /&gt;
* prikaz putanja kretanja u robotskim sustavima,&lt;br /&gt;
* rane oblike grafičke analize.&lt;br /&gt;
&lt;br /&gt;
Iako primitivni, ovi sustavi bili su preteča kasnijih grafičkih terminala i vizualnih procesora.&lt;br /&gt;
&lt;br /&gt;
=== Rani eksperimenti prepoznavanja uzoraka ===&lt;br /&gt;
&lt;br /&gt;
Na IBM 704 provodili su se rani eksperimenti koji su uključivali:&lt;br /&gt;
&lt;br /&gt;
* prepoznavanje slova i brojeva,&lt;br /&gt;
* klasifikaciju jednostavnih geometrijskih oblika,&lt;br /&gt;
* analizu kontrasta i rubova,&lt;br /&gt;
* rane oblike segmentacije slike.&lt;br /&gt;
&lt;br /&gt;
Podaci su se obično unosili preko:&lt;br /&gt;
&lt;br /&gt;
* digitaliziranih kartica,&lt;br /&gt;
* ručno kodiranih matrica piksela,&lt;br /&gt;
* senzorskih uređaja povezanih s robotima.&lt;br /&gt;
&lt;br /&gt;
=== Veza s perceptronom i neuralnim mrežama ===&lt;br /&gt;
&lt;br /&gt;
Rosenblattov perceptron, koji je IBM 704 koristio za simulacije učenja, bio je izravno primijenjen na rane zadatke računalnog vida:&lt;br /&gt;
&lt;br /&gt;
* klasifikacija vizualnih uzoraka,&lt;br /&gt;
* prepoznavanje znakova,&lt;br /&gt;
* jednostavni modeli prepoznavanja oblika.&lt;br /&gt;
&lt;br /&gt;
IBM 704 omogućio je iterativno treniranje perceptrona nad vizualnim podacima, što je bio jedan od prvih primjera **računalnog učenja iz slike**.&lt;br /&gt;
&lt;br /&gt;
=== Primjer jednostavne vizualne analize (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći SAP kod prikazuje kako je IBM 704 mogao analizirati jednostavnu matricu piksela:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA PIXEL      / učitaj vrijednost piksela&lt;br /&gt;
SUB THRESH     / usporedi s pragom&lt;br /&gt;
TPL BRIGHT     / ako je veće od praga → svijetli piksel&lt;br /&gt;
TMI DARK       / ako je manje → tamni piksel&lt;br /&gt;
&lt;br /&gt;
BRIGHT STO OUT1&lt;br /&gt;
TRA NEXT&lt;br /&gt;
&lt;br /&gt;
DARK   STO OUT0&lt;br /&gt;
NEXT   TRA LOOP&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio jedan od prvih primitivnih algoritama za binarnu segmentaciju slike.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je ključan za rani razvoj računalnog vida jer je:&lt;br /&gt;
&lt;br /&gt;
* omogućio prve računalne eksperimente prepoznavanja uzoraka,&lt;br /&gt;
* bio platforma za vizualne simulacije u robotici,&lt;br /&gt;
* povezao neuralne mreže s vizualnim podacima,&lt;br /&gt;
* omogućio prikaz grafike na CRT zaslonu,&lt;br /&gt;
* postavio temelje za kasniji razvoj računalnog vida u 1960-ima i 1970-ima.&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, rani razvoj računalnog vida bio bi znatno sporiji i ograničeniji.&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju rane računalne glazbe ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je iznimno važnu ulogu u povijesti računalne glazbe. Bio je prvo računalo koje je ikada generiralo glazbu sintetički, koristeći digitalne algoritme za stvaranje zvuka. Ovaj povijesni događaj zbio se 1957. godine na Bell Labsu, kada su Max Mathews i njegov tim razvili program &#039;&#039;&#039;MUSIC I&#039;&#039;&#039; – prvi računalni sustav za digitalnu sintezu zvuka.&lt;br /&gt;
&lt;br /&gt;
IBM 704 je time postao temelj cijelog područja računalne glazbe, digitalne sinteze, elektroničke glazbe i kasnije MIDI tehnologije.&lt;br /&gt;
&lt;br /&gt;
=== MUSIC I – prvi računalni glazbeni program ===&lt;br /&gt;
&lt;br /&gt;
Max Mathews je 1957. na IBM 704 napisao program &#039;&#039;&#039;MUSIC I&#039;&#039;&#039;, koji je:&lt;br /&gt;
&lt;br /&gt;
* generirao digitalne valne oblike,&lt;br /&gt;
* sintetizirao tonove i melodije,&lt;br /&gt;
* omogućio kontrolu frekvencije, amplitude i trajanja,&lt;br /&gt;
* stvarao zvuk numeričkim izračunima, a ne analognom elektronikom.&lt;br /&gt;
&lt;br /&gt;
Ovo je bio prvi put u povijesti da je glazba nastala isključivo računalnim izračunom.&lt;br /&gt;
&lt;br /&gt;
Kasnije verzije (MUSIC II, III, IV, V) postale su temelj modernih glazbenih sintesajzera i digitalnih audio sustava.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio pogodan za glazbenu sintezu ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je nekoliko ključnih značajki koje su omogućile digitalnu sintezu zvuka:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Floating‑point jedinica&#039;&#039;&#039; – omogućila precizne izračune valnih oblika.&lt;br /&gt;
* &#039;&#039;&#039;Brza magnetska jezgra&#039;&#039;&#039; – omogućila generiranje uzoraka u stvarnom vremenu (za to doba).&lt;br /&gt;
* &#039;&#039;&#039;Aritmetička jedinica AC/MQ&#039;&#039;&#039; – ubrzala izračune sinusnih i drugih funkcija.&lt;br /&gt;
* &#039;&#039;&#039;Instrukcijski skup optimiziran za matematičke operacije&#039;&#039;&#039; – savršen za DSP (digital signal processing).&lt;br /&gt;
* &#039;&#039;&#039;Mogućnost generiranja velikih nizova podataka&#039;&#039;&#039; – potrebnih za audio uzorke.&lt;br /&gt;
&lt;br /&gt;
IBM 704 je tako postao prvo računalo koje je moglo generirati digitalni zvuk dovoljno brzo da se može rekonstruirati na analognom pretvaraču.&lt;br /&gt;
&lt;br /&gt;
=== Prva računalno generirana pjesma ===&lt;br /&gt;
&lt;br /&gt;
Prvi glazbeni komad generiran na IBM 704 bio je jednostavan ton i kratka melodijska sekvenca.  &lt;br /&gt;
Kasnije su generirani:&lt;br /&gt;
&lt;br /&gt;
* jednostavni glazbeni motivi,&lt;br /&gt;
* kratke melodije,&lt;br /&gt;
* eksperimentalni zvukovi,&lt;br /&gt;
* rani oblici elektroničke glazbe.&lt;br /&gt;
&lt;br /&gt;
Ovi eksperimenti bili su preteča:&lt;br /&gt;
&lt;br /&gt;
* digitalnih sintesajzera,&lt;br /&gt;
* računalne glazbene kompozicije,&lt;br /&gt;
* algoritamske glazbe,&lt;br /&gt;
* elektroničke glazbe 1960-ih i 1970-ih.&lt;br /&gt;
&lt;br /&gt;
=== Primjer generiranja tona (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći SAP kod ilustrira kako je IBM 704 mogao generirati digitalni uzorak sinusnog vala:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA FREQ         / učitaj frekvenciju&lt;br /&gt;
MPY TIME         / pomnoži s vremenom&lt;br /&gt;
CALL SIN         / pozovi sinusnu funkciju&lt;br /&gt;
STO SAMPLE       / spremi uzorak&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj uzorak bi se zatim slao na digitalno‑analogni pretvarač.&lt;br /&gt;
&lt;br /&gt;
=== Utjecaj na glazbu i tehnologiju ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao ogroman utjecaj na razvoj glazbene tehnologije:&lt;br /&gt;
&lt;br /&gt;
* postavio je temelje digitalne sinteze,&lt;br /&gt;
* omogućio razvoj računalne kompozicije,&lt;br /&gt;
* inspirirao elektroničku glazbu,&lt;br /&gt;
* doveo do nastanka glazbenih jezika (MUSIC V, Csound),&lt;br /&gt;
* utjecao na razvoj MIDI standarda,&lt;br /&gt;
* otvorio put modernim DAW sustavima (Ableton, Logic, Pro Tools).&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, digitalna glazba bi se pojavila mnogo kasnije – ili u potpuno drugačijem obliku.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je bio:&lt;br /&gt;
&lt;br /&gt;
* prvo računalo koje je generiralo glazbu,&lt;br /&gt;
* temelj digitalne sinteze,&lt;br /&gt;
* ključni alat za Maxa Mathewsa, „oca računalne glazbe“,&lt;br /&gt;
* preteča svih modernih glazbenih algoritama, sintesajzera i audio procesora.&lt;br /&gt;
&lt;br /&gt;
Njegova uloga u glazbenoj povijesti jednako je važna kao i njegova uloga u razvoju FORTRAN-a, LISP-a, robotike i neuralnih mreža.&lt;br /&gt;
&lt;br /&gt;
==Izvori==&lt;br /&gt;
{{izvori}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorija:IBM]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787639</id>
		<title>IBM 704</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787639"/>
		<updated>2026-07-07T10:11:53Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Povijesni značaj */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;IBM 704&#039;&#039;&#039; ime je za računalo prve generacije koje je razvila tvrtka [[IBM]] i jedan je iz serije računala IBM 700. Ovo računalo se proizvodilo od 1954. do 1964. godine.&amp;lt;ref&amp;gt;https://www.ibm.com/history/700&amp;lt;/ref&amp;gt;. Povijesna važnost ovog računala jest da je na njemu bio razvijen programski jezik [[FORTRAN]] i [[LISP]] te SAP asembler. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Povijest razvoja IBM 700 serije ==&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija bila je prva generacija komercijalnih znanstvenih računala koju je IBM razvio početkom 1950-ih. Serija je započela s modelom IBM 701 (1952.), poznatim kao „Defense Calculator“, koji je bio namijenjen vojnoj i zrakoplovnoj industriji.&lt;br /&gt;
&lt;br /&gt;
* IBM 702 (1953.) bio je poslovno orijentiran sustav, dok je IBM 703 bio eksperimentalni model.&lt;br /&gt;
* IBM 704 je postao temelj za razvoj FORTRAN-a (1957.), prvog visokorazinskog programskog jezika.&lt;br /&gt;
&lt;br /&gt;
Pravi tehnološki iskorak dogodio se s modelom &#039;&#039;&#039;IBM 704&#039;&#039;&#039; (1954.), prvim računalom koje je podržavalo:&lt;br /&gt;
* aritmetiku s pomičnim zarezom,&lt;br /&gt;
* indeksne registre,&lt;br /&gt;
* statusne indikatore,&lt;br /&gt;
* magnetsku jezgru kao primarnu memoriju.&lt;br /&gt;
&lt;br /&gt;
Serija se nastavila s modelima IBM 709 (1958.) i IBM 7090 (1959.), koji su bili tranzistorski nasljednici i koristili se u NASA-i, NORAD-u i velikim znanstvenim centrima.&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija ostavila je dubok trag u povijesti računarstva, postavivši standarde arhitekture koji su se zadržali desetljećima.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arhitektura IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od prvih komercijalnih računala koje je uvodilo napredne koncepte arhitekture, uključujući rad s pomičnim zarezom, indeksne registre i statusne indikatore. Sustav je bio dizajniran za znanstvene i tehničke izračune, što ga je činilo ključnim alatom u laboratorijima, sveučilištima i ranim zrakoplovnim projektima.&lt;br /&gt;
&lt;br /&gt;
=== Memorija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 koristio je magnetsku jezgru kao primarnu memoriju, što je u to vrijeme predstavljalo veliki tehnološki napredak u odnosu na Williamsove cijevi korištene u IBM-u 701. Magnetska jezgra bila je brža, pouzdanija i omogućavala stabilno zadržavanje podataka bez potrebe za stalnim osvježavanjem.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Memorijske karakteristike IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Vrsta memorije&lt;br /&gt;
| Magnetska jezgra&lt;br /&gt;
| Stabilna, brza i pouzdana tehnologija za 1950-e.&lt;br /&gt;
|-&lt;br /&gt;
| Kapacitet&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Ukupno 147 456 bitova (18 432 bajta).&lt;br /&gt;
|-&lt;br /&gt;
| Vrijeme pristupa&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za čitanje ili pisanje jedne riječi.&lt;br /&gt;
|-&lt;br /&gt;
| Format riječi&lt;br /&gt;
| 36-bitna riječ&lt;br /&gt;
| Koristi se za instrukcije, podatke i floating-point brojeve.&lt;br /&gt;
|-&lt;br /&gt;
| Floating-point format&lt;br /&gt;
| 8-bitni eksponent + 27-bitna mantisa&lt;br /&gt;
| Bez skrivenog bita; excess-128 eksponent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Periferni uređaji ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 podržavao je širok spektar perifernih uređaja, što ga je činilo pogodnim za znanstvene, tehničke i administrativne zadatke. Ulazno/izlazni sustav bio je temeljen na magnetskim vrpcama, kartičnim čitačima i pisačima, uz mogućnost prikaza podataka na CRT zaslonima.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Periferni uređaji IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Uređaj&lt;br /&gt;
! Model&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Čitač kartica&lt;br /&gt;
| IBM 711&lt;br /&gt;
| Učitava programe i podatke s bušenih kartica.&lt;br /&gt;
|-&lt;br /&gt;
| Pisač&lt;br /&gt;
| IBM 716&lt;br /&gt;
| Ispisuje tekstualni izlaz; glavni uređaj za ljudsko čitanje rezultata.&lt;br /&gt;
|-&lt;br /&gt;
| Bušilica kartica&lt;br /&gt;
| IBM 721&lt;br /&gt;
| Zapisuje podatke na bušene kartice.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| IBM 727&lt;br /&gt;
| Glavni masovni spremnik; preko 5 milijuna znakova po vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrolna jedinica vrpci&lt;br /&gt;
| IBM 753&lt;br /&gt;
| Upravljanje magnetskim vrpcama.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetski bubanj&lt;br /&gt;
| IBM 733&lt;br /&gt;
| Dodatna memorija za brzi pristup.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetska jezgra (RAM)&lt;br /&gt;
| IBM 737&lt;br /&gt;
| Primarna memorija sustava (4096 × 36-bitnih riječi).&lt;br /&gt;
|-&lt;br /&gt;
| CRT zaslon&lt;br /&gt;
| IBM 740&lt;br /&gt;
| 21-inčni vektorski prikaz s dugom fosfornom postojanošću; korišten za vizualizaciju podataka.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aritmetička jedinica (AC i MQ) ===&lt;br /&gt;
Aritmetička jedinica sastojala se od dva glavna 36-bitna registra:&lt;br /&gt;
* &#039;&#039;&#039;AC (Accumulator)&#039;&#039;&#039; – glavni registar za aritmetiku.&lt;br /&gt;
* &#039;&#039;&#039;MQ (Multiplier/Quotient)&#039;&#039;&#039; – registar za množenje i dijeljenje.&lt;br /&gt;
&lt;br /&gt;
Ova dva registra zajedno su omogućavala učinkovite operacije nad velikim brojevima i pomičnim zarezom.&lt;br /&gt;
&lt;br /&gt;
=== Indeksni registri (XR1, XR2, XR4) ===&lt;br /&gt;
IBM 704 je koristio tri indeksna registra:&lt;br /&gt;
* &#039;&#039;&#039;XR1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Indeksni registri omogućavali su modifikaciju adresa, implementaciju petlji i rad s velikim poljima podataka. Ovo je bio preteča modernog adresiranja u procesorima.&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori (SI) ===&lt;br /&gt;
Sustav je imao 36 senzorskih indikatora koji su služili kao statusne zastavice:&lt;br /&gt;
* indikatori grešaka (overflow, divide check)&lt;br /&gt;
* indikatori stanja I/O uređaja&lt;br /&gt;
* korisnički definirani indikatori&lt;br /&gt;
&lt;br /&gt;
Programi su mogli testirati i postavljati SI bitove, što je omogućavalo primitivne oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
=== Instrukcijski format ===&lt;br /&gt;
Instrukcije su bile 36-bitne, s poljima:&lt;br /&gt;
* opkod&lt;br /&gt;
* adresa&lt;br /&gt;
* indeksni modifikator&lt;br /&gt;
* bitovi za uvjetno grananje&lt;br /&gt;
&lt;br /&gt;
Ovaj format omogućavao je fleksibilno adresiranje i kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Floating‑point implementacija ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je prvo komercijalno računalo koje je imalo ugrađenu hardversku podršku za aritmetiku s pomičnim zarezom. Ovo je bio ključni tehnološki iskorak koji je omogućio razvoj FORTRAN-a i znanstvenih aplikacija koje su zahtijevale visoku numeričku preciznost.&lt;br /&gt;
&lt;br /&gt;
Floating‑point brojevi u IBM 704 bili su pohranjeni u 36‑bitnim riječima, podijeljenima na dva glavna dijela:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Mantisa&#039;&#039;&#039; – 27 bitova  &lt;br /&gt;
* &#039;&#039;&#039;Eksponent&#039;&#039;&#039; – 8 bitova (excess‑128 format)  &lt;br /&gt;
* &#039;&#039;&#039;Znak&#039;&#039;&#039; – 1 bit&lt;br /&gt;
&lt;br /&gt;
=== Format floating‑point riječi ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Format floating‑point broja (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! Polje&lt;br /&gt;
! Duljina&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Znak mantise&lt;br /&gt;
| 1 bit&lt;br /&gt;
| Određuje pozitivan ili negativan broj.&lt;br /&gt;
|-&lt;br /&gt;
| Mantisa&lt;br /&gt;
| 27 bitova&lt;br /&gt;
| Normalizirana mantisa bez skrivenog bita.&lt;br /&gt;
|-&lt;br /&gt;
| Eksponent&lt;br /&gt;
| 8 bitova&lt;br /&gt;
| Excess‑128 format (stvarni eksponent = pohranjeni − 128).&lt;br /&gt;
|-&lt;br /&gt;
| Rezervirano&lt;br /&gt;
| 0 bitova&lt;br /&gt;
| Format je potpuno iskorišten; nema neiskorištenih bitova.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Excess‑128 eksponent ===&lt;br /&gt;
&lt;br /&gt;
Eksponent je pohranjen u obliku:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
stvarni_eksponent = pohranjeni_eksponent − 128&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj pristup omogućavao je jednostavnije usporedbe i normalizaciju brojeva.&lt;br /&gt;
&lt;br /&gt;
=== Normalizacija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 zahtijevao je da mantisa bude normalizirana tako da najviši bit mantise bude različit od nule.  &lt;br /&gt;
To je omogućavalo maksimalnu preciznost pri izračunima.&lt;br /&gt;
&lt;br /&gt;
=== Floating‑point operacije ===&lt;br /&gt;
&lt;br /&gt;
Računalo je podržavalo sljedeće operacije nad floating‑point brojevima:&lt;br /&gt;
&lt;br /&gt;
* zbrajanje (ADD)  &lt;br /&gt;
* oduzimanje (SUB)  &lt;br /&gt;
* množenje (MPY)  &lt;br /&gt;
* dijeljenje (DIV)&lt;br /&gt;
&lt;br /&gt;
Sve operacije koristile su aritmetičku jedinicu AC/MQ, pri čemu se rezultat normalizirao automatski.&lt;br /&gt;
&lt;br /&gt;
=== Primjer floating‑point operacije u assembleru ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj floating-point broj A&lt;br /&gt;
ADD B        / zbroji ga s B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Važnost floating‑point implementacije ===&lt;br /&gt;
&lt;br /&gt;
Hardverska podrška za pomični zarez bila je ključna za:&lt;br /&gt;
&lt;br /&gt;
* razvoj FORTRAN-a (1957.)&lt;br /&gt;
* balističke izračune&lt;br /&gt;
* aerodinamičke simulacije&lt;br /&gt;
* nuklearne proračune&lt;br /&gt;
* statističke modele&lt;br /&gt;
* rane znanstvene aplikacije NASA-e&lt;br /&gt;
&lt;br /&gt;
IBM 704 je time postavio standard koji će kasnije preuzeti svi moderni procesori.&lt;br /&gt;
&lt;br /&gt;
== Instrukcijski skup IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Glavne grupe instrukcija IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Grupa&lt;br /&gt;
! Primjeri&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Aritmetičke instrukcije&lt;br /&gt;
| ADD, SUB, MPY, DIV&lt;br /&gt;
| Operacije nad AC i MQ registrima; podrška za cijele brojeve i pomični zarez.&lt;br /&gt;
|-&lt;br /&gt;
| Logičke instrukcije&lt;br /&gt;
| CLA, CLM, COM&lt;br /&gt;
| Čišćenje, komplementiranje i manipulacija bitovima.&lt;br /&gt;
|-&lt;br /&gt;
| Uvjetno grananje&lt;br /&gt;
| TRA, TMI, TPL, TZE&lt;br /&gt;
| Skokovi ovisno o sadržaju AC ili MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Rad sa Sense Indicators&lt;br /&gt;
| TSI, SSI, RSI&lt;br /&gt;
| Testiranje, postavljanje i resetiranje statusnih bitova.&lt;br /&gt;
|-&lt;br /&gt;
| Indeksno adresiranje&lt;br /&gt;
| AXT, TXI&lt;br /&gt;
| Modifikacija adresa pomoću XR1, XR2, XR4.&lt;br /&gt;
|-&lt;br /&gt;
| Ulazno/izlazne instrukcije&lt;br /&gt;
| RDS, WRS, RWT&lt;br /&gt;
| Rad s magnetskom vrpcom, kartičnim čitačem i pisačem.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrola toka programa&lt;br /&gt;
| HLT, NOP&lt;br /&gt;
| Zaustavljanje programa, prazna instrukcija.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Opkodovi IBM 704 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Kompletan popis opkoda IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Opkod&lt;br /&gt;
! Mnemonik&lt;br /&gt;
! Grupa&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 000&lt;br /&gt;
| NOP&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Prazna instrukcija; ne radi ništa.&lt;br /&gt;
|-&lt;br /&gt;
| 001&lt;br /&gt;
| HLT&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Zaustavlja izvršavanje programa.&lt;br /&gt;
|-&lt;br /&gt;
| 002&lt;br /&gt;
| TRA&lt;br /&gt;
| Grananje&lt;br /&gt;
| Bezuvjetni skok na adresu.&lt;br /&gt;
|-&lt;br /&gt;
| 003&lt;br /&gt;
| TRN&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC negativan.&lt;br /&gt;
|-&lt;br /&gt;
| 004&lt;br /&gt;
| TMI&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC manji od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 005&lt;br /&gt;
| TPL&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC veći od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 006&lt;br /&gt;
| TZE&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC jednak nuli.&lt;br /&gt;
|-&lt;br /&gt;
| 007&lt;br /&gt;
| TOV&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je overflow zastavica postavljena.&lt;br /&gt;
|-&lt;br /&gt;
| 010&lt;br /&gt;
| ADD&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Zbrajanje sadržaja memorije s AC.&lt;br /&gt;
|-&lt;br /&gt;
| 011&lt;br /&gt;
| SUB&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Oduzimanje sadržaja memorije od AC.&lt;br /&gt;
|-&lt;br /&gt;
| 012&lt;br /&gt;
| MPY&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Množenje; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 013&lt;br /&gt;
| DIV&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Dijeljenje; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 014&lt;br /&gt;
| CLA&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 015&lt;br /&gt;
| CLM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 016&lt;br /&gt;
| COM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Komplementira AC.&lt;br /&gt;
|-&lt;br /&gt;
| 020&lt;br /&gt;
| SHL&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak ulijevo.&lt;br /&gt;
|-&lt;br /&gt;
| 021&lt;br /&gt;
| SHR&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak udesno.&lt;br /&gt;
|-&lt;br /&gt;
| 030&lt;br /&gt;
| AXT&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Učitava vrijednost u XR1, XR2 ili XR4.&lt;br /&gt;
|-&lt;br /&gt;
| 031&lt;br /&gt;
| TXI&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Dodaje vrijednost indeksnom registru.&lt;br /&gt;
|-&lt;br /&gt;
| 040&lt;br /&gt;
| RDS&lt;br /&gt;
| I/O&lt;br /&gt;
| Čitanje s magnetske vrpce.&lt;br /&gt;
|-&lt;br /&gt;
| 041&lt;br /&gt;
| WRS&lt;br /&gt;
| I/O&lt;br /&gt;
| Pisanje na magnetsku vrpcu.&lt;br /&gt;
|-&lt;br /&gt;
| 042&lt;br /&gt;
| RWT&lt;br /&gt;
| I/O&lt;br /&gt;
| Čekanje na I/O operaciju.&lt;br /&gt;
|-&lt;br /&gt;
| 050&lt;br /&gt;
| TSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Testira Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 051&lt;br /&gt;
| SSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Postavlja Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 052&lt;br /&gt;
| RSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Resetira Sense Indicator n.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Registri==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--             --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:88%;width:34em;&amp;quot;&lt;br /&gt;
|+ Registri u računalu IBM 704&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| style=&amp;quot;font-size:88%;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Podatkovni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | S&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | Q&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | P&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;14&amp;quot;| Akumulator&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | AC&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;1&amp;quot;| S&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;11&amp;quot;| Množitelj/Količnik&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | MQ&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;12&amp;quot;| Senzorni indikatori&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | SI&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 1&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR1 (XRA)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 2&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR2 (XRB)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 4 &lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR4 (XRC)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;14&amp;quot; | &#039;&#039;&#039;Brojač naredbi&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Brojač&amp;amp;nbsp;Naredbi&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| IC&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzorni indikatori&#039;&#039;&#039; - su posebni statusni bitovi u IBM 704 koj su se u praksi rabili za provjeru grešaka, grananje ovisno o stanju sustava, upravljanje perifernim jedinicama, te za signalizaciju posebnih događaja. Kroz njih programeri su mogli održavati stanje sustava, signalizirati određene uvjete tokom izvršavanje naredbi, čitanje i postavljanje naredbi i tako su služili za jednostane oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Sense Indicators (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! SI broj&lt;br /&gt;
! Naziv / funkcija&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Overflow flag&lt;br /&gt;
| Postavlja se pri prekoračenju rezultata u akumulatoru (AC) ili količniku (MQ).&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Divide check&lt;br /&gt;
| Signalizira pogrešku pri dijeljenju, uključujući dijeljenje nulom.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| I/O ready&lt;br /&gt;
| Uređaj spreman za prijenos podataka.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| I/O complete&lt;br /&gt;
| Završetak operacije ulaza/izlaza.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Tape mark&lt;br /&gt;
| Očitana oznaka kraja bloka na magnetskoj vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Printer ready&lt;br /&gt;
| Pisač spreman za rad.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Card reader ready&lt;br /&gt;
| Čitač kartica spreman.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Card punch ready&lt;br /&gt;
| Bušilica kartica spremna.&lt;br /&gt;
|-&lt;br /&gt;
| 8–15&lt;br /&gt;
| Peripheral flags&lt;br /&gt;
| Razni signali perifernih uređaja (disk, vrpca, pisač).&lt;br /&gt;
|-&lt;br /&gt;
| 16–35&lt;br /&gt;
| User-defined flags&lt;br /&gt;
| Zastavice koje programer može slobodno koristiti za logiku grananja.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Korištenje u IBM 704 assembleru ====&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao posebne instrukcije za rad sa Sense Indicators:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;TSI n&#039;&#039;&#039;&lt;br /&gt;
: Testira Sense Indicator &#039;&#039;n&#039;&#039;. Ako je postavljen, izvršavanje se nastavlja normalno; ako nije, preskače se sljedeća instrukcija.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3      / provjeri je li I/O complete&lt;br /&gt;
TRA DONE   / ako je postavljen, skoči na DONE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;SSI n&#039;&#039;&#039;&lt;br /&gt;
: Postavlja Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;RSI n&#039;&#039;&#039;&lt;br /&gt;
: Resetira Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 1      / provjeri divide check&lt;br /&gt;
TRA ERROR  / ako je SI1 = 1, idi na ERROR&lt;br /&gt;
&lt;br /&gt;
SSI 20     / postavi korisnički indikator 20&lt;br /&gt;
RSI 3      / resetiraj I/O complete indikator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Usporedba s modernim statusnim registrima ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! IBM 704 Sense Indicators&lt;br /&gt;
! Moderni statusni registri (x86, ARM, RISC-V)&lt;br /&gt;
|-&lt;br /&gt;
| 36 jednobitnih zastavica&lt;br /&gt;
| 8–32 bitni statusni registri&lt;br /&gt;
|-&lt;br /&gt;
| Ručno postavljanje i brisanje&lt;br /&gt;
| Automatsko postavljanje od strane ALU&lt;br /&gt;
|-&lt;br /&gt;
| Koriste se za I/O signalizaciju&lt;br /&gt;
| I/O signalizacija preko interrupt kontrolera&lt;br /&gt;
|-&lt;br /&gt;
| Jednostavne logičke zastavice&lt;br /&gt;
| Zastavice za aritmetiku, usporedbe, prekide&lt;br /&gt;
|-&lt;br /&gt;
| Programer koristi dio SI kao &amp;quot;user flags&amp;quot;&lt;br /&gt;
| Moderni jezici koriste varijable, strukture, objekte&lt;br /&gt;
|-&lt;br /&gt;
| Grananje preko TSI instrukcije&lt;br /&gt;
| Grananje preko CMP/JMP, BEQ/BNE, BLT/BGT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Primjeri IBM 704 assembler koda ==&lt;br /&gt;
&lt;br /&gt;
=== Zbrajanje dvaju brojeva ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj A u AC&lt;br /&gt;
ADD B        / dodaj B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Provjera negativnog broja ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA X        / učitaj X&lt;br /&gt;
TMI NEG      / ako je X &amp;lt; 0, idi na NEG&lt;br /&gt;
TRA DONE     / inače nastavi&lt;br /&gt;
NEG STO Y    / spremi negativnu vrijednost&lt;br /&gt;
DONE HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Množenje i dijeljenje ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A&lt;br /&gt;
MPY B        / AC*B → AC/MQ&lt;br /&gt;
DIV C        / (AC/MQ) / C → MQ (količnik), AC (ostatak)&lt;br /&gt;
STO Q        / spremi količnik&lt;br /&gt;
STO R        / spremi ostatak&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Korištenje Sense Indicators ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3        / provjeri I/O complete&lt;br /&gt;
TRA IO_OK    / ako je SI3 = 1, idi na IO_OK&lt;br /&gt;
SSI 20       / postavi korisnički indikator 20&lt;br /&gt;
IO_OK HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Performanse IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od najbržih znanstvenih računala svoje generacije. Njegova arhitektura s pomičnim zarezom, magnetskom jezgrom i specijaliziranim aritmetičkim registrima omogućavala je znatno bolje performanse u odnosu na prethodne modele IBM 701 i IBM 702. Sustav je bio optimiziran za matematičke operacije, simulacije, statističke izračune i obradu velikih numeričkih skupova podataka.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Performanse računala IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Brzina zbrajanja&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za izvršavanje jedne ADD instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina množenja&lt;br /&gt;
| ~20 μs&lt;br /&gt;
| Vrijeme za MPY instrukciju; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina dijeljenja&lt;br /&gt;
| ~38 μs&lt;br /&gt;
| Vrijeme za DIV instrukciju; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| Memorija&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Magnetska jezgra; pristup ~12 μs.&lt;br /&gt;
|-&lt;br /&gt;
| Ciklus instrukcije&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Prosječno vrijeme za dohvat i izvršavanje jednostavne instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina I/O operacija&lt;br /&gt;
| 7200 kartica/min (čitač)&lt;br /&gt;
| Kartični čitač i bušilica bili su glavni ulazno/izlazni sustavi.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| 12 500 znakovnih blokova/s&lt;br /&gt;
| Ovisno o uređaju; korišteno za masovno spremanje podataka.&lt;br /&gt;
|-&lt;br /&gt;
| Preciznost pomičnog zareza&lt;br /&gt;
| 27-bitni eksponent + 8-bitna mantisa&lt;br /&gt;
| Omogućavalo znanstvene izračune velike preciznosti.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pouzdanost ==&lt;br /&gt;
&lt;br /&gt;
Iako je IBM 704 bio znatno pouzdaniji od svog prethodnika IBM 701, i dalje je bio stroj temeljen na vakuumskim cijevima, što je značilo relativno česte kvarove prema današnjim standardima. Prosječno vrijeme između kvarova iznosilo je oko 8 sati, što je ograničavalo veličinu programa koje je bilo moguće kompajlirati ili izvršavati bez prekida.&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN kompajleri morali su biti iznimno učinkoviti jer bi preduga kompilacija mogla biti prekinuta kvarom sustava. Unatoč tome, IBM 704 je bio dovoljno pouzdan da postane temelj za razvoj FORTRAN-a, LISP-a, ranih neuralnih mreža i brojnih znanstvenih projekata.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Pouzdanost IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| MTBF (mean time between failure)&lt;br /&gt;
| ~8 sati&lt;br /&gt;
| Prosječno vrijeme rada prije kvara.&lt;br /&gt;
|-&lt;br /&gt;
| Usporedba s IBM 701&lt;br /&gt;
| ~30 minuta&lt;br /&gt;
| IBM 704 bio je znatno pouzdaniji od svog prethodnika.&lt;br /&gt;
|-&lt;br /&gt;
| Utjecaj na softver&lt;br /&gt;
| Ograničena veličina programa&lt;br /&gt;
| Kompilacije su morale biti kratke zbog mogućih kvarova.&lt;br /&gt;
|-&lt;br /&gt;
| Tehnologija&lt;br /&gt;
| Vakuumske cijevi&lt;br /&gt;
| Glavni uzrok kvarova i zagrijavanja sustava.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SAP asembler ==&lt;br /&gt;
&lt;br /&gt;
SAP (&#039;&#039;Symbolic Assembly Program&#039;&#039;) bio je službeni asembler za IBM 704 i predstavljao je jedan od najranijih i najutjecajnijih asemblera u povijesti računarstva. Razvijen je unutar IBM-a sredinom 1950-ih kako bi programerima omogućio pisanje simboličkog koda umjesto ručnog unošenja numeričkih opkoda i adresa.&lt;br /&gt;
&lt;br /&gt;
SAP je bio ključan za razvoj FORTRAN-a, LISP-a i mnogih ranih znanstvenih aplikacija, jer je omogućio jednostavnije pisanje, čitanje i održavanje programa na IBM 704.&lt;br /&gt;
&lt;br /&gt;
=== Značajke SAP asemblera ===&lt;br /&gt;
&lt;br /&gt;
SAP je imao nekoliko naprednih značajki za svoje vrijeme:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simboličke oznake&#039;&#039;&#039; – programeri su mogli koristiti imena umjesto numeričkih adresa.&lt;br /&gt;
* &#039;&#039;&#039;Automatsko izračunavanje adresa&#039;&#039;&#039; – asembler je sam određivao lokacije instrukcija.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za indeksne registre&#039;&#039;&#039; – XR1, XR2 i XR4 mogli su se koristiti u adresiranju.&lt;br /&gt;
* &#039;&#039;&#039;Jednostavna sintaksa&#039;&#039;&#039; – instrukcije su bile kratke i čitljive.&lt;br /&gt;
* &#039;&#039;&#039;Integracija s FORTRAN-om&#039;&#039;&#039; – FORTRAN kompajler generirao je SAP kod.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za floating‑point operacije&#039;&#039;&#039; – izravno korištenje AC/MQ jedinice.&lt;br /&gt;
&lt;br /&gt;
SAP je bio jedan od prvih asemblera koji je omogućio relativno visok stupanj apstrakcije u odnosu na strojni kod.&lt;br /&gt;
&lt;br /&gt;
=== Struktura SAP instrukcije ===&lt;br /&gt;
&lt;br /&gt;
Instrukcije su se sastojale od:&lt;br /&gt;
&lt;br /&gt;
* mnemonika (ADD, SUB, MPY, DIV, TRA…)&lt;br /&gt;
* adrese ili simbola&lt;br /&gt;
* opcionalnog indeksnog modifikatora&lt;br /&gt;
* komentara&lt;br /&gt;
&lt;br /&gt;
Primjer strukture:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
MNEMONIK  ADRESA,XR   / komentar&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Primjer SAP koda ===&lt;br /&gt;
&lt;br /&gt;
Slijedi povijesno točan primjer SAP koda za IBM 704:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
A      DEC 5          / definiraj konstantu A&lt;br /&gt;
B      DEC 7          / definiraj konstantu B&lt;br /&gt;
C      BSS 1          / rezerviraj prostor za rezultat&lt;br /&gt;
&lt;br /&gt;
       CLA A          / učitaj A u AC&lt;br /&gt;
       ADD B          / dodaj B&lt;br /&gt;
       STO C          / spremi rezultat u C&lt;br /&gt;
       HLT            / zaustavi program&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Korištenje indeksnih registara ===&lt;br /&gt;
&lt;br /&gt;
SAP je omogućavao jednostavno korištenje XR1, XR2 i XR4:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
LOOP   CLA ARRAY,XR1  / učitaj element polja&lt;br /&gt;
       ADD SUM        / dodaj na sumu&lt;br /&gt;
       STO SUM        / spremi rezultat&lt;br /&gt;
       TXI XR1,1      / povećaj indeks&lt;br /&gt;
       TPL LOOP       / ako je pozitivan, nastavi petlju&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio preteča modernih petlji u visokorazinskim jezicima.&lt;br /&gt;
&lt;br /&gt;
=== SAP i FORTRAN ===&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN kompajler generirao je SAP kod koji se zatim prevodio u strojni kod IBM 704.  &lt;br /&gt;
Zbog toga je SAP bio ključan za:&lt;br /&gt;
&lt;br /&gt;
* optimizaciju FORTRAN programa,&lt;br /&gt;
* implementaciju DO petlji,&lt;br /&gt;
* rad s poljima i matricama,&lt;br /&gt;
* floating‑point operacije,&lt;br /&gt;
* kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
=== SAP i LISP ===&lt;br /&gt;
&lt;br /&gt;
Prva implementacija LISP-a (1958.) bila je napisana upravo u SAP asembleru.  &lt;br /&gt;
SAP je omogućio:&lt;br /&gt;
&lt;br /&gt;
* manipulaciju cons‑struktura,&lt;br /&gt;
* implementaciju CAR i CDR operacija,&lt;br /&gt;
* rekurziju,&lt;br /&gt;
* dinamičko upravljanje memorijom.&lt;br /&gt;
&lt;br /&gt;
Bez SAP-a, LISP ne bi mogao biti implementiran na IBM 704.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj SAP-a ===&lt;br /&gt;
&lt;br /&gt;
SAP je bio jedan od najvažnijih asemblera 1950-ih i 1960-ih.  &lt;br /&gt;
Njegov utjecaj vidljiv je u:&lt;br /&gt;
&lt;br /&gt;
* razvoju FORTRAN-a,&lt;br /&gt;
* nastanku LISP-a,&lt;br /&gt;
* ranim AI projektima,&lt;br /&gt;
* znanstvenim simulacijama,&lt;br /&gt;
* razvoju modernih asemblera i kompajlera.&lt;br /&gt;
&lt;br /&gt;
SAP je postavio temelje za simboličko programiranje i bio je ključni alat u zlatnom dobu ranog računarstva.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju LISP-a ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je ključnu ulogu u nastanku programskog jezika LISP, jednog od najvažnijih jezika u povijesti računarstva. LISP je 1958. godine razvio John McCarthy na MIT-u, a upravo je IBM 704 bio prvo računalo na kojem je LISP implementiran i izvršavan.&lt;br /&gt;
&lt;br /&gt;
Razvoj LISP-a bio je izravno povezan s arhitekturom IBM 704, posebno s njegovim:&lt;br /&gt;
* 36-bitnim riječima,&lt;br /&gt;
* aritmetičkom jedinicom AC/MQ,&lt;br /&gt;
* indeksnim registrima,&lt;br /&gt;
* mogućnošću manipulacije adresama,&lt;br /&gt;
* podrškom za uvjetno grananje,&lt;br /&gt;
* te fleksibilnim instrukcijskim formatom.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio pogodan za LISP ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je nekoliko arhitekturnih značajki koje su se pokazale idealnima za implementaciju LISP-a:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;36-bitne riječi&#039;&#039;&#039; omogućavale su učinkovito predstavljanje parova (cons cells).&lt;br /&gt;
* &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039; olakšavali su rad s listama i rekurzivnim strukturama.&lt;br /&gt;
* &#039;&#039;&#039;Instrukcije grananja&#039;&#039;&#039; (TRA, TMI, TPL, TZE) omogućavale su jednostavnu implementaciju rekurzije.&lt;br /&gt;
* &#039;&#039;&#039;Magnetska jezgra&#039;&#039;&#039; bila je dovoljno brza za dinamičke strukture podataka.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za floating-point&#039;&#039;&#039; olakšala je rad s matematičkim funkcijama.&lt;br /&gt;
&lt;br /&gt;
McCarthy je iskoristio ove mogućnosti kako bi implementirao osnovne LISP konstrukte: CONS, CAR, CDR, rekurziju, lambda‑izraze i funkcije višeg reda.&lt;br /&gt;
&lt;br /&gt;
=== Prva implementacija LISP-a ===&lt;br /&gt;
&lt;br /&gt;
Prva verzija LISP-a bila je napisana u SAP asembleru za IBM 704.  &lt;br /&gt;
Ova implementacija uključivala je:&lt;br /&gt;
&lt;br /&gt;
* interpreter,&lt;br /&gt;
* evaluator,&lt;br /&gt;
* upravljanje memorijom,&lt;br /&gt;
* implementaciju cons‑struktura,&lt;br /&gt;
* osnovne matematičke funkcije,&lt;br /&gt;
* te mehanizme za rekurziju i funkcije višeg reda.&lt;br /&gt;
&lt;br /&gt;
LISP je na IBM 704 radio kao interpretirani jezik, a programi su se izvršavali izravno nad strukturom lista u memoriji.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je omogućio LISP-u da postane prvi široko korišteni jezik za:&lt;br /&gt;
&lt;br /&gt;
* umjetnu inteligenciju,&lt;br /&gt;
* simboličku manipulaciju,&lt;br /&gt;
* matematičku logiku,&lt;br /&gt;
* rane ekspertske sustave,&lt;br /&gt;
* istraživanje strojnog učenja.&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, LISP bi vjerojatno bio znatno drugačiji — ili bi se pojavio mnogo kasnije.&lt;br /&gt;
&lt;br /&gt;
=== Primjer ranog LISP izraza (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Iako se LISP nije zapisivao u assembleru, njegovi izrazi su se prevodili u SAP kod za IBM 704.  &lt;br /&gt;
Primjer jednostavne LISP funkcije:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(define (square x)&lt;br /&gt;
  (* x x))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj izraz bi se na IBM 704 interno pretvorio u operacije nad cons‑struktura i pozive aritmetičkih instrukcija MPY i ADD.&lt;br /&gt;
&lt;br /&gt;
=== Utjecaj na daljnji razvoj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je bio platforma na kojoj su nastale ključne ideje:&lt;br /&gt;
&lt;br /&gt;
* automatsko upravljanje memorijom,&lt;br /&gt;
* rekurzija kao temeljni mehanizam,&lt;br /&gt;
* funkcije višeg reda,&lt;br /&gt;
* lambda‑račun,&lt;br /&gt;
* simbolička obrada podataka.&lt;br /&gt;
&lt;br /&gt;
Ove ideje postale su temelj modernih programskih jezika, od Schemea i Prologa do Pythona i JavaScripta.&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju FORTRAN-a ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je presudnu ulogu u nastanku FORTRAN-a (Formula Translation), prvog široko korištenog visokorazinskog programskog jezika. FORTRAN je razvijen 1957. godine u IBM-u pod vodstvom Johna Backusa, a IBM 704 bio je prvo računalo na kojem je FORTRAN implementiran, kompajliran i izvršavan.&lt;br /&gt;
&lt;br /&gt;
Arhitektura IBM 704 izravno je oblikovala dizajn FORTRAN-a. Njegova podrška za aritmetiku s pomičnim zarezom, indeksne registre, statusne indikatore i 36-bitne riječi omogućila je stvaranje jezika koji je bio optimiziran za znanstvene i tehničke izračune.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio ključan za FORTRAN ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 posjedovao je nekoliko arhitekturnih značajki koje su bile presudne za razvoj FORTRAN-a:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Hardverska floating‑point jedinica&#039;&#039;&#039; – omogućila je izravnu podršku za matematičke operacije.&lt;br /&gt;
* &#039;&#039;&#039;Aritmetički registri AC i MQ&#039;&#039;&#039; – olakšali su implement&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju ranih neuralnih mreža ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je važnu ulogu u razvoju najranijih modela umjetnih neuronskih mreža tijekom kasnih 1950-ih i ranih 1960-ih. Iako su ti modeli bili daleko jednostavniji od današnjih dubokih mreža, IBM 704 je bio jedno od rijetkih računala koje je imalo dovoljno memorije, brzine i aritmetičkih mogućnosti da može izvoditi simulacije neuronskih mreža u praksi.&lt;br /&gt;
&lt;br /&gt;
Rani pioniri umjetne inteligencije, uključujući Franka Rosenblatta, Herberta Simona, Allena Newella i istraživače s MIT-a i Cornell Aeronautical Laboratory, koristili su IBM 704 za implementaciju i testiranje prvih algoritama koji su simulirali neuronsko učenje.&lt;br /&gt;
&lt;br /&gt;
=== IBM 704 i perceptron ===&lt;br /&gt;
&lt;br /&gt;
Najvažniji doprinos IBM 704 razvoju neuralnih mreža bio je u implementaciji i simulaciji **Rosenblattovog perceptrona**, prvog formalnog modela neuronske mreže koji je mogao učiti iz podataka.&lt;br /&gt;
&lt;br /&gt;
IBM 704 omogućio je:&lt;br /&gt;
&lt;br /&gt;
* izračun težina perceptrona,&lt;br /&gt;
* simulaciju učenja kroz iteracije,&lt;br /&gt;
* rad s matricama i vektorima,&lt;br /&gt;
* evaluaciju linearnih klasifikatora,&lt;br /&gt;
* testiranje različitih skupova podataka.&lt;br /&gt;
&lt;br /&gt;
Iako je perceptron kasnije imao i hardversku implementaciju (Mark I Perceptron), IBM 704 bio je ključan za **prve softverske simulacije** koje su potvrdile da se neuronske mreže mogu trenirati računalno.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio pogodan za neuralne mreže ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je nekoliko arhitekturnih značajki koje su bile iznimno korisne za rane AI eksperimente:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Floating‑point jedinica&#039;&#039;&#039; – omogućila je precizne izračune težina i aktivacijskih funkcija.&lt;br /&gt;
* &#039;&#039;&#039;Aritmetički registri AC/MQ&#039;&#039;&#039; – ubrzali su operacije nad vektorima.&lt;br /&gt;
* &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039; – olakšali su rad s matricama i iteracijama.&lt;br /&gt;
* &#039;&#039;&#039;Magnetska jezgra&#039;&#039;&#039; – bila je dovoljno brza za ponavljajuće izračune.&lt;br /&gt;
* &#039;&#039;&#039;Instrukcije grananja&#039;&#039;&#039; – omogućile su implementaciju algoritama učenja.&lt;br /&gt;
&lt;br /&gt;
Zbog toga je IBM 704 bio jedno od prvih računala koje je moglo izvoditi **iterativne algoritme učenja**, temeljne za neuralne mreže.&lt;br /&gt;
&lt;br /&gt;
=== Rani eksperimenti umjetne inteligencije ===&lt;br /&gt;
&lt;br /&gt;
Na IBM 704 provodili su se rani eksperimenti koji su uključivali:&lt;br /&gt;
&lt;br /&gt;
* simulaciju perceptrona,&lt;br /&gt;
* klasifikaciju jednostavnih vizualnih uzoraka,&lt;br /&gt;
* prepoznavanje znakova,&lt;br /&gt;
* rane oblike strojne percepcije,&lt;br /&gt;
* istraživanje linearnih i nelinearnih funkcija aktivacije.&lt;br /&gt;
&lt;br /&gt;
Ovi eksperimenti bili su temelj za kasniji razvoj:&lt;br /&gt;
&lt;br /&gt;
* višeslojnih perceptrona,&lt;br /&gt;
* backpropagation algoritma,&lt;br /&gt;
* dubokog učenja,&lt;br /&gt;
* računalnog vida.&lt;br /&gt;
&lt;br /&gt;
=== Primjer jednostavne perceptronske iteracije (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći pseudokod prikazuje kako je perceptron bio implementiran na IBM 704:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA W1        / učitaj težinu&lt;br /&gt;
MPY X1        / pomnoži s ulazom&lt;br /&gt;
ADD SUM       / dodaj na akumuliranu sumu&lt;br /&gt;
STO SUM       / spremi novu vrijednost&lt;br /&gt;
&lt;br /&gt;
... ponavljati za sve ulaze ...&lt;br /&gt;
&lt;br /&gt;
CLA SUM&lt;br /&gt;
TMI UPDATE    / ako je pogreška negativna, ažuriraj težine&lt;br /&gt;
TPL UPDATE    / ako je pogreška pozitivna, također ažuriraj&lt;br /&gt;
&lt;br /&gt;
UPDATE:&lt;br /&gt;
ADD ERROR     / korekcija težine&lt;br /&gt;
STO W1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio jedan od prvih primjera **računalnog učenja** u povijesti.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je ključan za rani razvoj umjetne inteligencije jer je:&lt;br /&gt;
&lt;br /&gt;
* omogućio prve računalne simulacije neuronskih mreža,&lt;br /&gt;
* bio platforma za perceptron i rane modele učenja,&lt;br /&gt;
* omogućio istraživanje algoritama koji su kasnije postali temelj dubokog učenja,&lt;br /&gt;
* povezao AI istraživanje s praktičnim računalnim sustavima.&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, razvoj ranih neuralnih mreža bio bi znatno sporiji i ograničeniji.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u ranoj robotici ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je važnu ulogu u razvoju najranijih oblika robotike i automatizacije tijekom kasnih 1950-ih i ranih 1960-ih. Iako se u to vrijeme pojam „robotika“ tek počeo pojavljivati u znanstvenoj literaturi, IBM 704 bio je jedno od prvih računala koje je moglo upravljati mehaničkim sustavima, analizirati senzorske podatke i izvoditi algoritme koji su predstavljali preteču modernog upravljanja robotima.&lt;br /&gt;
&lt;br /&gt;
Rani robotski sustavi bili su primitivni u odnosu na današnje, ali IBM 704 je omogućio:&lt;br /&gt;
&lt;br /&gt;
* upravljanje aktuatorima i elektromehaničkim uređajima,&lt;br /&gt;
* obradu ulaznih signala iz senzora,&lt;br /&gt;
* simulaciju kretanja i kontrolnih petlji,&lt;br /&gt;
* rane eksperimente u automatskom upravljanju,&lt;br /&gt;
* integraciju s vizualnim sustavima (CRT prikaz IBM 740).&lt;br /&gt;
&lt;br /&gt;
=== Rani eksperimenti automatizacije ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 korišten je u laboratorijima i istraživačkim centrima za:&lt;br /&gt;
&lt;br /&gt;
* upravljanje robotskim manipulatorima,&lt;br /&gt;
* simulaciju kinematike i dinamike,&lt;br /&gt;
* upravljanje servo‑motorima,&lt;br /&gt;
* automatizaciju industrijskih procesa,&lt;br /&gt;
* rane oblike povratne sprege (feedback control).&lt;br /&gt;
&lt;br /&gt;
Ovi sustavi nisu bili roboti u modernom smislu, ali su predstavljali ključne korake prema:&lt;br /&gt;
&lt;br /&gt;
* numeričkom upravljanju strojevima (NC machines),&lt;br /&gt;
* automatskim manipulatorima,&lt;br /&gt;
* sustavima za automatsko pozicioniranje,&lt;br /&gt;
* ranim oblicima cybernetike.&lt;br /&gt;
&lt;br /&gt;
=== IBM 704 i cybernetika ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je često korišten u istraživanjima inspiriranim radom Norberta Wienera, osnivača cybernetike.  &lt;br /&gt;
Sustav je omogućavao:&lt;br /&gt;
&lt;br /&gt;
* simulaciju povratne sprege,&lt;br /&gt;
* analizu stabilnosti sustava,&lt;br /&gt;
* implementaciju kontrolnih algoritama,&lt;br /&gt;
* rane oblike adaptivnog upravljanja.&lt;br /&gt;
&lt;br /&gt;
Ovo je bilo ključno za razvoj robotskih sustava koji se mogu prilagođavati promjenama u okruženju.&lt;br /&gt;
&lt;br /&gt;
=== Vizualni sustavi i IBM 740 ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 se mogao povezati s CRT zaslonom IBM 740, koji je omogućavao:&lt;br /&gt;
&lt;br /&gt;
* prikaz vektorskih grafika,&lt;br /&gt;
* vizualizaciju putanja kretanja,&lt;br /&gt;
* prikaz senzorskih podataka,&lt;br /&gt;
* rane eksperimente u računalnom vidu.&lt;br /&gt;
&lt;br /&gt;
Iako primitivni, ovi sustavi bili su preteča kasnijih robotskih vizualnih sustava.&lt;br /&gt;
&lt;br /&gt;
=== Primjer jednostavne kontrolne petlje (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći SAP kod prikazuje kako je IBM 704 mogao implementirati jednostavnu kontrolnu petlju za upravljanje aktuatorom:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
READSENSOR  RDS SENS        / očitaj senzor&lt;br /&gt;
           CLA SENS        / učitaj vrijednost&lt;br /&gt;
           SUB TARGET      / usporedi s ciljem&lt;br /&gt;
           TPL INCREASE    / ako je pozitivno, povećaj izlaz&lt;br /&gt;
           TMI DECREASE    / ako je negativno, smanji izlaz&lt;br /&gt;
&lt;br /&gt;
INCREASE   ADD STEP        / povećaj upravljački signal&lt;br /&gt;
           STO ACTUATOR&lt;br /&gt;
           TRA LOOP&lt;br /&gt;
&lt;br /&gt;
DECREASE   SUB STEP        / smanji upravljački signal&lt;br /&gt;
           STO ACTUATOR&lt;br /&gt;
           TRA LOOP&lt;br /&gt;
&lt;br /&gt;
LOOP       TRA READSENSOR  / ponovi petlju&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio jedan od prvih primjera računalno upravljanih mehaničkih sustava.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je ključan za rani razvoj robotike jer je:&lt;br /&gt;
&lt;br /&gt;
* omogućio prve računalne simulacije upravljanja strojevima,&lt;br /&gt;
* bio platforma za cybernetičke eksperimente,&lt;br /&gt;
* omogućio integraciju senzora i aktuatora,&lt;br /&gt;
* pružio temelj za numeričko upravljanje strojevima (NC),&lt;br /&gt;
* povezao mehaniku, elektroniku i računalne algoritme.&lt;br /&gt;
&lt;br /&gt;
IBM 704 je time postavio temelje za kasniji razvoj industrijskih robota, autonomnih sustava i modernih robotskih tehnologija.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u ranom računalnom vidu ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je važnu ulogu u najranijim eksperimentima računalnog vida tijekom kasnih 1950-ih i ranih 1960-ih. Iako se računalni vid kao disciplina tek počeo formirati, IBM 704 bio je jedno od rijetkih računala koje je imalo dovoljno memorije, aritmetičke snage i mogućnosti prikaza da može obrađivati jednostavne vizualne podatke.&lt;br /&gt;
&lt;br /&gt;
Rani eksperimenti računalnog vida bili su usko povezani s istraživanjima umjetne inteligencije, perceptrona i robotike, a IBM 704 služio je kao platforma za:&lt;br /&gt;
&lt;br /&gt;
* prepoznavanje jednostavnih uzoraka,&lt;br /&gt;
* klasifikaciju vizualnih znakova,&lt;br /&gt;
* obradu digitaliziranih slika niske rezolucije,&lt;br /&gt;
* vizualizaciju podataka na CRT zaslonu IBM 740,&lt;br /&gt;
* rane eksperimente u strojnoj percepciji.&lt;br /&gt;
&lt;br /&gt;
=== IBM 704 i CRT zaslon IBM 740 ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 se mogao povezati s vektorskim CRT zaslonom IBM 740, koji je omogućavao:&lt;br /&gt;
&lt;br /&gt;
* prikaz linija, oblika i grafičkih uzoraka,&lt;br /&gt;
* vizualizaciju rezultata algoritama,&lt;br /&gt;
* prikaz putanja kretanja u robotskim sustavima,&lt;br /&gt;
* rane oblike grafičke analize.&lt;br /&gt;
&lt;br /&gt;
Iako primitivni, ovi sustavi bili su preteča kasnijih grafičkih terminala i vizualnih procesora.&lt;br /&gt;
&lt;br /&gt;
=== Rani eksperimenti prepoznavanja uzoraka ===&lt;br /&gt;
&lt;br /&gt;
Na IBM 704 provodili su se rani eksperimenti koji su uključivali:&lt;br /&gt;
&lt;br /&gt;
* prepoznavanje slova i brojeva,&lt;br /&gt;
* klasifikaciju jednostavnih geometrijskih oblika,&lt;br /&gt;
* analizu kontrasta i rubova,&lt;br /&gt;
* rane oblike segmentacije slike.&lt;br /&gt;
&lt;br /&gt;
Podaci su se obično unosili preko:&lt;br /&gt;
&lt;br /&gt;
* digitaliziranih kartica,&lt;br /&gt;
* ručno kodiranih matrica piksela,&lt;br /&gt;
* senzorskih uređaja povezanih s robotima.&lt;br /&gt;
&lt;br /&gt;
=== Veza s perceptronom i neuralnim mrežama ===&lt;br /&gt;
&lt;br /&gt;
Rosenblattov perceptron, koji je IBM 704 koristio za simulacije učenja, bio je izravno primijenjen na rane zadatke računalnog vida:&lt;br /&gt;
&lt;br /&gt;
* klasifikacija vizualnih uzoraka,&lt;br /&gt;
* prepoznavanje znakova,&lt;br /&gt;
* jednostavni modeli prepoznavanja oblika.&lt;br /&gt;
&lt;br /&gt;
IBM 704 omogućio je iterativno treniranje perceptrona nad vizualnim podacima, što je bio jedan od prvih primjera **računalnog učenja iz slike**.&lt;br /&gt;
&lt;br /&gt;
=== Primjer jednostavne vizualne analize (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći SAP kod prikazuje kako je IBM 704 mogao analizirati jednostavnu matricu piksela:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA PIXEL      / učitaj vrijednost piksela&lt;br /&gt;
SUB THRESH     / usporedi s pragom&lt;br /&gt;
TPL BRIGHT     / ako je veće od praga → svijetli piksel&lt;br /&gt;
TMI DARK       / ako je manje → tamni piksel&lt;br /&gt;
&lt;br /&gt;
BRIGHT STO OUT1&lt;br /&gt;
TRA NEXT&lt;br /&gt;
&lt;br /&gt;
DARK   STO OUT0&lt;br /&gt;
NEXT   TRA LOOP&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio jedan od prvih primitivnih algoritama za binarnu segmentaciju slike.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je ključan za rani razvoj računalnog vida jer je:&lt;br /&gt;
&lt;br /&gt;
* omogućio prve računalne eksperimente prepoznavanja uzoraka,&lt;br /&gt;
* bio platforma za vizualne simulacije u robotici,&lt;br /&gt;
* povezao neuralne mreže s vizualnim podacima,&lt;br /&gt;
* omogućio prikaz grafike na CRT zaslonu,&lt;br /&gt;
* postavio temelje za kasniji razvoj računalnog vida u 1960-ima i 1970-ima.&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, rani razvoj računalnog vida bio bi znatno sporiji i ograničeniji.&lt;br /&gt;
&lt;br /&gt;
==Izvori==&lt;br /&gt;
{{izvori}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorija:IBM]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787638</id>
		<title>IBM 704</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787638"/>
		<updated>2026-07-07T10:11:00Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Povijesni značaj */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;IBM 704&#039;&#039;&#039; ime je za računalo prve generacije koje je razvila tvrtka [[IBM]] i jedan je iz serije računala IBM 700. Ovo računalo se proizvodilo od 1954. do 1964. godine.&amp;lt;ref&amp;gt;https://www.ibm.com/history/700&amp;lt;/ref&amp;gt;. Povijesna važnost ovog računala jest da je na njemu bio razvijen programski jezik [[FORTRAN]] i [[LISP]] te SAP asembler. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Povijest razvoja IBM 700 serije ==&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija bila je prva generacija komercijalnih znanstvenih računala koju je IBM razvio početkom 1950-ih. Serija je započela s modelom IBM 701 (1952.), poznatim kao „Defense Calculator“, koji je bio namijenjen vojnoj i zrakoplovnoj industriji.&lt;br /&gt;
&lt;br /&gt;
* IBM 702 (1953.) bio je poslovno orijentiran sustav, dok je IBM 703 bio eksperimentalni model.&lt;br /&gt;
* IBM 704 je postao temelj za razvoj FORTRAN-a (1957.), prvog visokorazinskog programskog jezika.&lt;br /&gt;
&lt;br /&gt;
Pravi tehnološki iskorak dogodio se s modelom &#039;&#039;&#039;IBM 704&#039;&#039;&#039; (1954.), prvim računalom koje je podržavalo:&lt;br /&gt;
* aritmetiku s pomičnim zarezom,&lt;br /&gt;
* indeksne registre,&lt;br /&gt;
* statusne indikatore,&lt;br /&gt;
* magnetsku jezgru kao primarnu memoriju.&lt;br /&gt;
&lt;br /&gt;
Serija se nastavila s modelima IBM 709 (1958.) i IBM 7090 (1959.), koji su bili tranzistorski nasljednici i koristili se u NASA-i, NORAD-u i velikim znanstvenim centrima.&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija ostavila je dubok trag u povijesti računarstva, postavivši standarde arhitekture koji su se zadržali desetljećima.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arhitektura IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od prvih komercijalnih računala koje je uvodilo napredne koncepte arhitekture, uključujući rad s pomičnim zarezom, indeksne registre i statusne indikatore. Sustav je bio dizajniran za znanstvene i tehničke izračune, što ga je činilo ključnim alatom u laboratorijima, sveučilištima i ranim zrakoplovnim projektima.&lt;br /&gt;
&lt;br /&gt;
=== Memorija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 koristio je magnetsku jezgru kao primarnu memoriju, što je u to vrijeme predstavljalo veliki tehnološki napredak u odnosu na Williamsove cijevi korištene u IBM-u 701. Magnetska jezgra bila je brža, pouzdanija i omogućavala stabilno zadržavanje podataka bez potrebe za stalnim osvježavanjem.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Memorijske karakteristike IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Vrsta memorije&lt;br /&gt;
| Magnetska jezgra&lt;br /&gt;
| Stabilna, brza i pouzdana tehnologija za 1950-e.&lt;br /&gt;
|-&lt;br /&gt;
| Kapacitet&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Ukupno 147 456 bitova (18 432 bajta).&lt;br /&gt;
|-&lt;br /&gt;
| Vrijeme pristupa&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za čitanje ili pisanje jedne riječi.&lt;br /&gt;
|-&lt;br /&gt;
| Format riječi&lt;br /&gt;
| 36-bitna riječ&lt;br /&gt;
| Koristi se za instrukcije, podatke i floating-point brojeve.&lt;br /&gt;
|-&lt;br /&gt;
| Floating-point format&lt;br /&gt;
| 8-bitni eksponent + 27-bitna mantisa&lt;br /&gt;
| Bez skrivenog bita; excess-128 eksponent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Periferni uređaji ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 podržavao je širok spektar perifernih uređaja, što ga je činilo pogodnim za znanstvene, tehničke i administrativne zadatke. Ulazno/izlazni sustav bio je temeljen na magnetskim vrpcama, kartičnim čitačima i pisačima, uz mogućnost prikaza podataka na CRT zaslonima.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Periferni uređaji IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Uređaj&lt;br /&gt;
! Model&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Čitač kartica&lt;br /&gt;
| IBM 711&lt;br /&gt;
| Učitava programe i podatke s bušenih kartica.&lt;br /&gt;
|-&lt;br /&gt;
| Pisač&lt;br /&gt;
| IBM 716&lt;br /&gt;
| Ispisuje tekstualni izlaz; glavni uređaj za ljudsko čitanje rezultata.&lt;br /&gt;
|-&lt;br /&gt;
| Bušilica kartica&lt;br /&gt;
| IBM 721&lt;br /&gt;
| Zapisuje podatke na bušene kartice.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| IBM 727&lt;br /&gt;
| Glavni masovni spremnik; preko 5 milijuna znakova po vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrolna jedinica vrpci&lt;br /&gt;
| IBM 753&lt;br /&gt;
| Upravljanje magnetskim vrpcama.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetski bubanj&lt;br /&gt;
| IBM 733&lt;br /&gt;
| Dodatna memorija za brzi pristup.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetska jezgra (RAM)&lt;br /&gt;
| IBM 737&lt;br /&gt;
| Primarna memorija sustava (4096 × 36-bitnih riječi).&lt;br /&gt;
|-&lt;br /&gt;
| CRT zaslon&lt;br /&gt;
| IBM 740&lt;br /&gt;
| 21-inčni vektorski prikaz s dugom fosfornom postojanošću; korišten za vizualizaciju podataka.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aritmetička jedinica (AC i MQ) ===&lt;br /&gt;
Aritmetička jedinica sastojala se od dva glavna 36-bitna registra:&lt;br /&gt;
* &#039;&#039;&#039;AC (Accumulator)&#039;&#039;&#039; – glavni registar za aritmetiku.&lt;br /&gt;
* &#039;&#039;&#039;MQ (Multiplier/Quotient)&#039;&#039;&#039; – registar za množenje i dijeljenje.&lt;br /&gt;
&lt;br /&gt;
Ova dva registra zajedno su omogućavala učinkovite operacije nad velikim brojevima i pomičnim zarezom.&lt;br /&gt;
&lt;br /&gt;
=== Indeksni registri (XR1, XR2, XR4) ===&lt;br /&gt;
IBM 704 je koristio tri indeksna registra:&lt;br /&gt;
* &#039;&#039;&#039;XR1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Indeksni registri omogućavali su modifikaciju adresa, implementaciju petlji i rad s velikim poljima podataka. Ovo je bio preteča modernog adresiranja u procesorima.&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori (SI) ===&lt;br /&gt;
Sustav je imao 36 senzorskih indikatora koji su služili kao statusne zastavice:&lt;br /&gt;
* indikatori grešaka (overflow, divide check)&lt;br /&gt;
* indikatori stanja I/O uređaja&lt;br /&gt;
* korisnički definirani indikatori&lt;br /&gt;
&lt;br /&gt;
Programi su mogli testirati i postavljati SI bitove, što je omogućavalo primitivne oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
=== Instrukcijski format ===&lt;br /&gt;
Instrukcije su bile 36-bitne, s poljima:&lt;br /&gt;
* opkod&lt;br /&gt;
* adresa&lt;br /&gt;
* indeksni modifikator&lt;br /&gt;
* bitovi za uvjetno grananje&lt;br /&gt;
&lt;br /&gt;
Ovaj format omogućavao je fleksibilno adresiranje i kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Floating‑point implementacija ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je prvo komercijalno računalo koje je imalo ugrađenu hardversku podršku za aritmetiku s pomičnim zarezom. Ovo je bio ključni tehnološki iskorak koji je omogućio razvoj FORTRAN-a i znanstvenih aplikacija koje su zahtijevale visoku numeričku preciznost.&lt;br /&gt;
&lt;br /&gt;
Floating‑point brojevi u IBM 704 bili su pohranjeni u 36‑bitnim riječima, podijeljenima na dva glavna dijela:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Mantisa&#039;&#039;&#039; – 27 bitova  &lt;br /&gt;
* &#039;&#039;&#039;Eksponent&#039;&#039;&#039; – 8 bitova (excess‑128 format)  &lt;br /&gt;
* &#039;&#039;&#039;Znak&#039;&#039;&#039; – 1 bit&lt;br /&gt;
&lt;br /&gt;
=== Format floating‑point riječi ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Format floating‑point broja (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! Polje&lt;br /&gt;
! Duljina&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Znak mantise&lt;br /&gt;
| 1 bit&lt;br /&gt;
| Određuje pozitivan ili negativan broj.&lt;br /&gt;
|-&lt;br /&gt;
| Mantisa&lt;br /&gt;
| 27 bitova&lt;br /&gt;
| Normalizirana mantisa bez skrivenog bita.&lt;br /&gt;
|-&lt;br /&gt;
| Eksponent&lt;br /&gt;
| 8 bitova&lt;br /&gt;
| Excess‑128 format (stvarni eksponent = pohranjeni − 128).&lt;br /&gt;
|-&lt;br /&gt;
| Rezervirano&lt;br /&gt;
| 0 bitova&lt;br /&gt;
| Format je potpuno iskorišten; nema neiskorištenih bitova.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Excess‑128 eksponent ===&lt;br /&gt;
&lt;br /&gt;
Eksponent je pohranjen u obliku:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
stvarni_eksponent = pohranjeni_eksponent − 128&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj pristup omogućavao je jednostavnije usporedbe i normalizaciju brojeva.&lt;br /&gt;
&lt;br /&gt;
=== Normalizacija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 zahtijevao je da mantisa bude normalizirana tako da najviši bit mantise bude različit od nule.  &lt;br /&gt;
To je omogućavalo maksimalnu preciznost pri izračunima.&lt;br /&gt;
&lt;br /&gt;
=== Floating‑point operacije ===&lt;br /&gt;
&lt;br /&gt;
Računalo je podržavalo sljedeće operacije nad floating‑point brojevima:&lt;br /&gt;
&lt;br /&gt;
* zbrajanje (ADD)  &lt;br /&gt;
* oduzimanje (SUB)  &lt;br /&gt;
* množenje (MPY)  &lt;br /&gt;
* dijeljenje (DIV)&lt;br /&gt;
&lt;br /&gt;
Sve operacije koristile su aritmetičku jedinicu AC/MQ, pri čemu se rezultat normalizirao automatski.&lt;br /&gt;
&lt;br /&gt;
=== Primjer floating‑point operacije u assembleru ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj floating-point broj A&lt;br /&gt;
ADD B        / zbroji ga s B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Važnost floating‑point implementacije ===&lt;br /&gt;
&lt;br /&gt;
Hardverska podrška za pomični zarez bila je ključna za:&lt;br /&gt;
&lt;br /&gt;
* razvoj FORTRAN-a (1957.)&lt;br /&gt;
* balističke izračune&lt;br /&gt;
* aerodinamičke simulacije&lt;br /&gt;
* nuklearne proračune&lt;br /&gt;
* statističke modele&lt;br /&gt;
* rane znanstvene aplikacije NASA-e&lt;br /&gt;
&lt;br /&gt;
IBM 704 je time postavio standard koji će kasnije preuzeti svi moderni procesori.&lt;br /&gt;
&lt;br /&gt;
== Instrukcijski skup IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Glavne grupe instrukcija IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Grupa&lt;br /&gt;
! Primjeri&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Aritmetičke instrukcije&lt;br /&gt;
| ADD, SUB, MPY, DIV&lt;br /&gt;
| Operacije nad AC i MQ registrima; podrška za cijele brojeve i pomični zarez.&lt;br /&gt;
|-&lt;br /&gt;
| Logičke instrukcije&lt;br /&gt;
| CLA, CLM, COM&lt;br /&gt;
| Čišćenje, komplementiranje i manipulacija bitovima.&lt;br /&gt;
|-&lt;br /&gt;
| Uvjetno grananje&lt;br /&gt;
| TRA, TMI, TPL, TZE&lt;br /&gt;
| Skokovi ovisno o sadržaju AC ili MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Rad sa Sense Indicators&lt;br /&gt;
| TSI, SSI, RSI&lt;br /&gt;
| Testiranje, postavljanje i resetiranje statusnih bitova.&lt;br /&gt;
|-&lt;br /&gt;
| Indeksno adresiranje&lt;br /&gt;
| AXT, TXI&lt;br /&gt;
| Modifikacija adresa pomoću XR1, XR2, XR4.&lt;br /&gt;
|-&lt;br /&gt;
| Ulazno/izlazne instrukcije&lt;br /&gt;
| RDS, WRS, RWT&lt;br /&gt;
| Rad s magnetskom vrpcom, kartičnim čitačem i pisačem.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrola toka programa&lt;br /&gt;
| HLT, NOP&lt;br /&gt;
| Zaustavljanje programa, prazna instrukcija.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Opkodovi IBM 704 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Kompletan popis opkoda IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Opkod&lt;br /&gt;
! Mnemonik&lt;br /&gt;
! Grupa&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 000&lt;br /&gt;
| NOP&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Prazna instrukcija; ne radi ništa.&lt;br /&gt;
|-&lt;br /&gt;
| 001&lt;br /&gt;
| HLT&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Zaustavlja izvršavanje programa.&lt;br /&gt;
|-&lt;br /&gt;
| 002&lt;br /&gt;
| TRA&lt;br /&gt;
| Grananje&lt;br /&gt;
| Bezuvjetni skok na adresu.&lt;br /&gt;
|-&lt;br /&gt;
| 003&lt;br /&gt;
| TRN&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC negativan.&lt;br /&gt;
|-&lt;br /&gt;
| 004&lt;br /&gt;
| TMI&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC manji od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 005&lt;br /&gt;
| TPL&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC veći od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 006&lt;br /&gt;
| TZE&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC jednak nuli.&lt;br /&gt;
|-&lt;br /&gt;
| 007&lt;br /&gt;
| TOV&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je overflow zastavica postavljena.&lt;br /&gt;
|-&lt;br /&gt;
| 010&lt;br /&gt;
| ADD&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Zbrajanje sadržaja memorije s AC.&lt;br /&gt;
|-&lt;br /&gt;
| 011&lt;br /&gt;
| SUB&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Oduzimanje sadržaja memorije od AC.&lt;br /&gt;
|-&lt;br /&gt;
| 012&lt;br /&gt;
| MPY&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Množenje; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 013&lt;br /&gt;
| DIV&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Dijeljenje; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 014&lt;br /&gt;
| CLA&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 015&lt;br /&gt;
| CLM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 016&lt;br /&gt;
| COM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Komplementira AC.&lt;br /&gt;
|-&lt;br /&gt;
| 020&lt;br /&gt;
| SHL&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak ulijevo.&lt;br /&gt;
|-&lt;br /&gt;
| 021&lt;br /&gt;
| SHR&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak udesno.&lt;br /&gt;
|-&lt;br /&gt;
| 030&lt;br /&gt;
| AXT&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Učitava vrijednost u XR1, XR2 ili XR4.&lt;br /&gt;
|-&lt;br /&gt;
| 031&lt;br /&gt;
| TXI&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Dodaje vrijednost indeksnom registru.&lt;br /&gt;
|-&lt;br /&gt;
| 040&lt;br /&gt;
| RDS&lt;br /&gt;
| I/O&lt;br /&gt;
| Čitanje s magnetske vrpce.&lt;br /&gt;
|-&lt;br /&gt;
| 041&lt;br /&gt;
| WRS&lt;br /&gt;
| I/O&lt;br /&gt;
| Pisanje na magnetsku vrpcu.&lt;br /&gt;
|-&lt;br /&gt;
| 042&lt;br /&gt;
| RWT&lt;br /&gt;
| I/O&lt;br /&gt;
| Čekanje na I/O operaciju.&lt;br /&gt;
|-&lt;br /&gt;
| 050&lt;br /&gt;
| TSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Testira Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 051&lt;br /&gt;
| SSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Postavlja Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 052&lt;br /&gt;
| RSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Resetira Sense Indicator n.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Registri==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--             --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:88%;width:34em;&amp;quot;&lt;br /&gt;
|+ Registri u računalu IBM 704&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| style=&amp;quot;font-size:88%;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Podatkovni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | S&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | Q&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | P&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;14&amp;quot;| Akumulator&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | AC&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;1&amp;quot;| S&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;11&amp;quot;| Množitelj/Količnik&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | MQ&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;12&amp;quot;| Senzorni indikatori&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | SI&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 1&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR1 (XRA)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 2&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR2 (XRB)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 4 &lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR4 (XRC)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;14&amp;quot; | &#039;&#039;&#039;Brojač naredbi&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Brojač&amp;amp;nbsp;Naredbi&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| IC&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzorni indikatori&#039;&#039;&#039; - su posebni statusni bitovi u IBM 704 koj su se u praksi rabili za provjeru grešaka, grananje ovisno o stanju sustava, upravljanje perifernim jedinicama, te za signalizaciju posebnih događaja. Kroz njih programeri su mogli održavati stanje sustava, signalizirati određene uvjete tokom izvršavanje naredbi, čitanje i postavljanje naredbi i tako su služili za jednostane oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Sense Indicators (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! SI broj&lt;br /&gt;
! Naziv / funkcija&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Overflow flag&lt;br /&gt;
| Postavlja se pri prekoračenju rezultata u akumulatoru (AC) ili količniku (MQ).&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Divide check&lt;br /&gt;
| Signalizira pogrešku pri dijeljenju, uključujući dijeljenje nulom.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| I/O ready&lt;br /&gt;
| Uređaj spreman za prijenos podataka.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| I/O complete&lt;br /&gt;
| Završetak operacije ulaza/izlaza.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Tape mark&lt;br /&gt;
| Očitana oznaka kraja bloka na magnetskoj vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Printer ready&lt;br /&gt;
| Pisač spreman za rad.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Card reader ready&lt;br /&gt;
| Čitač kartica spreman.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Card punch ready&lt;br /&gt;
| Bušilica kartica spremna.&lt;br /&gt;
|-&lt;br /&gt;
| 8–15&lt;br /&gt;
| Peripheral flags&lt;br /&gt;
| Razni signali perifernih uređaja (disk, vrpca, pisač).&lt;br /&gt;
|-&lt;br /&gt;
| 16–35&lt;br /&gt;
| User-defined flags&lt;br /&gt;
| Zastavice koje programer može slobodno koristiti za logiku grananja.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Korištenje u IBM 704 assembleru ====&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao posebne instrukcije za rad sa Sense Indicators:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;TSI n&#039;&#039;&#039;&lt;br /&gt;
: Testira Sense Indicator &#039;&#039;n&#039;&#039;. Ako je postavljen, izvršavanje se nastavlja normalno; ako nije, preskače se sljedeća instrukcija.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3      / provjeri je li I/O complete&lt;br /&gt;
TRA DONE   / ako je postavljen, skoči na DONE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;SSI n&#039;&#039;&#039;&lt;br /&gt;
: Postavlja Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;RSI n&#039;&#039;&#039;&lt;br /&gt;
: Resetira Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 1      / provjeri divide check&lt;br /&gt;
TRA ERROR  / ako je SI1 = 1, idi na ERROR&lt;br /&gt;
&lt;br /&gt;
SSI 20     / postavi korisnički indikator 20&lt;br /&gt;
RSI 3      / resetiraj I/O complete indikator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Usporedba s modernim statusnim registrima ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! IBM 704 Sense Indicators&lt;br /&gt;
! Moderni statusni registri (x86, ARM, RISC-V)&lt;br /&gt;
|-&lt;br /&gt;
| 36 jednobitnih zastavica&lt;br /&gt;
| 8–32 bitni statusni registri&lt;br /&gt;
|-&lt;br /&gt;
| Ručno postavljanje i brisanje&lt;br /&gt;
| Automatsko postavljanje od strane ALU&lt;br /&gt;
|-&lt;br /&gt;
| Koriste se za I/O signalizaciju&lt;br /&gt;
| I/O signalizacija preko interrupt kontrolera&lt;br /&gt;
|-&lt;br /&gt;
| Jednostavne logičke zastavice&lt;br /&gt;
| Zastavice za aritmetiku, usporedbe, prekide&lt;br /&gt;
|-&lt;br /&gt;
| Programer koristi dio SI kao &amp;quot;user flags&amp;quot;&lt;br /&gt;
| Moderni jezici koriste varijable, strukture, objekte&lt;br /&gt;
|-&lt;br /&gt;
| Grananje preko TSI instrukcije&lt;br /&gt;
| Grananje preko CMP/JMP, BEQ/BNE, BLT/BGT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Primjeri IBM 704 assembler koda ==&lt;br /&gt;
&lt;br /&gt;
=== Zbrajanje dvaju brojeva ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj A u AC&lt;br /&gt;
ADD B        / dodaj B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Provjera negativnog broja ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA X        / učitaj X&lt;br /&gt;
TMI NEG      / ako je X &amp;lt; 0, idi na NEG&lt;br /&gt;
TRA DONE     / inače nastavi&lt;br /&gt;
NEG STO Y    / spremi negativnu vrijednost&lt;br /&gt;
DONE HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Množenje i dijeljenje ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A&lt;br /&gt;
MPY B        / AC*B → AC/MQ&lt;br /&gt;
DIV C        / (AC/MQ) / C → MQ (količnik), AC (ostatak)&lt;br /&gt;
STO Q        / spremi količnik&lt;br /&gt;
STO R        / spremi ostatak&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Korištenje Sense Indicators ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3        / provjeri I/O complete&lt;br /&gt;
TRA IO_OK    / ako je SI3 = 1, idi na IO_OK&lt;br /&gt;
SSI 20       / postavi korisnički indikator 20&lt;br /&gt;
IO_OK HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Performanse IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od najbržih znanstvenih računala svoje generacije. Njegova arhitektura s pomičnim zarezom, magnetskom jezgrom i specijaliziranim aritmetičkim registrima omogućavala je znatno bolje performanse u odnosu na prethodne modele IBM 701 i IBM 702. Sustav je bio optimiziran za matematičke operacije, simulacije, statističke izračune i obradu velikih numeričkih skupova podataka.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Performanse računala IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Brzina zbrajanja&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za izvršavanje jedne ADD instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina množenja&lt;br /&gt;
| ~20 μs&lt;br /&gt;
| Vrijeme za MPY instrukciju; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina dijeljenja&lt;br /&gt;
| ~38 μs&lt;br /&gt;
| Vrijeme za DIV instrukciju; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| Memorija&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Magnetska jezgra; pristup ~12 μs.&lt;br /&gt;
|-&lt;br /&gt;
| Ciklus instrukcije&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Prosječno vrijeme za dohvat i izvršavanje jednostavne instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina I/O operacija&lt;br /&gt;
| 7200 kartica/min (čitač)&lt;br /&gt;
| Kartični čitač i bušilica bili su glavni ulazno/izlazni sustavi.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| 12 500 znakovnih blokova/s&lt;br /&gt;
| Ovisno o uređaju; korišteno za masovno spremanje podataka.&lt;br /&gt;
|-&lt;br /&gt;
| Preciznost pomičnog zareza&lt;br /&gt;
| 27-bitni eksponent + 8-bitna mantisa&lt;br /&gt;
| Omogućavalo znanstvene izračune velike preciznosti.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pouzdanost ==&lt;br /&gt;
&lt;br /&gt;
Iako je IBM 704 bio znatno pouzdaniji od svog prethodnika IBM 701, i dalje je bio stroj temeljen na vakuumskim cijevima, što je značilo relativno česte kvarove prema današnjim standardima. Prosječno vrijeme između kvarova iznosilo je oko 8 sati, što je ograničavalo veličinu programa koje je bilo moguće kompajlirati ili izvršavati bez prekida.&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN kompajleri morali su biti iznimno učinkoviti jer bi preduga kompilacija mogla biti prekinuta kvarom sustava. Unatoč tome, IBM 704 je bio dovoljno pouzdan da postane temelj za razvoj FORTRAN-a, LISP-a, ranih neuralnih mreža i brojnih znanstvenih projekata.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Pouzdanost IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| MTBF (mean time between failure)&lt;br /&gt;
| ~8 sati&lt;br /&gt;
| Prosječno vrijeme rada prije kvara.&lt;br /&gt;
|-&lt;br /&gt;
| Usporedba s IBM 701&lt;br /&gt;
| ~30 minuta&lt;br /&gt;
| IBM 704 bio je znatno pouzdaniji od svog prethodnika.&lt;br /&gt;
|-&lt;br /&gt;
| Utjecaj na softver&lt;br /&gt;
| Ograničena veličina programa&lt;br /&gt;
| Kompilacije su morale biti kratke zbog mogućih kvarova.&lt;br /&gt;
|-&lt;br /&gt;
| Tehnologija&lt;br /&gt;
| Vakuumske cijevi&lt;br /&gt;
| Glavni uzrok kvarova i zagrijavanja sustava.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SAP asembler ==&lt;br /&gt;
&lt;br /&gt;
SAP (&#039;&#039;Symbolic Assembly Program&#039;&#039;) bio je službeni asembler za IBM 704 i predstavljao je jedan od najranijih i najutjecajnijih asemblera u povijesti računarstva. Razvijen je unutar IBM-a sredinom 1950-ih kako bi programerima omogućio pisanje simboličkog koda umjesto ručnog unošenja numeričkih opkoda i adresa.&lt;br /&gt;
&lt;br /&gt;
SAP je bio ključan za razvoj FORTRAN-a, LISP-a i mnogih ranih znanstvenih aplikacija, jer je omogućio jednostavnije pisanje, čitanje i održavanje programa na IBM 704.&lt;br /&gt;
&lt;br /&gt;
=== Značajke SAP asemblera ===&lt;br /&gt;
&lt;br /&gt;
SAP je imao nekoliko naprednih značajki za svoje vrijeme:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simboličke oznake&#039;&#039;&#039; – programeri su mogli koristiti imena umjesto numeričkih adresa.&lt;br /&gt;
* &#039;&#039;&#039;Automatsko izračunavanje adresa&#039;&#039;&#039; – asembler je sam određivao lokacije instrukcija.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za indeksne registre&#039;&#039;&#039; – XR1, XR2 i XR4 mogli su se koristiti u adresiranju.&lt;br /&gt;
* &#039;&#039;&#039;Jednostavna sintaksa&#039;&#039;&#039; – instrukcije su bile kratke i čitljive.&lt;br /&gt;
* &#039;&#039;&#039;Integracija s FORTRAN-om&#039;&#039;&#039; – FORTRAN kompajler generirao je SAP kod.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za floating‑point operacije&#039;&#039;&#039; – izravno korištenje AC/MQ jedinice.&lt;br /&gt;
&lt;br /&gt;
SAP je bio jedan od prvih asemblera koji je omogućio relativno visok stupanj apstrakcije u odnosu na strojni kod.&lt;br /&gt;
&lt;br /&gt;
=== Struktura SAP instrukcije ===&lt;br /&gt;
&lt;br /&gt;
Instrukcije su se sastojale od:&lt;br /&gt;
&lt;br /&gt;
* mnemonika (ADD, SUB, MPY, DIV, TRA…)&lt;br /&gt;
* adrese ili simbola&lt;br /&gt;
* opcionalnog indeksnog modifikatora&lt;br /&gt;
* komentara&lt;br /&gt;
&lt;br /&gt;
Primjer strukture:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
MNEMONIK  ADRESA,XR   / komentar&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Primjer SAP koda ===&lt;br /&gt;
&lt;br /&gt;
Slijedi povijesno točan primjer SAP koda za IBM 704:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
A      DEC 5          / definiraj konstantu A&lt;br /&gt;
B      DEC 7          / definiraj konstantu B&lt;br /&gt;
C      BSS 1          / rezerviraj prostor za rezultat&lt;br /&gt;
&lt;br /&gt;
       CLA A          / učitaj A u AC&lt;br /&gt;
       ADD B          / dodaj B&lt;br /&gt;
       STO C          / spremi rezultat u C&lt;br /&gt;
       HLT            / zaustavi program&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Korištenje indeksnih registara ===&lt;br /&gt;
&lt;br /&gt;
SAP je omogućavao jednostavno korištenje XR1, XR2 i XR4:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
LOOP   CLA ARRAY,XR1  / učitaj element polja&lt;br /&gt;
       ADD SUM        / dodaj na sumu&lt;br /&gt;
       STO SUM        / spremi rezultat&lt;br /&gt;
       TXI XR1,1      / povećaj indeks&lt;br /&gt;
       TPL LOOP       / ako je pozitivan, nastavi petlju&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio preteča modernih petlji u visokorazinskim jezicima.&lt;br /&gt;
&lt;br /&gt;
=== SAP i FORTRAN ===&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN kompajler generirao je SAP kod koji se zatim prevodio u strojni kod IBM 704.  &lt;br /&gt;
Zbog toga je SAP bio ključan za:&lt;br /&gt;
&lt;br /&gt;
* optimizaciju FORTRAN programa,&lt;br /&gt;
* implementaciju DO petlji,&lt;br /&gt;
* rad s poljima i matricama,&lt;br /&gt;
* floating‑point operacije,&lt;br /&gt;
* kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
=== SAP i LISP ===&lt;br /&gt;
&lt;br /&gt;
Prva implementacija LISP-a (1958.) bila je napisana upravo u SAP asembleru.  &lt;br /&gt;
SAP je omogućio:&lt;br /&gt;
&lt;br /&gt;
* manipulaciju cons‑struktura,&lt;br /&gt;
* implementaciju CAR i CDR operacija,&lt;br /&gt;
* rekurziju,&lt;br /&gt;
* dinamičko upravljanje memorijom.&lt;br /&gt;
&lt;br /&gt;
Bez SAP-a, LISP ne bi mogao biti implementiran na IBM 704.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj SAP-a ===&lt;br /&gt;
&lt;br /&gt;
SAP je bio jedan od najvažnijih asemblera 1950-ih i 1960-ih.  &lt;br /&gt;
Njegov utjecaj vidljiv je u:&lt;br /&gt;
&lt;br /&gt;
* razvoju FORTRAN-a,&lt;br /&gt;
* nastanku LISP-a,&lt;br /&gt;
* ranim AI projektima,&lt;br /&gt;
* znanstvenim simulacijama,&lt;br /&gt;
* razvoju modernih asemblera i kompajlera.&lt;br /&gt;
&lt;br /&gt;
SAP je postavio temelje za simboličko programiranje i bio je ključni alat u zlatnom dobu ranog računarstva.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju LISP-a ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je ključnu ulogu u nastanku programskog jezika LISP, jednog od najvažnijih jezika u povijesti računarstva. LISP je 1958. godine razvio John McCarthy na MIT-u, a upravo je IBM 704 bio prvo računalo na kojem je LISP implementiran i izvršavan.&lt;br /&gt;
&lt;br /&gt;
Razvoj LISP-a bio je izravno povezan s arhitekturom IBM 704, posebno s njegovim:&lt;br /&gt;
* 36-bitnim riječima,&lt;br /&gt;
* aritmetičkom jedinicom AC/MQ,&lt;br /&gt;
* indeksnim registrima,&lt;br /&gt;
* mogućnošću manipulacije adresama,&lt;br /&gt;
* podrškom za uvjetno grananje,&lt;br /&gt;
* te fleksibilnim instrukcijskim formatom.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio pogodan za LISP ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je nekoliko arhitekturnih značajki koje su se pokazale idealnima za implementaciju LISP-a:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;36-bitne riječi&#039;&#039;&#039; omogućavale su učinkovito predstavljanje parova (cons cells).&lt;br /&gt;
* &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039; olakšavali su rad s listama i rekurzivnim strukturama.&lt;br /&gt;
* &#039;&#039;&#039;Instrukcije grananja&#039;&#039;&#039; (TRA, TMI, TPL, TZE) omogućavale su jednostavnu implementaciju rekurzije.&lt;br /&gt;
* &#039;&#039;&#039;Magnetska jezgra&#039;&#039;&#039; bila je dovoljno brza za dinamičke strukture podataka.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za floating-point&#039;&#039;&#039; olakšala je rad s matematičkim funkcijama.&lt;br /&gt;
&lt;br /&gt;
McCarthy je iskoristio ove mogućnosti kako bi implementirao osnovne LISP konstrukte: CONS, CAR, CDR, rekurziju, lambda‑izraze i funkcije višeg reda.&lt;br /&gt;
&lt;br /&gt;
=== Prva implementacija LISP-a ===&lt;br /&gt;
&lt;br /&gt;
Prva verzija LISP-a bila je napisana u SAP asembleru za IBM 704.  &lt;br /&gt;
Ova implementacija uključivala je:&lt;br /&gt;
&lt;br /&gt;
* interpreter,&lt;br /&gt;
* evaluator,&lt;br /&gt;
* upravljanje memorijom,&lt;br /&gt;
* implementaciju cons‑struktura,&lt;br /&gt;
* osnovne matematičke funkcije,&lt;br /&gt;
* te mehanizme za rekurziju i funkcije višeg reda.&lt;br /&gt;
&lt;br /&gt;
LISP je na IBM 704 radio kao interpretirani jezik, a programi su se izvršavali izravno nad strukturom lista u memoriji.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je omogućio LISP-u da postane prvi široko korišteni jezik za:&lt;br /&gt;
&lt;br /&gt;
* umjetnu inteligenciju,&lt;br /&gt;
* simboličku manipulaciju,&lt;br /&gt;
* matematičku logiku,&lt;br /&gt;
* rane ekspertske sustave,&lt;br /&gt;
* istraživanje strojnog učenja.&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, LISP bi vjerojatno bio znatno drugačiji — ili bi se pojavio mnogo kasnije.&lt;br /&gt;
&lt;br /&gt;
=== Primjer ranog LISP izraza (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Iako se LISP nije zapisivao u assembleru, njegovi izrazi su se prevodili u SAP kod za IBM 704.  &lt;br /&gt;
Primjer jednostavne LISP funkcije:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(define (square x)&lt;br /&gt;
  (* x x))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj izraz bi se na IBM 704 interno pretvorio u operacije nad cons‑struktura i pozive aritmetičkih instrukcija MPY i ADD.&lt;br /&gt;
&lt;br /&gt;
=== Utjecaj na daljnji razvoj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je bio platforma na kojoj su nastale ključne ideje:&lt;br /&gt;
&lt;br /&gt;
* automatsko upravljanje memorijom,&lt;br /&gt;
* rekurzija kao temeljni mehanizam,&lt;br /&gt;
* funkcije višeg reda,&lt;br /&gt;
* lambda‑račun,&lt;br /&gt;
* simbolička obrada podataka.&lt;br /&gt;
&lt;br /&gt;
Ove ideje postale su temelj modernih programskih jezika, od Schemea i Prologa do Pythona i JavaScripta.&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju FORTRAN-a ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je presudnu ulogu u nastanku FORTRAN-a (Formula Translation), prvog široko korištenog visokorazinskog programskog jezika. FORTRAN je razvijen 1957. godine u IBM-u pod vodstvom Johna Backusa, a IBM 704 bio je prvo računalo na kojem je FORTRAN implementiran, kompajliran i izvršavan.&lt;br /&gt;
&lt;br /&gt;
Arhitektura IBM 704 izravno je oblikovala dizajn FORTRAN-a. Njegova podrška za aritmetiku s pomičnim zarezom, indeksne registre, statusne indikatore i 36-bitne riječi omogućila je stvaranje jezika koji je bio optimiziran za znanstvene i tehničke izračune.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio ključan za FORTRAN ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 posjedovao je nekoliko arhitekturnih značajki koje su bile presudne za razvoj FORTRAN-a:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Hardverska floating‑point jedinica&#039;&#039;&#039; – omogućila je izravnu podršku za matematičke operacije.&lt;br /&gt;
* &#039;&#039;&#039;Aritmetički registri AC i MQ&#039;&#039;&#039; – olakšali su implement&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju ranih neuralnih mreža ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je važnu ulogu u razvoju najranijih modela umjetnih neuronskih mreža tijekom kasnih 1950-ih i ranih 1960-ih. Iako su ti modeli bili daleko jednostavniji od današnjih dubokih mreža, IBM 704 je bio jedno od rijetkih računala koje je imalo dovoljno memorije, brzine i aritmetičkih mogućnosti da može izvoditi simulacije neuronskih mreža u praksi.&lt;br /&gt;
&lt;br /&gt;
Rani pioniri umjetne inteligencije, uključujući Franka Rosenblatta, Herberta Simona, Allena Newella i istraživače s MIT-a i Cornell Aeronautical Laboratory, koristili su IBM 704 za implementaciju i testiranje prvih algoritama koji su simulirali neuronsko učenje.&lt;br /&gt;
&lt;br /&gt;
=== IBM 704 i perceptron ===&lt;br /&gt;
&lt;br /&gt;
Najvažniji doprinos IBM 704 razvoju neuralnih mreža bio je u implementaciji i simulaciji **Rosenblattovog perceptrona**, prvog formalnog modela neuronske mreže koji je mogao učiti iz podataka.&lt;br /&gt;
&lt;br /&gt;
IBM 704 omogućio je:&lt;br /&gt;
&lt;br /&gt;
* izračun težina perceptrona,&lt;br /&gt;
* simulaciju učenja kroz iteracije,&lt;br /&gt;
* rad s matricama i vektorima,&lt;br /&gt;
* evaluaciju linearnih klasifikatora,&lt;br /&gt;
* testiranje različitih skupova podataka.&lt;br /&gt;
&lt;br /&gt;
Iako je perceptron kasnije imao i hardversku implementaciju (Mark I Perceptron), IBM 704 bio je ključan za **prve softverske simulacije** koje su potvrdile da se neuronske mreže mogu trenirati računalno.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio pogodan za neuralne mreže ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je nekoliko arhitekturnih značajki koje su bile iznimno korisne za rane AI eksperimente:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Floating‑point jedinica&#039;&#039;&#039; – omogućila je precizne izračune težina i aktivacijskih funkcija.&lt;br /&gt;
* &#039;&#039;&#039;Aritmetički registri AC/MQ&#039;&#039;&#039; – ubrzali su operacije nad vektorima.&lt;br /&gt;
* &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039; – olakšali su rad s matricama i iteracijama.&lt;br /&gt;
* &#039;&#039;&#039;Magnetska jezgra&#039;&#039;&#039; – bila je dovoljno brza za ponavljajuće izračune.&lt;br /&gt;
* &#039;&#039;&#039;Instrukcije grananja&#039;&#039;&#039; – omogućile su implementaciju algoritama učenja.&lt;br /&gt;
&lt;br /&gt;
Zbog toga je IBM 704 bio jedno od prvih računala koje je moglo izvoditi **iterativne algoritme učenja**, temeljne za neuralne mreže.&lt;br /&gt;
&lt;br /&gt;
=== Rani eksperimenti umjetne inteligencije ===&lt;br /&gt;
&lt;br /&gt;
Na IBM 704 provodili su se rani eksperimenti koji su uključivali:&lt;br /&gt;
&lt;br /&gt;
* simulaciju perceptrona,&lt;br /&gt;
* klasifikaciju jednostavnih vizualnih uzoraka,&lt;br /&gt;
* prepoznavanje znakova,&lt;br /&gt;
* rane oblike strojne percepcije,&lt;br /&gt;
* istraživanje linearnih i nelinearnih funkcija aktivacije.&lt;br /&gt;
&lt;br /&gt;
Ovi eksperimenti bili su temelj za kasniji razvoj:&lt;br /&gt;
&lt;br /&gt;
* višeslojnih perceptrona,&lt;br /&gt;
* backpropagation algoritma,&lt;br /&gt;
* dubokog učenja,&lt;br /&gt;
* računalnog vida.&lt;br /&gt;
&lt;br /&gt;
=== Primjer jednostavne perceptronske iteracije (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći pseudokod prikazuje kako je perceptron bio implementiran na IBM 704:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA W1        / učitaj težinu&lt;br /&gt;
MPY X1        / pomnoži s ulazom&lt;br /&gt;
ADD SUM       / dodaj na akumuliranu sumu&lt;br /&gt;
STO SUM       / spremi novu vrijednost&lt;br /&gt;
&lt;br /&gt;
... ponavljati za sve ulaze ...&lt;br /&gt;
&lt;br /&gt;
CLA SUM&lt;br /&gt;
TMI UPDATE    / ako je pogreška negativna, ažuriraj težine&lt;br /&gt;
TPL UPDATE    / ako je pogreška pozitivna, također ažuriraj&lt;br /&gt;
&lt;br /&gt;
UPDATE:&lt;br /&gt;
ADD ERROR     / korekcija težine&lt;br /&gt;
STO W1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio jedan od prvih primjera **računalnog učenja** u povijesti.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je ključan za rani razvoj umjetne inteligencije jer je:&lt;br /&gt;
&lt;br /&gt;
* omogućio prve računalne simulacije neuronskih mreža,&lt;br /&gt;
* bio platforma za perceptron i rane modele učenja,&lt;br /&gt;
* omogućio istraživanje algoritama koji su kasnije postali temelj dubokog učenja,&lt;br /&gt;
* povezao AI istraživanje s praktičnim računalnim sustavima.&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, razvoj ranih neuralnih mreža bio bi znatno sporiji i ograničeniji.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u ranoj robotici ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je važnu ulogu u razvoju najranijih oblika robotike i automatizacije tijekom kasnih 1950-ih i ranih 1960-ih. Iako se u to vrijeme pojam „robotika“ tek počeo pojavljivati u znanstvenoj literaturi, IBM 704 bio je jedno od prvih računala koje je moglo upravljati mehaničkim sustavima, analizirati senzorske podatke i izvoditi algoritme koji su predstavljali preteču modernog upravljanja robotima.&lt;br /&gt;
&lt;br /&gt;
Rani robotski sustavi bili su primitivni u odnosu na današnje, ali IBM 704 je omogućio:&lt;br /&gt;
&lt;br /&gt;
* upravljanje aktuatorima i elektromehaničkim uređajima,&lt;br /&gt;
* obradu ulaznih signala iz senzora,&lt;br /&gt;
* simulaciju kretanja i kontrolnih petlji,&lt;br /&gt;
* rane eksperimente u automatskom upravljanju,&lt;br /&gt;
* integraciju s vizualnim sustavima (CRT prikaz IBM 740).&lt;br /&gt;
&lt;br /&gt;
=== Rani eksperimenti automatizacije ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 korišten je u laboratorijima i istraživačkim centrima za:&lt;br /&gt;
&lt;br /&gt;
* upravljanje robotskim manipulatorima,&lt;br /&gt;
* simulaciju kinematike i dinamike,&lt;br /&gt;
* upravljanje servo‑motorima,&lt;br /&gt;
* automatizaciju industrijskih procesa,&lt;br /&gt;
* rane oblike povratne sprege (feedback control).&lt;br /&gt;
&lt;br /&gt;
Ovi sustavi nisu bili roboti u modernom smislu, ali su predstavljali ključne korake prema:&lt;br /&gt;
&lt;br /&gt;
* numeričkom upravljanju strojevima (NC machines),&lt;br /&gt;
* automatskim manipulatorima,&lt;br /&gt;
* sustavima za automatsko pozicioniranje,&lt;br /&gt;
* ranim oblicima cybernetike.&lt;br /&gt;
&lt;br /&gt;
=== IBM 704 i cybernetika ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je često korišten u istraživanjima inspiriranim radom Norberta Wienera, osnivača cybernetike.  &lt;br /&gt;
Sustav je omogućavao:&lt;br /&gt;
&lt;br /&gt;
* simulaciju povratne sprege,&lt;br /&gt;
* analizu stabilnosti sustava,&lt;br /&gt;
* implementaciju kontrolnih algoritama,&lt;br /&gt;
* rane oblike adaptivnog upravljanja.&lt;br /&gt;
&lt;br /&gt;
Ovo je bilo ključno za razvoj robotskih sustava koji se mogu prilagođavati promjenama u okruženju.&lt;br /&gt;
&lt;br /&gt;
=== Vizualni sustavi i IBM 740 ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 se mogao povezati s CRT zaslonom IBM 740, koji je omogućavao:&lt;br /&gt;
&lt;br /&gt;
* prikaz vektorskih grafika,&lt;br /&gt;
* vizualizaciju putanja kretanja,&lt;br /&gt;
* prikaz senzorskih podataka,&lt;br /&gt;
* rane eksperimente u računalnom vidu.&lt;br /&gt;
&lt;br /&gt;
Iako primitivni, ovi sustavi bili su preteča kasnijih robotskih vizualnih sustava.&lt;br /&gt;
&lt;br /&gt;
=== Primjer jednostavne kontrolne petlje (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći SAP kod prikazuje kako je IBM 704 mogao implementirati jednostavnu kontrolnu petlju za upravljanje aktuatorom:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
READSENSOR  RDS SENS        / očitaj senzor&lt;br /&gt;
           CLA SENS        / učitaj vrijednost&lt;br /&gt;
           SUB TARGET      / usporedi s ciljem&lt;br /&gt;
           TPL INCREASE    / ako je pozitivno, povećaj izlaz&lt;br /&gt;
           TMI DECREASE    / ako je negativno, smanji izlaz&lt;br /&gt;
&lt;br /&gt;
INCREASE   ADD STEP        / povećaj upravljački signal&lt;br /&gt;
           STO ACTUATOR&lt;br /&gt;
           TRA LOOP&lt;br /&gt;
&lt;br /&gt;
DECREASE   SUB STEP        / smanji upravljački signal&lt;br /&gt;
           STO ACTUATOR&lt;br /&gt;
           TRA LOOP&lt;br /&gt;
&lt;br /&gt;
LOOP       TRA READSENSOR  / ponovi petlju&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio jedan od prvih primjera računalno upravljanih mehaničkih sustava.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je ključan za rani razvoj robotike jer je:&lt;br /&gt;
&lt;br /&gt;
* omogućio prve računalne simulacije upravljanja strojevima,&lt;br /&gt;
* bio platforma za cybernetičke eksperimente,&lt;br /&gt;
* omogućio integraciju senzora i aktuatora,&lt;br /&gt;
* pružio temelj za numeričko upravljanje strojevima (NC),&lt;br /&gt;
* povezao mehaniku, elektroniku i računalne algoritme.&lt;br /&gt;
&lt;br /&gt;
IBM 704 je time postavio temelje za kasniji razvoj industrijskih robota, autonomnih sustava i modernih robotskih tehnologija.&lt;br /&gt;
&lt;br /&gt;
==Izvori==&lt;br /&gt;
{{izvori}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorija:IBM]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787637</id>
		<title>IBM 704</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787637"/>
		<updated>2026-07-07T10:08:24Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Zašto je IBM 704 bio ključan za FORTRAN */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;IBM 704&#039;&#039;&#039; ime je za računalo prve generacije koje je razvila tvrtka [[IBM]] i jedan je iz serije računala IBM 700. Ovo računalo se proizvodilo od 1954. do 1964. godine.&amp;lt;ref&amp;gt;https://www.ibm.com/history/700&amp;lt;/ref&amp;gt;. Povijesna važnost ovog računala jest da je na njemu bio razvijen programski jezik [[FORTRAN]] i [[LISP]] te SAP asembler. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Povijest razvoja IBM 700 serije ==&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija bila je prva generacija komercijalnih znanstvenih računala koju je IBM razvio početkom 1950-ih. Serija je započela s modelom IBM 701 (1952.), poznatim kao „Defense Calculator“, koji je bio namijenjen vojnoj i zrakoplovnoj industriji.&lt;br /&gt;
&lt;br /&gt;
* IBM 702 (1953.) bio je poslovno orijentiran sustav, dok je IBM 703 bio eksperimentalni model.&lt;br /&gt;
* IBM 704 je postao temelj za razvoj FORTRAN-a (1957.), prvog visokorazinskog programskog jezika.&lt;br /&gt;
&lt;br /&gt;
Pravi tehnološki iskorak dogodio se s modelom &#039;&#039;&#039;IBM 704&#039;&#039;&#039; (1954.), prvim računalom koje je podržavalo:&lt;br /&gt;
* aritmetiku s pomičnim zarezom,&lt;br /&gt;
* indeksne registre,&lt;br /&gt;
* statusne indikatore,&lt;br /&gt;
* magnetsku jezgru kao primarnu memoriju.&lt;br /&gt;
&lt;br /&gt;
Serija se nastavila s modelima IBM 709 (1958.) i IBM 7090 (1959.), koji su bili tranzistorski nasljednici i koristili se u NASA-i, NORAD-u i velikim znanstvenim centrima.&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija ostavila je dubok trag u povijesti računarstva, postavivši standarde arhitekture koji su se zadržali desetljećima.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arhitektura IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od prvih komercijalnih računala koje je uvodilo napredne koncepte arhitekture, uključujući rad s pomičnim zarezom, indeksne registre i statusne indikatore. Sustav je bio dizajniran za znanstvene i tehničke izračune, što ga je činilo ključnim alatom u laboratorijima, sveučilištima i ranim zrakoplovnim projektima.&lt;br /&gt;
&lt;br /&gt;
=== Memorija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 koristio je magnetsku jezgru kao primarnu memoriju, što je u to vrijeme predstavljalo veliki tehnološki napredak u odnosu na Williamsove cijevi korištene u IBM-u 701. Magnetska jezgra bila je brža, pouzdanija i omogućavala stabilno zadržavanje podataka bez potrebe za stalnim osvježavanjem.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Memorijske karakteristike IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Vrsta memorije&lt;br /&gt;
| Magnetska jezgra&lt;br /&gt;
| Stabilna, brza i pouzdana tehnologija za 1950-e.&lt;br /&gt;
|-&lt;br /&gt;
| Kapacitet&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Ukupno 147 456 bitova (18 432 bajta).&lt;br /&gt;
|-&lt;br /&gt;
| Vrijeme pristupa&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za čitanje ili pisanje jedne riječi.&lt;br /&gt;
|-&lt;br /&gt;
| Format riječi&lt;br /&gt;
| 36-bitna riječ&lt;br /&gt;
| Koristi se za instrukcije, podatke i floating-point brojeve.&lt;br /&gt;
|-&lt;br /&gt;
| Floating-point format&lt;br /&gt;
| 8-bitni eksponent + 27-bitna mantisa&lt;br /&gt;
| Bez skrivenog bita; excess-128 eksponent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Periferni uređaji ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 podržavao je širok spektar perifernih uređaja, što ga je činilo pogodnim za znanstvene, tehničke i administrativne zadatke. Ulazno/izlazni sustav bio je temeljen na magnetskim vrpcama, kartičnim čitačima i pisačima, uz mogućnost prikaza podataka na CRT zaslonima.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Periferni uređaji IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Uređaj&lt;br /&gt;
! Model&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Čitač kartica&lt;br /&gt;
| IBM 711&lt;br /&gt;
| Učitava programe i podatke s bušenih kartica.&lt;br /&gt;
|-&lt;br /&gt;
| Pisač&lt;br /&gt;
| IBM 716&lt;br /&gt;
| Ispisuje tekstualni izlaz; glavni uređaj za ljudsko čitanje rezultata.&lt;br /&gt;
|-&lt;br /&gt;
| Bušilica kartica&lt;br /&gt;
| IBM 721&lt;br /&gt;
| Zapisuje podatke na bušene kartice.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| IBM 727&lt;br /&gt;
| Glavni masovni spremnik; preko 5 milijuna znakova po vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrolna jedinica vrpci&lt;br /&gt;
| IBM 753&lt;br /&gt;
| Upravljanje magnetskim vrpcama.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetski bubanj&lt;br /&gt;
| IBM 733&lt;br /&gt;
| Dodatna memorija za brzi pristup.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetska jezgra (RAM)&lt;br /&gt;
| IBM 737&lt;br /&gt;
| Primarna memorija sustava (4096 × 36-bitnih riječi).&lt;br /&gt;
|-&lt;br /&gt;
| CRT zaslon&lt;br /&gt;
| IBM 740&lt;br /&gt;
| 21-inčni vektorski prikaz s dugom fosfornom postojanošću; korišten za vizualizaciju podataka.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aritmetička jedinica (AC i MQ) ===&lt;br /&gt;
Aritmetička jedinica sastojala se od dva glavna 36-bitna registra:&lt;br /&gt;
* &#039;&#039;&#039;AC (Accumulator)&#039;&#039;&#039; – glavni registar za aritmetiku.&lt;br /&gt;
* &#039;&#039;&#039;MQ (Multiplier/Quotient)&#039;&#039;&#039; – registar za množenje i dijeljenje.&lt;br /&gt;
&lt;br /&gt;
Ova dva registra zajedno su omogućavala učinkovite operacije nad velikim brojevima i pomičnim zarezom.&lt;br /&gt;
&lt;br /&gt;
=== Indeksni registri (XR1, XR2, XR4) ===&lt;br /&gt;
IBM 704 je koristio tri indeksna registra:&lt;br /&gt;
* &#039;&#039;&#039;XR1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Indeksni registri omogućavali su modifikaciju adresa, implementaciju petlji i rad s velikim poljima podataka. Ovo je bio preteča modernog adresiranja u procesorima.&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori (SI) ===&lt;br /&gt;
Sustav je imao 36 senzorskih indikatora koji su služili kao statusne zastavice:&lt;br /&gt;
* indikatori grešaka (overflow, divide check)&lt;br /&gt;
* indikatori stanja I/O uređaja&lt;br /&gt;
* korisnički definirani indikatori&lt;br /&gt;
&lt;br /&gt;
Programi su mogli testirati i postavljati SI bitove, što je omogućavalo primitivne oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
=== Instrukcijski format ===&lt;br /&gt;
Instrukcije su bile 36-bitne, s poljima:&lt;br /&gt;
* opkod&lt;br /&gt;
* adresa&lt;br /&gt;
* indeksni modifikator&lt;br /&gt;
* bitovi za uvjetno grananje&lt;br /&gt;
&lt;br /&gt;
Ovaj format omogućavao je fleksibilno adresiranje i kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Floating‑point implementacija ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je prvo komercijalno računalo koje je imalo ugrađenu hardversku podršku za aritmetiku s pomičnim zarezom. Ovo je bio ključni tehnološki iskorak koji je omogućio razvoj FORTRAN-a i znanstvenih aplikacija koje su zahtijevale visoku numeričku preciznost.&lt;br /&gt;
&lt;br /&gt;
Floating‑point brojevi u IBM 704 bili su pohranjeni u 36‑bitnim riječima, podijeljenima na dva glavna dijela:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Mantisa&#039;&#039;&#039; – 27 bitova  &lt;br /&gt;
* &#039;&#039;&#039;Eksponent&#039;&#039;&#039; – 8 bitova (excess‑128 format)  &lt;br /&gt;
* &#039;&#039;&#039;Znak&#039;&#039;&#039; – 1 bit&lt;br /&gt;
&lt;br /&gt;
=== Format floating‑point riječi ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Format floating‑point broja (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! Polje&lt;br /&gt;
! Duljina&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Znak mantise&lt;br /&gt;
| 1 bit&lt;br /&gt;
| Određuje pozitivan ili negativan broj.&lt;br /&gt;
|-&lt;br /&gt;
| Mantisa&lt;br /&gt;
| 27 bitova&lt;br /&gt;
| Normalizirana mantisa bez skrivenog bita.&lt;br /&gt;
|-&lt;br /&gt;
| Eksponent&lt;br /&gt;
| 8 bitova&lt;br /&gt;
| Excess‑128 format (stvarni eksponent = pohranjeni − 128).&lt;br /&gt;
|-&lt;br /&gt;
| Rezervirano&lt;br /&gt;
| 0 bitova&lt;br /&gt;
| Format je potpuno iskorišten; nema neiskorištenih bitova.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Excess‑128 eksponent ===&lt;br /&gt;
&lt;br /&gt;
Eksponent je pohranjen u obliku:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
stvarni_eksponent = pohranjeni_eksponent − 128&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj pristup omogućavao je jednostavnije usporedbe i normalizaciju brojeva.&lt;br /&gt;
&lt;br /&gt;
=== Normalizacija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 zahtijevao je da mantisa bude normalizirana tako da najviši bit mantise bude različit od nule.  &lt;br /&gt;
To je omogućavalo maksimalnu preciznost pri izračunima.&lt;br /&gt;
&lt;br /&gt;
=== Floating‑point operacije ===&lt;br /&gt;
&lt;br /&gt;
Računalo je podržavalo sljedeće operacije nad floating‑point brojevima:&lt;br /&gt;
&lt;br /&gt;
* zbrajanje (ADD)  &lt;br /&gt;
* oduzimanje (SUB)  &lt;br /&gt;
* množenje (MPY)  &lt;br /&gt;
* dijeljenje (DIV)&lt;br /&gt;
&lt;br /&gt;
Sve operacije koristile su aritmetičku jedinicu AC/MQ, pri čemu se rezultat normalizirao automatski.&lt;br /&gt;
&lt;br /&gt;
=== Primjer floating‑point operacije u assembleru ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj floating-point broj A&lt;br /&gt;
ADD B        / zbroji ga s B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Važnost floating‑point implementacije ===&lt;br /&gt;
&lt;br /&gt;
Hardverska podrška za pomični zarez bila je ključna za:&lt;br /&gt;
&lt;br /&gt;
* razvoj FORTRAN-a (1957.)&lt;br /&gt;
* balističke izračune&lt;br /&gt;
* aerodinamičke simulacije&lt;br /&gt;
* nuklearne proračune&lt;br /&gt;
* statističke modele&lt;br /&gt;
* rane znanstvene aplikacije NASA-e&lt;br /&gt;
&lt;br /&gt;
IBM 704 je time postavio standard koji će kasnije preuzeti svi moderni procesori.&lt;br /&gt;
&lt;br /&gt;
== Instrukcijski skup IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Glavne grupe instrukcija IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Grupa&lt;br /&gt;
! Primjeri&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Aritmetičke instrukcije&lt;br /&gt;
| ADD, SUB, MPY, DIV&lt;br /&gt;
| Operacije nad AC i MQ registrima; podrška za cijele brojeve i pomični zarez.&lt;br /&gt;
|-&lt;br /&gt;
| Logičke instrukcije&lt;br /&gt;
| CLA, CLM, COM&lt;br /&gt;
| Čišćenje, komplementiranje i manipulacija bitovima.&lt;br /&gt;
|-&lt;br /&gt;
| Uvjetno grananje&lt;br /&gt;
| TRA, TMI, TPL, TZE&lt;br /&gt;
| Skokovi ovisno o sadržaju AC ili MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Rad sa Sense Indicators&lt;br /&gt;
| TSI, SSI, RSI&lt;br /&gt;
| Testiranje, postavljanje i resetiranje statusnih bitova.&lt;br /&gt;
|-&lt;br /&gt;
| Indeksno adresiranje&lt;br /&gt;
| AXT, TXI&lt;br /&gt;
| Modifikacija adresa pomoću XR1, XR2, XR4.&lt;br /&gt;
|-&lt;br /&gt;
| Ulazno/izlazne instrukcije&lt;br /&gt;
| RDS, WRS, RWT&lt;br /&gt;
| Rad s magnetskom vrpcom, kartičnim čitačem i pisačem.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrola toka programa&lt;br /&gt;
| HLT, NOP&lt;br /&gt;
| Zaustavljanje programa, prazna instrukcija.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Opkodovi IBM 704 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Kompletan popis opkoda IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Opkod&lt;br /&gt;
! Mnemonik&lt;br /&gt;
! Grupa&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 000&lt;br /&gt;
| NOP&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Prazna instrukcija; ne radi ništa.&lt;br /&gt;
|-&lt;br /&gt;
| 001&lt;br /&gt;
| HLT&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Zaustavlja izvršavanje programa.&lt;br /&gt;
|-&lt;br /&gt;
| 002&lt;br /&gt;
| TRA&lt;br /&gt;
| Grananje&lt;br /&gt;
| Bezuvjetni skok na adresu.&lt;br /&gt;
|-&lt;br /&gt;
| 003&lt;br /&gt;
| TRN&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC negativan.&lt;br /&gt;
|-&lt;br /&gt;
| 004&lt;br /&gt;
| TMI&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC manji od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 005&lt;br /&gt;
| TPL&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC veći od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 006&lt;br /&gt;
| TZE&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC jednak nuli.&lt;br /&gt;
|-&lt;br /&gt;
| 007&lt;br /&gt;
| TOV&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je overflow zastavica postavljena.&lt;br /&gt;
|-&lt;br /&gt;
| 010&lt;br /&gt;
| ADD&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Zbrajanje sadržaja memorije s AC.&lt;br /&gt;
|-&lt;br /&gt;
| 011&lt;br /&gt;
| SUB&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Oduzimanje sadržaja memorije od AC.&lt;br /&gt;
|-&lt;br /&gt;
| 012&lt;br /&gt;
| MPY&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Množenje; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 013&lt;br /&gt;
| DIV&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Dijeljenje; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 014&lt;br /&gt;
| CLA&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 015&lt;br /&gt;
| CLM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 016&lt;br /&gt;
| COM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Komplementira AC.&lt;br /&gt;
|-&lt;br /&gt;
| 020&lt;br /&gt;
| SHL&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak ulijevo.&lt;br /&gt;
|-&lt;br /&gt;
| 021&lt;br /&gt;
| SHR&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak udesno.&lt;br /&gt;
|-&lt;br /&gt;
| 030&lt;br /&gt;
| AXT&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Učitava vrijednost u XR1, XR2 ili XR4.&lt;br /&gt;
|-&lt;br /&gt;
| 031&lt;br /&gt;
| TXI&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Dodaje vrijednost indeksnom registru.&lt;br /&gt;
|-&lt;br /&gt;
| 040&lt;br /&gt;
| RDS&lt;br /&gt;
| I/O&lt;br /&gt;
| Čitanje s magnetske vrpce.&lt;br /&gt;
|-&lt;br /&gt;
| 041&lt;br /&gt;
| WRS&lt;br /&gt;
| I/O&lt;br /&gt;
| Pisanje na magnetsku vrpcu.&lt;br /&gt;
|-&lt;br /&gt;
| 042&lt;br /&gt;
| RWT&lt;br /&gt;
| I/O&lt;br /&gt;
| Čekanje na I/O operaciju.&lt;br /&gt;
|-&lt;br /&gt;
| 050&lt;br /&gt;
| TSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Testira Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 051&lt;br /&gt;
| SSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Postavlja Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 052&lt;br /&gt;
| RSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Resetira Sense Indicator n.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Registri==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--             --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:88%;width:34em;&amp;quot;&lt;br /&gt;
|+ Registri u računalu IBM 704&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| style=&amp;quot;font-size:88%;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Podatkovni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | S&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | Q&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | P&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;14&amp;quot;| Akumulator&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | AC&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;1&amp;quot;| S&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;11&amp;quot;| Množitelj/Količnik&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | MQ&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;12&amp;quot;| Senzorni indikatori&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | SI&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 1&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR1 (XRA)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 2&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR2 (XRB)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 4 &lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR4 (XRC)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;14&amp;quot; | &#039;&#039;&#039;Brojač naredbi&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Brojač&amp;amp;nbsp;Naredbi&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| IC&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzorni indikatori&#039;&#039;&#039; - su posebni statusni bitovi u IBM 704 koj su se u praksi rabili za provjeru grešaka, grananje ovisno o stanju sustava, upravljanje perifernim jedinicama, te za signalizaciju posebnih događaja. Kroz njih programeri su mogli održavati stanje sustava, signalizirati određene uvjete tokom izvršavanje naredbi, čitanje i postavljanje naredbi i tako su služili za jednostane oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Sense Indicators (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! SI broj&lt;br /&gt;
! Naziv / funkcija&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Overflow flag&lt;br /&gt;
| Postavlja se pri prekoračenju rezultata u akumulatoru (AC) ili količniku (MQ).&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Divide check&lt;br /&gt;
| Signalizira pogrešku pri dijeljenju, uključujući dijeljenje nulom.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| I/O ready&lt;br /&gt;
| Uređaj spreman za prijenos podataka.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| I/O complete&lt;br /&gt;
| Završetak operacije ulaza/izlaza.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Tape mark&lt;br /&gt;
| Očitana oznaka kraja bloka na magnetskoj vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Printer ready&lt;br /&gt;
| Pisač spreman za rad.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Card reader ready&lt;br /&gt;
| Čitač kartica spreman.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Card punch ready&lt;br /&gt;
| Bušilica kartica spremna.&lt;br /&gt;
|-&lt;br /&gt;
| 8–15&lt;br /&gt;
| Peripheral flags&lt;br /&gt;
| Razni signali perifernih uređaja (disk, vrpca, pisač).&lt;br /&gt;
|-&lt;br /&gt;
| 16–35&lt;br /&gt;
| User-defined flags&lt;br /&gt;
| Zastavice koje programer može slobodno koristiti za logiku grananja.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Korištenje u IBM 704 assembleru ====&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao posebne instrukcije za rad sa Sense Indicators:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;TSI n&#039;&#039;&#039;&lt;br /&gt;
: Testira Sense Indicator &#039;&#039;n&#039;&#039;. Ako je postavljen, izvršavanje se nastavlja normalno; ako nije, preskače se sljedeća instrukcija.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3      / provjeri je li I/O complete&lt;br /&gt;
TRA DONE   / ako je postavljen, skoči na DONE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;SSI n&#039;&#039;&#039;&lt;br /&gt;
: Postavlja Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;RSI n&#039;&#039;&#039;&lt;br /&gt;
: Resetira Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 1      / provjeri divide check&lt;br /&gt;
TRA ERROR  / ako je SI1 = 1, idi na ERROR&lt;br /&gt;
&lt;br /&gt;
SSI 20     / postavi korisnički indikator 20&lt;br /&gt;
RSI 3      / resetiraj I/O complete indikator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Usporedba s modernim statusnim registrima ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! IBM 704 Sense Indicators&lt;br /&gt;
! Moderni statusni registri (x86, ARM, RISC-V)&lt;br /&gt;
|-&lt;br /&gt;
| 36 jednobitnih zastavica&lt;br /&gt;
| 8–32 bitni statusni registri&lt;br /&gt;
|-&lt;br /&gt;
| Ručno postavljanje i brisanje&lt;br /&gt;
| Automatsko postavljanje od strane ALU&lt;br /&gt;
|-&lt;br /&gt;
| Koriste se za I/O signalizaciju&lt;br /&gt;
| I/O signalizacija preko interrupt kontrolera&lt;br /&gt;
|-&lt;br /&gt;
| Jednostavne logičke zastavice&lt;br /&gt;
| Zastavice za aritmetiku, usporedbe, prekide&lt;br /&gt;
|-&lt;br /&gt;
| Programer koristi dio SI kao &amp;quot;user flags&amp;quot;&lt;br /&gt;
| Moderni jezici koriste varijable, strukture, objekte&lt;br /&gt;
|-&lt;br /&gt;
| Grananje preko TSI instrukcije&lt;br /&gt;
| Grananje preko CMP/JMP, BEQ/BNE, BLT/BGT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Primjeri IBM 704 assembler koda ==&lt;br /&gt;
&lt;br /&gt;
=== Zbrajanje dvaju brojeva ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj A u AC&lt;br /&gt;
ADD B        / dodaj B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Provjera negativnog broja ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA X        / učitaj X&lt;br /&gt;
TMI NEG      / ako je X &amp;lt; 0, idi na NEG&lt;br /&gt;
TRA DONE     / inače nastavi&lt;br /&gt;
NEG STO Y    / spremi negativnu vrijednost&lt;br /&gt;
DONE HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Množenje i dijeljenje ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A&lt;br /&gt;
MPY B        / AC*B → AC/MQ&lt;br /&gt;
DIV C        / (AC/MQ) / C → MQ (količnik), AC (ostatak)&lt;br /&gt;
STO Q        / spremi količnik&lt;br /&gt;
STO R        / spremi ostatak&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Korištenje Sense Indicators ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3        / provjeri I/O complete&lt;br /&gt;
TRA IO_OK    / ako je SI3 = 1, idi na IO_OK&lt;br /&gt;
SSI 20       / postavi korisnički indikator 20&lt;br /&gt;
IO_OK HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Performanse IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od najbržih znanstvenih računala svoje generacije. Njegova arhitektura s pomičnim zarezom, magnetskom jezgrom i specijaliziranim aritmetičkim registrima omogućavala je znatno bolje performanse u odnosu na prethodne modele IBM 701 i IBM 702. Sustav je bio optimiziran za matematičke operacije, simulacije, statističke izračune i obradu velikih numeričkih skupova podataka.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Performanse računala IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Brzina zbrajanja&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za izvršavanje jedne ADD instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina množenja&lt;br /&gt;
| ~20 μs&lt;br /&gt;
| Vrijeme za MPY instrukciju; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina dijeljenja&lt;br /&gt;
| ~38 μs&lt;br /&gt;
| Vrijeme za DIV instrukciju; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| Memorija&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Magnetska jezgra; pristup ~12 μs.&lt;br /&gt;
|-&lt;br /&gt;
| Ciklus instrukcije&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Prosječno vrijeme za dohvat i izvršavanje jednostavne instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina I/O operacija&lt;br /&gt;
| 7200 kartica/min (čitač)&lt;br /&gt;
| Kartični čitač i bušilica bili su glavni ulazno/izlazni sustavi.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| 12 500 znakovnih blokova/s&lt;br /&gt;
| Ovisno o uređaju; korišteno za masovno spremanje podataka.&lt;br /&gt;
|-&lt;br /&gt;
| Preciznost pomičnog zareza&lt;br /&gt;
| 27-bitni eksponent + 8-bitna mantisa&lt;br /&gt;
| Omogućavalo znanstvene izračune velike preciznosti.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pouzdanost ==&lt;br /&gt;
&lt;br /&gt;
Iako je IBM 704 bio znatno pouzdaniji od svog prethodnika IBM 701, i dalje je bio stroj temeljen na vakuumskim cijevima, što je značilo relativno česte kvarove prema današnjim standardima. Prosječno vrijeme između kvarova iznosilo je oko 8 sati, što je ograničavalo veličinu programa koje je bilo moguće kompajlirati ili izvršavati bez prekida.&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN kompajleri morali su biti iznimno učinkoviti jer bi preduga kompilacija mogla biti prekinuta kvarom sustava. Unatoč tome, IBM 704 je bio dovoljno pouzdan da postane temelj za razvoj FORTRAN-a, LISP-a, ranih neuralnih mreža i brojnih znanstvenih projekata.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Pouzdanost IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| MTBF (mean time between failure)&lt;br /&gt;
| ~8 sati&lt;br /&gt;
| Prosječno vrijeme rada prije kvara.&lt;br /&gt;
|-&lt;br /&gt;
| Usporedba s IBM 701&lt;br /&gt;
| ~30 minuta&lt;br /&gt;
| IBM 704 bio je znatno pouzdaniji od svog prethodnika.&lt;br /&gt;
|-&lt;br /&gt;
| Utjecaj na softver&lt;br /&gt;
| Ograničena veličina programa&lt;br /&gt;
| Kompilacije su morale biti kratke zbog mogućih kvarova.&lt;br /&gt;
|-&lt;br /&gt;
| Tehnologija&lt;br /&gt;
| Vakuumske cijevi&lt;br /&gt;
| Glavni uzrok kvarova i zagrijavanja sustava.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SAP asembler ==&lt;br /&gt;
&lt;br /&gt;
SAP (&#039;&#039;Symbolic Assembly Program&#039;&#039;) bio je službeni asembler za IBM 704 i predstavljao je jedan od najranijih i najutjecajnijih asemblera u povijesti računarstva. Razvijen je unutar IBM-a sredinom 1950-ih kako bi programerima omogućio pisanje simboličkog koda umjesto ručnog unošenja numeričkih opkoda i adresa.&lt;br /&gt;
&lt;br /&gt;
SAP je bio ključan za razvoj FORTRAN-a, LISP-a i mnogih ranih znanstvenih aplikacija, jer je omogućio jednostavnije pisanje, čitanje i održavanje programa na IBM 704.&lt;br /&gt;
&lt;br /&gt;
=== Značajke SAP asemblera ===&lt;br /&gt;
&lt;br /&gt;
SAP je imao nekoliko naprednih značajki za svoje vrijeme:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simboličke oznake&#039;&#039;&#039; – programeri su mogli koristiti imena umjesto numeričkih adresa.&lt;br /&gt;
* &#039;&#039;&#039;Automatsko izračunavanje adresa&#039;&#039;&#039; – asembler je sam određivao lokacije instrukcija.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za indeksne registre&#039;&#039;&#039; – XR1, XR2 i XR4 mogli su se koristiti u adresiranju.&lt;br /&gt;
* &#039;&#039;&#039;Jednostavna sintaksa&#039;&#039;&#039; – instrukcije su bile kratke i čitljive.&lt;br /&gt;
* &#039;&#039;&#039;Integracija s FORTRAN-om&#039;&#039;&#039; – FORTRAN kompajler generirao je SAP kod.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za floating‑point operacije&#039;&#039;&#039; – izravno korištenje AC/MQ jedinice.&lt;br /&gt;
&lt;br /&gt;
SAP je bio jedan od prvih asemblera koji je omogućio relativno visok stupanj apstrakcije u odnosu na strojni kod.&lt;br /&gt;
&lt;br /&gt;
=== Struktura SAP instrukcije ===&lt;br /&gt;
&lt;br /&gt;
Instrukcije su se sastojale od:&lt;br /&gt;
&lt;br /&gt;
* mnemonika (ADD, SUB, MPY, DIV, TRA…)&lt;br /&gt;
* adrese ili simbola&lt;br /&gt;
* opcionalnog indeksnog modifikatora&lt;br /&gt;
* komentara&lt;br /&gt;
&lt;br /&gt;
Primjer strukture:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
MNEMONIK  ADRESA,XR   / komentar&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Primjer SAP koda ===&lt;br /&gt;
&lt;br /&gt;
Slijedi povijesno točan primjer SAP koda za IBM 704:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
A      DEC 5          / definiraj konstantu A&lt;br /&gt;
B      DEC 7          / definiraj konstantu B&lt;br /&gt;
C      BSS 1          / rezerviraj prostor za rezultat&lt;br /&gt;
&lt;br /&gt;
       CLA A          / učitaj A u AC&lt;br /&gt;
       ADD B          / dodaj B&lt;br /&gt;
       STO C          / spremi rezultat u C&lt;br /&gt;
       HLT            / zaustavi program&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Korištenje indeksnih registara ===&lt;br /&gt;
&lt;br /&gt;
SAP je omogućavao jednostavno korištenje XR1, XR2 i XR4:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
LOOP   CLA ARRAY,XR1  / učitaj element polja&lt;br /&gt;
       ADD SUM        / dodaj na sumu&lt;br /&gt;
       STO SUM        / spremi rezultat&lt;br /&gt;
       TXI XR1,1      / povećaj indeks&lt;br /&gt;
       TPL LOOP       / ako je pozitivan, nastavi petlju&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio preteča modernih petlji u visokorazinskim jezicima.&lt;br /&gt;
&lt;br /&gt;
=== SAP i FORTRAN ===&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN kompajler generirao je SAP kod koji se zatim prevodio u strojni kod IBM 704.  &lt;br /&gt;
Zbog toga je SAP bio ključan za:&lt;br /&gt;
&lt;br /&gt;
* optimizaciju FORTRAN programa,&lt;br /&gt;
* implementaciju DO petlji,&lt;br /&gt;
* rad s poljima i matricama,&lt;br /&gt;
* floating‑point operacije,&lt;br /&gt;
* kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
=== SAP i LISP ===&lt;br /&gt;
&lt;br /&gt;
Prva implementacija LISP-a (1958.) bila je napisana upravo u SAP asembleru.  &lt;br /&gt;
SAP je omogućio:&lt;br /&gt;
&lt;br /&gt;
* manipulaciju cons‑struktura,&lt;br /&gt;
* implementaciju CAR i CDR operacija,&lt;br /&gt;
* rekurziju,&lt;br /&gt;
* dinamičko upravljanje memorijom.&lt;br /&gt;
&lt;br /&gt;
Bez SAP-a, LISP ne bi mogao biti implementiran na IBM 704.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj SAP-a ===&lt;br /&gt;
&lt;br /&gt;
SAP je bio jedan od najvažnijih asemblera 1950-ih i 1960-ih.  &lt;br /&gt;
Njegov utjecaj vidljiv je u:&lt;br /&gt;
&lt;br /&gt;
* razvoju FORTRAN-a,&lt;br /&gt;
* nastanku LISP-a,&lt;br /&gt;
* ranim AI projektima,&lt;br /&gt;
* znanstvenim simulacijama,&lt;br /&gt;
* razvoju modernih asemblera i kompajlera.&lt;br /&gt;
&lt;br /&gt;
SAP je postavio temelje za simboličko programiranje i bio je ključni alat u zlatnom dobu ranog računarstva.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju LISP-a ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je ključnu ulogu u nastanku programskog jezika LISP, jednog od najvažnijih jezika u povijesti računarstva. LISP je 1958. godine razvio John McCarthy na MIT-u, a upravo je IBM 704 bio prvo računalo na kojem je LISP implementiran i izvršavan.&lt;br /&gt;
&lt;br /&gt;
Razvoj LISP-a bio je izravno povezan s arhitekturom IBM 704, posebno s njegovim:&lt;br /&gt;
* 36-bitnim riječima,&lt;br /&gt;
* aritmetičkom jedinicom AC/MQ,&lt;br /&gt;
* indeksnim registrima,&lt;br /&gt;
* mogućnošću manipulacije adresama,&lt;br /&gt;
* podrškom za uvjetno grananje,&lt;br /&gt;
* te fleksibilnim instrukcijskim formatom.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio pogodan za LISP ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je nekoliko arhitekturnih značajki koje su se pokazale idealnima za implementaciju LISP-a:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;36-bitne riječi&#039;&#039;&#039; omogućavale su učinkovito predstavljanje parova (cons cells).&lt;br /&gt;
* &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039; olakšavali su rad s listama i rekurzivnim strukturama.&lt;br /&gt;
* &#039;&#039;&#039;Instrukcije grananja&#039;&#039;&#039; (TRA, TMI, TPL, TZE) omogućavale su jednostavnu implementaciju rekurzije.&lt;br /&gt;
* &#039;&#039;&#039;Magnetska jezgra&#039;&#039;&#039; bila je dovoljno brza za dinamičke strukture podataka.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za floating-point&#039;&#039;&#039; olakšala je rad s matematičkim funkcijama.&lt;br /&gt;
&lt;br /&gt;
McCarthy je iskoristio ove mogućnosti kako bi implementirao osnovne LISP konstrukte: CONS, CAR, CDR, rekurziju, lambda‑izraze i funkcije višeg reda.&lt;br /&gt;
&lt;br /&gt;
=== Prva implementacija LISP-a ===&lt;br /&gt;
&lt;br /&gt;
Prva verzija LISP-a bila je napisana u SAP asembleru za IBM 704.  &lt;br /&gt;
Ova implementacija uključivala je:&lt;br /&gt;
&lt;br /&gt;
* interpreter,&lt;br /&gt;
* evaluator,&lt;br /&gt;
* upravljanje memorijom,&lt;br /&gt;
* implementaciju cons‑struktura,&lt;br /&gt;
* osnovne matematičke funkcije,&lt;br /&gt;
* te mehanizme za rekurziju i funkcije višeg reda.&lt;br /&gt;
&lt;br /&gt;
LISP je na IBM 704 radio kao interpretirani jezik, a programi su se izvršavali izravno nad strukturom lista u memoriji.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je omogućio LISP-u da postane prvi široko korišteni jezik za:&lt;br /&gt;
&lt;br /&gt;
* umjetnu inteligenciju,&lt;br /&gt;
* simboličku manipulaciju,&lt;br /&gt;
* matematičku logiku,&lt;br /&gt;
* rane ekspertske sustave,&lt;br /&gt;
* istraživanje strojnog učenja.&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, LISP bi vjerojatno bio znatno drugačiji — ili bi se pojavio mnogo kasnije.&lt;br /&gt;
&lt;br /&gt;
=== Primjer ranog LISP izraza (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Iako se LISP nije zapisivao u assembleru, njegovi izrazi su se prevodili u SAP kod za IBM 704.  &lt;br /&gt;
Primjer jednostavne LISP funkcije:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(define (square x)&lt;br /&gt;
  (* x x))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj izraz bi se na IBM 704 interno pretvorio u operacije nad cons‑struktura i pozive aritmetičkih instrukcija MPY i ADD.&lt;br /&gt;
&lt;br /&gt;
=== Utjecaj na daljnji razvoj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je bio platforma na kojoj su nastale ključne ideje:&lt;br /&gt;
&lt;br /&gt;
* automatsko upravljanje memorijom,&lt;br /&gt;
* rekurzija kao temeljni mehanizam,&lt;br /&gt;
* funkcije višeg reda,&lt;br /&gt;
* lambda‑račun,&lt;br /&gt;
* simbolička obrada podataka.&lt;br /&gt;
&lt;br /&gt;
Ove ideje postale su temelj modernih programskih jezika, od Schemea i Prologa do Pythona i JavaScripta.&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju FORTRAN-a ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je presudnu ulogu u nastanku FORTRAN-a (Formula Translation), prvog široko korištenog visokorazinskog programskog jezika. FORTRAN je razvijen 1957. godine u IBM-u pod vodstvom Johna Backusa, a IBM 704 bio je prvo računalo na kojem je FORTRAN implementiran, kompajliran i izvršavan.&lt;br /&gt;
&lt;br /&gt;
Arhitektura IBM 704 izravno je oblikovala dizajn FORTRAN-a. Njegova podrška za aritmetiku s pomičnim zarezom, indeksne registre, statusne indikatore i 36-bitne riječi omogućila je stvaranje jezika koji je bio optimiziran za znanstvene i tehničke izračune.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio ključan za FORTRAN ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 posjedovao je nekoliko arhitekturnih značajki koje su bile presudne za razvoj FORTRAN-a:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Hardverska floating‑point jedinica&#039;&#039;&#039; – omogućila je izravnu podršku za matematičke operacije.&lt;br /&gt;
* &#039;&#039;&#039;Aritmetički registri AC i MQ&#039;&#039;&#039; – olakšali su implement&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju ranih neuralnih mreža ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je važnu ulogu u razvoju najranijih modela umjetnih neuronskih mreža tijekom kasnih 1950-ih i ranih 1960-ih. Iako su ti modeli bili daleko jednostavniji od današnjih dubokih mreža, IBM 704 je bio jedno od rijetkih računala koje je imalo dovoljno memorije, brzine i aritmetičkih mogućnosti da može izvoditi simulacije neuronskih mreža u praksi.&lt;br /&gt;
&lt;br /&gt;
Rani pioniri umjetne inteligencije, uključujući Franka Rosenblatta, Herberta Simona, Allena Newella i istraživače s MIT-a i Cornell Aeronautical Laboratory, koristili su IBM 704 za implementaciju i testiranje prvih algoritama koji su simulirali neuronsko učenje.&lt;br /&gt;
&lt;br /&gt;
=== IBM 704 i perceptron ===&lt;br /&gt;
&lt;br /&gt;
Najvažniji doprinos IBM 704 razvoju neuralnih mreža bio je u implementaciji i simulaciji **Rosenblattovog perceptrona**, prvog formalnog modela neuronske mreže koji je mogao učiti iz podataka.&lt;br /&gt;
&lt;br /&gt;
IBM 704 omogućio je:&lt;br /&gt;
&lt;br /&gt;
* izračun težina perceptrona,&lt;br /&gt;
* simulaciju učenja kroz iteracije,&lt;br /&gt;
* rad s matricama i vektorima,&lt;br /&gt;
* evaluaciju linearnih klasifikatora,&lt;br /&gt;
* testiranje različitih skupova podataka.&lt;br /&gt;
&lt;br /&gt;
Iako je perceptron kasnije imao i hardversku implementaciju (Mark I Perceptron), IBM 704 bio je ključan za **prve softverske simulacije** koje su potvrdile da se neuronske mreže mogu trenirati računalno.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio pogodan za neuralne mreže ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je nekoliko arhitekturnih značajki koje su bile iznimno korisne za rane AI eksperimente:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Floating‑point jedinica&#039;&#039;&#039; – omogućila je precizne izračune težina i aktivacijskih funkcija.&lt;br /&gt;
* &#039;&#039;&#039;Aritmetički registri AC/MQ&#039;&#039;&#039; – ubrzali su operacije nad vektorima.&lt;br /&gt;
* &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039; – olakšali su rad s matricama i iteracijama.&lt;br /&gt;
* &#039;&#039;&#039;Magnetska jezgra&#039;&#039;&#039; – bila je dovoljno brza za ponavljajuće izračune.&lt;br /&gt;
* &#039;&#039;&#039;Instrukcije grananja&#039;&#039;&#039; – omogućile su implementaciju algoritama učenja.&lt;br /&gt;
&lt;br /&gt;
Zbog toga je IBM 704 bio jedno od prvih računala koje je moglo izvoditi **iterativne algoritme učenja**, temeljne za neuralne mreže.&lt;br /&gt;
&lt;br /&gt;
=== Rani eksperimenti umjetne inteligencije ===&lt;br /&gt;
&lt;br /&gt;
Na IBM 704 provodili su se rani eksperimenti koji su uključivali:&lt;br /&gt;
&lt;br /&gt;
* simulaciju perceptrona,&lt;br /&gt;
* klasifikaciju jednostavnih vizualnih uzoraka,&lt;br /&gt;
* prepoznavanje znakova,&lt;br /&gt;
* rane oblike strojne percepcije,&lt;br /&gt;
* istraživanje linearnih i nelinearnih funkcija aktivacije.&lt;br /&gt;
&lt;br /&gt;
Ovi eksperimenti bili su temelj za kasniji razvoj:&lt;br /&gt;
&lt;br /&gt;
* višeslojnih perceptrona,&lt;br /&gt;
* backpropagation algoritma,&lt;br /&gt;
* dubokog učenja,&lt;br /&gt;
* računalnog vida.&lt;br /&gt;
&lt;br /&gt;
=== Primjer jednostavne perceptronske iteracije (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Sljedeći pseudokod prikazuje kako je perceptron bio implementiran na IBM 704:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA W1        / učitaj težinu&lt;br /&gt;
MPY X1        / pomnoži s ulazom&lt;br /&gt;
ADD SUM       / dodaj na akumuliranu sumu&lt;br /&gt;
STO SUM       / spremi novu vrijednost&lt;br /&gt;
&lt;br /&gt;
... ponavljati za sve ulaze ...&lt;br /&gt;
&lt;br /&gt;
CLA SUM&lt;br /&gt;
TMI UPDATE    / ako je pogreška negativna, ažuriraj težine&lt;br /&gt;
TPL UPDATE    / ako je pogreška pozitivna, također ažuriraj&lt;br /&gt;
&lt;br /&gt;
UPDATE:&lt;br /&gt;
ADD ERROR     / korekcija težine&lt;br /&gt;
STO W1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio jedan od prvih primjera **računalnog učenja** u povijesti.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je ključan za rani razvoj umjetne inteligencije jer je:&lt;br /&gt;
&lt;br /&gt;
* omogućio prve računalne simulacije neuronskih mreža,&lt;br /&gt;
* bio platforma za perceptron i rane modele učenja,&lt;br /&gt;
* omogućio istraživanje algoritama koji su kasnije postali temelj dubokog učenja,&lt;br /&gt;
* povezao AI istraživanje s praktičnim računalnim sustavima.&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, razvoj ranih neuralnih mreža bio bi znatno sporiji i ograničeniji.&lt;br /&gt;
&lt;br /&gt;
==Izvori==&lt;br /&gt;
{{izvori}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorija:IBM]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787636</id>
		<title>IBM 704</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787636"/>
		<updated>2026-07-07T10:06:35Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Primjer SAP koda */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;IBM 704&#039;&#039;&#039; ime je za računalo prve generacije koje je razvila tvrtka [[IBM]] i jedan je iz serije računala IBM 700. Ovo računalo se proizvodilo od 1954. do 1964. godine.&amp;lt;ref&amp;gt;https://www.ibm.com/history/700&amp;lt;/ref&amp;gt;. Povijesna važnost ovog računala jest da je na njemu bio razvijen programski jezik [[FORTRAN]] i [[LISP]] te SAP asembler. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Povijest razvoja IBM 700 serije ==&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija bila je prva generacija komercijalnih znanstvenih računala koju je IBM razvio početkom 1950-ih. Serija je započela s modelom IBM 701 (1952.), poznatim kao „Defense Calculator“, koji je bio namijenjen vojnoj i zrakoplovnoj industriji.&lt;br /&gt;
&lt;br /&gt;
* IBM 702 (1953.) bio je poslovno orijentiran sustav, dok je IBM 703 bio eksperimentalni model.&lt;br /&gt;
* IBM 704 je postao temelj za razvoj FORTRAN-a (1957.), prvog visokorazinskog programskog jezika.&lt;br /&gt;
&lt;br /&gt;
Pravi tehnološki iskorak dogodio se s modelom &#039;&#039;&#039;IBM 704&#039;&#039;&#039; (1954.), prvim računalom koje je podržavalo:&lt;br /&gt;
* aritmetiku s pomičnim zarezom,&lt;br /&gt;
* indeksne registre,&lt;br /&gt;
* statusne indikatore,&lt;br /&gt;
* magnetsku jezgru kao primarnu memoriju.&lt;br /&gt;
&lt;br /&gt;
Serija se nastavila s modelima IBM 709 (1958.) i IBM 7090 (1959.), koji su bili tranzistorski nasljednici i koristili se u NASA-i, NORAD-u i velikim znanstvenim centrima.&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija ostavila je dubok trag u povijesti računarstva, postavivši standarde arhitekture koji su se zadržali desetljećima.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arhitektura IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od prvih komercijalnih računala koje je uvodilo napredne koncepte arhitekture, uključujući rad s pomičnim zarezom, indeksne registre i statusne indikatore. Sustav je bio dizajniran za znanstvene i tehničke izračune, što ga je činilo ključnim alatom u laboratorijima, sveučilištima i ranim zrakoplovnim projektima.&lt;br /&gt;
&lt;br /&gt;
=== Memorija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 koristio je magnetsku jezgru kao primarnu memoriju, što je u to vrijeme predstavljalo veliki tehnološki napredak u odnosu na Williamsove cijevi korištene u IBM-u 701. Magnetska jezgra bila je brža, pouzdanija i omogućavala stabilno zadržavanje podataka bez potrebe za stalnim osvježavanjem.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Memorijske karakteristike IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Vrsta memorije&lt;br /&gt;
| Magnetska jezgra&lt;br /&gt;
| Stabilna, brza i pouzdana tehnologija za 1950-e.&lt;br /&gt;
|-&lt;br /&gt;
| Kapacitet&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Ukupno 147 456 bitova (18 432 bajta).&lt;br /&gt;
|-&lt;br /&gt;
| Vrijeme pristupa&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za čitanje ili pisanje jedne riječi.&lt;br /&gt;
|-&lt;br /&gt;
| Format riječi&lt;br /&gt;
| 36-bitna riječ&lt;br /&gt;
| Koristi se za instrukcije, podatke i floating-point brojeve.&lt;br /&gt;
|-&lt;br /&gt;
| Floating-point format&lt;br /&gt;
| 8-bitni eksponent + 27-bitna mantisa&lt;br /&gt;
| Bez skrivenog bita; excess-128 eksponent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Periferni uređaji ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 podržavao je širok spektar perifernih uređaja, što ga je činilo pogodnim za znanstvene, tehničke i administrativne zadatke. Ulazno/izlazni sustav bio je temeljen na magnetskim vrpcama, kartičnim čitačima i pisačima, uz mogućnost prikaza podataka na CRT zaslonima.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Periferni uređaji IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Uređaj&lt;br /&gt;
! Model&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Čitač kartica&lt;br /&gt;
| IBM 711&lt;br /&gt;
| Učitava programe i podatke s bušenih kartica.&lt;br /&gt;
|-&lt;br /&gt;
| Pisač&lt;br /&gt;
| IBM 716&lt;br /&gt;
| Ispisuje tekstualni izlaz; glavni uređaj za ljudsko čitanje rezultata.&lt;br /&gt;
|-&lt;br /&gt;
| Bušilica kartica&lt;br /&gt;
| IBM 721&lt;br /&gt;
| Zapisuje podatke na bušene kartice.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| IBM 727&lt;br /&gt;
| Glavni masovni spremnik; preko 5 milijuna znakova po vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrolna jedinica vrpci&lt;br /&gt;
| IBM 753&lt;br /&gt;
| Upravljanje magnetskim vrpcama.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetski bubanj&lt;br /&gt;
| IBM 733&lt;br /&gt;
| Dodatna memorija za brzi pristup.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetska jezgra (RAM)&lt;br /&gt;
| IBM 737&lt;br /&gt;
| Primarna memorija sustava (4096 × 36-bitnih riječi).&lt;br /&gt;
|-&lt;br /&gt;
| CRT zaslon&lt;br /&gt;
| IBM 740&lt;br /&gt;
| 21-inčni vektorski prikaz s dugom fosfornom postojanošću; korišten za vizualizaciju podataka.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aritmetička jedinica (AC i MQ) ===&lt;br /&gt;
Aritmetička jedinica sastojala se od dva glavna 36-bitna registra:&lt;br /&gt;
* &#039;&#039;&#039;AC (Accumulator)&#039;&#039;&#039; – glavni registar za aritmetiku.&lt;br /&gt;
* &#039;&#039;&#039;MQ (Multiplier/Quotient)&#039;&#039;&#039; – registar za množenje i dijeljenje.&lt;br /&gt;
&lt;br /&gt;
Ova dva registra zajedno su omogućavala učinkovite operacije nad velikim brojevima i pomičnim zarezom.&lt;br /&gt;
&lt;br /&gt;
=== Indeksni registri (XR1, XR2, XR4) ===&lt;br /&gt;
IBM 704 je koristio tri indeksna registra:&lt;br /&gt;
* &#039;&#039;&#039;XR1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Indeksni registri omogućavali su modifikaciju adresa, implementaciju petlji i rad s velikim poljima podataka. Ovo je bio preteča modernog adresiranja u procesorima.&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori (SI) ===&lt;br /&gt;
Sustav je imao 36 senzorskih indikatora koji su služili kao statusne zastavice:&lt;br /&gt;
* indikatori grešaka (overflow, divide check)&lt;br /&gt;
* indikatori stanja I/O uređaja&lt;br /&gt;
* korisnički definirani indikatori&lt;br /&gt;
&lt;br /&gt;
Programi su mogli testirati i postavljati SI bitove, što je omogućavalo primitivne oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
=== Instrukcijski format ===&lt;br /&gt;
Instrukcije su bile 36-bitne, s poljima:&lt;br /&gt;
* opkod&lt;br /&gt;
* adresa&lt;br /&gt;
* indeksni modifikator&lt;br /&gt;
* bitovi za uvjetno grananje&lt;br /&gt;
&lt;br /&gt;
Ovaj format omogućavao je fleksibilno adresiranje i kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Floating‑point implementacija ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je prvo komercijalno računalo koje je imalo ugrađenu hardversku podršku za aritmetiku s pomičnim zarezom. Ovo je bio ključni tehnološki iskorak koji je omogućio razvoj FORTRAN-a i znanstvenih aplikacija koje su zahtijevale visoku numeričku preciznost.&lt;br /&gt;
&lt;br /&gt;
Floating‑point brojevi u IBM 704 bili su pohranjeni u 36‑bitnim riječima, podijeljenima na dva glavna dijela:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Mantisa&#039;&#039;&#039; – 27 bitova  &lt;br /&gt;
* &#039;&#039;&#039;Eksponent&#039;&#039;&#039; – 8 bitova (excess‑128 format)  &lt;br /&gt;
* &#039;&#039;&#039;Znak&#039;&#039;&#039; – 1 bit&lt;br /&gt;
&lt;br /&gt;
=== Format floating‑point riječi ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Format floating‑point broja (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! Polje&lt;br /&gt;
! Duljina&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Znak mantise&lt;br /&gt;
| 1 bit&lt;br /&gt;
| Određuje pozitivan ili negativan broj.&lt;br /&gt;
|-&lt;br /&gt;
| Mantisa&lt;br /&gt;
| 27 bitova&lt;br /&gt;
| Normalizirana mantisa bez skrivenog bita.&lt;br /&gt;
|-&lt;br /&gt;
| Eksponent&lt;br /&gt;
| 8 bitova&lt;br /&gt;
| Excess‑128 format (stvarni eksponent = pohranjeni − 128).&lt;br /&gt;
|-&lt;br /&gt;
| Rezervirano&lt;br /&gt;
| 0 bitova&lt;br /&gt;
| Format je potpuno iskorišten; nema neiskorištenih bitova.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Excess‑128 eksponent ===&lt;br /&gt;
&lt;br /&gt;
Eksponent je pohranjen u obliku:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
stvarni_eksponent = pohranjeni_eksponent − 128&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj pristup omogućavao je jednostavnije usporedbe i normalizaciju brojeva.&lt;br /&gt;
&lt;br /&gt;
=== Normalizacija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 zahtijevao je da mantisa bude normalizirana tako da najviši bit mantise bude različit od nule.  &lt;br /&gt;
To je omogućavalo maksimalnu preciznost pri izračunima.&lt;br /&gt;
&lt;br /&gt;
=== Floating‑point operacije ===&lt;br /&gt;
&lt;br /&gt;
Računalo je podržavalo sljedeće operacije nad floating‑point brojevima:&lt;br /&gt;
&lt;br /&gt;
* zbrajanje (ADD)  &lt;br /&gt;
* oduzimanje (SUB)  &lt;br /&gt;
* množenje (MPY)  &lt;br /&gt;
* dijeljenje (DIV)&lt;br /&gt;
&lt;br /&gt;
Sve operacije koristile su aritmetičku jedinicu AC/MQ, pri čemu se rezultat normalizirao automatski.&lt;br /&gt;
&lt;br /&gt;
=== Primjer floating‑point operacije u assembleru ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj floating-point broj A&lt;br /&gt;
ADD B        / zbroji ga s B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Važnost floating‑point implementacije ===&lt;br /&gt;
&lt;br /&gt;
Hardverska podrška za pomični zarez bila je ključna za:&lt;br /&gt;
&lt;br /&gt;
* razvoj FORTRAN-a (1957.)&lt;br /&gt;
* balističke izračune&lt;br /&gt;
* aerodinamičke simulacije&lt;br /&gt;
* nuklearne proračune&lt;br /&gt;
* statističke modele&lt;br /&gt;
* rane znanstvene aplikacije NASA-e&lt;br /&gt;
&lt;br /&gt;
IBM 704 je time postavio standard koji će kasnije preuzeti svi moderni procesori.&lt;br /&gt;
&lt;br /&gt;
== Instrukcijski skup IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Glavne grupe instrukcija IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Grupa&lt;br /&gt;
! Primjeri&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Aritmetičke instrukcije&lt;br /&gt;
| ADD, SUB, MPY, DIV&lt;br /&gt;
| Operacije nad AC i MQ registrima; podrška za cijele brojeve i pomični zarez.&lt;br /&gt;
|-&lt;br /&gt;
| Logičke instrukcije&lt;br /&gt;
| CLA, CLM, COM&lt;br /&gt;
| Čišćenje, komplementiranje i manipulacija bitovima.&lt;br /&gt;
|-&lt;br /&gt;
| Uvjetno grananje&lt;br /&gt;
| TRA, TMI, TPL, TZE&lt;br /&gt;
| Skokovi ovisno o sadržaju AC ili MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Rad sa Sense Indicators&lt;br /&gt;
| TSI, SSI, RSI&lt;br /&gt;
| Testiranje, postavljanje i resetiranje statusnih bitova.&lt;br /&gt;
|-&lt;br /&gt;
| Indeksno adresiranje&lt;br /&gt;
| AXT, TXI&lt;br /&gt;
| Modifikacija adresa pomoću XR1, XR2, XR4.&lt;br /&gt;
|-&lt;br /&gt;
| Ulazno/izlazne instrukcije&lt;br /&gt;
| RDS, WRS, RWT&lt;br /&gt;
| Rad s magnetskom vrpcom, kartičnim čitačem i pisačem.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrola toka programa&lt;br /&gt;
| HLT, NOP&lt;br /&gt;
| Zaustavljanje programa, prazna instrukcija.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Opkodovi IBM 704 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Kompletan popis opkoda IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Opkod&lt;br /&gt;
! Mnemonik&lt;br /&gt;
! Grupa&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 000&lt;br /&gt;
| NOP&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Prazna instrukcija; ne radi ništa.&lt;br /&gt;
|-&lt;br /&gt;
| 001&lt;br /&gt;
| HLT&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Zaustavlja izvršavanje programa.&lt;br /&gt;
|-&lt;br /&gt;
| 002&lt;br /&gt;
| TRA&lt;br /&gt;
| Grananje&lt;br /&gt;
| Bezuvjetni skok na adresu.&lt;br /&gt;
|-&lt;br /&gt;
| 003&lt;br /&gt;
| TRN&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC negativan.&lt;br /&gt;
|-&lt;br /&gt;
| 004&lt;br /&gt;
| TMI&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC manji od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 005&lt;br /&gt;
| TPL&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC veći od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 006&lt;br /&gt;
| TZE&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC jednak nuli.&lt;br /&gt;
|-&lt;br /&gt;
| 007&lt;br /&gt;
| TOV&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je overflow zastavica postavljena.&lt;br /&gt;
|-&lt;br /&gt;
| 010&lt;br /&gt;
| ADD&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Zbrajanje sadržaja memorije s AC.&lt;br /&gt;
|-&lt;br /&gt;
| 011&lt;br /&gt;
| SUB&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Oduzimanje sadržaja memorije od AC.&lt;br /&gt;
|-&lt;br /&gt;
| 012&lt;br /&gt;
| MPY&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Množenje; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 013&lt;br /&gt;
| DIV&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Dijeljenje; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 014&lt;br /&gt;
| CLA&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 015&lt;br /&gt;
| CLM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 016&lt;br /&gt;
| COM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Komplementira AC.&lt;br /&gt;
|-&lt;br /&gt;
| 020&lt;br /&gt;
| SHL&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak ulijevo.&lt;br /&gt;
|-&lt;br /&gt;
| 021&lt;br /&gt;
| SHR&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak udesno.&lt;br /&gt;
|-&lt;br /&gt;
| 030&lt;br /&gt;
| AXT&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Učitava vrijednost u XR1, XR2 ili XR4.&lt;br /&gt;
|-&lt;br /&gt;
| 031&lt;br /&gt;
| TXI&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Dodaje vrijednost indeksnom registru.&lt;br /&gt;
|-&lt;br /&gt;
| 040&lt;br /&gt;
| RDS&lt;br /&gt;
| I/O&lt;br /&gt;
| Čitanje s magnetske vrpce.&lt;br /&gt;
|-&lt;br /&gt;
| 041&lt;br /&gt;
| WRS&lt;br /&gt;
| I/O&lt;br /&gt;
| Pisanje na magnetsku vrpcu.&lt;br /&gt;
|-&lt;br /&gt;
| 042&lt;br /&gt;
| RWT&lt;br /&gt;
| I/O&lt;br /&gt;
| Čekanje na I/O operaciju.&lt;br /&gt;
|-&lt;br /&gt;
| 050&lt;br /&gt;
| TSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Testira Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 051&lt;br /&gt;
| SSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Postavlja Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 052&lt;br /&gt;
| RSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Resetira Sense Indicator n.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Registri==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--             --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:88%;width:34em;&amp;quot;&lt;br /&gt;
|+ Registri u računalu IBM 704&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| style=&amp;quot;font-size:88%;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Podatkovni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | S&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | Q&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | P&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;14&amp;quot;| Akumulator&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | AC&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;1&amp;quot;| S&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;11&amp;quot;| Množitelj/Količnik&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | MQ&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;12&amp;quot;| Senzorni indikatori&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | SI&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 1&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR1 (XRA)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 2&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR2 (XRB)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 4 &lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR4 (XRC)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;14&amp;quot; | &#039;&#039;&#039;Brojač naredbi&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Brojač&amp;amp;nbsp;Naredbi&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| IC&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzorni indikatori&#039;&#039;&#039; - su posebni statusni bitovi u IBM 704 koj su se u praksi rabili za provjeru grešaka, grananje ovisno o stanju sustava, upravljanje perifernim jedinicama, te za signalizaciju posebnih događaja. Kroz njih programeri su mogli održavati stanje sustava, signalizirati određene uvjete tokom izvršavanje naredbi, čitanje i postavljanje naredbi i tako su služili za jednostane oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Sense Indicators (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! SI broj&lt;br /&gt;
! Naziv / funkcija&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Overflow flag&lt;br /&gt;
| Postavlja se pri prekoračenju rezultata u akumulatoru (AC) ili količniku (MQ).&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Divide check&lt;br /&gt;
| Signalizira pogrešku pri dijeljenju, uključujući dijeljenje nulom.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| I/O ready&lt;br /&gt;
| Uređaj spreman za prijenos podataka.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| I/O complete&lt;br /&gt;
| Završetak operacije ulaza/izlaza.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Tape mark&lt;br /&gt;
| Očitana oznaka kraja bloka na magnetskoj vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Printer ready&lt;br /&gt;
| Pisač spreman za rad.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Card reader ready&lt;br /&gt;
| Čitač kartica spreman.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Card punch ready&lt;br /&gt;
| Bušilica kartica spremna.&lt;br /&gt;
|-&lt;br /&gt;
| 8–15&lt;br /&gt;
| Peripheral flags&lt;br /&gt;
| Razni signali perifernih uređaja (disk, vrpca, pisač).&lt;br /&gt;
|-&lt;br /&gt;
| 16–35&lt;br /&gt;
| User-defined flags&lt;br /&gt;
| Zastavice koje programer može slobodno koristiti za logiku grananja.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Korištenje u IBM 704 assembleru ====&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao posebne instrukcije za rad sa Sense Indicators:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;TSI n&#039;&#039;&#039;&lt;br /&gt;
: Testira Sense Indicator &#039;&#039;n&#039;&#039;. Ako je postavljen, izvršavanje se nastavlja normalno; ako nije, preskače se sljedeća instrukcija.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3      / provjeri je li I/O complete&lt;br /&gt;
TRA DONE   / ako je postavljen, skoči na DONE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;SSI n&#039;&#039;&#039;&lt;br /&gt;
: Postavlja Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;RSI n&#039;&#039;&#039;&lt;br /&gt;
: Resetira Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 1      / provjeri divide check&lt;br /&gt;
TRA ERROR  / ako je SI1 = 1, idi na ERROR&lt;br /&gt;
&lt;br /&gt;
SSI 20     / postavi korisnički indikator 20&lt;br /&gt;
RSI 3      / resetiraj I/O complete indikator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Usporedba s modernim statusnim registrima ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! IBM 704 Sense Indicators&lt;br /&gt;
! Moderni statusni registri (x86, ARM, RISC-V)&lt;br /&gt;
|-&lt;br /&gt;
| 36 jednobitnih zastavica&lt;br /&gt;
| 8–32 bitni statusni registri&lt;br /&gt;
|-&lt;br /&gt;
| Ručno postavljanje i brisanje&lt;br /&gt;
| Automatsko postavljanje od strane ALU&lt;br /&gt;
|-&lt;br /&gt;
| Koriste se za I/O signalizaciju&lt;br /&gt;
| I/O signalizacija preko interrupt kontrolera&lt;br /&gt;
|-&lt;br /&gt;
| Jednostavne logičke zastavice&lt;br /&gt;
| Zastavice za aritmetiku, usporedbe, prekide&lt;br /&gt;
|-&lt;br /&gt;
| Programer koristi dio SI kao &amp;quot;user flags&amp;quot;&lt;br /&gt;
| Moderni jezici koriste varijable, strukture, objekte&lt;br /&gt;
|-&lt;br /&gt;
| Grananje preko TSI instrukcije&lt;br /&gt;
| Grananje preko CMP/JMP, BEQ/BNE, BLT/BGT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Primjeri IBM 704 assembler koda ==&lt;br /&gt;
&lt;br /&gt;
=== Zbrajanje dvaju brojeva ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj A u AC&lt;br /&gt;
ADD B        / dodaj B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Provjera negativnog broja ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA X        / učitaj X&lt;br /&gt;
TMI NEG      / ako je X &amp;lt; 0, idi na NEG&lt;br /&gt;
TRA DONE     / inače nastavi&lt;br /&gt;
NEG STO Y    / spremi negativnu vrijednost&lt;br /&gt;
DONE HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Množenje i dijeljenje ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A&lt;br /&gt;
MPY B        / AC*B → AC/MQ&lt;br /&gt;
DIV C        / (AC/MQ) / C → MQ (količnik), AC (ostatak)&lt;br /&gt;
STO Q        / spremi količnik&lt;br /&gt;
STO R        / spremi ostatak&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Korištenje Sense Indicators ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3        / provjeri I/O complete&lt;br /&gt;
TRA IO_OK    / ako je SI3 = 1, idi na IO_OK&lt;br /&gt;
SSI 20       / postavi korisnički indikator 20&lt;br /&gt;
IO_OK HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Performanse IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od najbržih znanstvenih računala svoje generacije. Njegova arhitektura s pomičnim zarezom, magnetskom jezgrom i specijaliziranim aritmetičkim registrima omogućavala je znatno bolje performanse u odnosu na prethodne modele IBM 701 i IBM 702. Sustav je bio optimiziran za matematičke operacije, simulacije, statističke izračune i obradu velikih numeričkih skupova podataka.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Performanse računala IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Brzina zbrajanja&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za izvršavanje jedne ADD instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina množenja&lt;br /&gt;
| ~20 μs&lt;br /&gt;
| Vrijeme za MPY instrukciju; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina dijeljenja&lt;br /&gt;
| ~38 μs&lt;br /&gt;
| Vrijeme za DIV instrukciju; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| Memorija&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Magnetska jezgra; pristup ~12 μs.&lt;br /&gt;
|-&lt;br /&gt;
| Ciklus instrukcije&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Prosječno vrijeme za dohvat i izvršavanje jednostavne instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina I/O operacija&lt;br /&gt;
| 7200 kartica/min (čitač)&lt;br /&gt;
| Kartični čitač i bušilica bili su glavni ulazno/izlazni sustavi.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| 12 500 znakovnih blokova/s&lt;br /&gt;
| Ovisno o uređaju; korišteno za masovno spremanje podataka.&lt;br /&gt;
|-&lt;br /&gt;
| Preciznost pomičnog zareza&lt;br /&gt;
| 27-bitni eksponent + 8-bitna mantisa&lt;br /&gt;
| Omogućavalo znanstvene izračune velike preciznosti.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pouzdanost ==&lt;br /&gt;
&lt;br /&gt;
Iako je IBM 704 bio znatno pouzdaniji od svog prethodnika IBM 701, i dalje je bio stroj temeljen na vakuumskim cijevima, što je značilo relativno česte kvarove prema današnjim standardima. Prosječno vrijeme između kvarova iznosilo je oko 8 sati, što je ograničavalo veličinu programa koje je bilo moguće kompajlirati ili izvršavati bez prekida.&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN kompajleri morali su biti iznimno učinkoviti jer bi preduga kompilacija mogla biti prekinuta kvarom sustava. Unatoč tome, IBM 704 je bio dovoljno pouzdan da postane temelj za razvoj FORTRAN-a, LISP-a, ranih neuralnih mreža i brojnih znanstvenih projekata.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Pouzdanost IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| MTBF (mean time between failure)&lt;br /&gt;
| ~8 sati&lt;br /&gt;
| Prosječno vrijeme rada prije kvara.&lt;br /&gt;
|-&lt;br /&gt;
| Usporedba s IBM 701&lt;br /&gt;
| ~30 minuta&lt;br /&gt;
| IBM 704 bio je znatno pouzdaniji od svog prethodnika.&lt;br /&gt;
|-&lt;br /&gt;
| Utjecaj na softver&lt;br /&gt;
| Ograničena veličina programa&lt;br /&gt;
| Kompilacije su morale biti kratke zbog mogućih kvarova.&lt;br /&gt;
|-&lt;br /&gt;
| Tehnologija&lt;br /&gt;
| Vakuumske cijevi&lt;br /&gt;
| Glavni uzrok kvarova i zagrijavanja sustava.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SAP asembler ==&lt;br /&gt;
&lt;br /&gt;
SAP (&#039;&#039;Symbolic Assembly Program&#039;&#039;) bio je službeni asembler za IBM 704 i predstavljao je jedan od najranijih i najutjecajnijih asemblera u povijesti računarstva. Razvijen je unutar IBM-a sredinom 1950-ih kako bi programerima omogućio pisanje simboličkog koda umjesto ručnog unošenja numeričkih opkoda i adresa.&lt;br /&gt;
&lt;br /&gt;
SAP je bio ključan za razvoj FORTRAN-a, LISP-a i mnogih ranih znanstvenih aplikacija, jer je omogućio jednostavnije pisanje, čitanje i održavanje programa na IBM 704.&lt;br /&gt;
&lt;br /&gt;
=== Značajke SAP asemblera ===&lt;br /&gt;
&lt;br /&gt;
SAP je imao nekoliko naprednih značajki za svoje vrijeme:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simboličke oznake&#039;&#039;&#039; – programeri su mogli koristiti imena umjesto numeričkih adresa.&lt;br /&gt;
* &#039;&#039;&#039;Automatsko izračunavanje adresa&#039;&#039;&#039; – asembler je sam određivao lokacije instrukcija.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za indeksne registre&#039;&#039;&#039; – XR1, XR2 i XR4 mogli su se koristiti u adresiranju.&lt;br /&gt;
* &#039;&#039;&#039;Jednostavna sintaksa&#039;&#039;&#039; – instrukcije su bile kratke i čitljive.&lt;br /&gt;
* &#039;&#039;&#039;Integracija s FORTRAN-om&#039;&#039;&#039; – FORTRAN kompajler generirao je SAP kod.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za floating‑point operacije&#039;&#039;&#039; – izravno korištenje AC/MQ jedinice.&lt;br /&gt;
&lt;br /&gt;
SAP je bio jedan od prvih asemblera koji je omogućio relativno visok stupanj apstrakcije u odnosu na strojni kod.&lt;br /&gt;
&lt;br /&gt;
=== Struktura SAP instrukcije ===&lt;br /&gt;
&lt;br /&gt;
Instrukcije su se sastojale od:&lt;br /&gt;
&lt;br /&gt;
* mnemonika (ADD, SUB, MPY, DIV, TRA…)&lt;br /&gt;
* adrese ili simbola&lt;br /&gt;
* opcionalnog indeksnog modifikatora&lt;br /&gt;
* komentara&lt;br /&gt;
&lt;br /&gt;
Primjer strukture:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
MNEMONIK  ADRESA,XR   / komentar&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Primjer SAP koda ===&lt;br /&gt;
&lt;br /&gt;
Slijedi povijesno točan primjer SAP koda za IBM 704:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
A      DEC 5          / definiraj konstantu A&lt;br /&gt;
B      DEC 7          / definiraj konstantu B&lt;br /&gt;
C      BSS 1          / rezerviraj prostor za rezultat&lt;br /&gt;
&lt;br /&gt;
       CLA A          / učitaj A u AC&lt;br /&gt;
       ADD B          / dodaj B&lt;br /&gt;
       STO C          / spremi rezultat u C&lt;br /&gt;
       HLT            / zaustavi program&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Korištenje indeksnih registara ===&lt;br /&gt;
&lt;br /&gt;
SAP je omogućavao jednostavno korištenje XR1, XR2 i XR4:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
LOOP   CLA ARRAY,XR1  / učitaj element polja&lt;br /&gt;
       ADD SUM        / dodaj na sumu&lt;br /&gt;
       STO SUM        / spremi rezultat&lt;br /&gt;
       TXI XR1,1      / povećaj indeks&lt;br /&gt;
       TPL LOOP       / ako je pozitivan, nastavi petlju&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovo je bio preteča modernih petlji u visokorazinskim jezicima.&lt;br /&gt;
&lt;br /&gt;
=== SAP i FORTRAN ===&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN kompajler generirao je SAP kod koji se zatim prevodio u strojni kod IBM 704.  &lt;br /&gt;
Zbog toga je SAP bio ključan za:&lt;br /&gt;
&lt;br /&gt;
* optimizaciju FORTRAN programa,&lt;br /&gt;
* implementaciju DO petlji,&lt;br /&gt;
* rad s poljima i matricama,&lt;br /&gt;
* floating‑point operacije,&lt;br /&gt;
* kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
=== SAP i LISP ===&lt;br /&gt;
&lt;br /&gt;
Prva implementacija LISP-a (1958.) bila je napisana upravo u SAP asembleru.  &lt;br /&gt;
SAP je omogućio:&lt;br /&gt;
&lt;br /&gt;
* manipulaciju cons‑struktura,&lt;br /&gt;
* implementaciju CAR i CDR operacija,&lt;br /&gt;
* rekurziju,&lt;br /&gt;
* dinamičko upravljanje memorijom.&lt;br /&gt;
&lt;br /&gt;
Bez SAP-a, LISP ne bi mogao biti implementiran na IBM 704.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj SAP-a ===&lt;br /&gt;
&lt;br /&gt;
SAP je bio jedan od najvažnijih asemblera 1950-ih i 1960-ih.  &lt;br /&gt;
Njegov utjecaj vidljiv je u:&lt;br /&gt;
&lt;br /&gt;
* razvoju FORTRAN-a,&lt;br /&gt;
* nastanku LISP-a,&lt;br /&gt;
* ranim AI projektima,&lt;br /&gt;
* znanstvenim simulacijama,&lt;br /&gt;
* razvoju modernih asemblera i kompajlera.&lt;br /&gt;
&lt;br /&gt;
SAP je postavio temelje za simboličko programiranje i bio je ključni alat u zlatnom dobu ranog računarstva.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju LISP-a ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je ključnu ulogu u nastanku programskog jezika LISP, jednog od najvažnijih jezika u povijesti računarstva. LISP je 1958. godine razvio John McCarthy na MIT-u, a upravo je IBM 704 bio prvo računalo na kojem je LISP implementiran i izvršavan.&lt;br /&gt;
&lt;br /&gt;
Razvoj LISP-a bio je izravno povezan s arhitekturom IBM 704, posebno s njegovim:&lt;br /&gt;
* 36-bitnim riječima,&lt;br /&gt;
* aritmetičkom jedinicom AC/MQ,&lt;br /&gt;
* indeksnim registrima,&lt;br /&gt;
* mogućnošću manipulacije adresama,&lt;br /&gt;
* podrškom za uvjetno grananje,&lt;br /&gt;
* te fleksibilnim instrukcijskim formatom.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio pogodan za LISP ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je nekoliko arhitekturnih značajki koje su se pokazale idealnima za implementaciju LISP-a:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;36-bitne riječi&#039;&#039;&#039; omogućavale su učinkovito predstavljanje parova (cons cells).&lt;br /&gt;
* &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039; olakšavali su rad s listama i rekurzivnim strukturama.&lt;br /&gt;
* &#039;&#039;&#039;Instrukcije grananja&#039;&#039;&#039; (TRA, TMI, TPL, TZE) omogućavale su jednostavnu implementaciju rekurzije.&lt;br /&gt;
* &#039;&#039;&#039;Magnetska jezgra&#039;&#039;&#039; bila je dovoljno brza za dinamičke strukture podataka.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za floating-point&#039;&#039;&#039; olakšala je rad s matematičkim funkcijama.&lt;br /&gt;
&lt;br /&gt;
McCarthy je iskoristio ove mogućnosti kako bi implementirao osnovne LISP konstrukte: CONS, CAR, CDR, rekurziju, lambda‑izraze i funkcije višeg reda.&lt;br /&gt;
&lt;br /&gt;
=== Prva implementacija LISP-a ===&lt;br /&gt;
&lt;br /&gt;
Prva verzija LISP-a bila je napisana u SAP asembleru za IBM 704.  &lt;br /&gt;
Ova implementacija uključivala je:&lt;br /&gt;
&lt;br /&gt;
* interpreter,&lt;br /&gt;
* evaluator,&lt;br /&gt;
* upravljanje memorijom,&lt;br /&gt;
* implementaciju cons‑struktura,&lt;br /&gt;
* osnovne matematičke funkcije,&lt;br /&gt;
* te mehanizme za rekurziju i funkcije višeg reda.&lt;br /&gt;
&lt;br /&gt;
LISP je na IBM 704 radio kao interpretirani jezik, a programi su se izvršavali izravno nad strukturom lista u memoriji.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je omogućio LISP-u da postane prvi široko korišteni jezik za:&lt;br /&gt;
&lt;br /&gt;
* umjetnu inteligenciju,&lt;br /&gt;
* simboličku manipulaciju,&lt;br /&gt;
* matematičku logiku,&lt;br /&gt;
* rane ekspertske sustave,&lt;br /&gt;
* istraživanje strojnog učenja.&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, LISP bi vjerojatno bio znatno drugačiji — ili bi se pojavio mnogo kasnije.&lt;br /&gt;
&lt;br /&gt;
=== Primjer ranog LISP izraza (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Iako se LISP nije zapisivao u assembleru, njegovi izrazi su se prevodili u SAP kod za IBM 704.  &lt;br /&gt;
Primjer jednostavne LISP funkcije:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(define (square x)&lt;br /&gt;
  (* x x))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj izraz bi se na IBM 704 interno pretvorio u operacije nad cons‑struktura i pozive aritmetičkih instrukcija MPY i ADD.&lt;br /&gt;
&lt;br /&gt;
=== Utjecaj na daljnji razvoj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je bio platforma na kojoj su nastale ključne ideje:&lt;br /&gt;
&lt;br /&gt;
* automatsko upravljanje memorijom,&lt;br /&gt;
* rekurzija kao temeljni mehanizam,&lt;br /&gt;
* funkcije višeg reda,&lt;br /&gt;
* lambda‑račun,&lt;br /&gt;
* simbolička obrada podataka.&lt;br /&gt;
&lt;br /&gt;
Ove ideje postale su temelj modernih programskih jezika, od Schemea i Prologa do Pythona i JavaScripta.&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju FORTRAN-a ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je presudnu ulogu u nastanku FORTRAN-a (Formula Translation), prvog široko korištenog visokorazinskog programskog jezika. FORTRAN je razvijen 1957. godine u IBM-u pod vodstvom Johna Backusa, a IBM 704 bio je prvo računalo na kojem je FORTRAN implementiran, kompajliran i izvršavan.&lt;br /&gt;
&lt;br /&gt;
Arhitektura IBM 704 izravno je oblikovala dizajn FORTRAN-a. Njegova podrška za aritmetiku s pomičnim zarezom, indeksne registre, statusne indikatore i 36-bitne riječi omogućila je stvaranje jezika koji je bio optimiziran za znanstvene i tehničke izračune.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio ključan za FORTRAN ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 posjedovao je nekoliko arhitekturnih značajki koje su bile presudne za razvoj FORTRAN-a:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Hardverska floating‑point jedinica&#039;&#039;&#039; – omogućila je izravnu podršku za matematičke operacije.&lt;br /&gt;
* &#039;&#039;&#039;Aritmetički registri AC i MQ&#039;&#039;&#039; – olakšali su implement&lt;br /&gt;
&lt;br /&gt;
==Izvori==&lt;br /&gt;
{{izvori}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorija:IBM]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787635</id>
		<title>IBM 704</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787635"/>
		<updated>2026-07-07T10:05:17Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Pouzdanost */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;IBM 704&#039;&#039;&#039; ime je za računalo prve generacije koje je razvila tvrtka [[IBM]] i jedan je iz serije računala IBM 700. Ovo računalo se proizvodilo od 1954. do 1964. godine.&amp;lt;ref&amp;gt;https://www.ibm.com/history/700&amp;lt;/ref&amp;gt;. Povijesna važnost ovog računala jest da je na njemu bio razvijen programski jezik [[FORTRAN]] i [[LISP]] te SAP asembler. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Povijest razvoja IBM 700 serije ==&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija bila je prva generacija komercijalnih znanstvenih računala koju je IBM razvio početkom 1950-ih. Serija je započela s modelom IBM 701 (1952.), poznatim kao „Defense Calculator“, koji je bio namijenjen vojnoj i zrakoplovnoj industriji.&lt;br /&gt;
&lt;br /&gt;
* IBM 702 (1953.) bio je poslovno orijentiran sustav, dok je IBM 703 bio eksperimentalni model.&lt;br /&gt;
* IBM 704 je postao temelj za razvoj FORTRAN-a (1957.), prvog visokorazinskog programskog jezika.&lt;br /&gt;
&lt;br /&gt;
Pravi tehnološki iskorak dogodio se s modelom &#039;&#039;&#039;IBM 704&#039;&#039;&#039; (1954.), prvim računalom koje je podržavalo:&lt;br /&gt;
* aritmetiku s pomičnim zarezom,&lt;br /&gt;
* indeksne registre,&lt;br /&gt;
* statusne indikatore,&lt;br /&gt;
* magnetsku jezgru kao primarnu memoriju.&lt;br /&gt;
&lt;br /&gt;
Serija se nastavila s modelima IBM 709 (1958.) i IBM 7090 (1959.), koji su bili tranzistorski nasljednici i koristili se u NASA-i, NORAD-u i velikim znanstvenim centrima.&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija ostavila je dubok trag u povijesti računarstva, postavivši standarde arhitekture koji su se zadržali desetljećima.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arhitektura IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od prvih komercijalnih računala koje je uvodilo napredne koncepte arhitekture, uključujući rad s pomičnim zarezom, indeksne registre i statusne indikatore. Sustav je bio dizajniran za znanstvene i tehničke izračune, što ga je činilo ključnim alatom u laboratorijima, sveučilištima i ranim zrakoplovnim projektima.&lt;br /&gt;
&lt;br /&gt;
=== Memorija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 koristio je magnetsku jezgru kao primarnu memoriju, što je u to vrijeme predstavljalo veliki tehnološki napredak u odnosu na Williamsove cijevi korištene u IBM-u 701. Magnetska jezgra bila je brža, pouzdanija i omogućavala stabilno zadržavanje podataka bez potrebe za stalnim osvježavanjem.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Memorijske karakteristike IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Vrsta memorije&lt;br /&gt;
| Magnetska jezgra&lt;br /&gt;
| Stabilna, brza i pouzdana tehnologija za 1950-e.&lt;br /&gt;
|-&lt;br /&gt;
| Kapacitet&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Ukupno 147 456 bitova (18 432 bajta).&lt;br /&gt;
|-&lt;br /&gt;
| Vrijeme pristupa&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za čitanje ili pisanje jedne riječi.&lt;br /&gt;
|-&lt;br /&gt;
| Format riječi&lt;br /&gt;
| 36-bitna riječ&lt;br /&gt;
| Koristi se za instrukcije, podatke i floating-point brojeve.&lt;br /&gt;
|-&lt;br /&gt;
| Floating-point format&lt;br /&gt;
| 8-bitni eksponent + 27-bitna mantisa&lt;br /&gt;
| Bez skrivenog bita; excess-128 eksponent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Periferni uređaji ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 podržavao je širok spektar perifernih uređaja, što ga je činilo pogodnim za znanstvene, tehničke i administrativne zadatke. Ulazno/izlazni sustav bio je temeljen na magnetskim vrpcama, kartičnim čitačima i pisačima, uz mogućnost prikaza podataka na CRT zaslonima.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Periferni uređaji IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Uređaj&lt;br /&gt;
! Model&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Čitač kartica&lt;br /&gt;
| IBM 711&lt;br /&gt;
| Učitava programe i podatke s bušenih kartica.&lt;br /&gt;
|-&lt;br /&gt;
| Pisač&lt;br /&gt;
| IBM 716&lt;br /&gt;
| Ispisuje tekstualni izlaz; glavni uređaj za ljudsko čitanje rezultata.&lt;br /&gt;
|-&lt;br /&gt;
| Bušilica kartica&lt;br /&gt;
| IBM 721&lt;br /&gt;
| Zapisuje podatke na bušene kartice.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| IBM 727&lt;br /&gt;
| Glavni masovni spremnik; preko 5 milijuna znakova po vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrolna jedinica vrpci&lt;br /&gt;
| IBM 753&lt;br /&gt;
| Upravljanje magnetskim vrpcama.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetski bubanj&lt;br /&gt;
| IBM 733&lt;br /&gt;
| Dodatna memorija za brzi pristup.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetska jezgra (RAM)&lt;br /&gt;
| IBM 737&lt;br /&gt;
| Primarna memorija sustava (4096 × 36-bitnih riječi).&lt;br /&gt;
|-&lt;br /&gt;
| CRT zaslon&lt;br /&gt;
| IBM 740&lt;br /&gt;
| 21-inčni vektorski prikaz s dugom fosfornom postojanošću; korišten za vizualizaciju podataka.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aritmetička jedinica (AC i MQ) ===&lt;br /&gt;
Aritmetička jedinica sastojala se od dva glavna 36-bitna registra:&lt;br /&gt;
* &#039;&#039;&#039;AC (Accumulator)&#039;&#039;&#039; – glavni registar za aritmetiku.&lt;br /&gt;
* &#039;&#039;&#039;MQ (Multiplier/Quotient)&#039;&#039;&#039; – registar za množenje i dijeljenje.&lt;br /&gt;
&lt;br /&gt;
Ova dva registra zajedno su omogućavala učinkovite operacije nad velikim brojevima i pomičnim zarezom.&lt;br /&gt;
&lt;br /&gt;
=== Indeksni registri (XR1, XR2, XR4) ===&lt;br /&gt;
IBM 704 je koristio tri indeksna registra:&lt;br /&gt;
* &#039;&#039;&#039;XR1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Indeksni registri omogućavali su modifikaciju adresa, implementaciju petlji i rad s velikim poljima podataka. Ovo je bio preteča modernog adresiranja u procesorima.&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori (SI) ===&lt;br /&gt;
Sustav je imao 36 senzorskih indikatora koji su služili kao statusne zastavice:&lt;br /&gt;
* indikatori grešaka (overflow, divide check)&lt;br /&gt;
* indikatori stanja I/O uređaja&lt;br /&gt;
* korisnički definirani indikatori&lt;br /&gt;
&lt;br /&gt;
Programi su mogli testirati i postavljati SI bitove, što je omogućavalo primitivne oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
=== Instrukcijski format ===&lt;br /&gt;
Instrukcije su bile 36-bitne, s poljima:&lt;br /&gt;
* opkod&lt;br /&gt;
* adresa&lt;br /&gt;
* indeksni modifikator&lt;br /&gt;
* bitovi za uvjetno grananje&lt;br /&gt;
&lt;br /&gt;
Ovaj format omogućavao je fleksibilno adresiranje i kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Floating‑point implementacija ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je prvo komercijalno računalo koje je imalo ugrađenu hardversku podršku za aritmetiku s pomičnim zarezom. Ovo je bio ključni tehnološki iskorak koji je omogućio razvoj FORTRAN-a i znanstvenih aplikacija koje su zahtijevale visoku numeričku preciznost.&lt;br /&gt;
&lt;br /&gt;
Floating‑point brojevi u IBM 704 bili su pohranjeni u 36‑bitnim riječima, podijeljenima na dva glavna dijela:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Mantisa&#039;&#039;&#039; – 27 bitova  &lt;br /&gt;
* &#039;&#039;&#039;Eksponent&#039;&#039;&#039; – 8 bitova (excess‑128 format)  &lt;br /&gt;
* &#039;&#039;&#039;Znak&#039;&#039;&#039; – 1 bit&lt;br /&gt;
&lt;br /&gt;
=== Format floating‑point riječi ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Format floating‑point broja (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! Polje&lt;br /&gt;
! Duljina&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Znak mantise&lt;br /&gt;
| 1 bit&lt;br /&gt;
| Određuje pozitivan ili negativan broj.&lt;br /&gt;
|-&lt;br /&gt;
| Mantisa&lt;br /&gt;
| 27 bitova&lt;br /&gt;
| Normalizirana mantisa bez skrivenog bita.&lt;br /&gt;
|-&lt;br /&gt;
| Eksponent&lt;br /&gt;
| 8 bitova&lt;br /&gt;
| Excess‑128 format (stvarni eksponent = pohranjeni − 128).&lt;br /&gt;
|-&lt;br /&gt;
| Rezervirano&lt;br /&gt;
| 0 bitova&lt;br /&gt;
| Format je potpuno iskorišten; nema neiskorištenih bitova.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Excess‑128 eksponent ===&lt;br /&gt;
&lt;br /&gt;
Eksponent je pohranjen u obliku:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
stvarni_eksponent = pohranjeni_eksponent − 128&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj pristup omogućavao je jednostavnije usporedbe i normalizaciju brojeva.&lt;br /&gt;
&lt;br /&gt;
=== Normalizacija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 zahtijevao je da mantisa bude normalizirana tako da najviši bit mantise bude različit od nule.  &lt;br /&gt;
To je omogućavalo maksimalnu preciznost pri izračunima.&lt;br /&gt;
&lt;br /&gt;
=== Floating‑point operacije ===&lt;br /&gt;
&lt;br /&gt;
Računalo je podržavalo sljedeće operacije nad floating‑point brojevima:&lt;br /&gt;
&lt;br /&gt;
* zbrajanje (ADD)  &lt;br /&gt;
* oduzimanje (SUB)  &lt;br /&gt;
* množenje (MPY)  &lt;br /&gt;
* dijeljenje (DIV)&lt;br /&gt;
&lt;br /&gt;
Sve operacije koristile su aritmetičku jedinicu AC/MQ, pri čemu se rezultat normalizirao automatski.&lt;br /&gt;
&lt;br /&gt;
=== Primjer floating‑point operacije u assembleru ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj floating-point broj A&lt;br /&gt;
ADD B        / zbroji ga s B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Važnost floating‑point implementacije ===&lt;br /&gt;
&lt;br /&gt;
Hardverska podrška za pomični zarez bila je ključna za:&lt;br /&gt;
&lt;br /&gt;
* razvoj FORTRAN-a (1957.)&lt;br /&gt;
* balističke izračune&lt;br /&gt;
* aerodinamičke simulacije&lt;br /&gt;
* nuklearne proračune&lt;br /&gt;
* statističke modele&lt;br /&gt;
* rane znanstvene aplikacije NASA-e&lt;br /&gt;
&lt;br /&gt;
IBM 704 je time postavio standard koji će kasnije preuzeti svi moderni procesori.&lt;br /&gt;
&lt;br /&gt;
== Instrukcijski skup IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Glavne grupe instrukcija IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Grupa&lt;br /&gt;
! Primjeri&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Aritmetičke instrukcije&lt;br /&gt;
| ADD, SUB, MPY, DIV&lt;br /&gt;
| Operacije nad AC i MQ registrima; podrška za cijele brojeve i pomični zarez.&lt;br /&gt;
|-&lt;br /&gt;
| Logičke instrukcije&lt;br /&gt;
| CLA, CLM, COM&lt;br /&gt;
| Čišćenje, komplementiranje i manipulacija bitovima.&lt;br /&gt;
|-&lt;br /&gt;
| Uvjetno grananje&lt;br /&gt;
| TRA, TMI, TPL, TZE&lt;br /&gt;
| Skokovi ovisno o sadržaju AC ili MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Rad sa Sense Indicators&lt;br /&gt;
| TSI, SSI, RSI&lt;br /&gt;
| Testiranje, postavljanje i resetiranje statusnih bitova.&lt;br /&gt;
|-&lt;br /&gt;
| Indeksno adresiranje&lt;br /&gt;
| AXT, TXI&lt;br /&gt;
| Modifikacija adresa pomoću XR1, XR2, XR4.&lt;br /&gt;
|-&lt;br /&gt;
| Ulazno/izlazne instrukcije&lt;br /&gt;
| RDS, WRS, RWT&lt;br /&gt;
| Rad s magnetskom vrpcom, kartičnim čitačem i pisačem.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrola toka programa&lt;br /&gt;
| HLT, NOP&lt;br /&gt;
| Zaustavljanje programa, prazna instrukcija.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Opkodovi IBM 704 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Kompletan popis opkoda IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Opkod&lt;br /&gt;
! Mnemonik&lt;br /&gt;
! Grupa&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 000&lt;br /&gt;
| NOP&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Prazna instrukcija; ne radi ništa.&lt;br /&gt;
|-&lt;br /&gt;
| 001&lt;br /&gt;
| HLT&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Zaustavlja izvršavanje programa.&lt;br /&gt;
|-&lt;br /&gt;
| 002&lt;br /&gt;
| TRA&lt;br /&gt;
| Grananje&lt;br /&gt;
| Bezuvjetni skok na adresu.&lt;br /&gt;
|-&lt;br /&gt;
| 003&lt;br /&gt;
| TRN&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC negativan.&lt;br /&gt;
|-&lt;br /&gt;
| 004&lt;br /&gt;
| TMI&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC manji od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 005&lt;br /&gt;
| TPL&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC veći od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 006&lt;br /&gt;
| TZE&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC jednak nuli.&lt;br /&gt;
|-&lt;br /&gt;
| 007&lt;br /&gt;
| TOV&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je overflow zastavica postavljena.&lt;br /&gt;
|-&lt;br /&gt;
| 010&lt;br /&gt;
| ADD&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Zbrajanje sadržaja memorije s AC.&lt;br /&gt;
|-&lt;br /&gt;
| 011&lt;br /&gt;
| SUB&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Oduzimanje sadržaja memorije od AC.&lt;br /&gt;
|-&lt;br /&gt;
| 012&lt;br /&gt;
| MPY&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Množenje; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 013&lt;br /&gt;
| DIV&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Dijeljenje; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 014&lt;br /&gt;
| CLA&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 015&lt;br /&gt;
| CLM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 016&lt;br /&gt;
| COM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Komplementira AC.&lt;br /&gt;
|-&lt;br /&gt;
| 020&lt;br /&gt;
| SHL&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak ulijevo.&lt;br /&gt;
|-&lt;br /&gt;
| 021&lt;br /&gt;
| SHR&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak udesno.&lt;br /&gt;
|-&lt;br /&gt;
| 030&lt;br /&gt;
| AXT&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Učitava vrijednost u XR1, XR2 ili XR4.&lt;br /&gt;
|-&lt;br /&gt;
| 031&lt;br /&gt;
| TXI&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Dodaje vrijednost indeksnom registru.&lt;br /&gt;
|-&lt;br /&gt;
| 040&lt;br /&gt;
| RDS&lt;br /&gt;
| I/O&lt;br /&gt;
| Čitanje s magnetske vrpce.&lt;br /&gt;
|-&lt;br /&gt;
| 041&lt;br /&gt;
| WRS&lt;br /&gt;
| I/O&lt;br /&gt;
| Pisanje na magnetsku vrpcu.&lt;br /&gt;
|-&lt;br /&gt;
| 042&lt;br /&gt;
| RWT&lt;br /&gt;
| I/O&lt;br /&gt;
| Čekanje na I/O operaciju.&lt;br /&gt;
|-&lt;br /&gt;
| 050&lt;br /&gt;
| TSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Testira Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 051&lt;br /&gt;
| SSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Postavlja Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 052&lt;br /&gt;
| RSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Resetira Sense Indicator n.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Registri==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--             --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:88%;width:34em;&amp;quot;&lt;br /&gt;
|+ Registri u računalu IBM 704&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| style=&amp;quot;font-size:88%;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Podatkovni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | S&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | Q&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | P&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;14&amp;quot;| Akumulator&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | AC&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;1&amp;quot;| S&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;11&amp;quot;| Množitelj/Količnik&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | MQ&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;12&amp;quot;| Senzorni indikatori&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | SI&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 1&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR1 (XRA)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 2&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR2 (XRB)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 4 &lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR4 (XRC)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;14&amp;quot; | &#039;&#039;&#039;Brojač naredbi&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Brojač&amp;amp;nbsp;Naredbi&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| IC&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzorni indikatori&#039;&#039;&#039; - su posebni statusni bitovi u IBM 704 koj su se u praksi rabili za provjeru grešaka, grananje ovisno o stanju sustava, upravljanje perifernim jedinicama, te za signalizaciju posebnih događaja. Kroz njih programeri su mogli održavati stanje sustava, signalizirati određene uvjete tokom izvršavanje naredbi, čitanje i postavljanje naredbi i tako su služili za jednostane oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Sense Indicators (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! SI broj&lt;br /&gt;
! Naziv / funkcija&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Overflow flag&lt;br /&gt;
| Postavlja se pri prekoračenju rezultata u akumulatoru (AC) ili količniku (MQ).&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Divide check&lt;br /&gt;
| Signalizira pogrešku pri dijeljenju, uključujući dijeljenje nulom.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| I/O ready&lt;br /&gt;
| Uređaj spreman za prijenos podataka.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| I/O complete&lt;br /&gt;
| Završetak operacije ulaza/izlaza.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Tape mark&lt;br /&gt;
| Očitana oznaka kraja bloka na magnetskoj vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Printer ready&lt;br /&gt;
| Pisač spreman za rad.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Card reader ready&lt;br /&gt;
| Čitač kartica spreman.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Card punch ready&lt;br /&gt;
| Bušilica kartica spremna.&lt;br /&gt;
|-&lt;br /&gt;
| 8–15&lt;br /&gt;
| Peripheral flags&lt;br /&gt;
| Razni signali perifernih uređaja (disk, vrpca, pisač).&lt;br /&gt;
|-&lt;br /&gt;
| 16–35&lt;br /&gt;
| User-defined flags&lt;br /&gt;
| Zastavice koje programer može slobodno koristiti za logiku grananja.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Korištenje u IBM 704 assembleru ====&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao posebne instrukcije za rad sa Sense Indicators:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;TSI n&#039;&#039;&#039;&lt;br /&gt;
: Testira Sense Indicator &#039;&#039;n&#039;&#039;. Ako je postavljen, izvršavanje se nastavlja normalno; ako nije, preskače se sljedeća instrukcija.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3      / provjeri je li I/O complete&lt;br /&gt;
TRA DONE   / ako je postavljen, skoči na DONE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;SSI n&#039;&#039;&#039;&lt;br /&gt;
: Postavlja Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;RSI n&#039;&#039;&#039;&lt;br /&gt;
: Resetira Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 1      / provjeri divide check&lt;br /&gt;
TRA ERROR  / ako je SI1 = 1, idi na ERROR&lt;br /&gt;
&lt;br /&gt;
SSI 20     / postavi korisnički indikator 20&lt;br /&gt;
RSI 3      / resetiraj I/O complete indikator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Usporedba s modernim statusnim registrima ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! IBM 704 Sense Indicators&lt;br /&gt;
! Moderni statusni registri (x86, ARM, RISC-V)&lt;br /&gt;
|-&lt;br /&gt;
| 36 jednobitnih zastavica&lt;br /&gt;
| 8–32 bitni statusni registri&lt;br /&gt;
|-&lt;br /&gt;
| Ručno postavljanje i brisanje&lt;br /&gt;
| Automatsko postavljanje od strane ALU&lt;br /&gt;
|-&lt;br /&gt;
| Koriste se za I/O signalizaciju&lt;br /&gt;
| I/O signalizacija preko interrupt kontrolera&lt;br /&gt;
|-&lt;br /&gt;
| Jednostavne logičke zastavice&lt;br /&gt;
| Zastavice za aritmetiku, usporedbe, prekide&lt;br /&gt;
|-&lt;br /&gt;
| Programer koristi dio SI kao &amp;quot;user flags&amp;quot;&lt;br /&gt;
| Moderni jezici koriste varijable, strukture, objekte&lt;br /&gt;
|-&lt;br /&gt;
| Grananje preko TSI instrukcije&lt;br /&gt;
| Grananje preko CMP/JMP, BEQ/BNE, BLT/BGT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Primjeri IBM 704 assembler koda ==&lt;br /&gt;
&lt;br /&gt;
=== Zbrajanje dvaju brojeva ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj A u AC&lt;br /&gt;
ADD B        / dodaj B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Provjera negativnog broja ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA X        / učitaj X&lt;br /&gt;
TMI NEG      / ako je X &amp;lt; 0, idi na NEG&lt;br /&gt;
TRA DONE     / inače nastavi&lt;br /&gt;
NEG STO Y    / spremi negativnu vrijednost&lt;br /&gt;
DONE HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Množenje i dijeljenje ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A&lt;br /&gt;
MPY B        / AC*B → AC/MQ&lt;br /&gt;
DIV C        / (AC/MQ) / C → MQ (količnik), AC (ostatak)&lt;br /&gt;
STO Q        / spremi količnik&lt;br /&gt;
STO R        / spremi ostatak&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Korištenje Sense Indicators ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3        / provjeri I/O complete&lt;br /&gt;
TRA IO_OK    / ako je SI3 = 1, idi na IO_OK&lt;br /&gt;
SSI 20       / postavi korisnički indikator 20&lt;br /&gt;
IO_OK HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Performanse IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od najbržih znanstvenih računala svoje generacije. Njegova arhitektura s pomičnim zarezom, magnetskom jezgrom i specijaliziranim aritmetičkim registrima omogućavala je znatno bolje performanse u odnosu na prethodne modele IBM 701 i IBM 702. Sustav je bio optimiziran za matematičke operacije, simulacije, statističke izračune i obradu velikih numeričkih skupova podataka.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Performanse računala IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Brzina zbrajanja&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za izvršavanje jedne ADD instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina množenja&lt;br /&gt;
| ~20 μs&lt;br /&gt;
| Vrijeme za MPY instrukciju; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina dijeljenja&lt;br /&gt;
| ~38 μs&lt;br /&gt;
| Vrijeme za DIV instrukciju; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| Memorija&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Magnetska jezgra; pristup ~12 μs.&lt;br /&gt;
|-&lt;br /&gt;
| Ciklus instrukcije&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Prosječno vrijeme za dohvat i izvršavanje jednostavne instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina I/O operacija&lt;br /&gt;
| 7200 kartica/min (čitač)&lt;br /&gt;
| Kartični čitač i bušilica bili su glavni ulazno/izlazni sustavi.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| 12 500 znakovnih blokova/s&lt;br /&gt;
| Ovisno o uređaju; korišteno za masovno spremanje podataka.&lt;br /&gt;
|-&lt;br /&gt;
| Preciznost pomičnog zareza&lt;br /&gt;
| 27-bitni eksponent + 8-bitna mantisa&lt;br /&gt;
| Omogućavalo znanstvene izračune velike preciznosti.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pouzdanost ==&lt;br /&gt;
&lt;br /&gt;
Iako je IBM 704 bio znatno pouzdaniji od svog prethodnika IBM 701, i dalje je bio stroj temeljen na vakuumskim cijevima, što je značilo relativno česte kvarove prema današnjim standardima. Prosječno vrijeme između kvarova iznosilo je oko 8 sati, što je ograničavalo veličinu programa koje je bilo moguće kompajlirati ili izvršavati bez prekida.&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN kompajleri morali su biti iznimno učinkoviti jer bi preduga kompilacija mogla biti prekinuta kvarom sustava. Unatoč tome, IBM 704 je bio dovoljno pouzdan da postane temelj za razvoj FORTRAN-a, LISP-a, ranih neuralnih mreža i brojnih znanstvenih projekata.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Pouzdanost IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| MTBF (mean time between failure)&lt;br /&gt;
| ~8 sati&lt;br /&gt;
| Prosječno vrijeme rada prije kvara.&lt;br /&gt;
|-&lt;br /&gt;
| Usporedba s IBM 701&lt;br /&gt;
| ~30 minuta&lt;br /&gt;
| IBM 704 bio je znatno pouzdaniji od svog prethodnika.&lt;br /&gt;
|-&lt;br /&gt;
| Utjecaj na softver&lt;br /&gt;
| Ograničena veličina programa&lt;br /&gt;
| Kompilacije su morale biti kratke zbog mogućih kvarova.&lt;br /&gt;
|-&lt;br /&gt;
| Tehnologija&lt;br /&gt;
| Vakuumske cijevi&lt;br /&gt;
| Glavni uzrok kvarova i zagrijavanja sustava.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SAP asembler ==&lt;br /&gt;
&lt;br /&gt;
SAP (&#039;&#039;Symbolic Assembly Program&#039;&#039;) bio je službeni asembler za IBM 704 i predstavljao je jedan od najranijih i najutjecajnijih asemblera u povijesti računarstva. Razvijen je unutar IBM-a sredinom 1950-ih kako bi programerima omogućio pisanje simboličkog koda umjesto ručnog unošenja numeričkih opkoda i adresa.&lt;br /&gt;
&lt;br /&gt;
SAP je bio ključan za razvoj FORTRAN-a, LISP-a i mnogih ranih znanstvenih aplikacija, jer je omogućio jednostavnije pisanje, čitanje i održavanje programa na IBM 704.&lt;br /&gt;
&lt;br /&gt;
=== Značajke SAP asemblera ===&lt;br /&gt;
&lt;br /&gt;
SAP je imao nekoliko naprednih značajki za svoje vrijeme:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simboličke oznake&#039;&#039;&#039; – programeri su mogli koristiti imena umjesto numeričkih adresa.&lt;br /&gt;
* &#039;&#039;&#039;Automatsko izračunavanje adresa&#039;&#039;&#039; – asembler je sam određivao lokacije instrukcija.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za indeksne registre&#039;&#039;&#039; – XR1, XR2 i XR4 mogli su se koristiti u adresiranju.&lt;br /&gt;
* &#039;&#039;&#039;Jednostavna sintaksa&#039;&#039;&#039; – instrukcije su bile kratke i čitljive.&lt;br /&gt;
* &#039;&#039;&#039;Integracija s FORTRAN-om&#039;&#039;&#039; – FORTRAN kompajler generirao je SAP kod.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za floating‑point operacije&#039;&#039;&#039; – izravno korištenje AC/MQ jedinice.&lt;br /&gt;
&lt;br /&gt;
SAP je bio jedan od prvih asemblera koji je omogućio relativno visok stupanj apstrakcije u odnosu na strojni kod.&lt;br /&gt;
&lt;br /&gt;
=== Struktura SAP instrukcije ===&lt;br /&gt;
&lt;br /&gt;
Instrukcije su se sastojale od:&lt;br /&gt;
&lt;br /&gt;
* mnemonika (ADD, SUB, MPY, DIV, TRA…)&lt;br /&gt;
* adrese ili simbola&lt;br /&gt;
* opcionalnog indeksnog modifikatora&lt;br /&gt;
* komentara&lt;br /&gt;
&lt;br /&gt;
Primjer strukture:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
MNEMONIK  ADRESA,XR   / komentar&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Primjer SAP koda ===&lt;br /&gt;
&lt;br /&gt;
Slijedi povijesno točan primjer SAP koda za IBM 704:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
A      DEC 5          / definiraj konstantu A&lt;br /&gt;
B      DEC 7          / definiraj konstantu B&lt;br /&gt;
C      BSS 1          / rezerviraj prostor za rezultat&lt;br /&gt;
&lt;br /&gt;
       CLA A          / učitaj A u AC&lt;br /&gt;
       ADD B          / dodaj B&lt;br /&gt;
       STO&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju LISP-a ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je ključnu ulogu u nastanku programskog jezika LISP, jednog od najvažnijih jezika u povijesti računarstva. LISP je 1958. godine razvio John McCarthy na MIT-u, a upravo je IBM 704 bio prvo računalo na kojem je LISP implementiran i izvršavan.&lt;br /&gt;
&lt;br /&gt;
Razvoj LISP-a bio je izravno povezan s arhitekturom IBM 704, posebno s njegovim:&lt;br /&gt;
* 36-bitnim riječima,&lt;br /&gt;
* aritmetičkom jedinicom AC/MQ,&lt;br /&gt;
* indeksnim registrima,&lt;br /&gt;
* mogućnošću manipulacije adresama,&lt;br /&gt;
* podrškom za uvjetno grananje,&lt;br /&gt;
* te fleksibilnim instrukcijskim formatom.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio pogodan za LISP ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je nekoliko arhitekturnih značajki koje su se pokazale idealnima za implementaciju LISP-a:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;36-bitne riječi&#039;&#039;&#039; omogućavale su učinkovito predstavljanje parova (cons cells).&lt;br /&gt;
* &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039; olakšavali su rad s listama i rekurzivnim strukturama.&lt;br /&gt;
* &#039;&#039;&#039;Instrukcije grananja&#039;&#039;&#039; (TRA, TMI, TPL, TZE) omogućavale su jednostavnu implementaciju rekurzije.&lt;br /&gt;
* &#039;&#039;&#039;Magnetska jezgra&#039;&#039;&#039; bila je dovoljno brza za dinamičke strukture podataka.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za floating-point&#039;&#039;&#039; olakšala je rad s matematičkim funkcijama.&lt;br /&gt;
&lt;br /&gt;
McCarthy je iskoristio ove mogućnosti kako bi implementirao osnovne LISP konstrukte: CONS, CAR, CDR, rekurziju, lambda‑izraze i funkcije višeg reda.&lt;br /&gt;
&lt;br /&gt;
=== Prva implementacija LISP-a ===&lt;br /&gt;
&lt;br /&gt;
Prva verzija LISP-a bila je napisana u SAP asembleru za IBM 704.  &lt;br /&gt;
Ova implementacija uključivala je:&lt;br /&gt;
&lt;br /&gt;
* interpreter,&lt;br /&gt;
* evaluator,&lt;br /&gt;
* upravljanje memorijom,&lt;br /&gt;
* implementaciju cons‑struktura,&lt;br /&gt;
* osnovne matematičke funkcije,&lt;br /&gt;
* te mehanizme za rekurziju i funkcije višeg reda.&lt;br /&gt;
&lt;br /&gt;
LISP je na IBM 704 radio kao interpretirani jezik, a programi su se izvršavali izravno nad strukturom lista u memoriji.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je omogućio LISP-u da postane prvi široko korišteni jezik za:&lt;br /&gt;
&lt;br /&gt;
* umjetnu inteligenciju,&lt;br /&gt;
* simboličku manipulaciju,&lt;br /&gt;
* matematičku logiku,&lt;br /&gt;
* rane ekspertske sustave,&lt;br /&gt;
* istraživanje strojnog učenja.&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, LISP bi vjerojatno bio znatno drugačiji — ili bi se pojavio mnogo kasnije.&lt;br /&gt;
&lt;br /&gt;
=== Primjer ranog LISP izraza (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Iako se LISP nije zapisivao u assembleru, njegovi izrazi su se prevodili u SAP kod za IBM 704.  &lt;br /&gt;
Primjer jednostavne LISP funkcije:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(define (square x)&lt;br /&gt;
  (* x x))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj izraz bi se na IBM 704 interno pretvorio u operacije nad cons‑struktura i pozive aritmetičkih instrukcija MPY i ADD.&lt;br /&gt;
&lt;br /&gt;
=== Utjecaj na daljnji razvoj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je bio platforma na kojoj su nastale ključne ideje:&lt;br /&gt;
&lt;br /&gt;
* automatsko upravljanje memorijom,&lt;br /&gt;
* rekurzija kao temeljni mehanizam,&lt;br /&gt;
* funkcije višeg reda,&lt;br /&gt;
* lambda‑račun,&lt;br /&gt;
* simbolička obrada podataka.&lt;br /&gt;
&lt;br /&gt;
Ove ideje postale su temelj modernih programskih jezika, od Schemea i Prologa do Pythona i JavaScripta.&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju FORTRAN-a ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je presudnu ulogu u nastanku FORTRAN-a (Formula Translation), prvog široko korištenog visokorazinskog programskog jezika. FORTRAN je razvijen 1957. godine u IBM-u pod vodstvom Johna Backusa, a IBM 704 bio je prvo računalo na kojem je FORTRAN implementiran, kompajliran i izvršavan.&lt;br /&gt;
&lt;br /&gt;
Arhitektura IBM 704 izravno je oblikovala dizajn FORTRAN-a. Njegova podrška za aritmetiku s pomičnim zarezom, indeksne registre, statusne indikatore i 36-bitne riječi omogućila je stvaranje jezika koji je bio optimiziran za znanstvene i tehničke izračune.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio ključan za FORTRAN ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 posjedovao je nekoliko arhitekturnih značajki koje su bile presudne za razvoj FORTRAN-a:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Hardverska floating‑point jedinica&#039;&#039;&#039; – omogućila je izravnu podršku za matematičke operacije.&lt;br /&gt;
* &#039;&#039;&#039;Aritmetički registri AC i MQ&#039;&#039;&#039; – olakšali su implement&lt;br /&gt;
&lt;br /&gt;
==Izvori==&lt;br /&gt;
{{izvori}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorija:IBM]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787634</id>
		<title>IBM 704</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787634"/>
		<updated>2026-07-07T10:04:20Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Utjecaj na daljnji razvoj */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;IBM 704&#039;&#039;&#039; ime je za računalo prve generacije koje je razvila tvrtka [[IBM]] i jedan je iz serije računala IBM 700. Ovo računalo se proizvodilo od 1954. do 1964. godine.&amp;lt;ref&amp;gt;https://www.ibm.com/history/700&amp;lt;/ref&amp;gt;. Povijesna važnost ovog računala jest da je na njemu bio razvijen programski jezik [[FORTRAN]] i [[LISP]] te SAP asembler. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Povijest razvoja IBM 700 serije ==&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija bila je prva generacija komercijalnih znanstvenih računala koju je IBM razvio početkom 1950-ih. Serija je započela s modelom IBM 701 (1952.), poznatim kao „Defense Calculator“, koji je bio namijenjen vojnoj i zrakoplovnoj industriji.&lt;br /&gt;
&lt;br /&gt;
* IBM 702 (1953.) bio je poslovno orijentiran sustav, dok je IBM 703 bio eksperimentalni model.&lt;br /&gt;
* IBM 704 je postao temelj za razvoj FORTRAN-a (1957.), prvog visokorazinskog programskog jezika.&lt;br /&gt;
&lt;br /&gt;
Pravi tehnološki iskorak dogodio se s modelom &#039;&#039;&#039;IBM 704&#039;&#039;&#039; (1954.), prvim računalom koje je podržavalo:&lt;br /&gt;
* aritmetiku s pomičnim zarezom,&lt;br /&gt;
* indeksne registre,&lt;br /&gt;
* statusne indikatore,&lt;br /&gt;
* magnetsku jezgru kao primarnu memoriju.&lt;br /&gt;
&lt;br /&gt;
Serija se nastavila s modelima IBM 709 (1958.) i IBM 7090 (1959.), koji su bili tranzistorski nasljednici i koristili se u NASA-i, NORAD-u i velikim znanstvenim centrima.&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija ostavila je dubok trag u povijesti računarstva, postavivši standarde arhitekture koji su se zadržali desetljećima.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arhitektura IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od prvih komercijalnih računala koje je uvodilo napredne koncepte arhitekture, uključujući rad s pomičnim zarezom, indeksne registre i statusne indikatore. Sustav je bio dizajniran za znanstvene i tehničke izračune, što ga je činilo ključnim alatom u laboratorijima, sveučilištima i ranim zrakoplovnim projektima.&lt;br /&gt;
&lt;br /&gt;
=== Memorija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 koristio je magnetsku jezgru kao primarnu memoriju, što je u to vrijeme predstavljalo veliki tehnološki napredak u odnosu na Williamsove cijevi korištene u IBM-u 701. Magnetska jezgra bila je brža, pouzdanija i omogućavala stabilno zadržavanje podataka bez potrebe za stalnim osvježavanjem.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Memorijske karakteristike IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Vrsta memorije&lt;br /&gt;
| Magnetska jezgra&lt;br /&gt;
| Stabilna, brza i pouzdana tehnologija za 1950-e.&lt;br /&gt;
|-&lt;br /&gt;
| Kapacitet&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Ukupno 147 456 bitova (18 432 bajta).&lt;br /&gt;
|-&lt;br /&gt;
| Vrijeme pristupa&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za čitanje ili pisanje jedne riječi.&lt;br /&gt;
|-&lt;br /&gt;
| Format riječi&lt;br /&gt;
| 36-bitna riječ&lt;br /&gt;
| Koristi se za instrukcije, podatke i floating-point brojeve.&lt;br /&gt;
|-&lt;br /&gt;
| Floating-point format&lt;br /&gt;
| 8-bitni eksponent + 27-bitna mantisa&lt;br /&gt;
| Bez skrivenog bita; excess-128 eksponent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Periferni uređaji ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 podržavao je širok spektar perifernih uređaja, što ga je činilo pogodnim za znanstvene, tehničke i administrativne zadatke. Ulazno/izlazni sustav bio je temeljen na magnetskim vrpcama, kartičnim čitačima i pisačima, uz mogućnost prikaza podataka na CRT zaslonima.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Periferni uređaji IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Uređaj&lt;br /&gt;
! Model&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Čitač kartica&lt;br /&gt;
| IBM 711&lt;br /&gt;
| Učitava programe i podatke s bušenih kartica.&lt;br /&gt;
|-&lt;br /&gt;
| Pisač&lt;br /&gt;
| IBM 716&lt;br /&gt;
| Ispisuje tekstualni izlaz; glavni uređaj za ljudsko čitanje rezultata.&lt;br /&gt;
|-&lt;br /&gt;
| Bušilica kartica&lt;br /&gt;
| IBM 721&lt;br /&gt;
| Zapisuje podatke na bušene kartice.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| IBM 727&lt;br /&gt;
| Glavni masovni spremnik; preko 5 milijuna znakova po vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrolna jedinica vrpci&lt;br /&gt;
| IBM 753&lt;br /&gt;
| Upravljanje magnetskim vrpcama.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetski bubanj&lt;br /&gt;
| IBM 733&lt;br /&gt;
| Dodatna memorija za brzi pristup.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetska jezgra (RAM)&lt;br /&gt;
| IBM 737&lt;br /&gt;
| Primarna memorija sustava (4096 × 36-bitnih riječi).&lt;br /&gt;
|-&lt;br /&gt;
| CRT zaslon&lt;br /&gt;
| IBM 740&lt;br /&gt;
| 21-inčni vektorski prikaz s dugom fosfornom postojanošću; korišten za vizualizaciju podataka.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aritmetička jedinica (AC i MQ) ===&lt;br /&gt;
Aritmetička jedinica sastojala se od dva glavna 36-bitna registra:&lt;br /&gt;
* &#039;&#039;&#039;AC (Accumulator)&#039;&#039;&#039; – glavni registar za aritmetiku.&lt;br /&gt;
* &#039;&#039;&#039;MQ (Multiplier/Quotient)&#039;&#039;&#039; – registar za množenje i dijeljenje.&lt;br /&gt;
&lt;br /&gt;
Ova dva registra zajedno su omogućavala učinkovite operacije nad velikim brojevima i pomičnim zarezom.&lt;br /&gt;
&lt;br /&gt;
=== Indeksni registri (XR1, XR2, XR4) ===&lt;br /&gt;
IBM 704 je koristio tri indeksna registra:&lt;br /&gt;
* &#039;&#039;&#039;XR1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Indeksni registri omogućavali su modifikaciju adresa, implementaciju petlji i rad s velikim poljima podataka. Ovo je bio preteča modernog adresiranja u procesorima.&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori (SI) ===&lt;br /&gt;
Sustav je imao 36 senzorskih indikatora koji su služili kao statusne zastavice:&lt;br /&gt;
* indikatori grešaka (overflow, divide check)&lt;br /&gt;
* indikatori stanja I/O uređaja&lt;br /&gt;
* korisnički definirani indikatori&lt;br /&gt;
&lt;br /&gt;
Programi su mogli testirati i postavljati SI bitove, što je omogućavalo primitivne oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
=== Instrukcijski format ===&lt;br /&gt;
Instrukcije su bile 36-bitne, s poljima:&lt;br /&gt;
* opkod&lt;br /&gt;
* adresa&lt;br /&gt;
* indeksni modifikator&lt;br /&gt;
* bitovi za uvjetno grananje&lt;br /&gt;
&lt;br /&gt;
Ovaj format omogućavao je fleksibilno adresiranje i kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Floating‑point implementacija ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je prvo komercijalno računalo koje je imalo ugrađenu hardversku podršku za aritmetiku s pomičnim zarezom. Ovo je bio ključni tehnološki iskorak koji je omogućio razvoj FORTRAN-a i znanstvenih aplikacija koje su zahtijevale visoku numeričku preciznost.&lt;br /&gt;
&lt;br /&gt;
Floating‑point brojevi u IBM 704 bili su pohranjeni u 36‑bitnim riječima, podijeljenima na dva glavna dijela:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Mantisa&#039;&#039;&#039; – 27 bitova  &lt;br /&gt;
* &#039;&#039;&#039;Eksponent&#039;&#039;&#039; – 8 bitova (excess‑128 format)  &lt;br /&gt;
* &#039;&#039;&#039;Znak&#039;&#039;&#039; – 1 bit&lt;br /&gt;
&lt;br /&gt;
=== Format floating‑point riječi ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Format floating‑point broja (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! Polje&lt;br /&gt;
! Duljina&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Znak mantise&lt;br /&gt;
| 1 bit&lt;br /&gt;
| Određuje pozitivan ili negativan broj.&lt;br /&gt;
|-&lt;br /&gt;
| Mantisa&lt;br /&gt;
| 27 bitova&lt;br /&gt;
| Normalizirana mantisa bez skrivenog bita.&lt;br /&gt;
|-&lt;br /&gt;
| Eksponent&lt;br /&gt;
| 8 bitova&lt;br /&gt;
| Excess‑128 format (stvarni eksponent = pohranjeni − 128).&lt;br /&gt;
|-&lt;br /&gt;
| Rezervirano&lt;br /&gt;
| 0 bitova&lt;br /&gt;
| Format je potpuno iskorišten; nema neiskorištenih bitova.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Excess‑128 eksponent ===&lt;br /&gt;
&lt;br /&gt;
Eksponent je pohranjen u obliku:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
stvarni_eksponent = pohranjeni_eksponent − 128&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj pristup omogućavao je jednostavnije usporedbe i normalizaciju brojeva.&lt;br /&gt;
&lt;br /&gt;
=== Normalizacija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 zahtijevao je da mantisa bude normalizirana tako da najviši bit mantise bude različit od nule.  &lt;br /&gt;
To je omogućavalo maksimalnu preciznost pri izračunima.&lt;br /&gt;
&lt;br /&gt;
=== Floating‑point operacije ===&lt;br /&gt;
&lt;br /&gt;
Računalo je podržavalo sljedeće operacije nad floating‑point brojevima:&lt;br /&gt;
&lt;br /&gt;
* zbrajanje (ADD)  &lt;br /&gt;
* oduzimanje (SUB)  &lt;br /&gt;
* množenje (MPY)  &lt;br /&gt;
* dijeljenje (DIV)&lt;br /&gt;
&lt;br /&gt;
Sve operacije koristile su aritmetičku jedinicu AC/MQ, pri čemu se rezultat normalizirao automatski.&lt;br /&gt;
&lt;br /&gt;
=== Primjer floating‑point operacije u assembleru ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj floating-point broj A&lt;br /&gt;
ADD B        / zbroji ga s B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Važnost floating‑point implementacije ===&lt;br /&gt;
&lt;br /&gt;
Hardverska podrška za pomični zarez bila je ključna za:&lt;br /&gt;
&lt;br /&gt;
* razvoj FORTRAN-a (1957.)&lt;br /&gt;
* balističke izračune&lt;br /&gt;
* aerodinamičke simulacije&lt;br /&gt;
* nuklearne proračune&lt;br /&gt;
* statističke modele&lt;br /&gt;
* rane znanstvene aplikacije NASA-e&lt;br /&gt;
&lt;br /&gt;
IBM 704 je time postavio standard koji će kasnije preuzeti svi moderni procesori.&lt;br /&gt;
&lt;br /&gt;
== Instrukcijski skup IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Glavne grupe instrukcija IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Grupa&lt;br /&gt;
! Primjeri&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Aritmetičke instrukcije&lt;br /&gt;
| ADD, SUB, MPY, DIV&lt;br /&gt;
| Operacije nad AC i MQ registrima; podrška za cijele brojeve i pomični zarez.&lt;br /&gt;
|-&lt;br /&gt;
| Logičke instrukcije&lt;br /&gt;
| CLA, CLM, COM&lt;br /&gt;
| Čišćenje, komplementiranje i manipulacija bitovima.&lt;br /&gt;
|-&lt;br /&gt;
| Uvjetno grananje&lt;br /&gt;
| TRA, TMI, TPL, TZE&lt;br /&gt;
| Skokovi ovisno o sadržaju AC ili MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Rad sa Sense Indicators&lt;br /&gt;
| TSI, SSI, RSI&lt;br /&gt;
| Testiranje, postavljanje i resetiranje statusnih bitova.&lt;br /&gt;
|-&lt;br /&gt;
| Indeksno adresiranje&lt;br /&gt;
| AXT, TXI&lt;br /&gt;
| Modifikacija adresa pomoću XR1, XR2, XR4.&lt;br /&gt;
|-&lt;br /&gt;
| Ulazno/izlazne instrukcije&lt;br /&gt;
| RDS, WRS, RWT&lt;br /&gt;
| Rad s magnetskom vrpcom, kartičnim čitačem i pisačem.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrola toka programa&lt;br /&gt;
| HLT, NOP&lt;br /&gt;
| Zaustavljanje programa, prazna instrukcija.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Opkodovi IBM 704 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Kompletan popis opkoda IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Opkod&lt;br /&gt;
! Mnemonik&lt;br /&gt;
! Grupa&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 000&lt;br /&gt;
| NOP&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Prazna instrukcija; ne radi ništa.&lt;br /&gt;
|-&lt;br /&gt;
| 001&lt;br /&gt;
| HLT&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Zaustavlja izvršavanje programa.&lt;br /&gt;
|-&lt;br /&gt;
| 002&lt;br /&gt;
| TRA&lt;br /&gt;
| Grananje&lt;br /&gt;
| Bezuvjetni skok na adresu.&lt;br /&gt;
|-&lt;br /&gt;
| 003&lt;br /&gt;
| TRN&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC negativan.&lt;br /&gt;
|-&lt;br /&gt;
| 004&lt;br /&gt;
| TMI&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC manji od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 005&lt;br /&gt;
| TPL&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC veći od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 006&lt;br /&gt;
| TZE&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC jednak nuli.&lt;br /&gt;
|-&lt;br /&gt;
| 007&lt;br /&gt;
| TOV&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je overflow zastavica postavljena.&lt;br /&gt;
|-&lt;br /&gt;
| 010&lt;br /&gt;
| ADD&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Zbrajanje sadržaja memorije s AC.&lt;br /&gt;
|-&lt;br /&gt;
| 011&lt;br /&gt;
| SUB&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Oduzimanje sadržaja memorije od AC.&lt;br /&gt;
|-&lt;br /&gt;
| 012&lt;br /&gt;
| MPY&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Množenje; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 013&lt;br /&gt;
| DIV&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Dijeljenje; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 014&lt;br /&gt;
| CLA&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 015&lt;br /&gt;
| CLM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 016&lt;br /&gt;
| COM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Komplementira AC.&lt;br /&gt;
|-&lt;br /&gt;
| 020&lt;br /&gt;
| SHL&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak ulijevo.&lt;br /&gt;
|-&lt;br /&gt;
| 021&lt;br /&gt;
| SHR&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak udesno.&lt;br /&gt;
|-&lt;br /&gt;
| 030&lt;br /&gt;
| AXT&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Učitava vrijednost u XR1, XR2 ili XR4.&lt;br /&gt;
|-&lt;br /&gt;
| 031&lt;br /&gt;
| TXI&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Dodaje vrijednost indeksnom registru.&lt;br /&gt;
|-&lt;br /&gt;
| 040&lt;br /&gt;
| RDS&lt;br /&gt;
| I/O&lt;br /&gt;
| Čitanje s magnetske vrpce.&lt;br /&gt;
|-&lt;br /&gt;
| 041&lt;br /&gt;
| WRS&lt;br /&gt;
| I/O&lt;br /&gt;
| Pisanje na magnetsku vrpcu.&lt;br /&gt;
|-&lt;br /&gt;
| 042&lt;br /&gt;
| RWT&lt;br /&gt;
| I/O&lt;br /&gt;
| Čekanje na I/O operaciju.&lt;br /&gt;
|-&lt;br /&gt;
| 050&lt;br /&gt;
| TSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Testira Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 051&lt;br /&gt;
| SSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Postavlja Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 052&lt;br /&gt;
| RSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Resetira Sense Indicator n.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Registri==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--             --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:88%;width:34em;&amp;quot;&lt;br /&gt;
|+ Registri u računalu IBM 704&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| style=&amp;quot;font-size:88%;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Podatkovni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | S&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | Q&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | P&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;14&amp;quot;| Akumulator&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | AC&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;1&amp;quot;| S&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;11&amp;quot;| Množitelj/Količnik&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | MQ&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;12&amp;quot;| Senzorni indikatori&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | SI&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 1&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR1 (XRA)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 2&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR2 (XRB)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 4 &lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR4 (XRC)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;14&amp;quot; | &#039;&#039;&#039;Brojač naredbi&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Brojač&amp;amp;nbsp;Naredbi&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| IC&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzorni indikatori&#039;&#039;&#039; - su posebni statusni bitovi u IBM 704 koj su se u praksi rabili za provjeru grešaka, grananje ovisno o stanju sustava, upravljanje perifernim jedinicama, te za signalizaciju posebnih događaja. Kroz njih programeri su mogli održavati stanje sustava, signalizirati određene uvjete tokom izvršavanje naredbi, čitanje i postavljanje naredbi i tako su služili za jednostane oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Sense Indicators (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! SI broj&lt;br /&gt;
! Naziv / funkcija&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Overflow flag&lt;br /&gt;
| Postavlja se pri prekoračenju rezultata u akumulatoru (AC) ili količniku (MQ).&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Divide check&lt;br /&gt;
| Signalizira pogrešku pri dijeljenju, uključujući dijeljenje nulom.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| I/O ready&lt;br /&gt;
| Uređaj spreman za prijenos podataka.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| I/O complete&lt;br /&gt;
| Završetak operacije ulaza/izlaza.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Tape mark&lt;br /&gt;
| Očitana oznaka kraja bloka na magnetskoj vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Printer ready&lt;br /&gt;
| Pisač spreman za rad.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Card reader ready&lt;br /&gt;
| Čitač kartica spreman.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Card punch ready&lt;br /&gt;
| Bušilica kartica spremna.&lt;br /&gt;
|-&lt;br /&gt;
| 8–15&lt;br /&gt;
| Peripheral flags&lt;br /&gt;
| Razni signali perifernih uređaja (disk, vrpca, pisač).&lt;br /&gt;
|-&lt;br /&gt;
| 16–35&lt;br /&gt;
| User-defined flags&lt;br /&gt;
| Zastavice koje programer može slobodno koristiti za logiku grananja.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Korištenje u IBM 704 assembleru ====&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao posebne instrukcije za rad sa Sense Indicators:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;TSI n&#039;&#039;&#039;&lt;br /&gt;
: Testira Sense Indicator &#039;&#039;n&#039;&#039;. Ako je postavljen, izvršavanje se nastavlja normalno; ako nije, preskače se sljedeća instrukcija.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3      / provjeri je li I/O complete&lt;br /&gt;
TRA DONE   / ako je postavljen, skoči na DONE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;SSI n&#039;&#039;&#039;&lt;br /&gt;
: Postavlja Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;RSI n&#039;&#039;&#039;&lt;br /&gt;
: Resetira Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 1      / provjeri divide check&lt;br /&gt;
TRA ERROR  / ako je SI1 = 1, idi na ERROR&lt;br /&gt;
&lt;br /&gt;
SSI 20     / postavi korisnički indikator 20&lt;br /&gt;
RSI 3      / resetiraj I/O complete indikator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Usporedba s modernim statusnim registrima ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! IBM 704 Sense Indicators&lt;br /&gt;
! Moderni statusni registri (x86, ARM, RISC-V)&lt;br /&gt;
|-&lt;br /&gt;
| 36 jednobitnih zastavica&lt;br /&gt;
| 8–32 bitni statusni registri&lt;br /&gt;
|-&lt;br /&gt;
| Ručno postavljanje i brisanje&lt;br /&gt;
| Automatsko postavljanje od strane ALU&lt;br /&gt;
|-&lt;br /&gt;
| Koriste se za I/O signalizaciju&lt;br /&gt;
| I/O signalizacija preko interrupt kontrolera&lt;br /&gt;
|-&lt;br /&gt;
| Jednostavne logičke zastavice&lt;br /&gt;
| Zastavice za aritmetiku, usporedbe, prekide&lt;br /&gt;
|-&lt;br /&gt;
| Programer koristi dio SI kao &amp;quot;user flags&amp;quot;&lt;br /&gt;
| Moderni jezici koriste varijable, strukture, objekte&lt;br /&gt;
|-&lt;br /&gt;
| Grananje preko TSI instrukcije&lt;br /&gt;
| Grananje preko CMP/JMP, BEQ/BNE, BLT/BGT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Primjeri IBM 704 assembler koda ==&lt;br /&gt;
&lt;br /&gt;
=== Zbrajanje dvaju brojeva ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj A u AC&lt;br /&gt;
ADD B        / dodaj B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Provjera negativnog broja ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA X        / učitaj X&lt;br /&gt;
TMI NEG      / ako je X &amp;lt; 0, idi na NEG&lt;br /&gt;
TRA DONE     / inače nastavi&lt;br /&gt;
NEG STO Y    / spremi negativnu vrijednost&lt;br /&gt;
DONE HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Množenje i dijeljenje ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A&lt;br /&gt;
MPY B        / AC*B → AC/MQ&lt;br /&gt;
DIV C        / (AC/MQ) / C → MQ (količnik), AC (ostatak)&lt;br /&gt;
STO Q        / spremi količnik&lt;br /&gt;
STO R        / spremi ostatak&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Korištenje Sense Indicators ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3        / provjeri I/O complete&lt;br /&gt;
TRA IO_OK    / ako je SI3 = 1, idi na IO_OK&lt;br /&gt;
SSI 20       / postavi korisnički indikator 20&lt;br /&gt;
IO_OK HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Performanse IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od najbržih znanstvenih računala svoje generacije. Njegova arhitektura s pomičnim zarezom, magnetskom jezgrom i specijaliziranim aritmetičkim registrima omogućavala je znatno bolje performanse u odnosu na prethodne modele IBM 701 i IBM 702. Sustav je bio optimiziran za matematičke operacije, simulacije, statističke izračune i obradu velikih numeričkih skupova podataka.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Performanse računala IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Brzina zbrajanja&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za izvršavanje jedne ADD instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina množenja&lt;br /&gt;
| ~20 μs&lt;br /&gt;
| Vrijeme za MPY instrukciju; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina dijeljenja&lt;br /&gt;
| ~38 μs&lt;br /&gt;
| Vrijeme za DIV instrukciju; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| Memorija&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Magnetska jezgra; pristup ~12 μs.&lt;br /&gt;
|-&lt;br /&gt;
| Ciklus instrukcije&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Prosječno vrijeme za dohvat i izvršavanje jednostavne instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina I/O operacija&lt;br /&gt;
| 7200 kartica/min (čitač)&lt;br /&gt;
| Kartični čitač i bušilica bili su glavni ulazno/izlazni sustavi.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| 12 500 znakovnih blokova/s&lt;br /&gt;
| Ovisno o uređaju; korišteno za masovno spremanje podataka.&lt;br /&gt;
|-&lt;br /&gt;
| Preciznost pomičnog zareza&lt;br /&gt;
| 27-bitni eksponent + 8-bitna mantisa&lt;br /&gt;
| Omogućavalo znanstvene izračune velike preciznosti.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pouzdanost ==&lt;br /&gt;
&lt;br /&gt;
Iako je IBM 704 bio znatno pouzdaniji od svog prethodnika IBM 701, i dalje je bio stroj temeljen na vakuumskim cijevima, što je značilo relativno česte kvarove prema današnjim standardima. Prosječno vrijeme između kvarova iznosilo je oko 8 sati, što je ograničavalo veličinu programa koje je bilo moguće kompajlirati ili izvršavati bez prekida.&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN kompajleri morali su biti iznimno učinkoviti jer bi preduga kompilacija mogla biti prekinuta kvarom sustava. Unatoč tome, IBM 704 je bio dovoljno pouzdan da postane temelj za razvoj FORTRAN-a, LISP-a, ranih neuralnih mreža i brojnih znanstvenih projekata.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Pouzdanost IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| MTBF (mean time between failure)&lt;br /&gt;
| ~8 sati&lt;br /&gt;
| Prosječno vrijeme rada prije kvara.&lt;br /&gt;
|-&lt;br /&gt;
| Usporedba s IBM 701&lt;br /&gt;
| ~30 minuta&lt;br /&gt;
| IBM 704 bio je znatno pouzdaniji od svog prethodnika.&lt;br /&gt;
|-&lt;br /&gt;
| Utjecaj na softver&lt;br /&gt;
| Ograničena veličina programa&lt;br /&gt;
| Kompilacije su morale biti kratke zbog mogućih kvarova.&lt;br /&gt;
|-&lt;br /&gt;
| Tehnologija&lt;br /&gt;
| Vakuumske cijevi&lt;br /&gt;
| Glavni uzrok kvarova i zagrijavanja sustava.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju LISP-a ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je ključnu ulogu u nastanku programskog jezika LISP, jednog od najvažnijih jezika u povijesti računarstva. LISP je 1958. godine razvio John McCarthy na MIT-u, a upravo je IBM 704 bio prvo računalo na kojem je LISP implementiran i izvršavan.&lt;br /&gt;
&lt;br /&gt;
Razvoj LISP-a bio je izravno povezan s arhitekturom IBM 704, posebno s njegovim:&lt;br /&gt;
* 36-bitnim riječima,&lt;br /&gt;
* aritmetičkom jedinicom AC/MQ,&lt;br /&gt;
* indeksnim registrima,&lt;br /&gt;
* mogućnošću manipulacije adresama,&lt;br /&gt;
* podrškom za uvjetno grananje,&lt;br /&gt;
* te fleksibilnim instrukcijskim formatom.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio pogodan za LISP ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je nekoliko arhitekturnih značajki koje su se pokazale idealnima za implementaciju LISP-a:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;36-bitne riječi&#039;&#039;&#039; omogućavale su učinkovito predstavljanje parova (cons cells).&lt;br /&gt;
* &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039; olakšavali su rad s listama i rekurzivnim strukturama.&lt;br /&gt;
* &#039;&#039;&#039;Instrukcije grananja&#039;&#039;&#039; (TRA, TMI, TPL, TZE) omogućavale su jednostavnu implementaciju rekurzije.&lt;br /&gt;
* &#039;&#039;&#039;Magnetska jezgra&#039;&#039;&#039; bila je dovoljno brza za dinamičke strukture podataka.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za floating-point&#039;&#039;&#039; olakšala je rad s matematičkim funkcijama.&lt;br /&gt;
&lt;br /&gt;
McCarthy je iskoristio ove mogućnosti kako bi implementirao osnovne LISP konstrukte: CONS, CAR, CDR, rekurziju, lambda‑izraze i funkcije višeg reda.&lt;br /&gt;
&lt;br /&gt;
=== Prva implementacija LISP-a ===&lt;br /&gt;
&lt;br /&gt;
Prva verzija LISP-a bila je napisana u SAP asembleru za IBM 704.  &lt;br /&gt;
Ova implementacija uključivala je:&lt;br /&gt;
&lt;br /&gt;
* interpreter,&lt;br /&gt;
* evaluator,&lt;br /&gt;
* upravljanje memorijom,&lt;br /&gt;
* implementaciju cons‑struktura,&lt;br /&gt;
* osnovne matematičke funkcije,&lt;br /&gt;
* te mehanizme za rekurziju i funkcije višeg reda.&lt;br /&gt;
&lt;br /&gt;
LISP je na IBM 704 radio kao interpretirani jezik, a programi su se izvršavali izravno nad strukturom lista u memoriji.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je omogućio LISP-u da postane prvi široko korišteni jezik za:&lt;br /&gt;
&lt;br /&gt;
* umjetnu inteligenciju,&lt;br /&gt;
* simboličku manipulaciju,&lt;br /&gt;
* matematičku logiku,&lt;br /&gt;
* rane ekspertske sustave,&lt;br /&gt;
* istraživanje strojnog učenja.&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, LISP bi vjerojatno bio znatno drugačiji — ili bi se pojavio mnogo kasnije.&lt;br /&gt;
&lt;br /&gt;
=== Primjer ranog LISP izraza (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Iako se LISP nije zapisivao u assembleru, njegovi izrazi su se prevodili u SAP kod za IBM 704.  &lt;br /&gt;
Primjer jednostavne LISP funkcije:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(define (square x)&lt;br /&gt;
  (* x x))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj izraz bi se na IBM 704 interno pretvorio u operacije nad cons‑struktura i pozive aritmetičkih instrukcija MPY i ADD.&lt;br /&gt;
&lt;br /&gt;
=== Utjecaj na daljnji razvoj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je bio platforma na kojoj su nastale ključne ideje:&lt;br /&gt;
&lt;br /&gt;
* automatsko upravljanje memorijom,&lt;br /&gt;
* rekurzija kao temeljni mehanizam,&lt;br /&gt;
* funkcije višeg reda,&lt;br /&gt;
* lambda‑račun,&lt;br /&gt;
* simbolička obrada podataka.&lt;br /&gt;
&lt;br /&gt;
Ove ideje postale su temelj modernih programskih jezika, od Schemea i Prologa do Pythona i JavaScripta.&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju FORTRAN-a ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je presudnu ulogu u nastanku FORTRAN-a (Formula Translation), prvog široko korištenog visokorazinskog programskog jezika. FORTRAN je razvijen 1957. godine u IBM-u pod vodstvom Johna Backusa, a IBM 704 bio je prvo računalo na kojem je FORTRAN implementiran, kompajliran i izvršavan.&lt;br /&gt;
&lt;br /&gt;
Arhitektura IBM 704 izravno je oblikovala dizajn FORTRAN-a. Njegova podrška za aritmetiku s pomičnim zarezom, indeksne registre, statusne indikatore i 36-bitne riječi omogućila je stvaranje jezika koji je bio optimiziran za znanstvene i tehničke izračune.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio ključan za FORTRAN ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 posjedovao je nekoliko arhitekturnih značajki koje su bile presudne za razvoj FORTRAN-a:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Hardverska floating‑point jedinica&#039;&#039;&#039; – omogućila je izravnu podršku za matematičke operacije.&lt;br /&gt;
* &#039;&#039;&#039;Aritmetički registri AC i MQ&#039;&#039;&#039; – olakšali su implement&lt;br /&gt;
&lt;br /&gt;
==Izvori==&lt;br /&gt;
{{izvori}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorija:IBM]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787633</id>
		<title>IBM 704</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787633"/>
		<updated>2026-07-07T10:03:19Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Pouzdanost */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;IBM 704&#039;&#039;&#039; ime je za računalo prve generacije koje je razvila tvrtka [[IBM]] i jedan je iz serije računala IBM 700. Ovo računalo se proizvodilo od 1954. do 1964. godine.&amp;lt;ref&amp;gt;https://www.ibm.com/history/700&amp;lt;/ref&amp;gt;. Povijesna važnost ovog računala jest da je na njemu bio razvijen programski jezik [[FORTRAN]] i [[LISP]] te SAP asembler. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Povijest razvoja IBM 700 serije ==&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija bila je prva generacija komercijalnih znanstvenih računala koju je IBM razvio početkom 1950-ih. Serija je započela s modelom IBM 701 (1952.), poznatim kao „Defense Calculator“, koji je bio namijenjen vojnoj i zrakoplovnoj industriji.&lt;br /&gt;
&lt;br /&gt;
* IBM 702 (1953.) bio je poslovno orijentiran sustav, dok je IBM 703 bio eksperimentalni model.&lt;br /&gt;
* IBM 704 je postao temelj za razvoj FORTRAN-a (1957.), prvog visokorazinskog programskog jezika.&lt;br /&gt;
&lt;br /&gt;
Pravi tehnološki iskorak dogodio se s modelom &#039;&#039;&#039;IBM 704&#039;&#039;&#039; (1954.), prvim računalom koje je podržavalo:&lt;br /&gt;
* aritmetiku s pomičnim zarezom,&lt;br /&gt;
* indeksne registre,&lt;br /&gt;
* statusne indikatore,&lt;br /&gt;
* magnetsku jezgru kao primarnu memoriju.&lt;br /&gt;
&lt;br /&gt;
Serija se nastavila s modelima IBM 709 (1958.) i IBM 7090 (1959.), koji su bili tranzistorski nasljednici i koristili se u NASA-i, NORAD-u i velikim znanstvenim centrima.&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija ostavila je dubok trag u povijesti računarstva, postavivši standarde arhitekture koji su se zadržali desetljećima.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arhitektura IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od prvih komercijalnih računala koje je uvodilo napredne koncepte arhitekture, uključujući rad s pomičnim zarezom, indeksne registre i statusne indikatore. Sustav je bio dizajniran za znanstvene i tehničke izračune, što ga je činilo ključnim alatom u laboratorijima, sveučilištima i ranim zrakoplovnim projektima.&lt;br /&gt;
&lt;br /&gt;
=== Memorija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 koristio je magnetsku jezgru kao primarnu memoriju, što je u to vrijeme predstavljalo veliki tehnološki napredak u odnosu na Williamsove cijevi korištene u IBM-u 701. Magnetska jezgra bila je brža, pouzdanija i omogućavala stabilno zadržavanje podataka bez potrebe za stalnim osvježavanjem.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Memorijske karakteristike IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Vrsta memorije&lt;br /&gt;
| Magnetska jezgra&lt;br /&gt;
| Stabilna, brza i pouzdana tehnologija za 1950-e.&lt;br /&gt;
|-&lt;br /&gt;
| Kapacitet&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Ukupno 147 456 bitova (18 432 bajta).&lt;br /&gt;
|-&lt;br /&gt;
| Vrijeme pristupa&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za čitanje ili pisanje jedne riječi.&lt;br /&gt;
|-&lt;br /&gt;
| Format riječi&lt;br /&gt;
| 36-bitna riječ&lt;br /&gt;
| Koristi se za instrukcije, podatke i floating-point brojeve.&lt;br /&gt;
|-&lt;br /&gt;
| Floating-point format&lt;br /&gt;
| 8-bitni eksponent + 27-bitna mantisa&lt;br /&gt;
| Bez skrivenog bita; excess-128 eksponent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Periferni uređaji ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 podržavao je širok spektar perifernih uređaja, što ga je činilo pogodnim za znanstvene, tehničke i administrativne zadatke. Ulazno/izlazni sustav bio je temeljen na magnetskim vrpcama, kartičnim čitačima i pisačima, uz mogućnost prikaza podataka na CRT zaslonima.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Periferni uređaji IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Uređaj&lt;br /&gt;
! Model&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Čitač kartica&lt;br /&gt;
| IBM 711&lt;br /&gt;
| Učitava programe i podatke s bušenih kartica.&lt;br /&gt;
|-&lt;br /&gt;
| Pisač&lt;br /&gt;
| IBM 716&lt;br /&gt;
| Ispisuje tekstualni izlaz; glavni uređaj za ljudsko čitanje rezultata.&lt;br /&gt;
|-&lt;br /&gt;
| Bušilica kartica&lt;br /&gt;
| IBM 721&lt;br /&gt;
| Zapisuje podatke na bušene kartice.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| IBM 727&lt;br /&gt;
| Glavni masovni spremnik; preko 5 milijuna znakova po vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrolna jedinica vrpci&lt;br /&gt;
| IBM 753&lt;br /&gt;
| Upravljanje magnetskim vrpcama.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetski bubanj&lt;br /&gt;
| IBM 733&lt;br /&gt;
| Dodatna memorija za brzi pristup.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetska jezgra (RAM)&lt;br /&gt;
| IBM 737&lt;br /&gt;
| Primarna memorija sustava (4096 × 36-bitnih riječi).&lt;br /&gt;
|-&lt;br /&gt;
| CRT zaslon&lt;br /&gt;
| IBM 740&lt;br /&gt;
| 21-inčni vektorski prikaz s dugom fosfornom postojanošću; korišten za vizualizaciju podataka.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aritmetička jedinica (AC i MQ) ===&lt;br /&gt;
Aritmetička jedinica sastojala se od dva glavna 36-bitna registra:&lt;br /&gt;
* &#039;&#039;&#039;AC (Accumulator)&#039;&#039;&#039; – glavni registar za aritmetiku.&lt;br /&gt;
* &#039;&#039;&#039;MQ (Multiplier/Quotient)&#039;&#039;&#039; – registar za množenje i dijeljenje.&lt;br /&gt;
&lt;br /&gt;
Ova dva registra zajedno su omogućavala učinkovite operacije nad velikim brojevima i pomičnim zarezom.&lt;br /&gt;
&lt;br /&gt;
=== Indeksni registri (XR1, XR2, XR4) ===&lt;br /&gt;
IBM 704 je koristio tri indeksna registra:&lt;br /&gt;
* &#039;&#039;&#039;XR1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Indeksni registri omogućavali su modifikaciju adresa, implementaciju petlji i rad s velikim poljima podataka. Ovo je bio preteča modernog adresiranja u procesorima.&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori (SI) ===&lt;br /&gt;
Sustav je imao 36 senzorskih indikatora koji su služili kao statusne zastavice:&lt;br /&gt;
* indikatori grešaka (overflow, divide check)&lt;br /&gt;
* indikatori stanja I/O uređaja&lt;br /&gt;
* korisnički definirani indikatori&lt;br /&gt;
&lt;br /&gt;
Programi su mogli testirati i postavljati SI bitove, što je omogućavalo primitivne oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
=== Instrukcijski format ===&lt;br /&gt;
Instrukcije su bile 36-bitne, s poljima:&lt;br /&gt;
* opkod&lt;br /&gt;
* adresa&lt;br /&gt;
* indeksni modifikator&lt;br /&gt;
* bitovi za uvjetno grananje&lt;br /&gt;
&lt;br /&gt;
Ovaj format omogućavao je fleksibilno adresiranje i kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Floating‑point implementacija ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je prvo komercijalno računalo koje je imalo ugrađenu hardversku podršku za aritmetiku s pomičnim zarezom. Ovo je bio ključni tehnološki iskorak koji je omogućio razvoj FORTRAN-a i znanstvenih aplikacija koje su zahtijevale visoku numeričku preciznost.&lt;br /&gt;
&lt;br /&gt;
Floating‑point brojevi u IBM 704 bili su pohranjeni u 36‑bitnim riječima, podijeljenima na dva glavna dijela:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Mantisa&#039;&#039;&#039; – 27 bitova  &lt;br /&gt;
* &#039;&#039;&#039;Eksponent&#039;&#039;&#039; – 8 bitova (excess‑128 format)  &lt;br /&gt;
* &#039;&#039;&#039;Znak&#039;&#039;&#039; – 1 bit&lt;br /&gt;
&lt;br /&gt;
=== Format floating‑point riječi ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Format floating‑point broja (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! Polje&lt;br /&gt;
! Duljina&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Znak mantise&lt;br /&gt;
| 1 bit&lt;br /&gt;
| Određuje pozitivan ili negativan broj.&lt;br /&gt;
|-&lt;br /&gt;
| Mantisa&lt;br /&gt;
| 27 bitova&lt;br /&gt;
| Normalizirana mantisa bez skrivenog bita.&lt;br /&gt;
|-&lt;br /&gt;
| Eksponent&lt;br /&gt;
| 8 bitova&lt;br /&gt;
| Excess‑128 format (stvarni eksponent = pohranjeni − 128).&lt;br /&gt;
|-&lt;br /&gt;
| Rezervirano&lt;br /&gt;
| 0 bitova&lt;br /&gt;
| Format je potpuno iskorišten; nema neiskorištenih bitova.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Excess‑128 eksponent ===&lt;br /&gt;
&lt;br /&gt;
Eksponent je pohranjen u obliku:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
stvarni_eksponent = pohranjeni_eksponent − 128&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj pristup omogućavao je jednostavnije usporedbe i normalizaciju brojeva.&lt;br /&gt;
&lt;br /&gt;
=== Normalizacija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 zahtijevao je da mantisa bude normalizirana tako da najviši bit mantise bude različit od nule.  &lt;br /&gt;
To je omogućavalo maksimalnu preciznost pri izračunima.&lt;br /&gt;
&lt;br /&gt;
=== Floating‑point operacije ===&lt;br /&gt;
&lt;br /&gt;
Računalo je podržavalo sljedeće operacije nad floating‑point brojevima:&lt;br /&gt;
&lt;br /&gt;
* zbrajanje (ADD)  &lt;br /&gt;
* oduzimanje (SUB)  &lt;br /&gt;
* množenje (MPY)  &lt;br /&gt;
* dijeljenje (DIV)&lt;br /&gt;
&lt;br /&gt;
Sve operacije koristile su aritmetičku jedinicu AC/MQ, pri čemu se rezultat normalizirao automatski.&lt;br /&gt;
&lt;br /&gt;
=== Primjer floating‑point operacije u assembleru ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj floating-point broj A&lt;br /&gt;
ADD B        / zbroji ga s B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Važnost floating‑point implementacije ===&lt;br /&gt;
&lt;br /&gt;
Hardverska podrška za pomični zarez bila je ključna za:&lt;br /&gt;
&lt;br /&gt;
* razvoj FORTRAN-a (1957.)&lt;br /&gt;
* balističke izračune&lt;br /&gt;
* aerodinamičke simulacije&lt;br /&gt;
* nuklearne proračune&lt;br /&gt;
* statističke modele&lt;br /&gt;
* rane znanstvene aplikacije NASA-e&lt;br /&gt;
&lt;br /&gt;
IBM 704 je time postavio standard koji će kasnije preuzeti svi moderni procesori.&lt;br /&gt;
&lt;br /&gt;
== Instrukcijski skup IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Glavne grupe instrukcija IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Grupa&lt;br /&gt;
! Primjeri&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Aritmetičke instrukcije&lt;br /&gt;
| ADD, SUB, MPY, DIV&lt;br /&gt;
| Operacije nad AC i MQ registrima; podrška za cijele brojeve i pomični zarez.&lt;br /&gt;
|-&lt;br /&gt;
| Logičke instrukcije&lt;br /&gt;
| CLA, CLM, COM&lt;br /&gt;
| Čišćenje, komplementiranje i manipulacija bitovima.&lt;br /&gt;
|-&lt;br /&gt;
| Uvjetno grananje&lt;br /&gt;
| TRA, TMI, TPL, TZE&lt;br /&gt;
| Skokovi ovisno o sadržaju AC ili MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Rad sa Sense Indicators&lt;br /&gt;
| TSI, SSI, RSI&lt;br /&gt;
| Testiranje, postavljanje i resetiranje statusnih bitova.&lt;br /&gt;
|-&lt;br /&gt;
| Indeksno adresiranje&lt;br /&gt;
| AXT, TXI&lt;br /&gt;
| Modifikacija adresa pomoću XR1, XR2, XR4.&lt;br /&gt;
|-&lt;br /&gt;
| Ulazno/izlazne instrukcije&lt;br /&gt;
| RDS, WRS, RWT&lt;br /&gt;
| Rad s magnetskom vrpcom, kartičnim čitačem i pisačem.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrola toka programa&lt;br /&gt;
| HLT, NOP&lt;br /&gt;
| Zaustavljanje programa, prazna instrukcija.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Opkodovi IBM 704 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Kompletan popis opkoda IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Opkod&lt;br /&gt;
! Mnemonik&lt;br /&gt;
! Grupa&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 000&lt;br /&gt;
| NOP&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Prazna instrukcija; ne radi ništa.&lt;br /&gt;
|-&lt;br /&gt;
| 001&lt;br /&gt;
| HLT&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Zaustavlja izvršavanje programa.&lt;br /&gt;
|-&lt;br /&gt;
| 002&lt;br /&gt;
| TRA&lt;br /&gt;
| Grananje&lt;br /&gt;
| Bezuvjetni skok na adresu.&lt;br /&gt;
|-&lt;br /&gt;
| 003&lt;br /&gt;
| TRN&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC negativan.&lt;br /&gt;
|-&lt;br /&gt;
| 004&lt;br /&gt;
| TMI&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC manji od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 005&lt;br /&gt;
| TPL&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC veći od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 006&lt;br /&gt;
| TZE&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC jednak nuli.&lt;br /&gt;
|-&lt;br /&gt;
| 007&lt;br /&gt;
| TOV&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je overflow zastavica postavljena.&lt;br /&gt;
|-&lt;br /&gt;
| 010&lt;br /&gt;
| ADD&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Zbrajanje sadržaja memorije s AC.&lt;br /&gt;
|-&lt;br /&gt;
| 011&lt;br /&gt;
| SUB&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Oduzimanje sadržaja memorije od AC.&lt;br /&gt;
|-&lt;br /&gt;
| 012&lt;br /&gt;
| MPY&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Množenje; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 013&lt;br /&gt;
| DIV&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Dijeljenje; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 014&lt;br /&gt;
| CLA&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 015&lt;br /&gt;
| CLM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 016&lt;br /&gt;
| COM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Komplementira AC.&lt;br /&gt;
|-&lt;br /&gt;
| 020&lt;br /&gt;
| SHL&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak ulijevo.&lt;br /&gt;
|-&lt;br /&gt;
| 021&lt;br /&gt;
| SHR&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak udesno.&lt;br /&gt;
|-&lt;br /&gt;
| 030&lt;br /&gt;
| AXT&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Učitava vrijednost u XR1, XR2 ili XR4.&lt;br /&gt;
|-&lt;br /&gt;
| 031&lt;br /&gt;
| TXI&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Dodaje vrijednost indeksnom registru.&lt;br /&gt;
|-&lt;br /&gt;
| 040&lt;br /&gt;
| RDS&lt;br /&gt;
| I/O&lt;br /&gt;
| Čitanje s magnetske vrpce.&lt;br /&gt;
|-&lt;br /&gt;
| 041&lt;br /&gt;
| WRS&lt;br /&gt;
| I/O&lt;br /&gt;
| Pisanje na magnetsku vrpcu.&lt;br /&gt;
|-&lt;br /&gt;
| 042&lt;br /&gt;
| RWT&lt;br /&gt;
| I/O&lt;br /&gt;
| Čekanje na I/O operaciju.&lt;br /&gt;
|-&lt;br /&gt;
| 050&lt;br /&gt;
| TSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Testira Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 051&lt;br /&gt;
| SSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Postavlja Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 052&lt;br /&gt;
| RSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Resetira Sense Indicator n.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Registri==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--             --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:88%;width:34em;&amp;quot;&lt;br /&gt;
|+ Registri u računalu IBM 704&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| style=&amp;quot;font-size:88%;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Podatkovni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | S&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | Q&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | P&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;14&amp;quot;| Akumulator&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | AC&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;1&amp;quot;| S&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;11&amp;quot;| Množitelj/Količnik&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | MQ&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;12&amp;quot;| Senzorni indikatori&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | SI&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 1&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR1 (XRA)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 2&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR2 (XRB)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 4 &lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR4 (XRC)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;14&amp;quot; | &#039;&#039;&#039;Brojač naredbi&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Brojač&amp;amp;nbsp;Naredbi&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| IC&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzorni indikatori&#039;&#039;&#039; - su posebni statusni bitovi u IBM 704 koj su se u praksi rabili za provjeru grešaka, grananje ovisno o stanju sustava, upravljanje perifernim jedinicama, te za signalizaciju posebnih događaja. Kroz njih programeri su mogli održavati stanje sustava, signalizirati određene uvjete tokom izvršavanje naredbi, čitanje i postavljanje naredbi i tako su služili za jednostane oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Sense Indicators (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! SI broj&lt;br /&gt;
! Naziv / funkcija&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Overflow flag&lt;br /&gt;
| Postavlja se pri prekoračenju rezultata u akumulatoru (AC) ili količniku (MQ).&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Divide check&lt;br /&gt;
| Signalizira pogrešku pri dijeljenju, uključujući dijeljenje nulom.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| I/O ready&lt;br /&gt;
| Uređaj spreman za prijenos podataka.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| I/O complete&lt;br /&gt;
| Završetak operacije ulaza/izlaza.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Tape mark&lt;br /&gt;
| Očitana oznaka kraja bloka na magnetskoj vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Printer ready&lt;br /&gt;
| Pisač spreman za rad.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Card reader ready&lt;br /&gt;
| Čitač kartica spreman.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Card punch ready&lt;br /&gt;
| Bušilica kartica spremna.&lt;br /&gt;
|-&lt;br /&gt;
| 8–15&lt;br /&gt;
| Peripheral flags&lt;br /&gt;
| Razni signali perifernih uređaja (disk, vrpca, pisač).&lt;br /&gt;
|-&lt;br /&gt;
| 16–35&lt;br /&gt;
| User-defined flags&lt;br /&gt;
| Zastavice koje programer može slobodno koristiti za logiku grananja.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Korištenje u IBM 704 assembleru ====&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao posebne instrukcije za rad sa Sense Indicators:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;TSI n&#039;&#039;&#039;&lt;br /&gt;
: Testira Sense Indicator &#039;&#039;n&#039;&#039;. Ako je postavljen, izvršavanje se nastavlja normalno; ako nije, preskače se sljedeća instrukcija.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3      / provjeri je li I/O complete&lt;br /&gt;
TRA DONE   / ako je postavljen, skoči na DONE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;SSI n&#039;&#039;&#039;&lt;br /&gt;
: Postavlja Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;RSI n&#039;&#039;&#039;&lt;br /&gt;
: Resetira Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 1      / provjeri divide check&lt;br /&gt;
TRA ERROR  / ako je SI1 = 1, idi na ERROR&lt;br /&gt;
&lt;br /&gt;
SSI 20     / postavi korisnički indikator 20&lt;br /&gt;
RSI 3      / resetiraj I/O complete indikator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Usporedba s modernim statusnim registrima ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! IBM 704 Sense Indicators&lt;br /&gt;
! Moderni statusni registri (x86, ARM, RISC-V)&lt;br /&gt;
|-&lt;br /&gt;
| 36 jednobitnih zastavica&lt;br /&gt;
| 8–32 bitni statusni registri&lt;br /&gt;
|-&lt;br /&gt;
| Ručno postavljanje i brisanje&lt;br /&gt;
| Automatsko postavljanje od strane ALU&lt;br /&gt;
|-&lt;br /&gt;
| Koriste se za I/O signalizaciju&lt;br /&gt;
| I/O signalizacija preko interrupt kontrolera&lt;br /&gt;
|-&lt;br /&gt;
| Jednostavne logičke zastavice&lt;br /&gt;
| Zastavice za aritmetiku, usporedbe, prekide&lt;br /&gt;
|-&lt;br /&gt;
| Programer koristi dio SI kao &amp;quot;user flags&amp;quot;&lt;br /&gt;
| Moderni jezici koriste varijable, strukture, objekte&lt;br /&gt;
|-&lt;br /&gt;
| Grananje preko TSI instrukcije&lt;br /&gt;
| Grananje preko CMP/JMP, BEQ/BNE, BLT/BGT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Primjeri IBM 704 assembler koda ==&lt;br /&gt;
&lt;br /&gt;
=== Zbrajanje dvaju brojeva ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj A u AC&lt;br /&gt;
ADD B        / dodaj B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Provjera negativnog broja ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA X        / učitaj X&lt;br /&gt;
TMI NEG      / ako je X &amp;lt; 0, idi na NEG&lt;br /&gt;
TRA DONE     / inače nastavi&lt;br /&gt;
NEG STO Y    / spremi negativnu vrijednost&lt;br /&gt;
DONE HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Množenje i dijeljenje ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A&lt;br /&gt;
MPY B        / AC*B → AC/MQ&lt;br /&gt;
DIV C        / (AC/MQ) / C → MQ (količnik), AC (ostatak)&lt;br /&gt;
STO Q        / spremi količnik&lt;br /&gt;
STO R        / spremi ostatak&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Korištenje Sense Indicators ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3        / provjeri I/O complete&lt;br /&gt;
TRA IO_OK    / ako je SI3 = 1, idi na IO_OK&lt;br /&gt;
SSI 20       / postavi korisnički indikator 20&lt;br /&gt;
IO_OK HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Performanse IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od najbržih znanstvenih računala svoje generacije. Njegova arhitektura s pomičnim zarezom, magnetskom jezgrom i specijaliziranim aritmetičkim registrima omogućavala je znatno bolje performanse u odnosu na prethodne modele IBM 701 i IBM 702. Sustav je bio optimiziran za matematičke operacije, simulacije, statističke izračune i obradu velikih numeričkih skupova podataka.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Performanse računala IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Brzina zbrajanja&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za izvršavanje jedne ADD instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina množenja&lt;br /&gt;
| ~20 μs&lt;br /&gt;
| Vrijeme za MPY instrukciju; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina dijeljenja&lt;br /&gt;
| ~38 μs&lt;br /&gt;
| Vrijeme za DIV instrukciju; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| Memorija&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Magnetska jezgra; pristup ~12 μs.&lt;br /&gt;
|-&lt;br /&gt;
| Ciklus instrukcije&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Prosječno vrijeme za dohvat i izvršavanje jednostavne instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina I/O operacija&lt;br /&gt;
| 7200 kartica/min (čitač)&lt;br /&gt;
| Kartični čitač i bušilica bili su glavni ulazno/izlazni sustavi.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| 12 500 znakovnih blokova/s&lt;br /&gt;
| Ovisno o uređaju; korišteno za masovno spremanje podataka.&lt;br /&gt;
|-&lt;br /&gt;
| Preciznost pomičnog zareza&lt;br /&gt;
| 27-bitni eksponent + 8-bitna mantisa&lt;br /&gt;
| Omogućavalo znanstvene izračune velike preciznosti.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pouzdanost ==&lt;br /&gt;
&lt;br /&gt;
Iako je IBM 704 bio znatno pouzdaniji od svog prethodnika IBM 701, i dalje je bio stroj temeljen na vakuumskim cijevima, što je značilo relativno česte kvarove prema današnjim standardima. Prosječno vrijeme između kvarova iznosilo je oko 8 sati, što je ograničavalo veličinu programa koje je bilo moguće kompajlirati ili izvršavati bez prekida.&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN kompajleri morali su biti iznimno učinkoviti jer bi preduga kompilacija mogla biti prekinuta kvarom sustava. Unatoč tome, IBM 704 je bio dovoljno pouzdan da postane temelj za razvoj FORTRAN-a, LISP-a, ranih neuralnih mreža i brojnih znanstvenih projekata.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Pouzdanost IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| MTBF (mean time between failure)&lt;br /&gt;
| ~8 sati&lt;br /&gt;
| Prosječno vrijeme rada prije kvara.&lt;br /&gt;
|-&lt;br /&gt;
| Usporedba s IBM 701&lt;br /&gt;
| ~30 minuta&lt;br /&gt;
| IBM 704 bio je znatno pouzdaniji od svog prethodnika.&lt;br /&gt;
|-&lt;br /&gt;
| Utjecaj na softver&lt;br /&gt;
| Ograničena veličina programa&lt;br /&gt;
| Kompilacije su morale biti kratke zbog mogućih kvarova.&lt;br /&gt;
|-&lt;br /&gt;
| Tehnologija&lt;br /&gt;
| Vakuumske cijevi&lt;br /&gt;
| Glavni uzrok kvarova i zagrijavanja sustava.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Uloga IBM‑704 u razvoju LISP-a ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je ključnu ulogu u nastanku programskog jezika LISP, jednog od najvažnijih jezika u povijesti računarstva. LISP je 1958. godine razvio John McCarthy na MIT-u, a upravo je IBM 704 bio prvo računalo na kojem je LISP implementiran i izvršavan.&lt;br /&gt;
&lt;br /&gt;
Razvoj LISP-a bio je izravno povezan s arhitekturom IBM 704, posebno s njegovim:&lt;br /&gt;
* 36-bitnim riječima,&lt;br /&gt;
* aritmetičkom jedinicom AC/MQ,&lt;br /&gt;
* indeksnim registrima,&lt;br /&gt;
* mogućnošću manipulacije adresama,&lt;br /&gt;
* podrškom za uvjetno grananje,&lt;br /&gt;
* te fleksibilnim instrukcijskim formatom.&lt;br /&gt;
&lt;br /&gt;
=== Zašto je IBM 704 bio pogodan za LISP ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 imao je nekoliko arhitekturnih značajki koje su se pokazale idealnima za implementaciju LISP-a:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;36-bitne riječi&#039;&#039;&#039; omogućavale su učinkovito predstavljanje parova (cons cells).&lt;br /&gt;
* &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039; olakšavali su rad s listama i rekurzivnim strukturama.&lt;br /&gt;
* &#039;&#039;&#039;Instrukcije grananja&#039;&#039;&#039; (TRA, TMI, TPL, TZE) omogućavale su jednostavnu implementaciju rekurzije.&lt;br /&gt;
* &#039;&#039;&#039;Magnetska jezgra&#039;&#039;&#039; bila je dovoljno brza za dinamičke strukture podataka.&lt;br /&gt;
* &#039;&#039;&#039;Podrška za floating-point&#039;&#039;&#039; olakšala je rad s matematičkim funkcijama.&lt;br /&gt;
&lt;br /&gt;
McCarthy je iskoristio ove mogućnosti kako bi implementirao osnovne LISP konstrukte: CONS, CAR, CDR, rekurziju, lambda‑izraze i funkcije višeg reda.&lt;br /&gt;
&lt;br /&gt;
=== Prva implementacija LISP-a ===&lt;br /&gt;
&lt;br /&gt;
Prva verzija LISP-a bila je napisana u SAP asembleru za IBM 704.  &lt;br /&gt;
Ova implementacija uključivala je:&lt;br /&gt;
&lt;br /&gt;
* interpreter,&lt;br /&gt;
* evaluator,&lt;br /&gt;
* upravljanje memorijom,&lt;br /&gt;
* implementaciju cons‑struktura,&lt;br /&gt;
* osnovne matematičke funkcije,&lt;br /&gt;
* te mehanizme za rekurziju i funkcije višeg reda.&lt;br /&gt;
&lt;br /&gt;
LISP je na IBM 704 radio kao interpretirani jezik, a programi su se izvršavali izravno nad strukturom lista u memoriji.&lt;br /&gt;
&lt;br /&gt;
=== Povijesni značaj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je omogućio LISP-u da postane prvi široko korišteni jezik za:&lt;br /&gt;
&lt;br /&gt;
* umjetnu inteligenciju,&lt;br /&gt;
* simboličku manipulaciju,&lt;br /&gt;
* matematičku logiku,&lt;br /&gt;
* rane ekspertske sustave,&lt;br /&gt;
* istraživanje strojnog učenja.&lt;br /&gt;
&lt;br /&gt;
Bez IBM 704, LISP bi vjerojatno bio znatno drugačiji — ili bi se pojavio mnogo kasnije.&lt;br /&gt;
&lt;br /&gt;
=== Primjer ranog LISP izraza (povijesni kontekst) ===&lt;br /&gt;
&lt;br /&gt;
Iako se LISP nije zapisivao u assembleru, njegovi izrazi su se prevodili u SAP kod za IBM 704.  &lt;br /&gt;
Primjer jednostavne LISP funkcije:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(define (square x)&lt;br /&gt;
  (* x x))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj izraz bi se na IBM 704 interno pretvorio u operacije nad cons‑struktura i pozive aritmetičkih instrukcija MPY i ADD.&lt;br /&gt;
&lt;br /&gt;
=== Utjecaj na daljnji razvoj ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je bio platforma na kojoj su nastale ključne ideje:&lt;br /&gt;
&lt;br /&gt;
* automatsko upravljanje memorijom,&lt;br /&gt;
* rekurzija kao temeljni mehanizam,&lt;br /&gt;
* funkcije višeg reda,&lt;br /&gt;
* lambda‑račun,&lt;br /&gt;
* simbolička obrada podataka.&lt;br /&gt;
&lt;br /&gt;
Ove ideje postale su temelj modernih programskih jezika, od Schemea i Prologa do Pythona i JavaScripta.&lt;br /&gt;
&lt;br /&gt;
==Izvori==&lt;br /&gt;
{{izvori}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorija:IBM]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787632</id>
		<title>IBM 704</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787632"/>
		<updated>2026-07-07T10:01:56Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Instrukcijski format */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;IBM 704&#039;&#039;&#039; ime je za računalo prve generacije koje je razvila tvrtka [[IBM]] i jedan je iz serije računala IBM 700. Ovo računalo se proizvodilo od 1954. do 1964. godine.&amp;lt;ref&amp;gt;https://www.ibm.com/history/700&amp;lt;/ref&amp;gt;. Povijesna važnost ovog računala jest da je na njemu bio razvijen programski jezik [[FORTRAN]] i [[LISP]] te SAP asembler. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Povijest razvoja IBM 700 serije ==&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija bila je prva generacija komercijalnih znanstvenih računala koju je IBM razvio početkom 1950-ih. Serija je započela s modelom IBM 701 (1952.), poznatim kao „Defense Calculator“, koji je bio namijenjen vojnoj i zrakoplovnoj industriji.&lt;br /&gt;
&lt;br /&gt;
* IBM 702 (1953.) bio je poslovno orijentiran sustav, dok je IBM 703 bio eksperimentalni model.&lt;br /&gt;
* IBM 704 je postao temelj za razvoj FORTRAN-a (1957.), prvog visokorazinskog programskog jezika.&lt;br /&gt;
&lt;br /&gt;
Pravi tehnološki iskorak dogodio se s modelom &#039;&#039;&#039;IBM 704&#039;&#039;&#039; (1954.), prvim računalom koje je podržavalo:&lt;br /&gt;
* aritmetiku s pomičnim zarezom,&lt;br /&gt;
* indeksne registre,&lt;br /&gt;
* statusne indikatore,&lt;br /&gt;
* magnetsku jezgru kao primarnu memoriju.&lt;br /&gt;
&lt;br /&gt;
Serija se nastavila s modelima IBM 709 (1958.) i IBM 7090 (1959.), koji su bili tranzistorski nasljednici i koristili se u NASA-i, NORAD-u i velikim znanstvenim centrima.&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija ostavila je dubok trag u povijesti računarstva, postavivši standarde arhitekture koji su se zadržali desetljećima.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arhitektura IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od prvih komercijalnih računala koje je uvodilo napredne koncepte arhitekture, uključujući rad s pomičnim zarezom, indeksne registre i statusne indikatore. Sustav je bio dizajniran za znanstvene i tehničke izračune, što ga je činilo ključnim alatom u laboratorijima, sveučilištima i ranim zrakoplovnim projektima.&lt;br /&gt;
&lt;br /&gt;
=== Memorija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 koristio je magnetsku jezgru kao primarnu memoriju, što je u to vrijeme predstavljalo veliki tehnološki napredak u odnosu na Williamsove cijevi korištene u IBM-u 701. Magnetska jezgra bila je brža, pouzdanija i omogućavala stabilno zadržavanje podataka bez potrebe za stalnim osvježavanjem.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Memorijske karakteristike IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Vrsta memorije&lt;br /&gt;
| Magnetska jezgra&lt;br /&gt;
| Stabilna, brza i pouzdana tehnologija za 1950-e.&lt;br /&gt;
|-&lt;br /&gt;
| Kapacitet&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Ukupno 147 456 bitova (18 432 bajta).&lt;br /&gt;
|-&lt;br /&gt;
| Vrijeme pristupa&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za čitanje ili pisanje jedne riječi.&lt;br /&gt;
|-&lt;br /&gt;
| Format riječi&lt;br /&gt;
| 36-bitna riječ&lt;br /&gt;
| Koristi se za instrukcije, podatke i floating-point brojeve.&lt;br /&gt;
|-&lt;br /&gt;
| Floating-point format&lt;br /&gt;
| 8-bitni eksponent + 27-bitna mantisa&lt;br /&gt;
| Bez skrivenog bita; excess-128 eksponent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Periferni uređaji ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 podržavao je širok spektar perifernih uređaja, što ga je činilo pogodnim za znanstvene, tehničke i administrativne zadatke. Ulazno/izlazni sustav bio je temeljen na magnetskim vrpcama, kartičnim čitačima i pisačima, uz mogućnost prikaza podataka na CRT zaslonima.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Periferni uređaji IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Uređaj&lt;br /&gt;
! Model&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Čitač kartica&lt;br /&gt;
| IBM 711&lt;br /&gt;
| Učitava programe i podatke s bušenih kartica.&lt;br /&gt;
|-&lt;br /&gt;
| Pisač&lt;br /&gt;
| IBM 716&lt;br /&gt;
| Ispisuje tekstualni izlaz; glavni uređaj za ljudsko čitanje rezultata.&lt;br /&gt;
|-&lt;br /&gt;
| Bušilica kartica&lt;br /&gt;
| IBM 721&lt;br /&gt;
| Zapisuje podatke na bušene kartice.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| IBM 727&lt;br /&gt;
| Glavni masovni spremnik; preko 5 milijuna znakova po vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrolna jedinica vrpci&lt;br /&gt;
| IBM 753&lt;br /&gt;
| Upravljanje magnetskim vrpcama.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetski bubanj&lt;br /&gt;
| IBM 733&lt;br /&gt;
| Dodatna memorija za brzi pristup.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetska jezgra (RAM)&lt;br /&gt;
| IBM 737&lt;br /&gt;
| Primarna memorija sustava (4096 × 36-bitnih riječi).&lt;br /&gt;
|-&lt;br /&gt;
| CRT zaslon&lt;br /&gt;
| IBM 740&lt;br /&gt;
| 21-inčni vektorski prikaz s dugom fosfornom postojanošću; korišten za vizualizaciju podataka.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aritmetička jedinica (AC i MQ) ===&lt;br /&gt;
Aritmetička jedinica sastojala se od dva glavna 36-bitna registra:&lt;br /&gt;
* &#039;&#039;&#039;AC (Accumulator)&#039;&#039;&#039; – glavni registar za aritmetiku.&lt;br /&gt;
* &#039;&#039;&#039;MQ (Multiplier/Quotient)&#039;&#039;&#039; – registar za množenje i dijeljenje.&lt;br /&gt;
&lt;br /&gt;
Ova dva registra zajedno su omogućavala učinkovite operacije nad velikim brojevima i pomičnim zarezom.&lt;br /&gt;
&lt;br /&gt;
=== Indeksni registri (XR1, XR2, XR4) ===&lt;br /&gt;
IBM 704 je koristio tri indeksna registra:&lt;br /&gt;
* &#039;&#039;&#039;XR1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Indeksni registri omogućavali su modifikaciju adresa, implementaciju petlji i rad s velikim poljima podataka. Ovo je bio preteča modernog adresiranja u procesorima.&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori (SI) ===&lt;br /&gt;
Sustav je imao 36 senzorskih indikatora koji su služili kao statusne zastavice:&lt;br /&gt;
* indikatori grešaka (overflow, divide check)&lt;br /&gt;
* indikatori stanja I/O uređaja&lt;br /&gt;
* korisnički definirani indikatori&lt;br /&gt;
&lt;br /&gt;
Programi su mogli testirati i postavljati SI bitove, što je omogućavalo primitivne oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
=== Instrukcijski format ===&lt;br /&gt;
Instrukcije su bile 36-bitne, s poljima:&lt;br /&gt;
* opkod&lt;br /&gt;
* adresa&lt;br /&gt;
* indeksni modifikator&lt;br /&gt;
* bitovi za uvjetno grananje&lt;br /&gt;
&lt;br /&gt;
Ovaj format omogućavao je fleksibilno adresiranje i kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Floating‑point implementacija ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je prvo komercijalno računalo koje je imalo ugrađenu hardversku podršku za aritmetiku s pomičnim zarezom. Ovo je bio ključni tehnološki iskorak koji je omogućio razvoj FORTRAN-a i znanstvenih aplikacija koje su zahtijevale visoku numeričku preciznost.&lt;br /&gt;
&lt;br /&gt;
Floating‑point brojevi u IBM 704 bili su pohranjeni u 36‑bitnim riječima, podijeljenima na dva glavna dijela:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Mantisa&#039;&#039;&#039; – 27 bitova  &lt;br /&gt;
* &#039;&#039;&#039;Eksponent&#039;&#039;&#039; – 8 bitova (excess‑128 format)  &lt;br /&gt;
* &#039;&#039;&#039;Znak&#039;&#039;&#039; – 1 bit&lt;br /&gt;
&lt;br /&gt;
=== Format floating‑point riječi ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Format floating‑point broja (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! Polje&lt;br /&gt;
! Duljina&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Znak mantise&lt;br /&gt;
| 1 bit&lt;br /&gt;
| Određuje pozitivan ili negativan broj.&lt;br /&gt;
|-&lt;br /&gt;
| Mantisa&lt;br /&gt;
| 27 bitova&lt;br /&gt;
| Normalizirana mantisa bez skrivenog bita.&lt;br /&gt;
|-&lt;br /&gt;
| Eksponent&lt;br /&gt;
| 8 bitova&lt;br /&gt;
| Excess‑128 format (stvarni eksponent = pohranjeni − 128).&lt;br /&gt;
|-&lt;br /&gt;
| Rezervirano&lt;br /&gt;
| 0 bitova&lt;br /&gt;
| Format je potpuno iskorišten; nema neiskorištenih bitova.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Excess‑128 eksponent ===&lt;br /&gt;
&lt;br /&gt;
Eksponent je pohranjen u obliku:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
stvarni_eksponent = pohranjeni_eksponent − 128&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ovaj pristup omogućavao je jednostavnije usporedbe i normalizaciju brojeva.&lt;br /&gt;
&lt;br /&gt;
=== Normalizacija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 zahtijevao je da mantisa bude normalizirana tako da najviši bit mantise bude različit od nule.  &lt;br /&gt;
To je omogućavalo maksimalnu preciznost pri izračunima.&lt;br /&gt;
&lt;br /&gt;
=== Floating‑point operacije ===&lt;br /&gt;
&lt;br /&gt;
Računalo je podržavalo sljedeće operacije nad floating‑point brojevima:&lt;br /&gt;
&lt;br /&gt;
* zbrajanje (ADD)  &lt;br /&gt;
* oduzimanje (SUB)  &lt;br /&gt;
* množenje (MPY)  &lt;br /&gt;
* dijeljenje (DIV)&lt;br /&gt;
&lt;br /&gt;
Sve operacije koristile su aritmetičku jedinicu AC/MQ, pri čemu se rezultat normalizirao automatski.&lt;br /&gt;
&lt;br /&gt;
=== Primjer floating‑point operacije u assembleru ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj floating-point broj A&lt;br /&gt;
ADD B        / zbroji ga s B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Važnost floating‑point implementacije ===&lt;br /&gt;
&lt;br /&gt;
Hardverska podrška za pomični zarez bila je ključna za:&lt;br /&gt;
&lt;br /&gt;
* razvoj FORTRAN-a (1957.)&lt;br /&gt;
* balističke izračune&lt;br /&gt;
* aerodinamičke simulacije&lt;br /&gt;
* nuklearne proračune&lt;br /&gt;
* statističke modele&lt;br /&gt;
* rane znanstvene aplikacije NASA-e&lt;br /&gt;
&lt;br /&gt;
IBM 704 je time postavio standard koji će kasnije preuzeti svi moderni procesori.&lt;br /&gt;
&lt;br /&gt;
== Instrukcijski skup IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Glavne grupe instrukcija IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Grupa&lt;br /&gt;
! Primjeri&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Aritmetičke instrukcije&lt;br /&gt;
| ADD, SUB, MPY, DIV&lt;br /&gt;
| Operacije nad AC i MQ registrima; podrška za cijele brojeve i pomični zarez.&lt;br /&gt;
|-&lt;br /&gt;
| Logičke instrukcije&lt;br /&gt;
| CLA, CLM, COM&lt;br /&gt;
| Čišćenje, komplementiranje i manipulacija bitovima.&lt;br /&gt;
|-&lt;br /&gt;
| Uvjetno grananje&lt;br /&gt;
| TRA, TMI, TPL, TZE&lt;br /&gt;
| Skokovi ovisno o sadržaju AC ili MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Rad sa Sense Indicators&lt;br /&gt;
| TSI, SSI, RSI&lt;br /&gt;
| Testiranje, postavljanje i resetiranje statusnih bitova.&lt;br /&gt;
|-&lt;br /&gt;
| Indeksno adresiranje&lt;br /&gt;
| AXT, TXI&lt;br /&gt;
| Modifikacija adresa pomoću XR1, XR2, XR4.&lt;br /&gt;
|-&lt;br /&gt;
| Ulazno/izlazne instrukcije&lt;br /&gt;
| RDS, WRS, RWT&lt;br /&gt;
| Rad s magnetskom vrpcom, kartičnim čitačem i pisačem.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrola toka programa&lt;br /&gt;
| HLT, NOP&lt;br /&gt;
| Zaustavljanje programa, prazna instrukcija.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Opkodovi IBM 704 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Kompletan popis opkoda IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Opkod&lt;br /&gt;
! Mnemonik&lt;br /&gt;
! Grupa&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 000&lt;br /&gt;
| NOP&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Prazna instrukcija; ne radi ništa.&lt;br /&gt;
|-&lt;br /&gt;
| 001&lt;br /&gt;
| HLT&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Zaustavlja izvršavanje programa.&lt;br /&gt;
|-&lt;br /&gt;
| 002&lt;br /&gt;
| TRA&lt;br /&gt;
| Grananje&lt;br /&gt;
| Bezuvjetni skok na adresu.&lt;br /&gt;
|-&lt;br /&gt;
| 003&lt;br /&gt;
| TRN&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC negativan.&lt;br /&gt;
|-&lt;br /&gt;
| 004&lt;br /&gt;
| TMI&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC manji od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 005&lt;br /&gt;
| TPL&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC veći od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 006&lt;br /&gt;
| TZE&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC jednak nuli.&lt;br /&gt;
|-&lt;br /&gt;
| 007&lt;br /&gt;
| TOV&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je overflow zastavica postavljena.&lt;br /&gt;
|-&lt;br /&gt;
| 010&lt;br /&gt;
| ADD&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Zbrajanje sadržaja memorije s AC.&lt;br /&gt;
|-&lt;br /&gt;
| 011&lt;br /&gt;
| SUB&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Oduzimanje sadržaja memorije od AC.&lt;br /&gt;
|-&lt;br /&gt;
| 012&lt;br /&gt;
| MPY&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Množenje; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 013&lt;br /&gt;
| DIV&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Dijeljenje; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 014&lt;br /&gt;
| CLA&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 015&lt;br /&gt;
| CLM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 016&lt;br /&gt;
| COM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Komplementira AC.&lt;br /&gt;
|-&lt;br /&gt;
| 020&lt;br /&gt;
| SHL&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak ulijevo.&lt;br /&gt;
|-&lt;br /&gt;
| 021&lt;br /&gt;
| SHR&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak udesno.&lt;br /&gt;
|-&lt;br /&gt;
| 030&lt;br /&gt;
| AXT&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Učitava vrijednost u XR1, XR2 ili XR4.&lt;br /&gt;
|-&lt;br /&gt;
| 031&lt;br /&gt;
| TXI&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Dodaje vrijednost indeksnom registru.&lt;br /&gt;
|-&lt;br /&gt;
| 040&lt;br /&gt;
| RDS&lt;br /&gt;
| I/O&lt;br /&gt;
| Čitanje s magnetske vrpce.&lt;br /&gt;
|-&lt;br /&gt;
| 041&lt;br /&gt;
| WRS&lt;br /&gt;
| I/O&lt;br /&gt;
| Pisanje na magnetsku vrpcu.&lt;br /&gt;
|-&lt;br /&gt;
| 042&lt;br /&gt;
| RWT&lt;br /&gt;
| I/O&lt;br /&gt;
| Čekanje na I/O operaciju.&lt;br /&gt;
|-&lt;br /&gt;
| 050&lt;br /&gt;
| TSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Testira Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 051&lt;br /&gt;
| SSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Postavlja Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 052&lt;br /&gt;
| RSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Resetira Sense Indicator n.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Registri==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--             --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:88%;width:34em;&amp;quot;&lt;br /&gt;
|+ Registri u računalu IBM 704&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| style=&amp;quot;font-size:88%;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Podatkovni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | S&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | Q&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | P&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;14&amp;quot;| Akumulator&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | AC&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;1&amp;quot;| S&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;11&amp;quot;| Množitelj/Količnik&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | MQ&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;12&amp;quot;| Senzorni indikatori&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | SI&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 1&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR1 (XRA)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 2&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR2 (XRB)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 4 &lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR4 (XRC)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;14&amp;quot; | &#039;&#039;&#039;Brojač naredbi&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Brojač&amp;amp;nbsp;Naredbi&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| IC&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzorni indikatori&#039;&#039;&#039; - su posebni statusni bitovi u IBM 704 koj su se u praksi rabili za provjeru grešaka, grananje ovisno o stanju sustava, upravljanje perifernim jedinicama, te za signalizaciju posebnih događaja. Kroz njih programeri su mogli održavati stanje sustava, signalizirati određene uvjete tokom izvršavanje naredbi, čitanje i postavljanje naredbi i tako su služili za jednostane oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Sense Indicators (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! SI broj&lt;br /&gt;
! Naziv / funkcija&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Overflow flag&lt;br /&gt;
| Postavlja se pri prekoračenju rezultata u akumulatoru (AC) ili količniku (MQ).&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Divide check&lt;br /&gt;
| Signalizira pogrešku pri dijeljenju, uključujući dijeljenje nulom.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| I/O ready&lt;br /&gt;
| Uređaj spreman za prijenos podataka.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| I/O complete&lt;br /&gt;
| Završetak operacije ulaza/izlaza.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Tape mark&lt;br /&gt;
| Očitana oznaka kraja bloka na magnetskoj vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Printer ready&lt;br /&gt;
| Pisač spreman za rad.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Card reader ready&lt;br /&gt;
| Čitač kartica spreman.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Card punch ready&lt;br /&gt;
| Bušilica kartica spremna.&lt;br /&gt;
|-&lt;br /&gt;
| 8–15&lt;br /&gt;
| Peripheral flags&lt;br /&gt;
| Razni signali perifernih uređaja (disk, vrpca, pisač).&lt;br /&gt;
|-&lt;br /&gt;
| 16–35&lt;br /&gt;
| User-defined flags&lt;br /&gt;
| Zastavice koje programer može slobodno koristiti za logiku grananja.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Korištenje u IBM 704 assembleru ====&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao posebne instrukcije za rad sa Sense Indicators:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;TSI n&#039;&#039;&#039;&lt;br /&gt;
: Testira Sense Indicator &#039;&#039;n&#039;&#039;. Ako je postavljen, izvršavanje se nastavlja normalno; ako nije, preskače se sljedeća instrukcija.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3      / provjeri je li I/O complete&lt;br /&gt;
TRA DONE   / ako je postavljen, skoči na DONE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;SSI n&#039;&#039;&#039;&lt;br /&gt;
: Postavlja Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;RSI n&#039;&#039;&#039;&lt;br /&gt;
: Resetira Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 1      / provjeri divide check&lt;br /&gt;
TRA ERROR  / ako je SI1 = 1, idi na ERROR&lt;br /&gt;
&lt;br /&gt;
SSI 20     / postavi korisnički indikator 20&lt;br /&gt;
RSI 3      / resetiraj I/O complete indikator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Usporedba s modernim statusnim registrima ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! IBM 704 Sense Indicators&lt;br /&gt;
! Moderni statusni registri (x86, ARM, RISC-V)&lt;br /&gt;
|-&lt;br /&gt;
| 36 jednobitnih zastavica&lt;br /&gt;
| 8–32 bitni statusni registri&lt;br /&gt;
|-&lt;br /&gt;
| Ručno postavljanje i brisanje&lt;br /&gt;
| Automatsko postavljanje od strane ALU&lt;br /&gt;
|-&lt;br /&gt;
| Koriste se za I/O signalizaciju&lt;br /&gt;
| I/O signalizacija preko interrupt kontrolera&lt;br /&gt;
|-&lt;br /&gt;
| Jednostavne logičke zastavice&lt;br /&gt;
| Zastavice za aritmetiku, usporedbe, prekide&lt;br /&gt;
|-&lt;br /&gt;
| Programer koristi dio SI kao &amp;quot;user flags&amp;quot;&lt;br /&gt;
| Moderni jezici koriste varijable, strukture, objekte&lt;br /&gt;
|-&lt;br /&gt;
| Grananje preko TSI instrukcije&lt;br /&gt;
| Grananje preko CMP/JMP, BEQ/BNE, BLT/BGT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Primjeri IBM 704 assembler koda ==&lt;br /&gt;
&lt;br /&gt;
=== Zbrajanje dvaju brojeva ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj A u AC&lt;br /&gt;
ADD B        / dodaj B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Provjera negativnog broja ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA X        / učitaj X&lt;br /&gt;
TMI NEG      / ako je X &amp;lt; 0, idi na NEG&lt;br /&gt;
TRA DONE     / inače nastavi&lt;br /&gt;
NEG STO Y    / spremi negativnu vrijednost&lt;br /&gt;
DONE HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Množenje i dijeljenje ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A&lt;br /&gt;
MPY B        / AC*B → AC/MQ&lt;br /&gt;
DIV C        / (AC/MQ) / C → MQ (količnik), AC (ostatak)&lt;br /&gt;
STO Q        / spremi količnik&lt;br /&gt;
STO R        / spremi ostatak&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Korištenje Sense Indicators ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3        / provjeri I/O complete&lt;br /&gt;
TRA IO_OK    / ako je SI3 = 1, idi na IO_OK&lt;br /&gt;
SSI 20       / postavi korisnički indikator 20&lt;br /&gt;
IO_OK HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Performanse IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od najbržih znanstvenih računala svoje generacije. Njegova arhitektura s pomičnim zarezom, magnetskom jezgrom i specijaliziranim aritmetičkim registrima omogućavala je znatno bolje performanse u odnosu na prethodne modele IBM 701 i IBM 702. Sustav je bio optimiziran za matematičke operacije, simulacije, statističke izračune i obradu velikih numeričkih skupova podataka.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Performanse računala IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Brzina zbrajanja&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za izvršavanje jedne ADD instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina množenja&lt;br /&gt;
| ~20 μs&lt;br /&gt;
| Vrijeme za MPY instrukciju; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina dijeljenja&lt;br /&gt;
| ~38 μs&lt;br /&gt;
| Vrijeme za DIV instrukciju; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| Memorija&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Magnetska jezgra; pristup ~12 μs.&lt;br /&gt;
|-&lt;br /&gt;
| Ciklus instrukcije&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Prosječno vrijeme za dohvat i izvršavanje jednostavne instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina I/O operacija&lt;br /&gt;
| 7200 kartica/min (čitač)&lt;br /&gt;
| Kartični čitač i bušilica bili su glavni ulazno/izlazni sustavi.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| 12 500 znakovnih blokova/s&lt;br /&gt;
| Ovisno o uređaju; korišteno za masovno spremanje podataka.&lt;br /&gt;
|-&lt;br /&gt;
| Preciznost pomičnog zareza&lt;br /&gt;
| 27-bitni eksponent + 8-bitna mantisa&lt;br /&gt;
| Omogućavalo znanstvene izračune velike preciznosti.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pouzdanost ==&lt;br /&gt;
&lt;br /&gt;
Iako je IBM 704 bio znatno pouzdaniji od svog prethodnika IBM 701, i dalje je bio stroj temeljen na vakuumskim cijevima, što je značilo relativno česte kvarove prema današnjim standardima. Prosječno vrijeme između kvarova iznosilo je oko 8 sati, što je ograničavalo veličinu programa koje je bilo moguće kompajlirati ili izvršavati bez prekida.&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN kompajleri morali su biti iznimno učinkoviti jer bi preduga kompilacija mogla biti prekinuta kvarom sustava. Unatoč tome, IBM 704 je bio dovoljno pouzdan da postane temelj za razvoj FORTRAN-a, LISP-a, ranih neuralnih mreža i brojnih znanstvenih projekata.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Pouzdanost IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| MTBF (mean time between failure)&lt;br /&gt;
| ~8 sati&lt;br /&gt;
| Prosječno vrijeme rada prije kvara.&lt;br /&gt;
|-&lt;br /&gt;
| Usporedba s IBM 701&lt;br /&gt;
| ~30 minuta&lt;br /&gt;
| IBM 704 bio je znatno pouzdaniji od svog prethodnika.&lt;br /&gt;
|-&lt;br /&gt;
| Utjecaj na softver&lt;br /&gt;
| Ograničena veličina programa&lt;br /&gt;
| Kompilacije su morale biti kratke zbog mogućih kvarova.&lt;br /&gt;
|-&lt;br /&gt;
| Tehnologija&lt;br /&gt;
| Vakuumske cijevi&lt;br /&gt;
| Glavni uzrok kvarova i zagrijavanja sustava.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Izvori==&lt;br /&gt;
{{izvori}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorija:IBM]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787631</id>
		<title>IBM 704</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787631"/>
		<updated>2026-07-07T10:00:29Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Performanse IBM 704 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;IBM 704&#039;&#039;&#039; ime je za računalo prve generacije koje je razvila tvrtka [[IBM]] i jedan je iz serije računala IBM 700. Ovo računalo se proizvodilo od 1954. do 1964. godine.&amp;lt;ref&amp;gt;https://www.ibm.com/history/700&amp;lt;/ref&amp;gt;. Povijesna važnost ovog računala jest da je na njemu bio razvijen programski jezik [[FORTRAN]] i [[LISP]] te SAP asembler. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Povijest razvoja IBM 700 serije ==&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija bila je prva generacija komercijalnih znanstvenih računala koju je IBM razvio početkom 1950-ih. Serija je započela s modelom IBM 701 (1952.), poznatim kao „Defense Calculator“, koji je bio namijenjen vojnoj i zrakoplovnoj industriji.&lt;br /&gt;
&lt;br /&gt;
* IBM 702 (1953.) bio je poslovno orijentiran sustav, dok je IBM 703 bio eksperimentalni model.&lt;br /&gt;
* IBM 704 je postao temelj za razvoj FORTRAN-a (1957.), prvog visokorazinskog programskog jezika.&lt;br /&gt;
&lt;br /&gt;
Pravi tehnološki iskorak dogodio se s modelom &#039;&#039;&#039;IBM 704&#039;&#039;&#039; (1954.), prvim računalom koje je podržavalo:&lt;br /&gt;
* aritmetiku s pomičnim zarezom,&lt;br /&gt;
* indeksne registre,&lt;br /&gt;
* statusne indikatore,&lt;br /&gt;
* magnetsku jezgru kao primarnu memoriju.&lt;br /&gt;
&lt;br /&gt;
Serija se nastavila s modelima IBM 709 (1958.) i IBM 7090 (1959.), koji su bili tranzistorski nasljednici i koristili se u NASA-i, NORAD-u i velikim znanstvenim centrima.&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija ostavila je dubok trag u povijesti računarstva, postavivši standarde arhitekture koji su se zadržali desetljećima.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arhitektura IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od prvih komercijalnih računala koje je uvodilo napredne koncepte arhitekture, uključujući rad s pomičnim zarezom, indeksne registre i statusne indikatore. Sustav je bio dizajniran za znanstvene i tehničke izračune, što ga je činilo ključnim alatom u laboratorijima, sveučilištima i ranim zrakoplovnim projektima.&lt;br /&gt;
&lt;br /&gt;
=== Memorija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 koristio je magnetsku jezgru kao primarnu memoriju, što je u to vrijeme predstavljalo veliki tehnološki napredak u odnosu na Williamsove cijevi korištene u IBM-u 701. Magnetska jezgra bila je brža, pouzdanija i omogućavala stabilno zadržavanje podataka bez potrebe za stalnim osvježavanjem.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Memorijske karakteristike IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Vrsta memorije&lt;br /&gt;
| Magnetska jezgra&lt;br /&gt;
| Stabilna, brza i pouzdana tehnologija za 1950-e.&lt;br /&gt;
|-&lt;br /&gt;
| Kapacitet&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Ukupno 147 456 bitova (18 432 bajta).&lt;br /&gt;
|-&lt;br /&gt;
| Vrijeme pristupa&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za čitanje ili pisanje jedne riječi.&lt;br /&gt;
|-&lt;br /&gt;
| Format riječi&lt;br /&gt;
| 36-bitna riječ&lt;br /&gt;
| Koristi se za instrukcije, podatke i floating-point brojeve.&lt;br /&gt;
|-&lt;br /&gt;
| Floating-point format&lt;br /&gt;
| 8-bitni eksponent + 27-bitna mantisa&lt;br /&gt;
| Bez skrivenog bita; excess-128 eksponent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Periferni uređaji ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 podržavao je širok spektar perifernih uređaja, što ga je činilo pogodnim za znanstvene, tehničke i administrativne zadatke. Ulazno/izlazni sustav bio je temeljen na magnetskim vrpcama, kartičnim čitačima i pisačima, uz mogućnost prikaza podataka na CRT zaslonima.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Periferni uređaji IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Uređaj&lt;br /&gt;
! Model&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Čitač kartica&lt;br /&gt;
| IBM 711&lt;br /&gt;
| Učitava programe i podatke s bušenih kartica.&lt;br /&gt;
|-&lt;br /&gt;
| Pisač&lt;br /&gt;
| IBM 716&lt;br /&gt;
| Ispisuje tekstualni izlaz; glavni uređaj za ljudsko čitanje rezultata.&lt;br /&gt;
|-&lt;br /&gt;
| Bušilica kartica&lt;br /&gt;
| IBM 721&lt;br /&gt;
| Zapisuje podatke na bušene kartice.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| IBM 727&lt;br /&gt;
| Glavni masovni spremnik; preko 5 milijuna znakova po vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrolna jedinica vrpci&lt;br /&gt;
| IBM 753&lt;br /&gt;
| Upravljanje magnetskim vrpcama.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetski bubanj&lt;br /&gt;
| IBM 733&lt;br /&gt;
| Dodatna memorija za brzi pristup.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetska jezgra (RAM)&lt;br /&gt;
| IBM 737&lt;br /&gt;
| Primarna memorija sustava (4096 × 36-bitnih riječi).&lt;br /&gt;
|-&lt;br /&gt;
| CRT zaslon&lt;br /&gt;
| IBM 740&lt;br /&gt;
| 21-inčni vektorski prikaz s dugom fosfornom postojanošću; korišten za vizualizaciju podataka.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aritmetička jedinica (AC i MQ) ===&lt;br /&gt;
Aritmetička jedinica sastojala se od dva glavna 36-bitna registra:&lt;br /&gt;
* &#039;&#039;&#039;AC (Accumulator)&#039;&#039;&#039; – glavni registar za aritmetiku.&lt;br /&gt;
* &#039;&#039;&#039;MQ (Multiplier/Quotient)&#039;&#039;&#039; – registar za množenje i dijeljenje.&lt;br /&gt;
&lt;br /&gt;
Ova dva registra zajedno su omogućavala učinkovite operacije nad velikim brojevima i pomičnim zarezom.&lt;br /&gt;
&lt;br /&gt;
=== Indeksni registri (XR1, XR2, XR4) ===&lt;br /&gt;
IBM 704 je koristio tri indeksna registra:&lt;br /&gt;
* &#039;&#039;&#039;XR1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Indeksni registri omogućavali su modifikaciju adresa, implementaciju petlji i rad s velikim poljima podataka. Ovo je bio preteča modernog adresiranja u procesorima.&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori (SI) ===&lt;br /&gt;
Sustav je imao 36 senzorskih indikatora koji su služili kao statusne zastavice:&lt;br /&gt;
* indikatori grešaka (overflow, divide check)&lt;br /&gt;
* indikatori stanja I/O uređaja&lt;br /&gt;
* korisnički definirani indikatori&lt;br /&gt;
&lt;br /&gt;
Programi su mogli testirati i postavljati SI bitove, što je omogućavalo primitivne oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
=== Instrukcijski format ===&lt;br /&gt;
Instrukcije su bile 36-bitne, s poljima:&lt;br /&gt;
* opkod&lt;br /&gt;
* adresa&lt;br /&gt;
* indeksni modifikator&lt;br /&gt;
* bitovi za uvjetno grananje&lt;br /&gt;
&lt;br /&gt;
Ovaj format omogućavao je fleksibilno adresiranje i kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
== Instrukcijski skup IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Glavne grupe instrukcija IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Grupa&lt;br /&gt;
! Primjeri&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Aritmetičke instrukcije&lt;br /&gt;
| ADD, SUB, MPY, DIV&lt;br /&gt;
| Operacije nad AC i MQ registrima; podrška za cijele brojeve i pomični zarez.&lt;br /&gt;
|-&lt;br /&gt;
| Logičke instrukcije&lt;br /&gt;
| CLA, CLM, COM&lt;br /&gt;
| Čišćenje, komplementiranje i manipulacija bitovima.&lt;br /&gt;
|-&lt;br /&gt;
| Uvjetno grananje&lt;br /&gt;
| TRA, TMI, TPL, TZE&lt;br /&gt;
| Skokovi ovisno o sadržaju AC ili MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Rad sa Sense Indicators&lt;br /&gt;
| TSI, SSI, RSI&lt;br /&gt;
| Testiranje, postavljanje i resetiranje statusnih bitova.&lt;br /&gt;
|-&lt;br /&gt;
| Indeksno adresiranje&lt;br /&gt;
| AXT, TXI&lt;br /&gt;
| Modifikacija adresa pomoću XR1, XR2, XR4.&lt;br /&gt;
|-&lt;br /&gt;
| Ulazno/izlazne instrukcije&lt;br /&gt;
| RDS, WRS, RWT&lt;br /&gt;
| Rad s magnetskom vrpcom, kartičnim čitačem i pisačem.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrola toka programa&lt;br /&gt;
| HLT, NOP&lt;br /&gt;
| Zaustavljanje programa, prazna instrukcija.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Opkodovi IBM 704 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Kompletan popis opkoda IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Opkod&lt;br /&gt;
! Mnemonik&lt;br /&gt;
! Grupa&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 000&lt;br /&gt;
| NOP&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Prazna instrukcija; ne radi ništa.&lt;br /&gt;
|-&lt;br /&gt;
| 001&lt;br /&gt;
| HLT&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Zaustavlja izvršavanje programa.&lt;br /&gt;
|-&lt;br /&gt;
| 002&lt;br /&gt;
| TRA&lt;br /&gt;
| Grananje&lt;br /&gt;
| Bezuvjetni skok na adresu.&lt;br /&gt;
|-&lt;br /&gt;
| 003&lt;br /&gt;
| TRN&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC negativan.&lt;br /&gt;
|-&lt;br /&gt;
| 004&lt;br /&gt;
| TMI&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC manji od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 005&lt;br /&gt;
| TPL&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC veći od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 006&lt;br /&gt;
| TZE&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC jednak nuli.&lt;br /&gt;
|-&lt;br /&gt;
| 007&lt;br /&gt;
| TOV&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je overflow zastavica postavljena.&lt;br /&gt;
|-&lt;br /&gt;
| 010&lt;br /&gt;
| ADD&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Zbrajanje sadržaja memorije s AC.&lt;br /&gt;
|-&lt;br /&gt;
| 011&lt;br /&gt;
| SUB&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Oduzimanje sadržaja memorije od AC.&lt;br /&gt;
|-&lt;br /&gt;
| 012&lt;br /&gt;
| MPY&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Množenje; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 013&lt;br /&gt;
| DIV&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Dijeljenje; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 014&lt;br /&gt;
| CLA&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 015&lt;br /&gt;
| CLM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 016&lt;br /&gt;
| COM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Komplementira AC.&lt;br /&gt;
|-&lt;br /&gt;
| 020&lt;br /&gt;
| SHL&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak ulijevo.&lt;br /&gt;
|-&lt;br /&gt;
| 021&lt;br /&gt;
| SHR&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak udesno.&lt;br /&gt;
|-&lt;br /&gt;
| 030&lt;br /&gt;
| AXT&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Učitava vrijednost u XR1, XR2 ili XR4.&lt;br /&gt;
|-&lt;br /&gt;
| 031&lt;br /&gt;
| TXI&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Dodaje vrijednost indeksnom registru.&lt;br /&gt;
|-&lt;br /&gt;
| 040&lt;br /&gt;
| RDS&lt;br /&gt;
| I/O&lt;br /&gt;
| Čitanje s magnetske vrpce.&lt;br /&gt;
|-&lt;br /&gt;
| 041&lt;br /&gt;
| WRS&lt;br /&gt;
| I/O&lt;br /&gt;
| Pisanje na magnetsku vrpcu.&lt;br /&gt;
|-&lt;br /&gt;
| 042&lt;br /&gt;
| RWT&lt;br /&gt;
| I/O&lt;br /&gt;
| Čekanje na I/O operaciju.&lt;br /&gt;
|-&lt;br /&gt;
| 050&lt;br /&gt;
| TSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Testira Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 051&lt;br /&gt;
| SSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Postavlja Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 052&lt;br /&gt;
| RSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Resetira Sense Indicator n.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Registri==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--             --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:88%;width:34em;&amp;quot;&lt;br /&gt;
|+ Registri u računalu IBM 704&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| style=&amp;quot;font-size:88%;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Podatkovni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | S&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | Q&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | P&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;14&amp;quot;| Akumulator&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | AC&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;1&amp;quot;| S&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;11&amp;quot;| Množitelj/Količnik&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | MQ&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;12&amp;quot;| Senzorni indikatori&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | SI&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 1&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR1 (XRA)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 2&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR2 (XRB)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 4 &lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR4 (XRC)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;14&amp;quot; | &#039;&#039;&#039;Brojač naredbi&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Brojač&amp;amp;nbsp;Naredbi&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| IC&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzorni indikatori&#039;&#039;&#039; - su posebni statusni bitovi u IBM 704 koj su se u praksi rabili za provjeru grešaka, grananje ovisno o stanju sustava, upravljanje perifernim jedinicama, te za signalizaciju posebnih događaja. Kroz njih programeri su mogli održavati stanje sustava, signalizirati određene uvjete tokom izvršavanje naredbi, čitanje i postavljanje naredbi i tako su služili za jednostane oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Sense Indicators (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! SI broj&lt;br /&gt;
! Naziv / funkcija&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Overflow flag&lt;br /&gt;
| Postavlja se pri prekoračenju rezultata u akumulatoru (AC) ili količniku (MQ).&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Divide check&lt;br /&gt;
| Signalizira pogrešku pri dijeljenju, uključujući dijeljenje nulom.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| I/O ready&lt;br /&gt;
| Uređaj spreman za prijenos podataka.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| I/O complete&lt;br /&gt;
| Završetak operacije ulaza/izlaza.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Tape mark&lt;br /&gt;
| Očitana oznaka kraja bloka na magnetskoj vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Printer ready&lt;br /&gt;
| Pisač spreman za rad.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Card reader ready&lt;br /&gt;
| Čitač kartica spreman.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Card punch ready&lt;br /&gt;
| Bušilica kartica spremna.&lt;br /&gt;
|-&lt;br /&gt;
| 8–15&lt;br /&gt;
| Peripheral flags&lt;br /&gt;
| Razni signali perifernih uređaja (disk, vrpca, pisač).&lt;br /&gt;
|-&lt;br /&gt;
| 16–35&lt;br /&gt;
| User-defined flags&lt;br /&gt;
| Zastavice koje programer može slobodno koristiti za logiku grananja.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Korištenje u IBM 704 assembleru ====&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao posebne instrukcije za rad sa Sense Indicators:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;TSI n&#039;&#039;&#039;&lt;br /&gt;
: Testira Sense Indicator &#039;&#039;n&#039;&#039;. Ako je postavljen, izvršavanje se nastavlja normalno; ako nije, preskače se sljedeća instrukcija.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3      / provjeri je li I/O complete&lt;br /&gt;
TRA DONE   / ako je postavljen, skoči na DONE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;SSI n&#039;&#039;&#039;&lt;br /&gt;
: Postavlja Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;RSI n&#039;&#039;&#039;&lt;br /&gt;
: Resetira Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 1      / provjeri divide check&lt;br /&gt;
TRA ERROR  / ako je SI1 = 1, idi na ERROR&lt;br /&gt;
&lt;br /&gt;
SSI 20     / postavi korisnički indikator 20&lt;br /&gt;
RSI 3      / resetiraj I/O complete indikator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Usporedba s modernim statusnim registrima ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! IBM 704 Sense Indicators&lt;br /&gt;
! Moderni statusni registri (x86, ARM, RISC-V)&lt;br /&gt;
|-&lt;br /&gt;
| 36 jednobitnih zastavica&lt;br /&gt;
| 8–32 bitni statusni registri&lt;br /&gt;
|-&lt;br /&gt;
| Ručno postavljanje i brisanje&lt;br /&gt;
| Automatsko postavljanje od strane ALU&lt;br /&gt;
|-&lt;br /&gt;
| Koriste se za I/O signalizaciju&lt;br /&gt;
| I/O signalizacija preko interrupt kontrolera&lt;br /&gt;
|-&lt;br /&gt;
| Jednostavne logičke zastavice&lt;br /&gt;
| Zastavice za aritmetiku, usporedbe, prekide&lt;br /&gt;
|-&lt;br /&gt;
| Programer koristi dio SI kao &amp;quot;user flags&amp;quot;&lt;br /&gt;
| Moderni jezici koriste varijable, strukture, objekte&lt;br /&gt;
|-&lt;br /&gt;
| Grananje preko TSI instrukcije&lt;br /&gt;
| Grananje preko CMP/JMP, BEQ/BNE, BLT/BGT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Primjeri IBM 704 assembler koda ==&lt;br /&gt;
&lt;br /&gt;
=== Zbrajanje dvaju brojeva ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj A u AC&lt;br /&gt;
ADD B        / dodaj B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Provjera negativnog broja ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA X        / učitaj X&lt;br /&gt;
TMI NEG      / ako je X &amp;lt; 0, idi na NEG&lt;br /&gt;
TRA DONE     / inače nastavi&lt;br /&gt;
NEG STO Y    / spremi negativnu vrijednost&lt;br /&gt;
DONE HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Množenje i dijeljenje ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A&lt;br /&gt;
MPY B        / AC*B → AC/MQ&lt;br /&gt;
DIV C        / (AC/MQ) / C → MQ (količnik), AC (ostatak)&lt;br /&gt;
STO Q        / spremi količnik&lt;br /&gt;
STO R        / spremi ostatak&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Korištenje Sense Indicators ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3        / provjeri I/O complete&lt;br /&gt;
TRA IO_OK    / ako je SI3 = 1, idi na IO_OK&lt;br /&gt;
SSI 20       / postavi korisnički indikator 20&lt;br /&gt;
IO_OK HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Performanse IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od najbržih znanstvenih računala svoje generacije. Njegova arhitektura s pomičnim zarezom, magnetskom jezgrom i specijaliziranim aritmetičkim registrima omogućavala je znatno bolje performanse u odnosu na prethodne modele IBM 701 i IBM 702. Sustav je bio optimiziran za matematičke operacije, simulacije, statističke izračune i obradu velikih numeričkih skupova podataka.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Performanse računala IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Brzina zbrajanja&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za izvršavanje jedne ADD instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina množenja&lt;br /&gt;
| ~20 μs&lt;br /&gt;
| Vrijeme za MPY instrukciju; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina dijeljenja&lt;br /&gt;
| ~38 μs&lt;br /&gt;
| Vrijeme za DIV instrukciju; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| Memorija&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Magnetska jezgra; pristup ~12 μs.&lt;br /&gt;
|-&lt;br /&gt;
| Ciklus instrukcije&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Prosječno vrijeme za dohvat i izvršavanje jednostavne instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina I/O operacija&lt;br /&gt;
| 7200 kartica/min (čitač)&lt;br /&gt;
| Kartični čitač i bušilica bili su glavni ulazno/izlazni sustavi.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| 12 500 znakovnih blokova/s&lt;br /&gt;
| Ovisno o uređaju; korišteno za masovno spremanje podataka.&lt;br /&gt;
|-&lt;br /&gt;
| Preciznost pomičnog zareza&lt;br /&gt;
| 27-bitni eksponent + 8-bitna mantisa&lt;br /&gt;
| Omogućavalo znanstvene izračune velike preciznosti.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pouzdanost ==&lt;br /&gt;
&lt;br /&gt;
Iako je IBM 704 bio znatno pouzdaniji od svog prethodnika IBM 701, i dalje je bio stroj temeljen na vakuumskim cijevima, što je značilo relativno česte kvarove prema današnjim standardima. Prosječno vrijeme između kvarova iznosilo je oko 8 sati, što je ograničavalo veličinu programa koje je bilo moguće kompajlirati ili izvršavati bez prekida.&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN kompajleri morali su biti iznimno učinkoviti jer bi preduga kompilacija mogla biti prekinuta kvarom sustava. Unatoč tome, IBM 704 je bio dovoljno pouzdan da postane temelj za razvoj FORTRAN-a, LISP-a, ranih neuralnih mreža i brojnih znanstvenih projekata.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Pouzdanost IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| MTBF (mean time between failure)&lt;br /&gt;
| ~8 sati&lt;br /&gt;
| Prosječno vrijeme rada prije kvara.&lt;br /&gt;
|-&lt;br /&gt;
| Usporedba s IBM 701&lt;br /&gt;
| ~30 minuta&lt;br /&gt;
| IBM 704 bio je znatno pouzdaniji od svog prethodnika.&lt;br /&gt;
|-&lt;br /&gt;
| Utjecaj na softver&lt;br /&gt;
| Ograničena veličina programa&lt;br /&gt;
| Kompilacije su morale biti kratke zbog mogućih kvarova.&lt;br /&gt;
|-&lt;br /&gt;
| Tehnologija&lt;br /&gt;
| Vakuumske cijevi&lt;br /&gt;
| Glavni uzrok kvarova i zagrijavanja sustava.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Izvori==&lt;br /&gt;
{{izvori}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorija:IBM]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787630</id>
		<title>IBM 704</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787630"/>
		<updated>2026-07-07T09:59:59Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Ulazno/izlazni sustav */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;IBM 704&#039;&#039;&#039; ime je za računalo prve generacije koje je razvila tvrtka [[IBM]] i jedan je iz serije računala IBM 700. Ovo računalo se proizvodilo od 1954. do 1964. godine.&amp;lt;ref&amp;gt;https://www.ibm.com/history/700&amp;lt;/ref&amp;gt;. Povijesna važnost ovog računala jest da je na njemu bio razvijen programski jezik [[FORTRAN]] i [[LISP]] te SAP asembler. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Povijest razvoja IBM 700 serije ==&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija bila je prva generacija komercijalnih znanstvenih računala koju je IBM razvio početkom 1950-ih. Serija je započela s modelom IBM 701 (1952.), poznatim kao „Defense Calculator“, koji je bio namijenjen vojnoj i zrakoplovnoj industriji.&lt;br /&gt;
&lt;br /&gt;
* IBM 702 (1953.) bio je poslovno orijentiran sustav, dok je IBM 703 bio eksperimentalni model.&lt;br /&gt;
* IBM 704 je postao temelj za razvoj FORTRAN-a (1957.), prvog visokorazinskog programskog jezika.&lt;br /&gt;
&lt;br /&gt;
Pravi tehnološki iskorak dogodio se s modelom &#039;&#039;&#039;IBM 704&#039;&#039;&#039; (1954.), prvim računalom koje je podržavalo:&lt;br /&gt;
* aritmetiku s pomičnim zarezom,&lt;br /&gt;
* indeksne registre,&lt;br /&gt;
* statusne indikatore,&lt;br /&gt;
* magnetsku jezgru kao primarnu memoriju.&lt;br /&gt;
&lt;br /&gt;
Serija se nastavila s modelima IBM 709 (1958.) i IBM 7090 (1959.), koji su bili tranzistorski nasljednici i koristili se u NASA-i, NORAD-u i velikim znanstvenim centrima.&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija ostavila je dubok trag u povijesti računarstva, postavivši standarde arhitekture koji su se zadržali desetljećima.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arhitektura IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od prvih komercijalnih računala koje je uvodilo napredne koncepte arhitekture, uključujući rad s pomičnim zarezom, indeksne registre i statusne indikatore. Sustav je bio dizajniran za znanstvene i tehničke izračune, što ga je činilo ključnim alatom u laboratorijima, sveučilištima i ranim zrakoplovnim projektima.&lt;br /&gt;
&lt;br /&gt;
=== Memorija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 koristio je magnetsku jezgru kao primarnu memoriju, što je u to vrijeme predstavljalo veliki tehnološki napredak u odnosu na Williamsove cijevi korištene u IBM-u 701. Magnetska jezgra bila je brža, pouzdanija i omogućavala stabilno zadržavanje podataka bez potrebe za stalnim osvježavanjem.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Memorijske karakteristike IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Vrsta memorije&lt;br /&gt;
| Magnetska jezgra&lt;br /&gt;
| Stabilna, brza i pouzdana tehnologija za 1950-e.&lt;br /&gt;
|-&lt;br /&gt;
| Kapacitet&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Ukupno 147 456 bitova (18 432 bajta).&lt;br /&gt;
|-&lt;br /&gt;
| Vrijeme pristupa&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za čitanje ili pisanje jedne riječi.&lt;br /&gt;
|-&lt;br /&gt;
| Format riječi&lt;br /&gt;
| 36-bitna riječ&lt;br /&gt;
| Koristi se za instrukcije, podatke i floating-point brojeve.&lt;br /&gt;
|-&lt;br /&gt;
| Floating-point format&lt;br /&gt;
| 8-bitni eksponent + 27-bitna mantisa&lt;br /&gt;
| Bez skrivenog bita; excess-128 eksponent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Periferni uređaji ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 podržavao je širok spektar perifernih uređaja, što ga je činilo pogodnim za znanstvene, tehničke i administrativne zadatke. Ulazno/izlazni sustav bio je temeljen na magnetskim vrpcama, kartičnim čitačima i pisačima, uz mogućnost prikaza podataka na CRT zaslonima.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Periferni uređaji IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Uređaj&lt;br /&gt;
! Model&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Čitač kartica&lt;br /&gt;
| IBM 711&lt;br /&gt;
| Učitava programe i podatke s bušenih kartica.&lt;br /&gt;
|-&lt;br /&gt;
| Pisač&lt;br /&gt;
| IBM 716&lt;br /&gt;
| Ispisuje tekstualni izlaz; glavni uređaj za ljudsko čitanje rezultata.&lt;br /&gt;
|-&lt;br /&gt;
| Bušilica kartica&lt;br /&gt;
| IBM 721&lt;br /&gt;
| Zapisuje podatke na bušene kartice.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| IBM 727&lt;br /&gt;
| Glavni masovni spremnik; preko 5 milijuna znakova po vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrolna jedinica vrpci&lt;br /&gt;
| IBM 753&lt;br /&gt;
| Upravljanje magnetskim vrpcama.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetski bubanj&lt;br /&gt;
| IBM 733&lt;br /&gt;
| Dodatna memorija za brzi pristup.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetska jezgra (RAM)&lt;br /&gt;
| IBM 737&lt;br /&gt;
| Primarna memorija sustava (4096 × 36-bitnih riječi).&lt;br /&gt;
|-&lt;br /&gt;
| CRT zaslon&lt;br /&gt;
| IBM 740&lt;br /&gt;
| 21-inčni vektorski prikaz s dugom fosfornom postojanošću; korišten za vizualizaciju podataka.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aritmetička jedinica (AC i MQ) ===&lt;br /&gt;
Aritmetička jedinica sastojala se od dva glavna 36-bitna registra:&lt;br /&gt;
* &#039;&#039;&#039;AC (Accumulator)&#039;&#039;&#039; – glavni registar za aritmetiku.&lt;br /&gt;
* &#039;&#039;&#039;MQ (Multiplier/Quotient)&#039;&#039;&#039; – registar za množenje i dijeljenje.&lt;br /&gt;
&lt;br /&gt;
Ova dva registra zajedno su omogućavala učinkovite operacije nad velikim brojevima i pomičnim zarezom.&lt;br /&gt;
&lt;br /&gt;
=== Indeksni registri (XR1, XR2, XR4) ===&lt;br /&gt;
IBM 704 je koristio tri indeksna registra:&lt;br /&gt;
* &#039;&#039;&#039;XR1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Indeksni registri omogućavali su modifikaciju adresa, implementaciju petlji i rad s velikim poljima podataka. Ovo je bio preteča modernog adresiranja u procesorima.&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori (SI) ===&lt;br /&gt;
Sustav je imao 36 senzorskih indikatora koji su služili kao statusne zastavice:&lt;br /&gt;
* indikatori grešaka (overflow, divide check)&lt;br /&gt;
* indikatori stanja I/O uređaja&lt;br /&gt;
* korisnički definirani indikatori&lt;br /&gt;
&lt;br /&gt;
Programi su mogli testirati i postavljati SI bitove, što je omogućavalo primitivne oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
=== Instrukcijski format ===&lt;br /&gt;
Instrukcije su bile 36-bitne, s poljima:&lt;br /&gt;
* opkod&lt;br /&gt;
* adresa&lt;br /&gt;
* indeksni modifikator&lt;br /&gt;
* bitovi za uvjetno grananje&lt;br /&gt;
&lt;br /&gt;
Ovaj format omogućavao je fleksibilno adresiranje i kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
== Instrukcijski skup IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Glavne grupe instrukcija IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Grupa&lt;br /&gt;
! Primjeri&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Aritmetičke instrukcije&lt;br /&gt;
| ADD, SUB, MPY, DIV&lt;br /&gt;
| Operacije nad AC i MQ registrima; podrška za cijele brojeve i pomični zarez.&lt;br /&gt;
|-&lt;br /&gt;
| Logičke instrukcije&lt;br /&gt;
| CLA, CLM, COM&lt;br /&gt;
| Čišćenje, komplementiranje i manipulacija bitovima.&lt;br /&gt;
|-&lt;br /&gt;
| Uvjetno grananje&lt;br /&gt;
| TRA, TMI, TPL, TZE&lt;br /&gt;
| Skokovi ovisno o sadržaju AC ili MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Rad sa Sense Indicators&lt;br /&gt;
| TSI, SSI, RSI&lt;br /&gt;
| Testiranje, postavljanje i resetiranje statusnih bitova.&lt;br /&gt;
|-&lt;br /&gt;
| Indeksno adresiranje&lt;br /&gt;
| AXT, TXI&lt;br /&gt;
| Modifikacija adresa pomoću XR1, XR2, XR4.&lt;br /&gt;
|-&lt;br /&gt;
| Ulazno/izlazne instrukcije&lt;br /&gt;
| RDS, WRS, RWT&lt;br /&gt;
| Rad s magnetskom vrpcom, kartičnim čitačem i pisačem.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrola toka programa&lt;br /&gt;
| HLT, NOP&lt;br /&gt;
| Zaustavljanje programa, prazna instrukcija.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Opkodovi IBM 704 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Kompletan popis opkoda IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Opkod&lt;br /&gt;
! Mnemonik&lt;br /&gt;
! Grupa&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 000&lt;br /&gt;
| NOP&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Prazna instrukcija; ne radi ništa.&lt;br /&gt;
|-&lt;br /&gt;
| 001&lt;br /&gt;
| HLT&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Zaustavlja izvršavanje programa.&lt;br /&gt;
|-&lt;br /&gt;
| 002&lt;br /&gt;
| TRA&lt;br /&gt;
| Grananje&lt;br /&gt;
| Bezuvjetni skok na adresu.&lt;br /&gt;
|-&lt;br /&gt;
| 003&lt;br /&gt;
| TRN&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC negativan.&lt;br /&gt;
|-&lt;br /&gt;
| 004&lt;br /&gt;
| TMI&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC manji od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 005&lt;br /&gt;
| TPL&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC veći od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 006&lt;br /&gt;
| TZE&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC jednak nuli.&lt;br /&gt;
|-&lt;br /&gt;
| 007&lt;br /&gt;
| TOV&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je overflow zastavica postavljena.&lt;br /&gt;
|-&lt;br /&gt;
| 010&lt;br /&gt;
| ADD&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Zbrajanje sadržaja memorije s AC.&lt;br /&gt;
|-&lt;br /&gt;
| 011&lt;br /&gt;
| SUB&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Oduzimanje sadržaja memorije od AC.&lt;br /&gt;
|-&lt;br /&gt;
| 012&lt;br /&gt;
| MPY&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Množenje; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 013&lt;br /&gt;
| DIV&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Dijeljenje; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 014&lt;br /&gt;
| CLA&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 015&lt;br /&gt;
| CLM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 016&lt;br /&gt;
| COM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Komplementira AC.&lt;br /&gt;
|-&lt;br /&gt;
| 020&lt;br /&gt;
| SHL&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak ulijevo.&lt;br /&gt;
|-&lt;br /&gt;
| 021&lt;br /&gt;
| SHR&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak udesno.&lt;br /&gt;
|-&lt;br /&gt;
| 030&lt;br /&gt;
| AXT&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Učitava vrijednost u XR1, XR2 ili XR4.&lt;br /&gt;
|-&lt;br /&gt;
| 031&lt;br /&gt;
| TXI&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Dodaje vrijednost indeksnom registru.&lt;br /&gt;
|-&lt;br /&gt;
| 040&lt;br /&gt;
| RDS&lt;br /&gt;
| I/O&lt;br /&gt;
| Čitanje s magnetske vrpce.&lt;br /&gt;
|-&lt;br /&gt;
| 041&lt;br /&gt;
| WRS&lt;br /&gt;
| I/O&lt;br /&gt;
| Pisanje na magnetsku vrpcu.&lt;br /&gt;
|-&lt;br /&gt;
| 042&lt;br /&gt;
| RWT&lt;br /&gt;
| I/O&lt;br /&gt;
| Čekanje na I/O operaciju.&lt;br /&gt;
|-&lt;br /&gt;
| 050&lt;br /&gt;
| TSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Testira Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 051&lt;br /&gt;
| SSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Postavlja Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 052&lt;br /&gt;
| RSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Resetira Sense Indicator n.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Registri==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--             --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:88%;width:34em;&amp;quot;&lt;br /&gt;
|+ Registri u računalu IBM 704&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| style=&amp;quot;font-size:88%;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Podatkovni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | S&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | Q&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | P&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;14&amp;quot;| Akumulator&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | AC&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;1&amp;quot;| S&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;11&amp;quot;| Množitelj/Količnik&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | MQ&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;12&amp;quot;| Senzorni indikatori&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | SI&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 1&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR1 (XRA)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 2&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR2 (XRB)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 4 &lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR4 (XRC)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;14&amp;quot; | &#039;&#039;&#039;Brojač naredbi&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Brojač&amp;amp;nbsp;Naredbi&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| IC&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzorni indikatori&#039;&#039;&#039; - su posebni statusni bitovi u IBM 704 koj su se u praksi rabili za provjeru grešaka, grananje ovisno o stanju sustava, upravljanje perifernim jedinicama, te za signalizaciju posebnih događaja. Kroz njih programeri su mogli održavati stanje sustava, signalizirati određene uvjete tokom izvršavanje naredbi, čitanje i postavljanje naredbi i tako su služili za jednostane oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Sense Indicators (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! SI broj&lt;br /&gt;
! Naziv / funkcija&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Overflow flag&lt;br /&gt;
| Postavlja se pri prekoračenju rezultata u akumulatoru (AC) ili količniku (MQ).&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Divide check&lt;br /&gt;
| Signalizira pogrešku pri dijeljenju, uključujući dijeljenje nulom.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| I/O ready&lt;br /&gt;
| Uređaj spreman za prijenos podataka.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| I/O complete&lt;br /&gt;
| Završetak operacije ulaza/izlaza.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Tape mark&lt;br /&gt;
| Očitana oznaka kraja bloka na magnetskoj vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Printer ready&lt;br /&gt;
| Pisač spreman za rad.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Card reader ready&lt;br /&gt;
| Čitač kartica spreman.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Card punch ready&lt;br /&gt;
| Bušilica kartica spremna.&lt;br /&gt;
|-&lt;br /&gt;
| 8–15&lt;br /&gt;
| Peripheral flags&lt;br /&gt;
| Razni signali perifernih uređaja (disk, vrpca, pisač).&lt;br /&gt;
|-&lt;br /&gt;
| 16–35&lt;br /&gt;
| User-defined flags&lt;br /&gt;
| Zastavice koje programer može slobodno koristiti za logiku grananja.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Korištenje u IBM 704 assembleru ====&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao posebne instrukcije za rad sa Sense Indicators:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;TSI n&#039;&#039;&#039;&lt;br /&gt;
: Testira Sense Indicator &#039;&#039;n&#039;&#039;. Ako je postavljen, izvršavanje se nastavlja normalno; ako nije, preskače se sljedeća instrukcija.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3      / provjeri je li I/O complete&lt;br /&gt;
TRA DONE   / ako je postavljen, skoči na DONE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;SSI n&#039;&#039;&#039;&lt;br /&gt;
: Postavlja Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;RSI n&#039;&#039;&#039;&lt;br /&gt;
: Resetira Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 1      / provjeri divide check&lt;br /&gt;
TRA ERROR  / ako je SI1 = 1, idi na ERROR&lt;br /&gt;
&lt;br /&gt;
SSI 20     / postavi korisnički indikator 20&lt;br /&gt;
RSI 3      / resetiraj I/O complete indikator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Usporedba s modernim statusnim registrima ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! IBM 704 Sense Indicators&lt;br /&gt;
! Moderni statusni registri (x86, ARM, RISC-V)&lt;br /&gt;
|-&lt;br /&gt;
| 36 jednobitnih zastavica&lt;br /&gt;
| 8–32 bitni statusni registri&lt;br /&gt;
|-&lt;br /&gt;
| Ručno postavljanje i brisanje&lt;br /&gt;
| Automatsko postavljanje od strane ALU&lt;br /&gt;
|-&lt;br /&gt;
| Koriste se za I/O signalizaciju&lt;br /&gt;
| I/O signalizacija preko interrupt kontrolera&lt;br /&gt;
|-&lt;br /&gt;
| Jednostavne logičke zastavice&lt;br /&gt;
| Zastavice za aritmetiku, usporedbe, prekide&lt;br /&gt;
|-&lt;br /&gt;
| Programer koristi dio SI kao &amp;quot;user flags&amp;quot;&lt;br /&gt;
| Moderni jezici koriste varijable, strukture, objekte&lt;br /&gt;
|-&lt;br /&gt;
| Grananje preko TSI instrukcije&lt;br /&gt;
| Grananje preko CMP/JMP, BEQ/BNE, BLT/BGT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Primjeri IBM 704 assembler koda ==&lt;br /&gt;
&lt;br /&gt;
=== Zbrajanje dvaju brojeva ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj A u AC&lt;br /&gt;
ADD B        / dodaj B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Provjera negativnog broja ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA X        / učitaj X&lt;br /&gt;
TMI NEG      / ako je X &amp;lt; 0, idi na NEG&lt;br /&gt;
TRA DONE     / inače nastavi&lt;br /&gt;
NEG STO Y    / spremi negativnu vrijednost&lt;br /&gt;
DONE HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Množenje i dijeljenje ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A&lt;br /&gt;
MPY B        / AC*B → AC/MQ&lt;br /&gt;
DIV C        / (AC/MQ) / C → MQ (količnik), AC (ostatak)&lt;br /&gt;
STO Q        / spremi količnik&lt;br /&gt;
STO R        / spremi ostatak&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Korištenje Sense Indicators ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3        / provjeri I/O complete&lt;br /&gt;
TRA IO_OK    / ako je SI3 = 1, idi na IO_OK&lt;br /&gt;
SSI 20       / postavi korisnički indikator 20&lt;br /&gt;
IO_OK HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Performanse IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od najbržih znanstvenih računala svoje generacije. Njegova arhitektura s pomičnim zarezom, magnetskom jezgrom i specijaliziranim aritmetičkim registrima omogućavala je znatno bolje performanse u odnosu na prethodne modele IBM 701 i IBM 702. Sustav je bio optimiziran za matematičke operacije, simulacije, statističke izračune i obradu velikih numeričkih skupova podataka.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Performanse računala IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Brzina zbrajanja&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za izvršavanje jedne ADD instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina množenja&lt;br /&gt;
| ~20 μs&lt;br /&gt;
| Vrijeme za MPY instrukciju; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina dijeljenja&lt;br /&gt;
| ~38 μs&lt;br /&gt;
| Vrijeme za DIV instrukciju; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| Memorija&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Magnetska jezgra; pristup ~12 μs.&lt;br /&gt;
|-&lt;br /&gt;
| Ciklus instrukcije&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Prosječno vrijeme za dohvat i izvršavanje jednostavne instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina I/O operacija&lt;br /&gt;
| 7200 kartica/min (čitač)&lt;br /&gt;
| Kartični čitač i bušilica bili su glavni ulazno/izlazni sustavi.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| 12 500 znakovnih blokova/s&lt;br /&gt;
| Ovisno o uređaju; korišteno za masovno spremanje podataka.&lt;br /&gt;
|-&lt;br /&gt;
| Preciznost pomičnog zareza&lt;br /&gt;
| 27-bitni eksponent + 8-bitna mantisa&lt;br /&gt;
| Omogućavalo znanstvene izračune velike preciznosti.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Izvori==&lt;br /&gt;
{{izvori}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorija:IBM]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787629</id>
		<title>IBM 704</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787629"/>
		<updated>2026-07-07T09:59:38Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Memorija */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;IBM 704&#039;&#039;&#039; ime je za računalo prve generacije koje je razvila tvrtka [[IBM]] i jedan je iz serije računala IBM 700. Ovo računalo se proizvodilo od 1954. do 1964. godine.&amp;lt;ref&amp;gt;https://www.ibm.com/history/700&amp;lt;/ref&amp;gt;. Povijesna važnost ovog računala jest da je na njemu bio razvijen programski jezik [[FORTRAN]] i [[LISP]] te SAP asembler. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Povijest razvoja IBM 700 serije ==&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija bila je prva generacija komercijalnih znanstvenih računala koju je IBM razvio početkom 1950-ih. Serija je započela s modelom IBM 701 (1952.), poznatim kao „Defense Calculator“, koji je bio namijenjen vojnoj i zrakoplovnoj industriji.&lt;br /&gt;
&lt;br /&gt;
* IBM 702 (1953.) bio je poslovno orijentiran sustav, dok je IBM 703 bio eksperimentalni model.&lt;br /&gt;
* IBM 704 je postao temelj za razvoj FORTRAN-a (1957.), prvog visokorazinskog programskog jezika.&lt;br /&gt;
&lt;br /&gt;
Pravi tehnološki iskorak dogodio se s modelom &#039;&#039;&#039;IBM 704&#039;&#039;&#039; (1954.), prvim računalom koje je podržavalo:&lt;br /&gt;
* aritmetiku s pomičnim zarezom,&lt;br /&gt;
* indeksne registre,&lt;br /&gt;
* statusne indikatore,&lt;br /&gt;
* magnetsku jezgru kao primarnu memoriju.&lt;br /&gt;
&lt;br /&gt;
Serija se nastavila s modelima IBM 709 (1958.) i IBM 7090 (1959.), koji su bili tranzistorski nasljednici i koristili se u NASA-i, NORAD-u i velikim znanstvenim centrima.&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija ostavila je dubok trag u povijesti računarstva, postavivši standarde arhitekture koji su se zadržali desetljećima.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arhitektura IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od prvih komercijalnih računala koje je uvodilo napredne koncepte arhitekture, uključujući rad s pomičnim zarezom, indeksne registre i statusne indikatore. Sustav je bio dizajniran za znanstvene i tehničke izračune, što ga je činilo ključnim alatom u laboratorijima, sveučilištima i ranim zrakoplovnim projektima.&lt;br /&gt;
&lt;br /&gt;
=== Memorija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 koristio je magnetsku jezgru kao primarnu memoriju, što je u to vrijeme predstavljalo veliki tehnološki napredak u odnosu na Williamsove cijevi korištene u IBM-u 701. Magnetska jezgra bila je brža, pouzdanija i omogućavala stabilno zadržavanje podataka bez potrebe za stalnim osvježavanjem.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Memorijske karakteristike IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Vrsta memorije&lt;br /&gt;
| Magnetska jezgra&lt;br /&gt;
| Stabilna, brza i pouzdana tehnologija za 1950-e.&lt;br /&gt;
|-&lt;br /&gt;
| Kapacitet&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Ukupno 147 456 bitova (18 432 bajta).&lt;br /&gt;
|-&lt;br /&gt;
| Vrijeme pristupa&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za čitanje ili pisanje jedne riječi.&lt;br /&gt;
|-&lt;br /&gt;
| Format riječi&lt;br /&gt;
| 36-bitna riječ&lt;br /&gt;
| Koristi se za instrukcije, podatke i floating-point brojeve.&lt;br /&gt;
|-&lt;br /&gt;
| Floating-point format&lt;br /&gt;
| 8-bitni eksponent + 27-bitna mantisa&lt;br /&gt;
| Bez skrivenog bita; excess-128 eksponent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Periferni uređaji ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 podržavao je širok spektar perifernih uređaja, što ga je činilo pogodnim za znanstvene, tehničke i administrativne zadatke. Ulazno/izlazni sustav bio je temeljen na magnetskim vrpcama, kartičnim čitačima i pisačima, uz mogućnost prikaza podataka na CRT zaslonima.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Periferni uređaji IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Uređaj&lt;br /&gt;
! Model&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Čitač kartica&lt;br /&gt;
| IBM 711&lt;br /&gt;
| Učitava programe i podatke s bušenih kartica.&lt;br /&gt;
|-&lt;br /&gt;
| Pisač&lt;br /&gt;
| IBM 716&lt;br /&gt;
| Ispisuje tekstualni izlaz; glavni uređaj za ljudsko čitanje rezultata.&lt;br /&gt;
|-&lt;br /&gt;
| Bušilica kartica&lt;br /&gt;
| IBM 721&lt;br /&gt;
| Zapisuje podatke na bušene kartice.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| IBM 727&lt;br /&gt;
| Glavni masovni spremnik; preko 5 milijuna znakova po vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrolna jedinica vrpci&lt;br /&gt;
| IBM 753&lt;br /&gt;
| Upravljanje magnetskim vrpcama.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetski bubanj&lt;br /&gt;
| IBM 733&lt;br /&gt;
| Dodatna memorija za brzi pristup.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetska jezgra (RAM)&lt;br /&gt;
| IBM 737&lt;br /&gt;
| Primarna memorija sustava (4096 × 36-bitnih riječi).&lt;br /&gt;
|-&lt;br /&gt;
| CRT zaslon&lt;br /&gt;
| IBM 740&lt;br /&gt;
| 21-inčni vektorski prikaz s dugom fosfornom postojanošću; korišten za vizualizaciju podataka.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aritmetička jedinica (AC i MQ) ===&lt;br /&gt;
Aritmetička jedinica sastojala se od dva glavna 36-bitna registra:&lt;br /&gt;
* &#039;&#039;&#039;AC (Accumulator)&#039;&#039;&#039; – glavni registar za aritmetiku.&lt;br /&gt;
* &#039;&#039;&#039;MQ (Multiplier/Quotient)&#039;&#039;&#039; – registar za množenje i dijeljenje.&lt;br /&gt;
&lt;br /&gt;
Ova dva registra zajedno su omogućavala učinkovite operacije nad velikim brojevima i pomičnim zarezom.&lt;br /&gt;
&lt;br /&gt;
=== Indeksni registri (XR1, XR2, XR4) ===&lt;br /&gt;
IBM 704 je koristio tri indeksna registra:&lt;br /&gt;
* &#039;&#039;&#039;XR1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Indeksni registri omogućavali su modifikaciju adresa, implementaciju petlji i rad s velikim poljima podataka. Ovo je bio preteča modernog adresiranja u procesorima.&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori (SI) ===&lt;br /&gt;
Sustav je imao 36 senzorskih indikatora koji su služili kao statusne zastavice:&lt;br /&gt;
* indikatori grešaka (overflow, divide check)&lt;br /&gt;
* indikatori stanja I/O uređaja&lt;br /&gt;
* korisnički definirani indikatori&lt;br /&gt;
&lt;br /&gt;
Programi su mogli testirati i postavljati SI bitove, što je omogućavalo primitivne oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
=== Ulazno/izlazni sustav ===&lt;br /&gt;
Podržani uređaji uključivali su:&lt;br /&gt;
* magnetske vrpce&lt;br /&gt;
* čitač kartica&lt;br /&gt;
* bušilicu kartica&lt;br /&gt;
* pisač&lt;br /&gt;
* konzolu operatera&lt;br /&gt;
&lt;br /&gt;
I/O operacije su se signalizirale preko Sense Indicators.&lt;br /&gt;
&lt;br /&gt;
=== Instrukcijski format ===&lt;br /&gt;
Instrukcije su bile 36-bitne, s poljima:&lt;br /&gt;
* opkod&lt;br /&gt;
* adresa&lt;br /&gt;
* indeksni modifikator&lt;br /&gt;
* bitovi za uvjetno grananje&lt;br /&gt;
&lt;br /&gt;
Ovaj format omogućavao je fleksibilno adresiranje i kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
== Instrukcijski skup IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Glavne grupe instrukcija IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Grupa&lt;br /&gt;
! Primjeri&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Aritmetičke instrukcije&lt;br /&gt;
| ADD, SUB, MPY, DIV&lt;br /&gt;
| Operacije nad AC i MQ registrima; podrška za cijele brojeve i pomični zarez.&lt;br /&gt;
|-&lt;br /&gt;
| Logičke instrukcije&lt;br /&gt;
| CLA, CLM, COM&lt;br /&gt;
| Čišćenje, komplementiranje i manipulacija bitovima.&lt;br /&gt;
|-&lt;br /&gt;
| Uvjetno grananje&lt;br /&gt;
| TRA, TMI, TPL, TZE&lt;br /&gt;
| Skokovi ovisno o sadržaju AC ili MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Rad sa Sense Indicators&lt;br /&gt;
| TSI, SSI, RSI&lt;br /&gt;
| Testiranje, postavljanje i resetiranje statusnih bitova.&lt;br /&gt;
|-&lt;br /&gt;
| Indeksno adresiranje&lt;br /&gt;
| AXT, TXI&lt;br /&gt;
| Modifikacija adresa pomoću XR1, XR2, XR4.&lt;br /&gt;
|-&lt;br /&gt;
| Ulazno/izlazne instrukcije&lt;br /&gt;
| RDS, WRS, RWT&lt;br /&gt;
| Rad s magnetskom vrpcom, kartičnim čitačem i pisačem.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrola toka programa&lt;br /&gt;
| HLT, NOP&lt;br /&gt;
| Zaustavljanje programa, prazna instrukcija.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Opkodovi IBM 704 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Kompletan popis opkoda IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Opkod&lt;br /&gt;
! Mnemonik&lt;br /&gt;
! Grupa&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 000&lt;br /&gt;
| NOP&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Prazna instrukcija; ne radi ništa.&lt;br /&gt;
|-&lt;br /&gt;
| 001&lt;br /&gt;
| HLT&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Zaustavlja izvršavanje programa.&lt;br /&gt;
|-&lt;br /&gt;
| 002&lt;br /&gt;
| TRA&lt;br /&gt;
| Grananje&lt;br /&gt;
| Bezuvjetni skok na adresu.&lt;br /&gt;
|-&lt;br /&gt;
| 003&lt;br /&gt;
| TRN&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC negativan.&lt;br /&gt;
|-&lt;br /&gt;
| 004&lt;br /&gt;
| TMI&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC manji od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 005&lt;br /&gt;
| TPL&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC veći od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 006&lt;br /&gt;
| TZE&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC jednak nuli.&lt;br /&gt;
|-&lt;br /&gt;
| 007&lt;br /&gt;
| TOV&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je overflow zastavica postavljena.&lt;br /&gt;
|-&lt;br /&gt;
| 010&lt;br /&gt;
| ADD&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Zbrajanje sadržaja memorije s AC.&lt;br /&gt;
|-&lt;br /&gt;
| 011&lt;br /&gt;
| SUB&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Oduzimanje sadržaja memorije od AC.&lt;br /&gt;
|-&lt;br /&gt;
| 012&lt;br /&gt;
| MPY&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Množenje; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 013&lt;br /&gt;
| DIV&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Dijeljenje; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 014&lt;br /&gt;
| CLA&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 015&lt;br /&gt;
| CLM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 016&lt;br /&gt;
| COM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Komplementira AC.&lt;br /&gt;
|-&lt;br /&gt;
| 020&lt;br /&gt;
| SHL&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak ulijevo.&lt;br /&gt;
|-&lt;br /&gt;
| 021&lt;br /&gt;
| SHR&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak udesno.&lt;br /&gt;
|-&lt;br /&gt;
| 030&lt;br /&gt;
| AXT&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Učitava vrijednost u XR1, XR2 ili XR4.&lt;br /&gt;
|-&lt;br /&gt;
| 031&lt;br /&gt;
| TXI&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Dodaje vrijednost indeksnom registru.&lt;br /&gt;
|-&lt;br /&gt;
| 040&lt;br /&gt;
| RDS&lt;br /&gt;
| I/O&lt;br /&gt;
| Čitanje s magnetske vrpce.&lt;br /&gt;
|-&lt;br /&gt;
| 041&lt;br /&gt;
| WRS&lt;br /&gt;
| I/O&lt;br /&gt;
| Pisanje na magnetsku vrpcu.&lt;br /&gt;
|-&lt;br /&gt;
| 042&lt;br /&gt;
| RWT&lt;br /&gt;
| I/O&lt;br /&gt;
| Čekanje na I/O operaciju.&lt;br /&gt;
|-&lt;br /&gt;
| 050&lt;br /&gt;
| TSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Testira Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 051&lt;br /&gt;
| SSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Postavlja Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 052&lt;br /&gt;
| RSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Resetira Sense Indicator n.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Registri==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--             --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:88%;width:34em;&amp;quot;&lt;br /&gt;
|+ Registri u računalu IBM 704&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| style=&amp;quot;font-size:88%;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Podatkovni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | S&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | Q&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | P&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;14&amp;quot;| Akumulator&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | AC&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;1&amp;quot;| S&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;11&amp;quot;| Množitelj/Količnik&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | MQ&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;12&amp;quot;| Senzorni indikatori&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | SI&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 1&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR1 (XRA)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 2&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR2 (XRB)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 4 &lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR4 (XRC)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;14&amp;quot; | &#039;&#039;&#039;Brojač naredbi&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Brojač&amp;amp;nbsp;Naredbi&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| IC&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzorni indikatori&#039;&#039;&#039; - su posebni statusni bitovi u IBM 704 koj su se u praksi rabili za provjeru grešaka, grananje ovisno o stanju sustava, upravljanje perifernim jedinicama, te za signalizaciju posebnih događaja. Kroz njih programeri su mogli održavati stanje sustava, signalizirati određene uvjete tokom izvršavanje naredbi, čitanje i postavljanje naredbi i tako su služili za jednostane oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Sense Indicators (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! SI broj&lt;br /&gt;
! Naziv / funkcija&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Overflow flag&lt;br /&gt;
| Postavlja se pri prekoračenju rezultata u akumulatoru (AC) ili količniku (MQ).&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Divide check&lt;br /&gt;
| Signalizira pogrešku pri dijeljenju, uključujući dijeljenje nulom.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| I/O ready&lt;br /&gt;
| Uređaj spreman za prijenos podataka.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| I/O complete&lt;br /&gt;
| Završetak operacije ulaza/izlaza.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Tape mark&lt;br /&gt;
| Očitana oznaka kraja bloka na magnetskoj vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Printer ready&lt;br /&gt;
| Pisač spreman za rad.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Card reader ready&lt;br /&gt;
| Čitač kartica spreman.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Card punch ready&lt;br /&gt;
| Bušilica kartica spremna.&lt;br /&gt;
|-&lt;br /&gt;
| 8–15&lt;br /&gt;
| Peripheral flags&lt;br /&gt;
| Razni signali perifernih uređaja (disk, vrpca, pisač).&lt;br /&gt;
|-&lt;br /&gt;
| 16–35&lt;br /&gt;
| User-defined flags&lt;br /&gt;
| Zastavice koje programer može slobodno koristiti za logiku grananja.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Korištenje u IBM 704 assembleru ====&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao posebne instrukcije za rad sa Sense Indicators:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;TSI n&#039;&#039;&#039;&lt;br /&gt;
: Testira Sense Indicator &#039;&#039;n&#039;&#039;. Ako je postavljen, izvršavanje se nastavlja normalno; ako nije, preskače se sljedeća instrukcija.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3      / provjeri je li I/O complete&lt;br /&gt;
TRA DONE   / ako je postavljen, skoči na DONE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;SSI n&#039;&#039;&#039;&lt;br /&gt;
: Postavlja Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;RSI n&#039;&#039;&#039;&lt;br /&gt;
: Resetira Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 1      / provjeri divide check&lt;br /&gt;
TRA ERROR  / ako je SI1 = 1, idi na ERROR&lt;br /&gt;
&lt;br /&gt;
SSI 20     / postavi korisnički indikator 20&lt;br /&gt;
RSI 3      / resetiraj I/O complete indikator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Usporedba s modernim statusnim registrima ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! IBM 704 Sense Indicators&lt;br /&gt;
! Moderni statusni registri (x86, ARM, RISC-V)&lt;br /&gt;
|-&lt;br /&gt;
| 36 jednobitnih zastavica&lt;br /&gt;
| 8–32 bitni statusni registri&lt;br /&gt;
|-&lt;br /&gt;
| Ručno postavljanje i brisanje&lt;br /&gt;
| Automatsko postavljanje od strane ALU&lt;br /&gt;
|-&lt;br /&gt;
| Koriste se za I/O signalizaciju&lt;br /&gt;
| I/O signalizacija preko interrupt kontrolera&lt;br /&gt;
|-&lt;br /&gt;
| Jednostavne logičke zastavice&lt;br /&gt;
| Zastavice za aritmetiku, usporedbe, prekide&lt;br /&gt;
|-&lt;br /&gt;
| Programer koristi dio SI kao &amp;quot;user flags&amp;quot;&lt;br /&gt;
| Moderni jezici koriste varijable, strukture, objekte&lt;br /&gt;
|-&lt;br /&gt;
| Grananje preko TSI instrukcije&lt;br /&gt;
| Grananje preko CMP/JMP, BEQ/BNE, BLT/BGT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Primjeri IBM 704 assembler koda ==&lt;br /&gt;
&lt;br /&gt;
=== Zbrajanje dvaju brojeva ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj A u AC&lt;br /&gt;
ADD B        / dodaj B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Provjera negativnog broja ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA X        / učitaj X&lt;br /&gt;
TMI NEG      / ako je X &amp;lt; 0, idi na NEG&lt;br /&gt;
TRA DONE     / inače nastavi&lt;br /&gt;
NEG STO Y    / spremi negativnu vrijednost&lt;br /&gt;
DONE HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Množenje i dijeljenje ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A&lt;br /&gt;
MPY B        / AC*B → AC/MQ&lt;br /&gt;
DIV C        / (AC/MQ) / C → MQ (količnik), AC (ostatak)&lt;br /&gt;
STO Q        / spremi količnik&lt;br /&gt;
STO R        / spremi ostatak&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Korištenje Sense Indicators ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3        / provjeri I/O complete&lt;br /&gt;
TRA IO_OK    / ako je SI3 = 1, idi na IO_OK&lt;br /&gt;
SSI 20       / postavi korisnički indikator 20&lt;br /&gt;
IO_OK HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Performanse IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od najbržih znanstvenih računala svoje generacije. Njegova arhitektura s pomičnim zarezom, magnetskom jezgrom i specijaliziranim aritmetičkim registrima omogućavala je znatno bolje performanse u odnosu na prethodne modele IBM 701 i IBM 702. Sustav je bio optimiziran za matematičke operacije, simulacije, statističke izračune i obradu velikih numeričkih skupova podataka.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Performanse računala IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Brzina zbrajanja&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za izvršavanje jedne ADD instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina množenja&lt;br /&gt;
| ~20 μs&lt;br /&gt;
| Vrijeme za MPY instrukciju; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina dijeljenja&lt;br /&gt;
| ~38 μs&lt;br /&gt;
| Vrijeme za DIV instrukciju; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| Memorija&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Magnetska jezgra; pristup ~12 μs.&lt;br /&gt;
|-&lt;br /&gt;
| Ciklus instrukcije&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Prosječno vrijeme za dohvat i izvršavanje jednostavne instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina I/O operacija&lt;br /&gt;
| 7200 kartica/min (čitač)&lt;br /&gt;
| Kartični čitač i bušilica bili su glavni ulazno/izlazni sustavi.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| 12 500 znakovnih blokova/s&lt;br /&gt;
| Ovisno o uređaju; korišteno za masovno spremanje podataka.&lt;br /&gt;
|-&lt;br /&gt;
| Preciznost pomičnog zareza&lt;br /&gt;
| 27-bitni eksponent + 8-bitna mantisa&lt;br /&gt;
| Omogućavalo znanstvene izračune velike preciznosti.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Izvori==&lt;br /&gt;
{{izvori}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorija:IBM]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787628</id>
		<title>IBM 704</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787628"/>
		<updated>2026-07-07T09:59:01Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Arhitektura IBM 704 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;IBM 704&#039;&#039;&#039; ime je za računalo prve generacije koje je razvila tvrtka [[IBM]] i jedan je iz serije računala IBM 700. Ovo računalo se proizvodilo od 1954. do 1964. godine.&amp;lt;ref&amp;gt;https://www.ibm.com/history/700&amp;lt;/ref&amp;gt;. Povijesna važnost ovog računala jest da je na njemu bio razvijen programski jezik [[FORTRAN]] i [[LISP]] te SAP asembler. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Povijest razvoja IBM 700 serije ==&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija bila je prva generacija komercijalnih znanstvenih računala koju je IBM razvio početkom 1950-ih. Serija je započela s modelom IBM 701 (1952.), poznatim kao „Defense Calculator“, koji je bio namijenjen vojnoj i zrakoplovnoj industriji.&lt;br /&gt;
&lt;br /&gt;
* IBM 702 (1953.) bio je poslovno orijentiran sustav, dok je IBM 703 bio eksperimentalni model.&lt;br /&gt;
* IBM 704 je postao temelj za razvoj FORTRAN-a (1957.), prvog visokorazinskog programskog jezika.&lt;br /&gt;
&lt;br /&gt;
Pravi tehnološki iskorak dogodio se s modelom &#039;&#039;&#039;IBM 704&#039;&#039;&#039; (1954.), prvim računalom koje je podržavalo:&lt;br /&gt;
* aritmetiku s pomičnim zarezom,&lt;br /&gt;
* indeksne registre,&lt;br /&gt;
* statusne indikatore,&lt;br /&gt;
* magnetsku jezgru kao primarnu memoriju.&lt;br /&gt;
&lt;br /&gt;
Serija se nastavila s modelima IBM 709 (1958.) i IBM 7090 (1959.), koji su bili tranzistorski nasljednici i koristili se u NASA-i, NORAD-u i velikim znanstvenim centrima.&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija ostavila je dubok trag u povijesti računarstva, postavivši standarde arhitekture koji su se zadržali desetljećima.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arhitektura IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od prvih komercijalnih računala koje je uvodilo napredne koncepte arhitekture, uključujući rad s pomičnim zarezom, indeksne registre i statusne indikatore. Sustav je bio dizajniran za znanstvene i tehničke izračune, što ga je činilo ključnim alatom u laboratorijima, sveučilištima i ranim zrakoplovnim projektima.&lt;br /&gt;
&lt;br /&gt;
=== Memorija ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 koristio je magnetsku jezgru kao primarnu memoriju, što je u to vrijeme predstavljalo veliki tehnološki napredak u odnosu na Williamsove cijevi korištene u IBM-u 701. Magnetska jezgra bila je brža, pouzdanija i omogućavala stabilno zadržavanje podataka bez potrebe za stalnim osvježavanjem.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Memorijske karakteristike IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Vrsta memorije&lt;br /&gt;
| Magnetska jezgra&lt;br /&gt;
| Stabilna, brza i pouzdana tehnologija za 1950-e.&lt;br /&gt;
|-&lt;br /&gt;
| Kapacitet&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Ukupno 147 456 bitova (18 432 bajta).&lt;br /&gt;
|-&lt;br /&gt;
| Vrijeme pristupa&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za čitanje ili pisanje jedne riječi.&lt;br /&gt;
|-&lt;br /&gt;
| Format riječi&lt;br /&gt;
| 36-bitna riječ&lt;br /&gt;
| Koristi se za instrukcije, podatke i floating-point brojeve.&lt;br /&gt;
|-&lt;br /&gt;
| Floating-point format&lt;br /&gt;
| 8-bitni eksponent + 27-bitna mantisa&lt;br /&gt;
| Bez skrivenog bita; excess-128 eksponent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Periferni uređaji ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 podržavao je širok spektar perifernih uređaja, što ga je činilo pogodnim za znanstvene, tehničke i administrativne zadatke. Ulazno/izlazni sustav bio je temeljen na magnetskim vrpcama, kartičnim čitačima i pisačima, uz mogućnost prikaza podataka na CRT zaslonima.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Periferni uređaji IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Uređaj&lt;br /&gt;
! Model&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Čitač kartica&lt;br /&gt;
| IBM 711&lt;br /&gt;
| Učitava programe i podatke s bušenih kartica.&lt;br /&gt;
|-&lt;br /&gt;
| Pisač&lt;br /&gt;
| IBM 716&lt;br /&gt;
| Ispisuje tekstualni izlaz; glavni uređaj za ljudsko čitanje rezultata.&lt;br /&gt;
|-&lt;br /&gt;
| Bušilica kartica&lt;br /&gt;
| IBM 721&lt;br /&gt;
| Zapisuje podatke na bušene kartice.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| IBM 727&lt;br /&gt;
| Glavni masovni spremnik; preko 5 milijuna znakova po vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrolna jedinica vrpci&lt;br /&gt;
| IBM 753&lt;br /&gt;
| Upravljanje magnetskim vrpcama.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetski bubanj&lt;br /&gt;
| IBM 733&lt;br /&gt;
| Dodatna memorija za brzi pristup.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetska jezgra (RAM)&lt;br /&gt;
| IBM 737&lt;br /&gt;
| Primarna memorija sustava (4096 × 36-bitnih riječi).&lt;br /&gt;
|-&lt;br /&gt;
| CRT zaslon&lt;br /&gt;
| IBM 740&lt;br /&gt;
| 21-inčni vektorski prikaz s dugom fosfornom postojanošću; korišten za vizualizaciju podataka.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aritmetička jedinica (AC i MQ) ===&lt;br /&gt;
Aritmetička jedinica sastojala se od dva glavna 36-bitna registra:&lt;br /&gt;
* &#039;&#039;&#039;AC (Accumulator)&#039;&#039;&#039; – glavni registar za aritmetiku.&lt;br /&gt;
* &#039;&#039;&#039;MQ (Multiplier/Quotient)&#039;&#039;&#039; – registar za množenje i dijeljenje.&lt;br /&gt;
&lt;br /&gt;
Ova dva registra zajedno su omogućavala učinkovite operacije nad velikim brojevima i pomičnim zarezom.&lt;br /&gt;
&lt;br /&gt;
=== Indeksni registri (XR1, XR2, XR4) ===&lt;br /&gt;
IBM 704 je koristio tri indeksna registra:&lt;br /&gt;
* &#039;&#039;&#039;XR1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Indeksni registri omogućavali su modifikaciju adresa, implementaciju petlji i rad s velikim poljima podataka. Ovo je bio preteča modernog adresiranja u procesorima.&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori (SI) ===&lt;br /&gt;
Sustav je imao 36 senzorskih indikatora koji su služili kao statusne zastavice:&lt;br /&gt;
* indikatori grešaka (overflow, divide check)&lt;br /&gt;
* indikatori stanja I/O uređaja&lt;br /&gt;
* korisnički definirani indikatori&lt;br /&gt;
&lt;br /&gt;
Programi su mogli testirati i postavljati SI bitove, što je omogućavalo primitivne oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
=== Memorija ===&lt;br /&gt;
IBM 704 koristio je [[magnetska jezgra|magnetsku jezgru]] (magnetic core memory) kapaciteta:&lt;br /&gt;
* 4096 riječi × 36 bita&lt;br /&gt;
&lt;br /&gt;
Ovo je bila jedna od najnaprednijih memorijskih tehnologija 1950-ih.&lt;br /&gt;
&lt;br /&gt;
=== Ulazno/izlazni sustav ===&lt;br /&gt;
Podržani uređaji uključivali su:&lt;br /&gt;
* magnetske vrpce&lt;br /&gt;
* čitač kartica&lt;br /&gt;
* bušilicu kartica&lt;br /&gt;
* pisač&lt;br /&gt;
* konzolu operatera&lt;br /&gt;
&lt;br /&gt;
I/O operacije su se signalizirale preko Sense Indicators.&lt;br /&gt;
&lt;br /&gt;
=== Instrukcijski format ===&lt;br /&gt;
Instrukcije su bile 36-bitne, s poljima:&lt;br /&gt;
* opkod&lt;br /&gt;
* adresa&lt;br /&gt;
* indeksni modifikator&lt;br /&gt;
* bitovi za uvjetno grananje&lt;br /&gt;
&lt;br /&gt;
Ovaj format omogućavao je fleksibilno adresiranje i kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
== Instrukcijski skup IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Glavne grupe instrukcija IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Grupa&lt;br /&gt;
! Primjeri&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Aritmetičke instrukcije&lt;br /&gt;
| ADD, SUB, MPY, DIV&lt;br /&gt;
| Operacije nad AC i MQ registrima; podrška za cijele brojeve i pomični zarez.&lt;br /&gt;
|-&lt;br /&gt;
| Logičke instrukcije&lt;br /&gt;
| CLA, CLM, COM&lt;br /&gt;
| Čišćenje, komplementiranje i manipulacija bitovima.&lt;br /&gt;
|-&lt;br /&gt;
| Uvjetno grananje&lt;br /&gt;
| TRA, TMI, TPL, TZE&lt;br /&gt;
| Skokovi ovisno o sadržaju AC ili MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Rad sa Sense Indicators&lt;br /&gt;
| TSI, SSI, RSI&lt;br /&gt;
| Testiranje, postavljanje i resetiranje statusnih bitova.&lt;br /&gt;
|-&lt;br /&gt;
| Indeksno adresiranje&lt;br /&gt;
| AXT, TXI&lt;br /&gt;
| Modifikacija adresa pomoću XR1, XR2, XR4.&lt;br /&gt;
|-&lt;br /&gt;
| Ulazno/izlazne instrukcije&lt;br /&gt;
| RDS, WRS, RWT&lt;br /&gt;
| Rad s magnetskom vrpcom, kartičnim čitačem i pisačem.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrola toka programa&lt;br /&gt;
| HLT, NOP&lt;br /&gt;
| Zaustavljanje programa, prazna instrukcija.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Opkodovi IBM 704 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Kompletan popis opkoda IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Opkod&lt;br /&gt;
! Mnemonik&lt;br /&gt;
! Grupa&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 000&lt;br /&gt;
| NOP&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Prazna instrukcija; ne radi ništa.&lt;br /&gt;
|-&lt;br /&gt;
| 001&lt;br /&gt;
| HLT&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Zaustavlja izvršavanje programa.&lt;br /&gt;
|-&lt;br /&gt;
| 002&lt;br /&gt;
| TRA&lt;br /&gt;
| Grananje&lt;br /&gt;
| Bezuvjetni skok na adresu.&lt;br /&gt;
|-&lt;br /&gt;
| 003&lt;br /&gt;
| TRN&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC negativan.&lt;br /&gt;
|-&lt;br /&gt;
| 004&lt;br /&gt;
| TMI&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC manji od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 005&lt;br /&gt;
| TPL&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC veći od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 006&lt;br /&gt;
| TZE&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC jednak nuli.&lt;br /&gt;
|-&lt;br /&gt;
| 007&lt;br /&gt;
| TOV&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je overflow zastavica postavljena.&lt;br /&gt;
|-&lt;br /&gt;
| 010&lt;br /&gt;
| ADD&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Zbrajanje sadržaja memorije s AC.&lt;br /&gt;
|-&lt;br /&gt;
| 011&lt;br /&gt;
| SUB&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Oduzimanje sadržaja memorije od AC.&lt;br /&gt;
|-&lt;br /&gt;
| 012&lt;br /&gt;
| MPY&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Množenje; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 013&lt;br /&gt;
| DIV&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Dijeljenje; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 014&lt;br /&gt;
| CLA&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 015&lt;br /&gt;
| CLM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 016&lt;br /&gt;
| COM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Komplementira AC.&lt;br /&gt;
|-&lt;br /&gt;
| 020&lt;br /&gt;
| SHL&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak ulijevo.&lt;br /&gt;
|-&lt;br /&gt;
| 021&lt;br /&gt;
| SHR&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak udesno.&lt;br /&gt;
|-&lt;br /&gt;
| 030&lt;br /&gt;
| AXT&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Učitava vrijednost u XR1, XR2 ili XR4.&lt;br /&gt;
|-&lt;br /&gt;
| 031&lt;br /&gt;
| TXI&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Dodaje vrijednost indeksnom registru.&lt;br /&gt;
|-&lt;br /&gt;
| 040&lt;br /&gt;
| RDS&lt;br /&gt;
| I/O&lt;br /&gt;
| Čitanje s magnetske vrpce.&lt;br /&gt;
|-&lt;br /&gt;
| 041&lt;br /&gt;
| WRS&lt;br /&gt;
| I/O&lt;br /&gt;
| Pisanje na magnetsku vrpcu.&lt;br /&gt;
|-&lt;br /&gt;
| 042&lt;br /&gt;
| RWT&lt;br /&gt;
| I/O&lt;br /&gt;
| Čekanje na I/O operaciju.&lt;br /&gt;
|-&lt;br /&gt;
| 050&lt;br /&gt;
| TSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Testira Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 051&lt;br /&gt;
| SSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Postavlja Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 052&lt;br /&gt;
| RSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Resetira Sense Indicator n.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Registri==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--             --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:88%;width:34em;&amp;quot;&lt;br /&gt;
|+ Registri u računalu IBM 704&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| style=&amp;quot;font-size:88%;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Podatkovni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | S&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | Q&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | P&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;14&amp;quot;| Akumulator&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | AC&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;1&amp;quot;| S&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;11&amp;quot;| Množitelj/Količnik&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | MQ&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;12&amp;quot;| Senzorni indikatori&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | SI&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 1&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR1 (XRA)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 2&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR2 (XRB)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 4 &lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR4 (XRC)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;14&amp;quot; | &#039;&#039;&#039;Brojač naredbi&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Brojač&amp;amp;nbsp;Naredbi&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| IC&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzorni indikatori&#039;&#039;&#039; - su posebni statusni bitovi u IBM 704 koj su se u praksi rabili za provjeru grešaka, grananje ovisno o stanju sustava, upravljanje perifernim jedinicama, te za signalizaciju posebnih događaja. Kroz njih programeri su mogli održavati stanje sustava, signalizirati određene uvjete tokom izvršavanje naredbi, čitanje i postavljanje naredbi i tako su služili za jednostane oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Sense Indicators (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! SI broj&lt;br /&gt;
! Naziv / funkcija&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Overflow flag&lt;br /&gt;
| Postavlja se pri prekoračenju rezultata u akumulatoru (AC) ili količniku (MQ).&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Divide check&lt;br /&gt;
| Signalizira pogrešku pri dijeljenju, uključujući dijeljenje nulom.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| I/O ready&lt;br /&gt;
| Uređaj spreman za prijenos podataka.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| I/O complete&lt;br /&gt;
| Završetak operacije ulaza/izlaza.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Tape mark&lt;br /&gt;
| Očitana oznaka kraja bloka na magnetskoj vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Printer ready&lt;br /&gt;
| Pisač spreman za rad.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Card reader ready&lt;br /&gt;
| Čitač kartica spreman.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Card punch ready&lt;br /&gt;
| Bušilica kartica spremna.&lt;br /&gt;
|-&lt;br /&gt;
| 8–15&lt;br /&gt;
| Peripheral flags&lt;br /&gt;
| Razni signali perifernih uređaja (disk, vrpca, pisač).&lt;br /&gt;
|-&lt;br /&gt;
| 16–35&lt;br /&gt;
| User-defined flags&lt;br /&gt;
| Zastavice koje programer može slobodno koristiti za logiku grananja.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Korištenje u IBM 704 assembleru ====&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao posebne instrukcije za rad sa Sense Indicators:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;TSI n&#039;&#039;&#039;&lt;br /&gt;
: Testira Sense Indicator &#039;&#039;n&#039;&#039;. Ako je postavljen, izvršavanje se nastavlja normalno; ako nije, preskače se sljedeća instrukcija.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3      / provjeri je li I/O complete&lt;br /&gt;
TRA DONE   / ako je postavljen, skoči na DONE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;SSI n&#039;&#039;&#039;&lt;br /&gt;
: Postavlja Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;RSI n&#039;&#039;&#039;&lt;br /&gt;
: Resetira Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 1      / provjeri divide check&lt;br /&gt;
TRA ERROR  / ako je SI1 = 1, idi na ERROR&lt;br /&gt;
&lt;br /&gt;
SSI 20     / postavi korisnički indikator 20&lt;br /&gt;
RSI 3      / resetiraj I/O complete indikator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Usporedba s modernim statusnim registrima ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! IBM 704 Sense Indicators&lt;br /&gt;
! Moderni statusni registri (x86, ARM, RISC-V)&lt;br /&gt;
|-&lt;br /&gt;
| 36 jednobitnih zastavica&lt;br /&gt;
| 8–32 bitni statusni registri&lt;br /&gt;
|-&lt;br /&gt;
| Ručno postavljanje i brisanje&lt;br /&gt;
| Automatsko postavljanje od strane ALU&lt;br /&gt;
|-&lt;br /&gt;
| Koriste se za I/O signalizaciju&lt;br /&gt;
| I/O signalizacija preko interrupt kontrolera&lt;br /&gt;
|-&lt;br /&gt;
| Jednostavne logičke zastavice&lt;br /&gt;
| Zastavice za aritmetiku, usporedbe, prekide&lt;br /&gt;
|-&lt;br /&gt;
| Programer koristi dio SI kao &amp;quot;user flags&amp;quot;&lt;br /&gt;
| Moderni jezici koriste varijable, strukture, objekte&lt;br /&gt;
|-&lt;br /&gt;
| Grananje preko TSI instrukcije&lt;br /&gt;
| Grananje preko CMP/JMP, BEQ/BNE, BLT/BGT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Primjeri IBM 704 assembler koda ==&lt;br /&gt;
&lt;br /&gt;
=== Zbrajanje dvaju brojeva ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj A u AC&lt;br /&gt;
ADD B        / dodaj B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Provjera negativnog broja ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA X        / učitaj X&lt;br /&gt;
TMI NEG      / ako je X &amp;lt; 0, idi na NEG&lt;br /&gt;
TRA DONE     / inače nastavi&lt;br /&gt;
NEG STO Y    / spremi negativnu vrijednost&lt;br /&gt;
DONE HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Množenje i dijeljenje ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A&lt;br /&gt;
MPY B        / AC*B → AC/MQ&lt;br /&gt;
DIV C        / (AC/MQ) / C → MQ (količnik), AC (ostatak)&lt;br /&gt;
STO Q        / spremi količnik&lt;br /&gt;
STO R        / spremi ostatak&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Korištenje Sense Indicators ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3        / provjeri I/O complete&lt;br /&gt;
TRA IO_OK    / ako je SI3 = 1, idi na IO_OK&lt;br /&gt;
SSI 20       / postavi korisnički indikator 20&lt;br /&gt;
IO_OK HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Performanse IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od najbržih znanstvenih računala svoje generacije. Njegova arhitektura s pomičnim zarezom, magnetskom jezgrom i specijaliziranim aritmetičkim registrima omogućavala je znatno bolje performanse u odnosu na prethodne modele IBM 701 i IBM 702. Sustav je bio optimiziran za matematičke operacije, simulacije, statističke izračune i obradu velikih numeričkih skupova podataka.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Performanse računala IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Brzina zbrajanja&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za izvršavanje jedne ADD instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina množenja&lt;br /&gt;
| ~20 μs&lt;br /&gt;
| Vrijeme za MPY instrukciju; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina dijeljenja&lt;br /&gt;
| ~38 μs&lt;br /&gt;
| Vrijeme za DIV instrukciju; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| Memorija&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Magnetska jezgra; pristup ~12 μs.&lt;br /&gt;
|-&lt;br /&gt;
| Ciklus instrukcije&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Prosječno vrijeme za dohvat i izvršavanje jednostavne instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina I/O operacija&lt;br /&gt;
| 7200 kartica/min (čitač)&lt;br /&gt;
| Kartični čitač i bušilica bili su glavni ulazno/izlazni sustavi.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| 12 500 znakovnih blokova/s&lt;br /&gt;
| Ovisno o uređaju; korišteno za masovno spremanje podataka.&lt;br /&gt;
|-&lt;br /&gt;
| Preciznost pomičnog zareza&lt;br /&gt;
| 27-bitni eksponent + 8-bitna mantisa&lt;br /&gt;
| Omogućavalo znanstvene izračune velike preciznosti.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Izvori==&lt;br /&gt;
{{izvori}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorija:IBM]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787627</id>
		<title>IBM 704</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787627"/>
		<updated>2026-07-07T09:56:31Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;IBM 704&#039;&#039;&#039; ime je za računalo prve generacije koje je razvila tvrtka [[IBM]] i jedan je iz serije računala IBM 700. Ovo računalo se proizvodilo od 1954. do 1964. godine.&amp;lt;ref&amp;gt;https://www.ibm.com/history/700&amp;lt;/ref&amp;gt;. Povijesna važnost ovog računala jest da je na njemu bio razvijen programski jezik [[FORTRAN]] i [[LISP]] te SAP asembler. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Povijest razvoja IBM 700 serije ==&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija bila je prva generacija komercijalnih znanstvenih računala koju je IBM razvio početkom 1950-ih. Serija je započela s modelom IBM 701 (1952.), poznatim kao „Defense Calculator“, koji je bio namijenjen vojnoj i zrakoplovnoj industriji.&lt;br /&gt;
&lt;br /&gt;
* IBM 702 (1953.) bio je poslovno orijentiran sustav, dok je IBM 703 bio eksperimentalni model.&lt;br /&gt;
* IBM 704 je postao temelj za razvoj FORTRAN-a (1957.), prvog visokorazinskog programskog jezika.&lt;br /&gt;
&lt;br /&gt;
Pravi tehnološki iskorak dogodio se s modelom &#039;&#039;&#039;IBM 704&#039;&#039;&#039; (1954.), prvim računalom koje je podržavalo:&lt;br /&gt;
* aritmetiku s pomičnim zarezom,&lt;br /&gt;
* indeksne registre,&lt;br /&gt;
* statusne indikatore,&lt;br /&gt;
* magnetsku jezgru kao primarnu memoriju.&lt;br /&gt;
&lt;br /&gt;
Serija se nastavila s modelima IBM 709 (1958.) i IBM 7090 (1959.), koji su bili tranzistorski nasljednici i koristili se u NASA-i, NORAD-u i velikim znanstvenim centrima.&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija ostavila je dubok trag u povijesti računarstva, postavivši standarde arhitekture koji su se zadržali desetljećima.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arhitektura IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od prvih komercijalnih računala koje je uvodilo napredne koncepte arhitekture, uključujući rad s pomičnim zarezom, indeksne registre i statusne indikatore. Sustav je bio dizajniran za znanstvene i tehničke izračune, što ga je činilo ključnim alatom u laboratorijima, sveučilištima i ranim zrakoplovnim projektima.&lt;br /&gt;
&lt;br /&gt;
=== Aritmetička jedinica (AC i MQ) ===&lt;br /&gt;
Aritmetička jedinica sastojala se od dva glavna 36-bitna registra:&lt;br /&gt;
* &#039;&#039;&#039;AC (Accumulator)&#039;&#039;&#039; – glavni registar za aritmetiku.&lt;br /&gt;
* &#039;&#039;&#039;MQ (Multiplier/Quotient)&#039;&#039;&#039; – registar za množenje i dijeljenje.&lt;br /&gt;
&lt;br /&gt;
Ova dva registra zajedno su omogućavala učinkovite operacije nad velikim brojevima i pomičnim zarezom.&lt;br /&gt;
&lt;br /&gt;
=== Indeksni registri (XR1, XR2, XR4) ===&lt;br /&gt;
IBM 704 je koristio tri indeksna registra:&lt;br /&gt;
* &#039;&#039;&#039;XR1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Indeksni registri omogućavali su modifikaciju adresa, implementaciju petlji i rad s velikim poljima podataka. Ovo je bio preteča modernog adresiranja u procesorima.&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori (SI) ===&lt;br /&gt;
Sustav je imao 36 senzorskih indikatora koji su služili kao statusne zastavice:&lt;br /&gt;
* indikatori grešaka (overflow, divide check)&lt;br /&gt;
* indikatori stanja I/O uređaja&lt;br /&gt;
* korisnički definirani indikatori&lt;br /&gt;
&lt;br /&gt;
Programi su mogli testirati i postavljati SI bitove, što je omogućavalo primitivne oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
=== Memorija ===&lt;br /&gt;
IBM 704 koristio je [[magnetska jezgra|magnetsku jezgru]] (magnetic core memory) kapaciteta:&lt;br /&gt;
* 4096 riječi × 36 bita&lt;br /&gt;
&lt;br /&gt;
Ovo je bila jedna od najnaprednijih memorijskih tehnologija 1950-ih.&lt;br /&gt;
&lt;br /&gt;
=== Ulazno/izlazni sustav ===&lt;br /&gt;
Podržani uređaji uključivali su:&lt;br /&gt;
* magnetske vrpce&lt;br /&gt;
* čitač kartica&lt;br /&gt;
* bušilicu kartica&lt;br /&gt;
* pisač&lt;br /&gt;
* konzolu operatera&lt;br /&gt;
&lt;br /&gt;
I/O operacije su se signalizirale preko Sense Indicators.&lt;br /&gt;
&lt;br /&gt;
=== Instrukcijski format ===&lt;br /&gt;
Instrukcije su bile 36-bitne, s poljima:&lt;br /&gt;
* opkod&lt;br /&gt;
* adresa&lt;br /&gt;
* indeksni modifikator&lt;br /&gt;
* bitovi za uvjetno grananje&lt;br /&gt;
&lt;br /&gt;
Ovaj format omogućavao je fleksibilno adresiranje i kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instrukcijski skup IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Glavne grupe instrukcija IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Grupa&lt;br /&gt;
! Primjeri&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Aritmetičke instrukcije&lt;br /&gt;
| ADD, SUB, MPY, DIV&lt;br /&gt;
| Operacije nad AC i MQ registrima; podrška za cijele brojeve i pomični zarez.&lt;br /&gt;
|-&lt;br /&gt;
| Logičke instrukcije&lt;br /&gt;
| CLA, CLM, COM&lt;br /&gt;
| Čišćenje, komplementiranje i manipulacija bitovima.&lt;br /&gt;
|-&lt;br /&gt;
| Uvjetno grananje&lt;br /&gt;
| TRA, TMI, TPL, TZE&lt;br /&gt;
| Skokovi ovisno o sadržaju AC ili MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Rad sa Sense Indicators&lt;br /&gt;
| TSI, SSI, RSI&lt;br /&gt;
| Testiranje, postavljanje i resetiranje statusnih bitova.&lt;br /&gt;
|-&lt;br /&gt;
| Indeksno adresiranje&lt;br /&gt;
| AXT, TXI&lt;br /&gt;
| Modifikacija adresa pomoću XR1, XR2, XR4.&lt;br /&gt;
|-&lt;br /&gt;
| Ulazno/izlazne instrukcije&lt;br /&gt;
| RDS, WRS, RWT&lt;br /&gt;
| Rad s magnetskom vrpcom, kartičnim čitačem i pisačem.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrola toka programa&lt;br /&gt;
| HLT, NOP&lt;br /&gt;
| Zaustavljanje programa, prazna instrukcija.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Opkodovi IBM 704 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Kompletan popis opkoda IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Opkod&lt;br /&gt;
! Mnemonik&lt;br /&gt;
! Grupa&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 000&lt;br /&gt;
| NOP&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Prazna instrukcija; ne radi ništa.&lt;br /&gt;
|-&lt;br /&gt;
| 001&lt;br /&gt;
| HLT&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Zaustavlja izvršavanje programa.&lt;br /&gt;
|-&lt;br /&gt;
| 002&lt;br /&gt;
| TRA&lt;br /&gt;
| Grananje&lt;br /&gt;
| Bezuvjetni skok na adresu.&lt;br /&gt;
|-&lt;br /&gt;
| 003&lt;br /&gt;
| TRN&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC negativan.&lt;br /&gt;
|-&lt;br /&gt;
| 004&lt;br /&gt;
| TMI&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC manji od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 005&lt;br /&gt;
| TPL&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC veći od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 006&lt;br /&gt;
| TZE&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC jednak nuli.&lt;br /&gt;
|-&lt;br /&gt;
| 007&lt;br /&gt;
| TOV&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je overflow zastavica postavljena.&lt;br /&gt;
|-&lt;br /&gt;
| 010&lt;br /&gt;
| ADD&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Zbrajanje sadržaja memorije s AC.&lt;br /&gt;
|-&lt;br /&gt;
| 011&lt;br /&gt;
| SUB&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Oduzimanje sadržaja memorije od AC.&lt;br /&gt;
|-&lt;br /&gt;
| 012&lt;br /&gt;
| MPY&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Množenje; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 013&lt;br /&gt;
| DIV&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Dijeljenje; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 014&lt;br /&gt;
| CLA&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 015&lt;br /&gt;
| CLM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 016&lt;br /&gt;
| COM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Komplementira AC.&lt;br /&gt;
|-&lt;br /&gt;
| 020&lt;br /&gt;
| SHL&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak ulijevo.&lt;br /&gt;
|-&lt;br /&gt;
| 021&lt;br /&gt;
| SHR&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak udesno.&lt;br /&gt;
|-&lt;br /&gt;
| 030&lt;br /&gt;
| AXT&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Učitava vrijednost u XR1, XR2 ili XR4.&lt;br /&gt;
|-&lt;br /&gt;
| 031&lt;br /&gt;
| TXI&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Dodaje vrijednost indeksnom registru.&lt;br /&gt;
|-&lt;br /&gt;
| 040&lt;br /&gt;
| RDS&lt;br /&gt;
| I/O&lt;br /&gt;
| Čitanje s magnetske vrpce.&lt;br /&gt;
|-&lt;br /&gt;
| 041&lt;br /&gt;
| WRS&lt;br /&gt;
| I/O&lt;br /&gt;
| Pisanje na magnetsku vrpcu.&lt;br /&gt;
|-&lt;br /&gt;
| 042&lt;br /&gt;
| RWT&lt;br /&gt;
| I/O&lt;br /&gt;
| Čekanje na I/O operaciju.&lt;br /&gt;
|-&lt;br /&gt;
| 050&lt;br /&gt;
| TSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Testira Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 051&lt;br /&gt;
| SSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Postavlja Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 052&lt;br /&gt;
| RSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Resetira Sense Indicator n.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Registri==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--             --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:88%;width:34em;&amp;quot;&lt;br /&gt;
|+ Registri u računalu IBM 704&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| style=&amp;quot;font-size:88%;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Podatkovni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | S&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | Q&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | P&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;14&amp;quot;| Akumulator&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | AC&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;1&amp;quot;| S&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;11&amp;quot;| Množitelj/Količnik&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | MQ&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;12&amp;quot;| Senzorni indikatori&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | SI&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 1&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR1 (XRA)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 2&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR2 (XRB)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 4 &lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR4 (XRC)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;14&amp;quot; | &#039;&#039;&#039;Brojač naredbi&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Brojač&amp;amp;nbsp;Naredbi&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| IC&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzorni indikatori&#039;&#039;&#039; - su posebni statusni bitovi u IBM 704 koj su se u praksi rabili za provjeru grešaka, grananje ovisno o stanju sustava, upravljanje perifernim jedinicama, te za signalizaciju posebnih događaja. Kroz njih programeri su mogli održavati stanje sustava, signalizirati određene uvjete tokom izvršavanje naredbi, čitanje i postavljanje naredbi i tako su služili za jednostane oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Sense Indicators (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! SI broj&lt;br /&gt;
! Naziv / funkcija&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Overflow flag&lt;br /&gt;
| Postavlja se pri prekoračenju rezultata u akumulatoru (AC) ili količniku (MQ).&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Divide check&lt;br /&gt;
| Signalizira pogrešku pri dijeljenju, uključujući dijeljenje nulom.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| I/O ready&lt;br /&gt;
| Uređaj spreman za prijenos podataka.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| I/O complete&lt;br /&gt;
| Završetak operacije ulaza/izlaza.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Tape mark&lt;br /&gt;
| Očitana oznaka kraja bloka na magnetskoj vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Printer ready&lt;br /&gt;
| Pisač spreman za rad.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Card reader ready&lt;br /&gt;
| Čitač kartica spreman.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Card punch ready&lt;br /&gt;
| Bušilica kartica spremna.&lt;br /&gt;
|-&lt;br /&gt;
| 8–15&lt;br /&gt;
| Peripheral flags&lt;br /&gt;
| Razni signali perifernih uređaja (disk, vrpca, pisač).&lt;br /&gt;
|-&lt;br /&gt;
| 16–35&lt;br /&gt;
| User-defined flags&lt;br /&gt;
| Zastavice koje programer može slobodno koristiti za logiku grananja.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Korištenje u IBM 704 assembleru ====&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao posebne instrukcije za rad sa Sense Indicators:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;TSI n&#039;&#039;&#039;&lt;br /&gt;
: Testira Sense Indicator &#039;&#039;n&#039;&#039;. Ako je postavljen, izvršavanje se nastavlja normalno; ako nije, preskače se sljedeća instrukcija.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3      / provjeri je li I/O complete&lt;br /&gt;
TRA DONE   / ako je postavljen, skoči na DONE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;SSI n&#039;&#039;&#039;&lt;br /&gt;
: Postavlja Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;RSI n&#039;&#039;&#039;&lt;br /&gt;
: Resetira Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 1      / provjeri divide check&lt;br /&gt;
TRA ERROR  / ako je SI1 = 1, idi na ERROR&lt;br /&gt;
&lt;br /&gt;
SSI 20     / postavi korisnički indikator 20&lt;br /&gt;
RSI 3      / resetiraj I/O complete indikator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Usporedba s modernim statusnim registrima ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! IBM 704 Sense Indicators&lt;br /&gt;
! Moderni statusni registri (x86, ARM, RISC-V)&lt;br /&gt;
|-&lt;br /&gt;
| 36 jednobitnih zastavica&lt;br /&gt;
| 8–32 bitni statusni registri&lt;br /&gt;
|-&lt;br /&gt;
| Ručno postavljanje i brisanje&lt;br /&gt;
| Automatsko postavljanje od strane ALU&lt;br /&gt;
|-&lt;br /&gt;
| Koriste se za I/O signalizaciju&lt;br /&gt;
| I/O signalizacija preko interrupt kontrolera&lt;br /&gt;
|-&lt;br /&gt;
| Jednostavne logičke zastavice&lt;br /&gt;
| Zastavice za aritmetiku, usporedbe, prekide&lt;br /&gt;
|-&lt;br /&gt;
| Programer koristi dio SI kao &amp;quot;user flags&amp;quot;&lt;br /&gt;
| Moderni jezici koriste varijable, strukture, objekte&lt;br /&gt;
|-&lt;br /&gt;
| Grananje preko TSI instrukcije&lt;br /&gt;
| Grananje preko CMP/JMP, BEQ/BNE, BLT/BGT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Primjeri IBM 704 assembler koda ==&lt;br /&gt;
&lt;br /&gt;
=== Zbrajanje dvaju brojeva ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj A u AC&lt;br /&gt;
ADD B        / dodaj B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Provjera negativnog broja ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA X        / učitaj X&lt;br /&gt;
TMI NEG      / ako je X &amp;lt; 0, idi na NEG&lt;br /&gt;
TRA DONE     / inače nastavi&lt;br /&gt;
NEG STO Y    / spremi negativnu vrijednost&lt;br /&gt;
DONE HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Množenje i dijeljenje ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A&lt;br /&gt;
MPY B        / AC*B → AC/MQ&lt;br /&gt;
DIV C        / (AC/MQ) / C → MQ (količnik), AC (ostatak)&lt;br /&gt;
STO Q        / spremi količnik&lt;br /&gt;
STO R        / spremi ostatak&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Korištenje Sense Indicators ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3        / provjeri I/O complete&lt;br /&gt;
TRA IO_OK    / ako je SI3 = 1, idi na IO_OK&lt;br /&gt;
SSI 20       / postavi korisnički indikator 20&lt;br /&gt;
IO_OK HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Performanse IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od najbržih znanstvenih računala svoje generacije. Njegova arhitektura s pomičnim zarezom, magnetskom jezgrom i specijaliziranim aritmetičkim registrima omogućavala je znatno bolje performanse u odnosu na prethodne modele IBM 701 i IBM 702. Sustav je bio optimiziran za matematičke operacije, simulacije, statističke izračune i obradu velikih numeričkih skupova podataka.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Performanse računala IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Parametar&lt;br /&gt;
! Vrijednost&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Brzina zbrajanja&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Vrijeme potrebno za izvršavanje jedne ADD instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina množenja&lt;br /&gt;
| ~20 μs&lt;br /&gt;
| Vrijeme za MPY instrukciju; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina dijeljenja&lt;br /&gt;
| ~38 μs&lt;br /&gt;
| Vrijeme za DIV instrukciju; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| Memorija&lt;br /&gt;
| 4096 riječi × 36 bita&lt;br /&gt;
| Magnetska jezgra; pristup ~12 μs.&lt;br /&gt;
|-&lt;br /&gt;
| Ciklus instrukcije&lt;br /&gt;
| ~12 μs&lt;br /&gt;
| Prosječno vrijeme za dohvat i izvršavanje jednostavne instrukcije.&lt;br /&gt;
|-&lt;br /&gt;
| Brzina I/O operacija&lt;br /&gt;
| 7200 kartica/min (čitač)&lt;br /&gt;
| Kartični čitač i bušilica bili su glavni ulazno/izlazni sustavi.&lt;br /&gt;
|-&lt;br /&gt;
| Magnetske vrpce&lt;br /&gt;
| 12 500 znakovnih blokova/s&lt;br /&gt;
| Ovisno o uređaju; korišteno za masovno spremanje podataka.&lt;br /&gt;
|-&lt;br /&gt;
| Preciznost pomičnog zareza&lt;br /&gt;
| 27-bitni eksponent + 8-bitna mantisa&lt;br /&gt;
| Omogućavalo znanstvene izračune velike preciznosti.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Izvori==&lt;br /&gt;
{{izvori}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorija:IBM]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787626</id>
		<title>IBM 704</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787626"/>
		<updated>2026-07-07T09:45:03Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Povijest razvoja IBM 700 serije ==&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija bila je prva generacija komercijalnih znanstvenih računala koju je IBM razvio početkom 1950-ih. Serija je započela s modelom IBM 701 (1952.), poznatim kao „Defense Calculator“, koji je bio namijenjen vojnoj i zrakoplovnoj industriji.&lt;br /&gt;
&lt;br /&gt;
* IBM 702 (1953.) bio je poslovno orijentiran sustav, dok je IBM 703 bio eksperimentalni model.&lt;br /&gt;
* IBM 704 je postao temelj za razvoj FORTRAN-a (1957.), prvog visokorazinskog programskog jezika.&lt;br /&gt;
&lt;br /&gt;
Pravi tehnološki iskorak dogodio se s modelom &#039;&#039;&#039;IBM 704&#039;&#039;&#039; (1954.), prvim računalom koje je podržavalo:&lt;br /&gt;
* aritmetiku s pomičnim zarezom,&lt;br /&gt;
* indeksne registre,&lt;br /&gt;
* statusne indikatore,&lt;br /&gt;
* magnetsku jezgru kao primarnu memoriju.&lt;br /&gt;
&lt;br /&gt;
Serija se nastavila s modelima IBM 709 (1958.) i IBM 7090 (1959.), koji su bili tranzistorski nasljednici i koristili se u NASA-i, NORAD-u i velikim znanstvenim centrima.&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija ostavila je dubok trag u povijesti računarstva, postavivši standarde arhitekture koji su se zadržali desetljećima.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arhitektura IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od prvih komercijalnih računala koje je uvodilo napredne koncepte arhitekture, uključujući rad s pomičnim zarezom, indeksne registre i statusne indikatore. Sustav je bio dizajniran za znanstvene i tehničke izračune, što ga je činilo ključnim alatom u laboratorijima, sveučilištima i ranim zrakoplovnim projektima.&lt;br /&gt;
&lt;br /&gt;
=== Aritmetička jedinica (AC i MQ) ===&lt;br /&gt;
Aritmetička jedinica sastojala se od dva glavna 36-bitna registra:&lt;br /&gt;
* &#039;&#039;&#039;AC (Accumulator)&#039;&#039;&#039; – glavni registar za aritmetiku.&lt;br /&gt;
* &#039;&#039;&#039;MQ (Multiplier/Quotient)&#039;&#039;&#039; – registar za množenje i dijeljenje.&lt;br /&gt;
&lt;br /&gt;
Ova dva registra zajedno su omogućavala učinkovite operacije nad velikim brojevima i pomičnim zarezom.&lt;br /&gt;
&lt;br /&gt;
=== Indeksni registri (XR1, XR2, XR4) ===&lt;br /&gt;
IBM 704 je koristio tri indeksna registra:&lt;br /&gt;
* &#039;&#039;&#039;XR1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Indeksni registri omogućavali su modifikaciju adresa, implementaciju petlji i rad s velikim poljima podataka. Ovo je bio preteča modernog adresiranja u procesorima.&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori (SI) ===&lt;br /&gt;
Sustav je imao 36 senzorskih indikatora koji su služili kao statusne zastavice:&lt;br /&gt;
* indikatori grešaka (overflow, divide check)&lt;br /&gt;
* indikatori stanja I/O uređaja&lt;br /&gt;
* korisnički definirani indikatori&lt;br /&gt;
&lt;br /&gt;
Programi su mogli testirati i postavljati SI bitove, što je omogućavalo primitivne oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
=== Memorija ===&lt;br /&gt;
IBM 704 koristio je [[magnetska jezgra|magnetsku jezgru]] (magnetic core memory) kapaciteta:&lt;br /&gt;
* 4096 riječi × 36 bita&lt;br /&gt;
&lt;br /&gt;
Ovo je bila jedna od najnaprednijih memorijskih tehnologija 1950-ih.&lt;br /&gt;
&lt;br /&gt;
=== Ulazno/izlazni sustav ===&lt;br /&gt;
Podržani uređaji uključivali su:&lt;br /&gt;
* magnetske vrpce&lt;br /&gt;
* čitač kartica&lt;br /&gt;
* bušilicu kartica&lt;br /&gt;
* pisač&lt;br /&gt;
* konzolu operatera&lt;br /&gt;
&lt;br /&gt;
I/O operacije su se signalizirale preko Sense Indicators.&lt;br /&gt;
&lt;br /&gt;
=== Instrukcijski format ===&lt;br /&gt;
Instrukcije su bile 36-bitne, s poljima:&lt;br /&gt;
* opkod&lt;br /&gt;
* adresa&lt;br /&gt;
* indeksni modifikator&lt;br /&gt;
* bitovi za uvjetno grananje&lt;br /&gt;
&lt;br /&gt;
Ovaj format omogućavao je fleksibilno adresiranje i kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instrukcijski skup IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Glavne grupe instrukcija IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Grupa&lt;br /&gt;
! Primjeri&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Aritmetičke instrukcije&lt;br /&gt;
| ADD, SUB, MPY, DIV&lt;br /&gt;
| Operacije nad AC i MQ registrima; podrška za cijele brojeve i pomični zarez.&lt;br /&gt;
|-&lt;br /&gt;
| Logičke instrukcije&lt;br /&gt;
| CLA, CLM, COM&lt;br /&gt;
| Čišćenje, komplementiranje i manipulacija bitovima.&lt;br /&gt;
|-&lt;br /&gt;
| Uvjetno grananje&lt;br /&gt;
| TRA, TMI, TPL, TZE&lt;br /&gt;
| Skokovi ovisno o sadržaju AC ili MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Rad sa Sense Indicators&lt;br /&gt;
| TSI, SSI, RSI&lt;br /&gt;
| Testiranje, postavljanje i resetiranje statusnih bitova.&lt;br /&gt;
|-&lt;br /&gt;
| Indeksno adresiranje&lt;br /&gt;
| AXT, TXI&lt;br /&gt;
| Modifikacija adresa pomoću XR1, XR2, XR4.&lt;br /&gt;
|-&lt;br /&gt;
| Ulazno/izlazne instrukcije&lt;br /&gt;
| RDS, WRS, RWT&lt;br /&gt;
| Rad s magnetskom vrpcom, kartičnim čitačem i pisačem.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrola toka programa&lt;br /&gt;
| HLT, NOP&lt;br /&gt;
| Zaustavljanje programa, prazna instrukcija.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Opkodovi IBM 704 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Kompletan popis opkoda IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Opkod&lt;br /&gt;
! Mnemonik&lt;br /&gt;
! Grupa&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 000&lt;br /&gt;
| NOP&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Prazna instrukcija; ne radi ništa.&lt;br /&gt;
|-&lt;br /&gt;
| 001&lt;br /&gt;
| HLT&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Zaustavlja izvršavanje programa.&lt;br /&gt;
|-&lt;br /&gt;
| 002&lt;br /&gt;
| TRA&lt;br /&gt;
| Grananje&lt;br /&gt;
| Bezuvjetni skok na adresu.&lt;br /&gt;
|-&lt;br /&gt;
| 003&lt;br /&gt;
| TRN&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC negativan.&lt;br /&gt;
|-&lt;br /&gt;
| 004&lt;br /&gt;
| TMI&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC manji od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 005&lt;br /&gt;
| TPL&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC veći od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 006&lt;br /&gt;
| TZE&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC jednak nuli.&lt;br /&gt;
|-&lt;br /&gt;
| 007&lt;br /&gt;
| TOV&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je overflow zastavica postavljena.&lt;br /&gt;
|-&lt;br /&gt;
| 010&lt;br /&gt;
| ADD&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Zbrajanje sadržaja memorije s AC.&lt;br /&gt;
|-&lt;br /&gt;
| 011&lt;br /&gt;
| SUB&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Oduzimanje sadržaja memorije od AC.&lt;br /&gt;
|-&lt;br /&gt;
| 012&lt;br /&gt;
| MPY&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Množenje; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 013&lt;br /&gt;
| DIV&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Dijeljenje; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 014&lt;br /&gt;
| CLA&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 015&lt;br /&gt;
| CLM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 016&lt;br /&gt;
| COM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Komplementira AC.&lt;br /&gt;
|-&lt;br /&gt;
| 020&lt;br /&gt;
| SHL&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak ulijevo.&lt;br /&gt;
|-&lt;br /&gt;
| 021&lt;br /&gt;
| SHR&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak udesno.&lt;br /&gt;
|-&lt;br /&gt;
| 030&lt;br /&gt;
| AXT&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Učitava vrijednost u XR1, XR2 ili XR4.&lt;br /&gt;
|-&lt;br /&gt;
| 031&lt;br /&gt;
| TXI&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Dodaje vrijednost indeksnom registru.&lt;br /&gt;
|-&lt;br /&gt;
| 040&lt;br /&gt;
| RDS&lt;br /&gt;
| I/O&lt;br /&gt;
| Čitanje s magnetske vrpce.&lt;br /&gt;
|-&lt;br /&gt;
| 041&lt;br /&gt;
| WRS&lt;br /&gt;
| I/O&lt;br /&gt;
| Pisanje na magnetsku vrpcu.&lt;br /&gt;
|-&lt;br /&gt;
| 042&lt;br /&gt;
| RWT&lt;br /&gt;
| I/O&lt;br /&gt;
| Čekanje na I/O operaciju.&lt;br /&gt;
|-&lt;br /&gt;
| 050&lt;br /&gt;
| TSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Testira Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 051&lt;br /&gt;
| SSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Postavlja Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 052&lt;br /&gt;
| RSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Resetira Sense Indicator n.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Registri==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--             --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:88%;width:34em;&amp;quot;&lt;br /&gt;
|+ Registri u računalu IBM 704&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| style=&amp;quot;font-size:88%;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Podatkovni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | S&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | Q&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | P&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;14&amp;quot;| Akumulator&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | AC&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;1&amp;quot;| S&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;11&amp;quot;| Množitelj/Količnik&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | MQ&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;12&amp;quot;| Senzorni indikatori&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | SI&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 1&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR1 (XRA)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 2&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR2 (XRB)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 4 &lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR4 (XRC)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;14&amp;quot; | &#039;&#039;&#039;Brojač naredbi&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Brojač&amp;amp;nbsp;Naredbi&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| IC&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzorni indikatori&#039;&#039;&#039; - su posebni statusni bitovi u IBM 704 koj su se u praksi rabili za provjeru grešaka, grananje ovisno o stanju sustava, upravljanje perifernim jedinicama, te za signalizaciju posebnih događaja. Kroz njih programeri su mogli održavati stanje sustava, signalizirati određene uvjete tokom izvršavanje naredbi, čitanje i postavljanje naredbi i tako su služili za jednostane oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Sense Indicators (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! SI broj&lt;br /&gt;
! Naziv / funkcija&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Overflow flag&lt;br /&gt;
| Postavlja se pri prekoračenju rezultata u akumulatoru (AC) ili količniku (MQ).&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Divide check&lt;br /&gt;
| Signalizira pogrešku pri dijeljenju, uključujući dijeljenje nulom.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| I/O ready&lt;br /&gt;
| Uređaj spreman za prijenos podataka.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| I/O complete&lt;br /&gt;
| Završetak operacije ulaza/izlaza.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Tape mark&lt;br /&gt;
| Očitana oznaka kraja bloka na magnetskoj vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Printer ready&lt;br /&gt;
| Pisač spreman za rad.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Card reader ready&lt;br /&gt;
| Čitač kartica spreman.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Card punch ready&lt;br /&gt;
| Bušilica kartica spremna.&lt;br /&gt;
|-&lt;br /&gt;
| 8–15&lt;br /&gt;
| Peripheral flags&lt;br /&gt;
| Razni signali perifernih uređaja (disk, vrpca, pisač).&lt;br /&gt;
|-&lt;br /&gt;
| 16–35&lt;br /&gt;
| User-defined flags&lt;br /&gt;
| Zastavice koje programer može slobodno koristiti za logiku grananja.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Korištenje u IBM 704 assembleru ====&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao posebne instrukcije za rad sa Sense Indicators:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;TSI n&#039;&#039;&#039;&lt;br /&gt;
: Testira Sense Indicator &#039;&#039;n&#039;&#039;. Ako je postavljen, izvršavanje se nastavlja normalno; ako nije, preskače se sljedeća instrukcija.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3      / provjeri je li I/O complete&lt;br /&gt;
TRA DONE   / ako je postavljen, skoči na DONE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;SSI n&#039;&#039;&#039;&lt;br /&gt;
: Postavlja Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;RSI n&#039;&#039;&#039;&lt;br /&gt;
: Resetira Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 1      / provjeri divide check&lt;br /&gt;
TRA ERROR  / ako je SI1 = 1, idi na ERROR&lt;br /&gt;
&lt;br /&gt;
SSI 20     / postavi korisnički indikator 20&lt;br /&gt;
RSI 3      / resetiraj I/O complete indikator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Usporedba s modernim statusnim registrima ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! IBM 704 Sense Indicators&lt;br /&gt;
! Moderni statusni registri (x86, ARM, RISC-V)&lt;br /&gt;
|-&lt;br /&gt;
| 36 jednobitnih zastavica&lt;br /&gt;
| 8–32 bitni statusni registri&lt;br /&gt;
|-&lt;br /&gt;
| Ručno postavljanje i brisanje&lt;br /&gt;
| Automatsko postavljanje od strane ALU&lt;br /&gt;
|-&lt;br /&gt;
| Koriste se za I/O signalizaciju&lt;br /&gt;
| I/O signalizacija preko interrupt kontrolera&lt;br /&gt;
|-&lt;br /&gt;
| Jednostavne logičke zastavice&lt;br /&gt;
| Zastavice za aritmetiku, usporedbe, prekide&lt;br /&gt;
|-&lt;br /&gt;
| Programer koristi dio SI kao &amp;quot;user flags&amp;quot;&lt;br /&gt;
| Moderni jezici koriste varijable, strukture, objekte&lt;br /&gt;
|-&lt;br /&gt;
| Grananje preko TSI instrukcije&lt;br /&gt;
| Grananje preko CMP/JMP, BEQ/BNE, BLT/BGT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Primjeri IBM 704 assembler koda ==&lt;br /&gt;
&lt;br /&gt;
=== Zbrajanje dvaju brojeva ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A        / učitaj A u AC&lt;br /&gt;
ADD B        / dodaj B&lt;br /&gt;
STO C        / spremi rezultat u C&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Provjera negativnog broja ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA X        / učitaj X&lt;br /&gt;
TMI NEG      / ako je X &amp;lt; 0, idi na NEG&lt;br /&gt;
TRA DONE     / inače nastavi&lt;br /&gt;
NEG STO Y    / spremi negativnu vrijednost&lt;br /&gt;
DONE HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Množenje i dijeljenje ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
CLA A&lt;br /&gt;
MPY B        / AC*B → AC/MQ&lt;br /&gt;
DIV C        / (AC/MQ) / C → MQ (količnik), AC (ostatak)&lt;br /&gt;
STO Q        / spremi količnik&lt;br /&gt;
STO R        / spremi ostatak&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Korištenje Sense Indicators ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3        / provjeri I/O complete&lt;br /&gt;
TRA IO_OK    / ako je SI3 = 1, idi na IO_OK&lt;br /&gt;
SSI 20       / postavi korisnički indikator 20&lt;br /&gt;
IO_OK HLT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787625</id>
		<title>IBM 704</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787625"/>
		<updated>2026-07-07T09:44:10Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Povijest razvoja IBM 700 serije ==&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija bila je prva generacija komercijalnih znanstvenih računala koju je IBM razvio početkom 1950-ih. Serija je započela s modelom IBM 701 (1952.), poznatim kao „Defense Calculator“, koji je bio namijenjen vojnoj i zrakoplovnoj industriji.&lt;br /&gt;
&lt;br /&gt;
* IBM 702 (1953.) bio je poslovno orijentiran sustav, dok je IBM 703 bio eksperimentalni model.&lt;br /&gt;
* IBM 704 je postao temelj za razvoj FORTRAN-a (1957.), prvog visokorazinskog programskog jezika.&lt;br /&gt;
&lt;br /&gt;
Pravi tehnološki iskorak dogodio se s modelom &#039;&#039;&#039;IBM 704&#039;&#039;&#039; (1954.), prvim računalom koje je podržavalo:&lt;br /&gt;
* aritmetiku s pomičnim zarezom,&lt;br /&gt;
* indeksne registre,&lt;br /&gt;
* statusne indikatore,&lt;br /&gt;
* magnetsku jezgru kao primarnu memoriju.&lt;br /&gt;
&lt;br /&gt;
Serija se nastavila s modelima IBM 709 (1958.) i IBM 7090 (1959.), koji su bili tranzistorski nasljednici i koristili se u NASA-i, NORAD-u i velikim znanstvenim centrima.&lt;br /&gt;
&lt;br /&gt;
IBM 700 serija ostavila je dubok trag u povijesti računarstva, postavivši standarde arhitekture koji su se zadržali desetljećima.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arhitektura IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od prvih komercijalnih računala koje je uvodilo napredne koncepte arhitekture, uključujući rad s pomičnim zarezom, indeksne registre i statusne indikatore. Sustav je bio dizajniran za znanstvene i tehničke izračune, što ga je činilo ključnim alatom u laboratorijima, sveučilištima i ranim zrakoplovnim projektima.&lt;br /&gt;
&lt;br /&gt;
=== Aritmetička jedinica (AC i MQ) ===&lt;br /&gt;
Aritmetička jedinica sastojala se od dva glavna 36-bitna registra:&lt;br /&gt;
* &#039;&#039;&#039;AC (Accumulator)&#039;&#039;&#039; – glavni registar za aritmetiku.&lt;br /&gt;
* &#039;&#039;&#039;MQ (Multiplier/Quotient)&#039;&#039;&#039; – registar za množenje i dijeljenje.&lt;br /&gt;
&lt;br /&gt;
Ova dva registra zajedno su omogućavala učinkovite operacije nad velikim brojevima i pomičnim zarezom.&lt;br /&gt;
&lt;br /&gt;
=== Indeksni registri (XR1, XR2, XR4) ===&lt;br /&gt;
IBM 704 je koristio tri indeksna registra:&lt;br /&gt;
* &#039;&#039;&#039;XR1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Indeksni registri omogućavali su modifikaciju adresa, implementaciju petlji i rad s velikim poljima podataka. Ovo je bio preteča modernog adresiranja u procesorima.&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori (SI) ===&lt;br /&gt;
Sustav je imao 36 senzorskih indikatora koji su služili kao statusne zastavice:&lt;br /&gt;
* indikatori grešaka (overflow, divide check)&lt;br /&gt;
* indikatori stanja I/O uređaja&lt;br /&gt;
* korisnički definirani indikatori&lt;br /&gt;
&lt;br /&gt;
Programi su mogli testirati i postavljati SI bitove, što je omogućavalo primitivne oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
=== Memorija ===&lt;br /&gt;
IBM 704 koristio je [[magnetska jezgra|magnetsku jezgru]] (magnetic core memory) kapaciteta:&lt;br /&gt;
* 4096 riječi × 36 bita&lt;br /&gt;
&lt;br /&gt;
Ovo je bila jedna od najnaprednijih memorijskih tehnologija 1950-ih.&lt;br /&gt;
&lt;br /&gt;
=== Ulazno/izlazni sustav ===&lt;br /&gt;
Podržani uređaji uključivali su:&lt;br /&gt;
* magnetske vrpce&lt;br /&gt;
* čitač kartica&lt;br /&gt;
* bušilicu kartica&lt;br /&gt;
* pisač&lt;br /&gt;
* konzolu operatera&lt;br /&gt;
&lt;br /&gt;
I/O operacije su se signalizirale preko Sense Indicators.&lt;br /&gt;
&lt;br /&gt;
=== Instrukcijski format ===&lt;br /&gt;
Instrukcije su bile 36-bitne, s poljima:&lt;br /&gt;
* opkod&lt;br /&gt;
* adresa&lt;br /&gt;
* indeksni modifikator&lt;br /&gt;
* bitovi za uvjetno grananje&lt;br /&gt;
&lt;br /&gt;
Ovaj format omogućavao je fleksibilno adresiranje i kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instrukcijski skup IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Glavne grupe instrukcija IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Grupa&lt;br /&gt;
! Primjeri&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Aritmetičke instrukcije&lt;br /&gt;
| ADD, SUB, MPY, DIV&lt;br /&gt;
| Operacije nad AC i MQ registrima; podrška za cijele brojeve i pomični zarez.&lt;br /&gt;
|-&lt;br /&gt;
| Logičke instrukcije&lt;br /&gt;
| CLA, CLM, COM&lt;br /&gt;
| Čišćenje, komplementiranje i manipulacija bitovima.&lt;br /&gt;
|-&lt;br /&gt;
| Uvjetno grananje&lt;br /&gt;
| TRA, TMI, TPL, TZE&lt;br /&gt;
| Skokovi ovisno o sadržaju AC ili MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Rad sa Sense Indicators&lt;br /&gt;
| TSI, SSI, RSI&lt;br /&gt;
| Testiranje, postavljanje i resetiranje statusnih bitova.&lt;br /&gt;
|-&lt;br /&gt;
| Indeksno adresiranje&lt;br /&gt;
| AXT, TXI&lt;br /&gt;
| Modifikacija adresa pomoću XR1, XR2, XR4.&lt;br /&gt;
|-&lt;br /&gt;
| Ulazno/izlazne instrukcije&lt;br /&gt;
| RDS, WRS, RWT&lt;br /&gt;
| Rad s magnetskom vrpcom, kartičnim čitačem i pisačem.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrola toka programa&lt;br /&gt;
| HLT, NOP&lt;br /&gt;
| Zaustavljanje programa, prazna instrukcija.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Opkodovi IBM 704 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Kompletan popis opkoda IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Opkod&lt;br /&gt;
! Mnemonik&lt;br /&gt;
! Grupa&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 000&lt;br /&gt;
| NOP&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Prazna instrukcija; ne radi ništa.&lt;br /&gt;
|-&lt;br /&gt;
| 001&lt;br /&gt;
| HLT&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Zaustavlja izvršavanje programa.&lt;br /&gt;
|-&lt;br /&gt;
| 002&lt;br /&gt;
| TRA&lt;br /&gt;
| Grananje&lt;br /&gt;
| Bezuvjetni skok na adresu.&lt;br /&gt;
|-&lt;br /&gt;
| 003&lt;br /&gt;
| TRN&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC negativan.&lt;br /&gt;
|-&lt;br /&gt;
| 004&lt;br /&gt;
| TMI&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC manji od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 005&lt;br /&gt;
| TPL&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC veći od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 006&lt;br /&gt;
| TZE&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC jednak nuli.&lt;br /&gt;
|-&lt;br /&gt;
| 007&lt;br /&gt;
| TOV&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je overflow zastavica postavljena.&lt;br /&gt;
|-&lt;br /&gt;
| 010&lt;br /&gt;
| ADD&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Zbrajanje sadržaja memorije s AC.&lt;br /&gt;
|-&lt;br /&gt;
| 011&lt;br /&gt;
| SUB&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Oduzimanje sadržaja memorije od AC.&lt;br /&gt;
|-&lt;br /&gt;
| 012&lt;br /&gt;
| MPY&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Množenje; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 013&lt;br /&gt;
| DIV&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Dijeljenje; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 014&lt;br /&gt;
| CLA&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 015&lt;br /&gt;
| CLM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 016&lt;br /&gt;
| COM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Komplementira AC.&lt;br /&gt;
|-&lt;br /&gt;
| 020&lt;br /&gt;
| SHL&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak ulijevo.&lt;br /&gt;
|-&lt;br /&gt;
| 021&lt;br /&gt;
| SHR&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak udesno.&lt;br /&gt;
|-&lt;br /&gt;
| 030&lt;br /&gt;
| AXT&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Učitava vrijednost u XR1, XR2 ili XR4.&lt;br /&gt;
|-&lt;br /&gt;
| 031&lt;br /&gt;
| TXI&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Dodaje vrijednost indeksnom registru.&lt;br /&gt;
|-&lt;br /&gt;
| 040&lt;br /&gt;
| RDS&lt;br /&gt;
| I/O&lt;br /&gt;
| Čitanje s magnetske vrpce.&lt;br /&gt;
|-&lt;br /&gt;
| 041&lt;br /&gt;
| WRS&lt;br /&gt;
| I/O&lt;br /&gt;
| Pisanje na magnetsku vrpcu.&lt;br /&gt;
|-&lt;br /&gt;
| 042&lt;br /&gt;
| RWT&lt;br /&gt;
| I/O&lt;br /&gt;
| Čekanje na I/O operaciju.&lt;br /&gt;
|-&lt;br /&gt;
| 050&lt;br /&gt;
| TSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Testira Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 051&lt;br /&gt;
| SSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Postavlja Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 052&lt;br /&gt;
| RSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Resetira Sense Indicator n.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Registri==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--             --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:88%;width:34em;&amp;quot;&lt;br /&gt;
|+ Registri u računalu IBM 704&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| style=&amp;quot;font-size:88%;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Podatkovni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | S&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | Q&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | P&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;14&amp;quot;| Akumulator&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | AC&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;1&amp;quot;| S&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;11&amp;quot;| Množitelj/Količnik&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | MQ&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;12&amp;quot;| Senzorni indikatori&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | SI&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 1&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR1 (XRA)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 2&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR2 (XRB)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 4 &lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR4 (XRC)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;14&amp;quot; | &#039;&#039;&#039;Brojač naredbi&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Brojač&amp;amp;nbsp;Naredbi&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| IC&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzorni indikatori&#039;&#039;&#039; - su posebni statusni bitovi u IBM 704 koj su se u praksi rabili za provjeru grešaka, grananje ovisno o stanju sustava, upravljanje perifernim jedinicama, te za signalizaciju posebnih događaja. Kroz njih programeri su mogli održavati stanje sustava, signalizirati određene uvjete tokom izvršavanje naredbi, čitanje i postavljanje naredbi i tako su služili za jednostane oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Sense Indicators (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! SI broj&lt;br /&gt;
! Naziv / funkcija&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Overflow flag&lt;br /&gt;
| Postavlja se pri prekoračenju rezultata u akumulatoru (AC) ili količniku (MQ).&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Divide check&lt;br /&gt;
| Signalizira pogrešku pri dijeljenju, uključujući dijeljenje nulom.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| I/O ready&lt;br /&gt;
| Uređaj spreman za prijenos podataka.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| I/O complete&lt;br /&gt;
| Završetak operacije ulaza/izlaza.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Tape mark&lt;br /&gt;
| Očitana oznaka kraja bloka na magnetskoj vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Printer ready&lt;br /&gt;
| Pisač spreman za rad.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Card reader ready&lt;br /&gt;
| Čitač kartica spreman.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Card punch ready&lt;br /&gt;
| Bušilica kartica spremna.&lt;br /&gt;
|-&lt;br /&gt;
| 8–15&lt;br /&gt;
| Peripheral flags&lt;br /&gt;
| Razni signali perifernih uređaja (disk, vrpca, pisač).&lt;br /&gt;
|-&lt;br /&gt;
| 16–35&lt;br /&gt;
| User-defined flags&lt;br /&gt;
| Zastavice koje programer može slobodno koristiti za logiku grananja.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Korištenje u IBM 704 assembleru ====&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao posebne instrukcije za rad sa Sense Indicators:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;TSI n&#039;&#039;&#039;&lt;br /&gt;
: Testira Sense Indicator &#039;&#039;n&#039;&#039;. Ako je postavljen, izvršavanje se nastavlja normalno; ako nije, preskače se sljedeća instrukcija.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3      / provjeri je li I/O complete&lt;br /&gt;
TRA DONE   / ako je postavljen, skoči na DONE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;SSI n&#039;&#039;&#039;&lt;br /&gt;
: Postavlja Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;RSI n&#039;&#039;&#039;&lt;br /&gt;
: Resetira Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 1      / provjeri divide check&lt;br /&gt;
TRA ERROR  / ako je SI1 = 1, idi na ERROR&lt;br /&gt;
&lt;br /&gt;
SSI 20     / postavi korisnički indikator 20&lt;br /&gt;
RSI 3      / resetiraj I/O complete indikator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Usporedba s modernim statusnim registrima ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! IBM 704 Sense Indicators&lt;br /&gt;
! Moderni statusni registri (x86, ARM, RISC-V)&lt;br /&gt;
|-&lt;br /&gt;
| 36 jednobitnih zastavica&lt;br /&gt;
| 8–32 bitni statusni registri&lt;br /&gt;
|-&lt;br /&gt;
| Ručno postavljanje i brisanje&lt;br /&gt;
| Automatsko postavljanje od strane ALU&lt;br /&gt;
|-&lt;br /&gt;
| Koriste se za I/O signalizaciju&lt;br /&gt;
| I/O signalizacija preko interrupt kontrolera&lt;br /&gt;
|-&lt;br /&gt;
| Jednostavne logičke zastavice&lt;br /&gt;
| Zastavice za aritmetiku, usporedbe, prekide&lt;br /&gt;
|-&lt;br /&gt;
| Programer koristi dio SI kao &amp;quot;user flags&amp;quot;&lt;br /&gt;
| Moderni jezici koriste varijable, strukture, objekte&lt;br /&gt;
|-&lt;br /&gt;
| Grananje preko TSI instrukcije&lt;br /&gt;
| Grananje preko CMP/JMP, BEQ/BNE, BLT/BGT&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787624</id>
		<title>IBM 704</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787624"/>
		<updated>2026-07-07T09:42:50Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Instrukcijski skup IBM 704 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Arhitektura IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od prvih komercijalnih računala koje je uvodilo napredne koncepte arhitekture, uključujući rad s pomičnim zarezom, indeksne registre i statusne indikatore. Sustav je bio dizajniran za znanstvene i tehničke izračune, što ga je činilo ključnim alatom u laboratorijima, sveučilištima i ranim zrakoplovnim projektima.&lt;br /&gt;
&lt;br /&gt;
=== Aritmetička jedinica (AC i MQ) ===&lt;br /&gt;
Aritmetička jedinica sastojala se od dva glavna 36-bitna registra:&lt;br /&gt;
* &#039;&#039;&#039;AC (Accumulator)&#039;&#039;&#039; – glavni registar za aritmetiku.&lt;br /&gt;
* &#039;&#039;&#039;MQ (Multiplier/Quotient)&#039;&#039;&#039; – registar za množenje i dijeljenje.&lt;br /&gt;
&lt;br /&gt;
Ova dva registra zajedno su omogućavala učinkovite operacije nad velikim brojevima i pomičnim zarezom.&lt;br /&gt;
&lt;br /&gt;
=== Indeksni registri (XR1, XR2, XR4) ===&lt;br /&gt;
IBM 704 je koristio tri indeksna registra:&lt;br /&gt;
* &#039;&#039;&#039;XR1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Indeksni registri omogućavali su modifikaciju adresa, implementaciju petlji i rad s velikim poljima podataka. Ovo je bio preteča modernog adresiranja u procesorima.&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori (SI) ===&lt;br /&gt;
Sustav je imao 36 senzorskih indikatora koji su služili kao statusne zastavice:&lt;br /&gt;
* indikatori grešaka (overflow, divide check)&lt;br /&gt;
* indikatori stanja I/O uređaja&lt;br /&gt;
* korisnički definirani indikatori&lt;br /&gt;
&lt;br /&gt;
Programi su mogli testirati i postavljati SI bitove, što je omogućavalo primitivne oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
=== Memorija ===&lt;br /&gt;
IBM 704 koristio je [[magnetska jezgra|magnetsku jezgru]] (magnetic core memory) kapaciteta:&lt;br /&gt;
* 4096 riječi × 36 bita&lt;br /&gt;
&lt;br /&gt;
Ovo je bila jedna od najnaprednijih memorijskih tehnologija 1950-ih.&lt;br /&gt;
&lt;br /&gt;
=== Ulazno/izlazni sustav ===&lt;br /&gt;
Podržani uređaji uključivali su:&lt;br /&gt;
* magnetske vrpce&lt;br /&gt;
* čitač kartica&lt;br /&gt;
* bušilicu kartica&lt;br /&gt;
* pisač&lt;br /&gt;
* konzolu operatera&lt;br /&gt;
&lt;br /&gt;
I/O operacije su se signalizirale preko Sense Indicators.&lt;br /&gt;
&lt;br /&gt;
=== Instrukcijski format ===&lt;br /&gt;
Instrukcije su bile 36-bitne, s poljima:&lt;br /&gt;
* opkod&lt;br /&gt;
* adresa&lt;br /&gt;
* indeksni modifikator&lt;br /&gt;
* bitovi za uvjetno grananje&lt;br /&gt;
&lt;br /&gt;
Ovaj format omogućavao je fleksibilno adresiranje i kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instrukcijski skup IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Glavne grupe instrukcija IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Grupa&lt;br /&gt;
! Primjeri&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Aritmetičke instrukcije&lt;br /&gt;
| ADD, SUB, MPY, DIV&lt;br /&gt;
| Operacije nad AC i MQ registrima; podrška za cijele brojeve i pomični zarez.&lt;br /&gt;
|-&lt;br /&gt;
| Logičke instrukcije&lt;br /&gt;
| CLA, CLM, COM&lt;br /&gt;
| Čišćenje, komplementiranje i manipulacija bitovima.&lt;br /&gt;
|-&lt;br /&gt;
| Uvjetno grananje&lt;br /&gt;
| TRA, TMI, TPL, TZE&lt;br /&gt;
| Skokovi ovisno o sadržaju AC ili MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Rad sa Sense Indicators&lt;br /&gt;
| TSI, SSI, RSI&lt;br /&gt;
| Testiranje, postavljanje i resetiranje statusnih bitova.&lt;br /&gt;
|-&lt;br /&gt;
| Indeksno adresiranje&lt;br /&gt;
| AXT, TXI&lt;br /&gt;
| Modifikacija adresa pomoću XR1, XR2, XR4.&lt;br /&gt;
|-&lt;br /&gt;
| Ulazno/izlazne instrukcije&lt;br /&gt;
| RDS, WRS, RWT&lt;br /&gt;
| Rad s magnetskom vrpcom, kartičnim čitačem i pisačem.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrola toka programa&lt;br /&gt;
| HLT, NOP&lt;br /&gt;
| Zaustavljanje programa, prazna instrukcija.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Opkodovi IBM 704 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Kompletan popis opkoda IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Opkod&lt;br /&gt;
! Mnemonik&lt;br /&gt;
! Grupa&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 000&lt;br /&gt;
| NOP&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Prazna instrukcija; ne radi ništa.&lt;br /&gt;
|-&lt;br /&gt;
| 001&lt;br /&gt;
| HLT&lt;br /&gt;
| Kontrola&lt;br /&gt;
| Zaustavlja izvršavanje programa.&lt;br /&gt;
|-&lt;br /&gt;
| 002&lt;br /&gt;
| TRA&lt;br /&gt;
| Grananje&lt;br /&gt;
| Bezuvjetni skok na adresu.&lt;br /&gt;
|-&lt;br /&gt;
| 003&lt;br /&gt;
| TRN&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC negativan.&lt;br /&gt;
|-&lt;br /&gt;
| 004&lt;br /&gt;
| TMI&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC manji od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 005&lt;br /&gt;
| TPL&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC veći od nule.&lt;br /&gt;
|-&lt;br /&gt;
| 006&lt;br /&gt;
| TZE&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je AC jednak nuli.&lt;br /&gt;
|-&lt;br /&gt;
| 007&lt;br /&gt;
| TOV&lt;br /&gt;
| Grananje&lt;br /&gt;
| Skok ako je overflow zastavica postavljena.&lt;br /&gt;
|-&lt;br /&gt;
| 010&lt;br /&gt;
| ADD&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Zbrajanje sadržaja memorije s AC.&lt;br /&gt;
|-&lt;br /&gt;
| 011&lt;br /&gt;
| SUB&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Oduzimanje sadržaja memorije od AC.&lt;br /&gt;
|-&lt;br /&gt;
| 012&lt;br /&gt;
| MPY&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Množenje; rezultat ide u AC/MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 013&lt;br /&gt;
| DIV&lt;br /&gt;
| Aritmetika&lt;br /&gt;
| Dijeljenje; količnik u MQ, ostatak u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 014&lt;br /&gt;
| CLA&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u AC.&lt;br /&gt;
|-&lt;br /&gt;
| 015&lt;br /&gt;
| CLM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Učitava vrijednost u MQ.&lt;br /&gt;
|-&lt;br /&gt;
| 016&lt;br /&gt;
| COM&lt;br /&gt;
| Logičke&lt;br /&gt;
| Komplementira AC.&lt;br /&gt;
|-&lt;br /&gt;
| 020&lt;br /&gt;
| SHL&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak ulijevo.&lt;br /&gt;
|-&lt;br /&gt;
| 021&lt;br /&gt;
| SHR&lt;br /&gt;
| Logičke&lt;br /&gt;
| Pomak udesno.&lt;br /&gt;
|-&lt;br /&gt;
| 030&lt;br /&gt;
| AXT&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Učitava vrijednost u XR1, XR2 ili XR4.&lt;br /&gt;
|-&lt;br /&gt;
| 031&lt;br /&gt;
| TXI&lt;br /&gt;
| Indeksiranje&lt;br /&gt;
| Dodaje vrijednost indeksnom registru.&lt;br /&gt;
|-&lt;br /&gt;
| 040&lt;br /&gt;
| RDS&lt;br /&gt;
| I/O&lt;br /&gt;
| Čitanje s magnetske vrpce.&lt;br /&gt;
|-&lt;br /&gt;
| 041&lt;br /&gt;
| WRS&lt;br /&gt;
| I/O&lt;br /&gt;
| Pisanje na magnetsku vrpcu.&lt;br /&gt;
|-&lt;br /&gt;
| 042&lt;br /&gt;
| RWT&lt;br /&gt;
| I/O&lt;br /&gt;
| Čekanje na I/O operaciju.&lt;br /&gt;
|-&lt;br /&gt;
| 050&lt;br /&gt;
| TSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Testira Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 051&lt;br /&gt;
| SSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Postavlja Sense Indicator n.&lt;br /&gt;
|-&lt;br /&gt;
| 052&lt;br /&gt;
| RSI&lt;br /&gt;
| Sense Indicators&lt;br /&gt;
| Resetira Sense Indicator n.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Registri==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--             --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:88%;width:34em;&amp;quot;&lt;br /&gt;
|+ Registri u računalu IBM 704&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| style=&amp;quot;font-size:88%;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Podatkovni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | S&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | Q&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | P&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;14&amp;quot;| Akumulator&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | AC&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;1&amp;quot;| S&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;11&amp;quot;| Množitelj/Količnik&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | MQ&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;12&amp;quot;| Senzorni indikatori&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | SI&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 1&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR1 (XRA)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 2&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR2 (XRB)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 4 &lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR4 (XRC)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;14&amp;quot; | &#039;&#039;&#039;Brojač naredbi&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Brojač&amp;amp;nbsp;Naredbi&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| IC&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzorni indikatori&#039;&#039;&#039; - su posebni statusni bitovi u IBM 704 koj su se u praksi rabili za provjeru grešaka, grananje ovisno o stanju sustava, upravljanje perifernim jedinicama, te za signalizaciju posebnih događaja. Kroz njih programeri su mogli održavati stanje sustava, signalizirati određene uvjete tokom izvršavanje naredbi, čitanje i postavljanje naredbi i tako su služili za jednostane oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Sense Indicators (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! SI broj&lt;br /&gt;
! Naziv / funkcija&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Overflow flag&lt;br /&gt;
| Postavlja se pri prekoračenju rezultata u akumulatoru (AC) ili količniku (MQ).&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Divide check&lt;br /&gt;
| Signalizira pogrešku pri dijeljenju, uključujući dijeljenje nulom.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| I/O ready&lt;br /&gt;
| Uređaj spreman za prijenos podataka.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| I/O complete&lt;br /&gt;
| Završetak operacije ulaza/izlaza.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Tape mark&lt;br /&gt;
| Očitana oznaka kraja bloka na magnetskoj vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Printer ready&lt;br /&gt;
| Pisač spreman za rad.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Card reader ready&lt;br /&gt;
| Čitač kartica spreman.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Card punch ready&lt;br /&gt;
| Bušilica kartica spremna.&lt;br /&gt;
|-&lt;br /&gt;
| 8–15&lt;br /&gt;
| Peripheral flags&lt;br /&gt;
| Razni signali perifernih uređaja (disk, vrpca, pisač).&lt;br /&gt;
|-&lt;br /&gt;
| 16–35&lt;br /&gt;
| User-defined flags&lt;br /&gt;
| Zastavice koje programer može slobodno koristiti za logiku grananja.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Korištenje u IBM 704 assembleru ====&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao posebne instrukcije za rad sa Sense Indicators:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;TSI n&#039;&#039;&#039;&lt;br /&gt;
: Testira Sense Indicator &#039;&#039;n&#039;&#039;. Ako je postavljen, izvršavanje se nastavlja normalno; ako nije, preskače se sljedeća instrukcija.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3      / provjeri je li I/O complete&lt;br /&gt;
TRA DONE   / ako je postavljen, skoči na DONE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;SSI n&#039;&#039;&#039;&lt;br /&gt;
: Postavlja Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;RSI n&#039;&#039;&#039;&lt;br /&gt;
: Resetira Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 1      / provjeri divide check&lt;br /&gt;
TRA ERROR  / ako je SI1 = 1, idi na ERROR&lt;br /&gt;
&lt;br /&gt;
SSI 20     / postavi korisnički indikator 20&lt;br /&gt;
RSI 3      / resetiraj I/O complete indikator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Usporedba s modernim statusnim registrima ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! IBM 704 Sense Indicators&lt;br /&gt;
! Moderni statusni registri (x86, ARM, RISC-V)&lt;br /&gt;
|-&lt;br /&gt;
| 36 jednobitnih zastavica&lt;br /&gt;
| 8–32 bitni statusni registri&lt;br /&gt;
|-&lt;br /&gt;
| Ručno postavljanje i brisanje&lt;br /&gt;
| Automatsko postavljanje od strane ALU&lt;br /&gt;
|-&lt;br /&gt;
| Koriste se za I/O signalizaciju&lt;br /&gt;
| I/O signalizacija preko interrupt kontrolera&lt;br /&gt;
|-&lt;br /&gt;
| Jednostavne logičke zastavice&lt;br /&gt;
| Zastavice za aritmetiku, usporedbe, prekide&lt;br /&gt;
|-&lt;br /&gt;
| Programer koristi dio SI kao &amp;quot;user flags&amp;quot;&lt;br /&gt;
| Moderni jezici koriste varijable, strukture, objekte&lt;br /&gt;
|-&lt;br /&gt;
| Grananje preko TSI instrukcije&lt;br /&gt;
| Grananje preko CMP/JMP, BEQ/BNE, BLT/BGT&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787623</id>
		<title>IBM 704</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787623"/>
		<updated>2026-07-07T09:41:04Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Arhitektura IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
IBM 704 bio je jedno od prvih komercijalnih računala koje je uvodilo napredne koncepte arhitekture, uključujući rad s pomičnim zarezom, indeksne registre i statusne indikatore. Sustav je bio dizajniran za znanstvene i tehničke izračune, što ga je činilo ključnim alatom u laboratorijima, sveučilištima i ranim zrakoplovnim projektima.&lt;br /&gt;
&lt;br /&gt;
=== Aritmetička jedinica (AC i MQ) ===&lt;br /&gt;
Aritmetička jedinica sastojala se od dva glavna 36-bitna registra:&lt;br /&gt;
* &#039;&#039;&#039;AC (Accumulator)&#039;&#039;&#039; – glavni registar za aritmetiku.&lt;br /&gt;
* &#039;&#039;&#039;MQ (Multiplier/Quotient)&#039;&#039;&#039; – registar za množenje i dijeljenje.&lt;br /&gt;
&lt;br /&gt;
Ova dva registra zajedno su omogućavala učinkovite operacije nad velikim brojevima i pomičnim zarezom.&lt;br /&gt;
&lt;br /&gt;
=== Indeksni registri (XR1, XR2, XR4) ===&lt;br /&gt;
IBM 704 je koristio tri indeksna registra:&lt;br /&gt;
* &#039;&#039;&#039;XR1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;XR4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Indeksni registri omogućavali su modifikaciju adresa, implementaciju petlji i rad s velikim poljima podataka. Ovo je bio preteča modernog adresiranja u procesorima.&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori (SI) ===&lt;br /&gt;
Sustav je imao 36 senzorskih indikatora koji su služili kao statusne zastavice:&lt;br /&gt;
* indikatori grešaka (overflow, divide check)&lt;br /&gt;
* indikatori stanja I/O uređaja&lt;br /&gt;
* korisnički definirani indikatori&lt;br /&gt;
&lt;br /&gt;
Programi su mogli testirati i postavljati SI bitove, što je omogućavalo primitivne oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
=== Memorija ===&lt;br /&gt;
IBM 704 koristio je [[magnetska jezgra|magnetsku jezgru]] (magnetic core memory) kapaciteta:&lt;br /&gt;
* 4096 riječi × 36 bita&lt;br /&gt;
&lt;br /&gt;
Ovo je bila jedna od najnaprednijih memorijskih tehnologija 1950-ih.&lt;br /&gt;
&lt;br /&gt;
=== Ulazno/izlazni sustav ===&lt;br /&gt;
Podržani uređaji uključivali su:&lt;br /&gt;
* magnetske vrpce&lt;br /&gt;
* čitač kartica&lt;br /&gt;
* bušilicu kartica&lt;br /&gt;
* pisač&lt;br /&gt;
* konzolu operatera&lt;br /&gt;
&lt;br /&gt;
I/O operacije su se signalizirale preko Sense Indicators.&lt;br /&gt;
&lt;br /&gt;
=== Instrukcijski format ===&lt;br /&gt;
Instrukcije su bile 36-bitne, s poljima:&lt;br /&gt;
* opkod&lt;br /&gt;
* adresa&lt;br /&gt;
* indeksni modifikator&lt;br /&gt;
* bitovi za uvjetno grananje&lt;br /&gt;
&lt;br /&gt;
Ovaj format omogućavao je fleksibilno adresiranje i kontrolu toka programa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instrukcijski skup IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Glavne grupe instrukcija IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Grupa&lt;br /&gt;
! Primjeri&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Aritmetičke instrukcije&lt;br /&gt;
| ADD, SUB, MPY, DIV&lt;br /&gt;
| Operacije nad AC i MQ registrima; podrška za cijele brojeve i pomični zarez.&lt;br /&gt;
|-&lt;br /&gt;
| Logičke instrukcije&lt;br /&gt;
| CLA, CLM, COM&lt;br /&gt;
| Čišćenje, komplementiranje i manipulacija bitovima.&lt;br /&gt;
|-&lt;br /&gt;
| Uvjetno grananje&lt;br /&gt;
| TRA, TMI, TPL, TZE&lt;br /&gt;
| Skokovi ovisno o sadržaju AC ili MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Rad sa Sense Indicators&lt;br /&gt;
| TSI, SSI, RSI&lt;br /&gt;
| Testiranje, postavljanje i resetiranje statusnih bitova.&lt;br /&gt;
|-&lt;br /&gt;
| Indeksno adresiranje&lt;br /&gt;
| AXT, TXI&lt;br /&gt;
| Modifikacija adresa pomoću XR1, XR2, XR4.&lt;br /&gt;
|-&lt;br /&gt;
| Ulazno/izlazne instrukcije&lt;br /&gt;
| RDS, WRS, RWT&lt;br /&gt;
| Rad s magnetskom vrpcom, kartičnim čitačem i pisačem.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrola toka programa&lt;br /&gt;
| HLT, NOP&lt;br /&gt;
| Zaustavljanje programa, prazna instrukcija.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Registri==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--             --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:88%;width:34em;&amp;quot;&lt;br /&gt;
|+ Registri u računalu IBM 704&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| style=&amp;quot;font-size:88%;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Podatkovni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | S&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | Q&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | P&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;14&amp;quot;| Akumulator&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | AC&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;1&amp;quot;| S&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;11&amp;quot;| Množitelj/Količnik&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | MQ&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;12&amp;quot;| Senzorni indikatori&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | SI&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 1&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR1 (XRA)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 2&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR2 (XRB)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 4 &lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR4 (XRC)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;14&amp;quot; | &#039;&#039;&#039;Brojač naredbi&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Brojač&amp;amp;nbsp;Naredbi&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| IC&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzorni indikatori&#039;&#039;&#039; - su posebni statusni bitovi u IBM 704 koj su se u praksi rabili za provjeru grešaka, grananje ovisno o stanju sustava, upravljanje perifernim jedinicama, te za signalizaciju posebnih događaja. Kroz njih programeri su mogli održavati stanje sustava, signalizirati određene uvjete tokom izvršavanje naredbi, čitanje i postavljanje naredbi i tako su služili za jednostane oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Sense Indicators (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! SI broj&lt;br /&gt;
! Naziv / funkcija&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Overflow flag&lt;br /&gt;
| Postavlja se pri prekoračenju rezultata u akumulatoru (AC) ili količniku (MQ).&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Divide check&lt;br /&gt;
| Signalizira pogrešku pri dijeljenju, uključujući dijeljenje nulom.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| I/O ready&lt;br /&gt;
| Uređaj spreman za prijenos podataka.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| I/O complete&lt;br /&gt;
| Završetak operacije ulaza/izlaza.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Tape mark&lt;br /&gt;
| Očitana oznaka kraja bloka na magnetskoj vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Printer ready&lt;br /&gt;
| Pisač spreman za rad.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Card reader ready&lt;br /&gt;
| Čitač kartica spreman.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Card punch ready&lt;br /&gt;
| Bušilica kartica spremna.&lt;br /&gt;
|-&lt;br /&gt;
| 8–15&lt;br /&gt;
| Peripheral flags&lt;br /&gt;
| Razni signali perifernih uređaja (disk, vrpca, pisač).&lt;br /&gt;
|-&lt;br /&gt;
| 16–35&lt;br /&gt;
| User-defined flags&lt;br /&gt;
| Zastavice koje programer može slobodno koristiti za logiku grananja.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Korištenje u IBM 704 assembleru ====&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao posebne instrukcije za rad sa Sense Indicators:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;TSI n&#039;&#039;&#039;&lt;br /&gt;
: Testira Sense Indicator &#039;&#039;n&#039;&#039;. Ako je postavljen, izvršavanje se nastavlja normalno; ako nije, preskače se sljedeća instrukcija.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3      / provjeri je li I/O complete&lt;br /&gt;
TRA DONE   / ako je postavljen, skoči na DONE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;SSI n&#039;&#039;&#039;&lt;br /&gt;
: Postavlja Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;RSI n&#039;&#039;&#039;&lt;br /&gt;
: Resetira Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 1      / provjeri divide check&lt;br /&gt;
TRA ERROR  / ako je SI1 = 1, idi na ERROR&lt;br /&gt;
&lt;br /&gt;
SSI 20     / postavi korisnički indikator 20&lt;br /&gt;
RSI 3      / resetiraj I/O complete indikator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Usporedba s modernim statusnim registrima ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! IBM 704 Sense Indicators&lt;br /&gt;
! Moderni statusni registri (x86, ARM, RISC-V)&lt;br /&gt;
|-&lt;br /&gt;
| 36 jednobitnih zastavica&lt;br /&gt;
| 8–32 bitni statusni registri&lt;br /&gt;
|-&lt;br /&gt;
| Ručno postavljanje i brisanje&lt;br /&gt;
| Automatsko postavljanje od strane ALU&lt;br /&gt;
|-&lt;br /&gt;
| Koriste se za I/O signalizaciju&lt;br /&gt;
| I/O signalizacija preko interrupt kontrolera&lt;br /&gt;
|-&lt;br /&gt;
| Jednostavne logičke zastavice&lt;br /&gt;
| Zastavice za aritmetiku, usporedbe, prekide&lt;br /&gt;
|-&lt;br /&gt;
| Programer koristi dio SI kao &amp;quot;user flags&amp;quot;&lt;br /&gt;
| Moderni jezici koriste varijable, strukture, objekte&lt;br /&gt;
|-&lt;br /&gt;
| Grananje preko TSI instrukcije&lt;br /&gt;
| Grananje preko CMP/JMP, BEQ/BNE, BLT/BGT&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787622</id>
		<title>IBM 704</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787622"/>
		<updated>2026-07-07T09:37:23Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Instrukcijski skup IBM 704 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Glavne grupe instrukcija IBM 704&#039;&#039;&#039;&lt;br /&gt;
! Grupa&lt;br /&gt;
! Primjeri&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| Aritmetičke instrukcije&lt;br /&gt;
| ADD, SUB, MPY, DIV&lt;br /&gt;
| Operacije nad AC i MQ registrima; podrška za cijele brojeve i pomični zarez.&lt;br /&gt;
|-&lt;br /&gt;
| Logičke instrukcije&lt;br /&gt;
| CLA, CLM, COM&lt;br /&gt;
| Čišćenje, komplementiranje i manipulacija bitovima.&lt;br /&gt;
|-&lt;br /&gt;
| Uvjetno grananje&lt;br /&gt;
| TRA, TMI, TPL, TZE&lt;br /&gt;
| Skokovi ovisno o sadržaju AC ili MQ.&lt;br /&gt;
|-&lt;br /&gt;
| Rad sa Sense Indicators&lt;br /&gt;
| TSI, SSI, RSI&lt;br /&gt;
| Testiranje, postavljanje i resetiranje statusnih bitova.&lt;br /&gt;
|-&lt;br /&gt;
| Indeksno adresiranje&lt;br /&gt;
| AXT, TXI&lt;br /&gt;
| Modifikacija adresa pomoću XR1, XR2, XR4.&lt;br /&gt;
|-&lt;br /&gt;
| Ulazno/izlazne instrukcije&lt;br /&gt;
| RDS, WRS, RWT&lt;br /&gt;
| Rad s magnetskom vrpcom, kartičnim čitačem i pisačem.&lt;br /&gt;
|-&lt;br /&gt;
| Kontrola toka programa&lt;br /&gt;
| HLT, NOP&lt;br /&gt;
| Zaustavljanje programa, prazna instrukcija.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Registri==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--             --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:88%;width:34em;&amp;quot;&lt;br /&gt;
|+ Registri u računalu IBM 704&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| style=&amp;quot;font-size:88%;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Podatkovni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | S&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | Q&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | P&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;14&amp;quot;| Akumulator&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | AC&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;1&amp;quot;| S&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;11&amp;quot;| Množitelj/Količnik&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | MQ&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;12&amp;quot;| Senzorni indikatori&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | SI&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 1&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR1 (XRA)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 2&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR2 (XRB)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 4 &lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR4 (XRC)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;14&amp;quot; | &#039;&#039;&#039;Brojač naredbi&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Brojač&amp;amp;nbsp;Naredbi&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| IC&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzorni indikatori&#039;&#039;&#039; - su posebni statusni bitovi u IBM 704 koj su se u praksi rabili za provjeru grešaka, grananje ovisno o stanju sustava, upravljanje perifernim jedinicama, te za signalizaciju posebnih događaja. Kroz njih programeri su mogli održavati stanje sustava, signalizirati određene uvjete tokom izvršavanje naredbi, čitanje i postavljanje naredbi i tako su služili za jednostane oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Sense Indicators (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! SI broj&lt;br /&gt;
! Naziv / funkcija&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Overflow flag&lt;br /&gt;
| Postavlja se pri prekoračenju rezultata u akumulatoru (AC) ili količniku (MQ).&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Divide check&lt;br /&gt;
| Signalizira pogrešku pri dijeljenju, uključujući dijeljenje nulom.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| I/O ready&lt;br /&gt;
| Uređaj spreman za prijenos podataka.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| I/O complete&lt;br /&gt;
| Završetak operacije ulaza/izlaza.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Tape mark&lt;br /&gt;
| Očitana oznaka kraja bloka na magnetskoj vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Printer ready&lt;br /&gt;
| Pisač spreman za rad.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Card reader ready&lt;br /&gt;
| Čitač kartica spreman.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Card punch ready&lt;br /&gt;
| Bušilica kartica spremna.&lt;br /&gt;
|-&lt;br /&gt;
| 8–15&lt;br /&gt;
| Peripheral flags&lt;br /&gt;
| Razni signali perifernih uređaja (disk, vrpca, pisač).&lt;br /&gt;
|-&lt;br /&gt;
| 16–35&lt;br /&gt;
| User-defined flags&lt;br /&gt;
| Zastavice koje programer može slobodno koristiti za logiku grananja.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Korištenje u IBM 704 assembleru ====&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao posebne instrukcije za rad sa Sense Indicators:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;TSI n&#039;&#039;&#039;&lt;br /&gt;
: Testira Sense Indicator &#039;&#039;n&#039;&#039;. Ako je postavljen, izvršavanje se nastavlja normalno; ako nije, preskače se sljedeća instrukcija.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3      / provjeri je li I/O complete&lt;br /&gt;
TRA DONE   / ako je postavljen, skoči na DONE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;SSI n&#039;&#039;&#039;&lt;br /&gt;
: Postavlja Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;RSI n&#039;&#039;&#039;&lt;br /&gt;
: Resetira Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 1      / provjeri divide check&lt;br /&gt;
TRA ERROR  / ako je SI1 = 1, idi na ERROR&lt;br /&gt;
&lt;br /&gt;
SSI 20     / postavi korisnički indikator 20&lt;br /&gt;
RSI 3      / resetiraj I/O complete indikator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Usporedba s modernim statusnim registrima ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! IBM 704 Sense Indicators&lt;br /&gt;
! Moderni statusni registri (x86, ARM, RISC-V)&lt;br /&gt;
|-&lt;br /&gt;
| 36 jednobitnih zastavica&lt;br /&gt;
| 8–32 bitni statusni registri&lt;br /&gt;
|-&lt;br /&gt;
| Ručno postavljanje i brisanje&lt;br /&gt;
| Automatsko postavljanje od strane ALU&lt;br /&gt;
|-&lt;br /&gt;
| Koriste se za I/O signalizaciju&lt;br /&gt;
| I/O signalizacija preko interrupt kontrolera&lt;br /&gt;
|-&lt;br /&gt;
| Jednostavne logičke zastavice&lt;br /&gt;
| Zastavice za aritmetiku, usporedbe, prekide&lt;br /&gt;
|-&lt;br /&gt;
| Programer koristi dio SI kao &amp;quot;user flags&amp;quot;&lt;br /&gt;
| Moderni jezici koriste varijable, strukture, objekte&lt;br /&gt;
|-&lt;br /&gt;
| Grananje preko TSI instrukcije&lt;br /&gt;
| Grananje preko CMP/JMP, BEQ/BNE, BLT/BGT&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787621</id>
		<title>IBM 704</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787621"/>
		<updated>2026-07-07T09:36:03Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Registri */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
==Registri==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--             --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:88%;width:34em;&amp;quot;&lt;br /&gt;
|+ Registri u računalu IBM 704&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| style=&amp;quot;font-size:88%;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Podatkovni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | S&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | Q&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | P&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;14&amp;quot;| Akumulator&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | AC&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;1&amp;quot;| S&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;11&amp;quot;| Množitelj/Količnik&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | MQ&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;12&amp;quot;| Senzorni indikatori&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | SI&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 1&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR1 (XRA)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 2&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR2 (XRB)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 4 &lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR4 (XRC)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;14&amp;quot; | &#039;&#039;&#039;Brojač naredbi&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Brojač&amp;amp;nbsp;Naredbi&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| IC&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzorni indikatori&#039;&#039;&#039; - su posebni statusni bitovi u IBM 704 koj su se u praksi rabili za provjeru grešaka, grananje ovisno o stanju sustava, upravljanje perifernim jedinicama, te za signalizaciju posebnih događaja. Kroz njih programeri su mogli održavati stanje sustava, signalizirati određene uvjete tokom izvršavanje naredbi, čitanje i postavljanje naredbi i tako su služili za jednostane oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Sense Indicators (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! SI broj&lt;br /&gt;
! Naziv / funkcija&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Overflow flag&lt;br /&gt;
| Postavlja se pri prekoračenju rezultata u akumulatoru (AC) ili količniku (MQ).&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Divide check&lt;br /&gt;
| Signalizira pogrešku pri dijeljenju, uključujući dijeljenje nulom.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| I/O ready&lt;br /&gt;
| Uređaj spreman za prijenos podataka.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| I/O complete&lt;br /&gt;
| Završetak operacije ulaza/izlaza.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Tape mark&lt;br /&gt;
| Očitana oznaka kraja bloka na magnetskoj vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Printer ready&lt;br /&gt;
| Pisač spreman za rad.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Card reader ready&lt;br /&gt;
| Čitač kartica spreman.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Card punch ready&lt;br /&gt;
| Bušilica kartica spremna.&lt;br /&gt;
|-&lt;br /&gt;
| 8–15&lt;br /&gt;
| Peripheral flags&lt;br /&gt;
| Razni signali perifernih uređaja (disk, vrpca, pisač).&lt;br /&gt;
|-&lt;br /&gt;
| 16–35&lt;br /&gt;
| User-defined flags&lt;br /&gt;
| Zastavice koje programer može slobodno koristiti za logiku grananja.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Korištenje u IBM 704 assembleru ====&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao posebne instrukcije za rad sa Sense Indicators:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;TSI n&#039;&#039;&#039;&lt;br /&gt;
: Testira Sense Indicator &#039;&#039;n&#039;&#039;. Ako je postavljen, izvršavanje se nastavlja normalno; ako nije, preskače se sljedeća instrukcija.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3      / provjeri je li I/O complete&lt;br /&gt;
TRA DONE   / ako je postavljen, skoči na DONE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;SSI n&#039;&#039;&#039;&lt;br /&gt;
: Postavlja Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;RSI n&#039;&#039;&#039;&lt;br /&gt;
: Resetira Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 1      / provjeri divide check&lt;br /&gt;
TRA ERROR  / ako je SI1 = 1, idi na ERROR&lt;br /&gt;
&lt;br /&gt;
SSI 20     / postavi korisnički indikator 20&lt;br /&gt;
RSI 3      / resetiraj I/O complete indikator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Usporedba s modernim statusnim registrima ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! IBM 704 Sense Indicators&lt;br /&gt;
! Moderni statusni registri (x86, ARM, RISC-V)&lt;br /&gt;
|-&lt;br /&gt;
| 36 jednobitnih zastavica&lt;br /&gt;
| 8–32 bitni statusni registri&lt;br /&gt;
|-&lt;br /&gt;
| Ručno postavljanje i brisanje&lt;br /&gt;
| Automatsko postavljanje od strane ALU&lt;br /&gt;
|-&lt;br /&gt;
| Koriste se za I/O signalizaciju&lt;br /&gt;
| I/O signalizacija preko interrupt kontrolera&lt;br /&gt;
|-&lt;br /&gt;
| Jednostavne logičke zastavice&lt;br /&gt;
| Zastavice za aritmetiku, usporedbe, prekide&lt;br /&gt;
|-&lt;br /&gt;
| Programer koristi dio SI kao &amp;quot;user flags&amp;quot;&lt;br /&gt;
| Moderni jezici koriste varijable, strukture, objekte&lt;br /&gt;
|-&lt;br /&gt;
| Grananje preko TSI instrukcije&lt;br /&gt;
| Grananje preko CMP/JMP, BEQ/BNE, BLT/BGT&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787620</id>
		<title>IBM 704</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787620"/>
		<updated>2026-07-07T09:35:19Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Registri */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
==Registri==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--             --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:88%;width:34em;&amp;quot;&lt;br /&gt;
|+ Registri u računalu IBM 704&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| style=&amp;quot;font-size:88%;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Podatkovni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | S&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | Q&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | P&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;14&amp;quot;| Akumulator&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | AC&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;1&amp;quot;| S&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;11&amp;quot;| Množitelj/Količnik&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | MQ&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;12&amp;quot;| Senzorni indikatori&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | SI&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 1&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR1 (XRA)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 2&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR2 (XRB)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 4 &lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR4 (XRC)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;14&amp;quot; | &#039;&#039;&#039;Brojač naredbi&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Brojač&amp;amp;nbsp;Naredbi&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| IC&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Senzorni indikatori ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzorni indikatori&#039;&#039;&#039; - su posebni statusni bitovi u IBM 704 koj su se u praksi rabili za provjeru grešaka, grananje ovisno o stanju sustava, upravljanje perifernim jedinicama, te za signalizaciju posebnih događaja. Kroz njih programeri su mogli održavati stanje sustava, signalizirati određene uvjete tokom izvršavanje naredbi, čitanje i postavljanje naredbi i tako su služili za jednostane oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Sense Indicators (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! SI broj&lt;br /&gt;
! Naziv / funkcija&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Overflow flag&lt;br /&gt;
| Postavlja se pri prekoračenju rezultata u akumulatoru (AC) ili količniku (MQ).&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Divide check&lt;br /&gt;
| Signalizira pogrešku pri dijeljenju, uključujući dijeljenje nulom.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| I/O ready&lt;br /&gt;
| Uređaj spreman za prijenos podataka.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| I/O complete&lt;br /&gt;
| Završetak operacije ulaza/izlaza.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Tape mark&lt;br /&gt;
| Očitana oznaka kraja bloka na magnetskoj vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Printer ready&lt;br /&gt;
| Pisač spreman za rad.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Card reader ready&lt;br /&gt;
| Čitač kartica spreman.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Card punch ready&lt;br /&gt;
| Bušilica kartica spremna.&lt;br /&gt;
|-&lt;br /&gt;
| 8–15&lt;br /&gt;
| Peripheral flags&lt;br /&gt;
| Razni signali perifernih uređaja (disk, vrpca, pisač).&lt;br /&gt;
|-&lt;br /&gt;
| 16–35&lt;br /&gt;
| User-defined flags&lt;br /&gt;
| Zastavice koje programer može slobodno koristiti za logiku grananja.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Korištenje u IBM 704 assembleru ===&lt;br /&gt;
&lt;br /&gt;
IBM 704 je imao posebne instrukcije za rad sa Sense Indicators:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;TSI n&#039;&#039;&#039;&lt;br /&gt;
: Testira Sense Indicator &#039;&#039;n&#039;&#039;. Ako je postavljen, izvršavanje se nastavlja normalno; ako nije, preskače se sljedeća instrukcija.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 3      / provjeri je li I/O complete&lt;br /&gt;
TRA DONE   / ako je postavljen, skoči na DONE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;SSI n&#039;&#039;&#039;&lt;br /&gt;
: Postavlja Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;RSI n&#039;&#039;&#039;&lt;br /&gt;
: Resetira Sense Indicator &#039;&#039;n&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
TSI 1      / provjeri divide check&lt;br /&gt;
TRA ERROR  / ako je SI1 = 1, idi na ERROR&lt;br /&gt;
&lt;br /&gt;
SSI 20     / postavi korisnički indikator 20&lt;br /&gt;
RSI 3      / resetiraj I/O complete indikator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787619</id>
		<title>IBM 704</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787619"/>
		<updated>2026-07-07T09:34:05Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Registri */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
==Registri==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--             --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:88%;width:34em;&amp;quot;&lt;br /&gt;
|+ Registri u računalu IBM 704&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| style=&amp;quot;font-size:88%;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Podatkovni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | S&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | Q&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | P&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;14&amp;quot;| Akumulator&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | AC&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;1&amp;quot;| S&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;11&amp;quot;| Množitelj/Količnik&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | MQ&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;12&amp;quot;| Senzorni indikatori&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | SI&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 1&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR1 (XRA)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 2&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR2 (XRB)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 4 &lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR4 (XRC)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;14&amp;quot; | &#039;&#039;&#039;Brojač naredbi&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Brojač&amp;amp;nbsp;Naredbi&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| IC&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Senzorni indikatori&#039;&#039;&#039; - su posebni statusni bitovi u IBM 704 koj su se u praksi rabili za provjeru grešaka, grananje ovisno o stanju sustava, upravljanje perifernim jedinicama, te za signalizaciju posebnih događaja. Kroz njih programeri su mogli održavati stanje sustava, signalizirati određene uvjete tokom izvršavanje naredbi, čitanje i postavljanje naredbi i tako su služili za jednostane oblike upravljanja tokom programa.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Sense Indicators (IBM 704)&#039;&#039;&#039;&lt;br /&gt;
! SI broj&lt;br /&gt;
! Naziv / funkcija&lt;br /&gt;
! Opis&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Overflow flag&lt;br /&gt;
| Postavlja se pri prekoračenju rezultata u akumulatoru (AC) ili količniku (MQ).&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Divide check&lt;br /&gt;
| Signalizira pogrešku pri dijeljenju, uključujući dijeljenje nulom.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| I/O ready&lt;br /&gt;
| Uređaj spreman za prijenos podataka.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| I/O complete&lt;br /&gt;
| Završetak operacije ulaza/izlaza.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Tape mark&lt;br /&gt;
| Očitana oznaka kraja bloka na magnetskoj vrpci.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Printer ready&lt;br /&gt;
| Pisač spreman za rad.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Card reader ready&lt;br /&gt;
| Čitač kartica spreman.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Card punch ready&lt;br /&gt;
| Bušilica kartica spremna.&lt;br /&gt;
|-&lt;br /&gt;
| 8–15&lt;br /&gt;
| Peripheral flags&lt;br /&gt;
| Razni signali perifernih uređaja (disk, vrpca, pisač).&lt;br /&gt;
|-&lt;br /&gt;
| 16–35&lt;br /&gt;
| User-defined flags&lt;br /&gt;
| Zastavice koje programer može slobodno koristiti za logiku grananja.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787618</id>
		<title>IBM 704</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787618"/>
		<updated>2026-07-07T09:32:53Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
==Registri==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--             --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:88%;width:34em;&amp;quot;&lt;br /&gt;
|+ Registri u računalu IBM 704&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| style=&amp;quot;font-size:88%;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Podatkovni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | S&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | Q&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | P&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;14&amp;quot;| Akumulator&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | AC&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;1&amp;quot;| S&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;11&amp;quot;| Množitelj/Količnik&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | MQ&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;12&amp;quot;| Senzorni indikatori&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | SI&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 1&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR1 (XRA)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 2&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR2 (XRB)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Indeksni Registar 4 &lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR4 (XRC)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;14&amp;quot; | &#039;&#039;&#039;Brojač naredbi&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Brojač&amp;amp;nbsp;Naredbi&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| IC&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Senzorni indikatori&#039;&#039;&#039; - su posebni statusni bitovi u IBM 704 koj su se u praksi rabili za provjeru grešaka, grananje ovisno o stanju sustava, upravljanje perifernim jedinicama, te za signalizaciju posebnih događaja. Kroz njih programeri su mogli održavati stanje sustava, signalizirati određene uvjete tokom izvršavanje naredbi, čitanje i postavljanje naredbi i tako su služili za jednostane oblike upravljanja tokom programa.&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787617</id>
		<title>IBM 704</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=IBM_704&amp;diff=787617"/>
		<updated>2026-07-07T09:01:55Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Stvorena nova stranica sa sadržajem: »  ==Registri==  &amp;lt;!--             --&amp;gt; {| class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:88%;width:34em;&amp;quot; |+ Registri u računalu IBM 704 |- | {| style=&amp;quot;font-size:88%;width:100%;&amp;quot; |- |colspan=&amp;quot;15&amp;quot; | &amp;#039;&amp;#039;&amp;#039;Podatkovni registri&amp;#039;&amp;#039;&amp;#039; |- | style=&amp;quot;width:10px; text-align:left&amp;quot;  | S | style=&amp;quot;width:10px; text-align:left&amp;quot;  | Q | style=&amp;quot;width:10px; text-align:left&amp;quot;  | P | style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; | style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup...«.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
==Registri==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--             --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:88%;width:34em;&amp;quot;&lt;br /&gt;
|+ Registri u računalu IBM 704&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| style=&amp;quot;font-size:88%;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Podatkovni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | S&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | Q&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | P&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;14&amp;quot;| Akumulator&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | AC&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;1&amp;quot;| S&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;11&amp;quot;| Množitelj/Količnik&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | MQ&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;| &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;12&amp;quot;| Senzorni indikatori&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | SI&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;15&amp;quot; | &#039;&#039;&#039;Indeksni registri&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Index Register 1&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR1 (XRA)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Index Register 2&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR2 (XRB)&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Index Register 4 &lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | XR4 (XRC)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;14&amp;quot; | &#039;&#039;&#039;Brojač naredbi&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:75px; text-align:center&amp;quot;| ...&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  | &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:left&amp;quot;  |  &lt;br /&gt;
| style=&amp;quot;width:40px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center&amp;quot;|  &lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &#039;&#039;(mjesto bit-a)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;5&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;3&amp;quot;| Instruction&amp;amp;nbsp;Counter&lt;br /&gt;
| style=&amp;quot;text-align:center;background:white;&amp;quot; colspan=&amp;quot;6&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| IC&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Senzorni indikatori&#039;&#039;&#039; - su posebni statusni bitovi u IBM 704 koj su se u praksi rabili za provjeru grešaka, grananje ovisno o stanju sustava, upravljanje perifernim jedinicama, te za signalizaciju posebnih događaja. Kroz njih programeri su mogli održavati stanje sustava, signalizirati određene uvjete tokom izvršavanje naredbi, čitanje i postavljanje naredbi i tako su služili za jednostane oblike upravljanja tokom programa.&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=Fortran&amp;diff=787616</id>
		<title>Fortran</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=Fortran&amp;diff=787616"/>
		<updated>2026-07-07T08:48:33Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Posebitosti */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Fortran&#039;&#039;&#039; (ili &#039;&#039;&#039;FORTRAN&#039;&#039;&#039;) ime je za proceduralni, imperativni [[programski jezik]] koji je bio razvijen tijekom 50-ih godina [[20. stoljeće|dvadesetog stoljeća]], i koristi se većinom u znanstvene svrhe. Ime FORTRAN dobiveno je od skraćivanjem engleske složenice &#039;&#039;&#039;For&#039;&#039;&#039;mula &#039;&#039;&#039;Tran&#039;&#039;&#039;slation.&lt;br /&gt;
&lt;br /&gt;
== Povijest razvoja i inačice ==&lt;br /&gt;
&lt;br /&gt;
=== Povijest razvoja ===&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN [[jezični prevoditelj]] (ili kompilator) razvila je tvrtka [[IBM]] za računalo [[IBM 704]] između [[1954.]] i [[1957.]] godine. Razvojnu grupu predvodio je [[John W. Backus]]. Kao jezični prevoditelj FORTRAN je nastao u povojima računarstva tj. kada su osnovna svojstva računala bile veoma skromne (mala glavna memorija, spora centralna jedinica) tako da je razvojni tim imao skučeni prostor za razvoj i implementaciju.&lt;br /&gt;
&lt;br /&gt;
Predvoditelj razvojne grupe John W. Backus je također bio i jedan od glavnih [[inženjer]]a i dizajnera računala [[IBM 704]], računala na kojem je razvijena prva inačica FORTRANA. Uz Backusa u razvojnoj grupi su sudjelovali su sljedeći programeri :&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
* Sheldon F. Best&lt;br /&gt;
* Harlan Herrick&lt;br /&gt;
* Peter Sheridan&lt;br /&gt;
* Roy Nutt&lt;br /&gt;
* Robert Nelson&lt;br /&gt;
* Irving Ziller&lt;br /&gt;
* Richard Goldberg&lt;br /&gt;
* Lois Haibt&lt;br /&gt;
* David Sayre&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
Razvojni tim FORTRANA nije razvio princip programa-prevoditelja te prevođenje složenog programskog jezika u objektni kod, ali oni su prva grupa koja je razvila uspješan složeni programski jezik.&lt;br /&gt;
&lt;br /&gt;
=== Inačice ===&lt;br /&gt;
&lt;br /&gt;
* FORTRAN I   (1954-1957) &lt;br /&gt;
* FORTRAN II  (1958)&lt;br /&gt;
* FORTRAN III (1958)&lt;br /&gt;
* FORTRAN IV  (1961)&lt;br /&gt;
* FORTRAN 66  (1966)&lt;br /&gt;
* FORTRAN 77  (1977)(ANSI standard)&lt;br /&gt;
* FORTRAN 90  (1990)(ANSI standard)&lt;br /&gt;
* FORTRAN 95  (1995)(ANSI standard)&lt;br /&gt;
* FORTRAN 2000 (2000)&lt;br /&gt;
* FORTRAN 2003 (2003)&lt;br /&gt;
* FORTRAN 2008 (2008)&lt;br /&gt;
&lt;br /&gt;
== Posebitosti ==&lt;br /&gt;
&lt;br /&gt;
Fortran je jedan od najstarijih visokorazinskih programskih jezika, a tijekom desetljeća razvio je skup osobitosti koje ga čine jedinstvenim u znanstvenom i tehničkom računarstvu. Njegove posebnosti proizlaze iz povijesnog razvoja, stroge sintakse, optimizacije za numeričke izračune i dugogodišnje uporabe u inženjerskim disciplinama.&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Optimiziran za numeričke izračune i znanstvene aplikacije&#039;&#039;&#039; - Fortran je od samog početka dizajniran za matematičke operacije, što ga čini iznimno brzim u radu s matricama, vektorima i kompleksnim numeričkim algoritmima. Kompajleri Fortrana tradicionalno generiraju vrlo učinkovit strojni kod, posebno za operacije s pomičnim zarezom.&lt;br /&gt;
# &#039;&#039;&#039;Jednostavna i stroga sintaksa&#039;&#039;&#039;- Sintaksa Fortrana je jednostavna, ali stroga. Povijesno je bio vezan uz formatirane linije (npr. FORTRAN 77), dok modernije inačice (Fortran 90+) uvode slobodni format, modularnost i čitljiviji kod. Stroga sintaksa smanjuje mogućnost pogrešaka i olakšava optimizaciju.&lt;br /&gt;
# &#039;&#039;&#039;Duga kompatibilnost unatrag&#039;&#039;&#039; - Jedna od najvećih posebnosti Fortrana jest iznimna kompatibilnost unatrag. Programi napisani prije 40 ili 50 godina često se mogu kompajlirati i pokrenuti na modernim sustavima bez većih izmjena. Ovo je ključno za znanstvene institucije koje održavaju stare, ali pouzdane numeričke modele.&lt;br /&gt;
# &#039;&#039;&#039;Učinkovito rukovanje poljima (arrayima)&#039;&#039;&#039; - Fortran ima napredne mogućnosti rada s poljima, uključujući: automatsko vektoriziranje, rad s višedimenzijskim poljima, ugrađene operacije nad cijelim poljima bez eksplicitnih petlji. Ovo ga čini idealnim za simulacije, fiziku, kemiju, meteorologiju i numeričku analizu.&lt;br /&gt;
# &#039;&#039;&#039;Modularnost i proširivost (Fortran 90+)&#039;&#039;&#039; - Moderni Fortran uvodi module, generičke funkcije, rekurziju, dinamičku alokaciju memorije i druge značajke koje ga čine usporedivim s modernim jezicima, ali uz zadržavanje numeričke učinkovitosti.&lt;br /&gt;
# &#039;&#039;&#039;Stabilnost i pouzdanost u dugotrajnim projektima&#039;&#039;&#039; - Zbog svoje jednostavnosti, stabilnosti i dugogodišnje uporabe, Fortran je i danas temelj mnogih znanstvenih biblioteka ([[BLAS]], [[LAPACK]], [[IMSL]]).Mnoge superračunalne simulacije i dalje se oslanjaju na Fortran zbog njegove predvidljivosti i brzine.&lt;br /&gt;
&lt;br /&gt;
== Nedostaci ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Iako je Fortran jedan od najvažnijih jezika u povijesti računarstva, posebno u znanstvenim i tehničkim disciplinama, ima i niz nedostataka koji proizlaze iz njegove starosti, povijesnog razvoja i ograničenja u modernim programerskim praksama.&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Ograničena podrška za suvremene paradigme&#039;&#039;&#039; - Fortran nije izvorno dizajniran za objektno orijentirano programiranje, funkcionalne paradigme ili moderne apstrakcije. Iako novije inačice (2003, 2008, 2018) uvode određene OOP elemente, njihova implementacija je ograničena i često neudobna u usporedbi s jezicima poput C++, Jave ili Pythona.&lt;br /&gt;
# &#039;&#039;&#039;Manjak standardiziranih biblioteka&#039;&#039;&#039; - Za razliku od modernih jezika koji imaju bogate standardne biblioteke (npr. Python, Java), Fortran se oslanja na vanjske znanstvene biblioteke. Nedostatak univerzalnih modula za rad s datotekama, mrežom, grafikom ili GUI‑jem čini ga nepraktičnim za opće programske zadatke.&lt;br /&gt;
# &#039;&#039;&#039;Složenost održavanja starog koda&#039;&#039;&#039; - Velika količina postojećeg Fortran koda napisana je u starim inačicama (FORTRAN 66, FORTRAN 77) koje koriste zastarjeli formatirani stil, goto naredbe i nečitljive strukture. Održavanje takvog koda zahtijeva specijalizirano znanje i često predstavlja izazov novim programerima.&lt;br /&gt;
# &#039;&#039;&#039;Slaba čitljivost u velikim projektima&#039;&#039;&#039; - Iako je sintaksa jednostavna, Fortran kod može postati teško čitljiv u kompleksnim numeričkim projektima zbog: velikog broja globalnih varijabli, nedostatka modernih mehanizama enkapsulacije, opsežnih polja i matrica koje se teško prate.&lt;br /&gt;
# &#039;&#039;&#039;Ograničena upotreba izvan znanstvenog područja&#039;&#039;&#039; - Fortran je gotovo isključivo prisutan u znanstvenim, inženjerskim i simulacijskim aplikacijama. U industriji, web‑u, mobilnom razvoju, igrama i poslovnim sustavima praktički se ne koristi, što smanjuje dostupnost programera i alata.&lt;br /&gt;
# &#039;&#039;&#039;Manja podrška u modernim razvojnim okruženjima&#039;&#039;&#039; - Iako postoje kvalitetni kompajleri (Intel, GNU, PGI), Fortran ima slabiju integraciju u suvremene IDE‑ove, sustave za upravljanje paketima i razvojne platforme. To otežava rad u timovima i integraciju s drugim tehnologijama.&lt;br /&gt;
&lt;br /&gt;
== Programski primjer ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;fortran&amp;quot;&amp;gt;&lt;br /&gt;
!      This program calculates the area of a tank,                      &lt;br /&gt;
!      excluding the bottom.                                            &lt;br /&gt;
!      The variables are assigned as follows:                           &lt;br /&gt;
!                                                                       &lt;br /&gt;
!          R  =  RADIUS                                                 &lt;br /&gt;
!          H  =  HEIGHT                                                 &lt;br /&gt;
!          PI =  3.14159                                                &lt;br /&gt;
!          A  =  AREA                                                   &lt;br /&gt;
!                                                                       &lt;br /&gt;
!      They are declared with the REAL statement below.                 &lt;br /&gt;
                                                                        &lt;br /&gt;
      REAL R, H, PI, A &lt;br /&gt;
                                                                        &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The OPEN command associates the data file, &amp;quot;PANDAT.DAT&amp;quot;,         &lt;br /&gt;
!      in folder &amp;quot;DATA&amp;quot; with logical device 5.  If there is an          &lt;br /&gt;
!      error, statement 900 is executed.                                &lt;br /&gt;
                                                                        &lt;br /&gt;
      OPEN (5, FILE = &#039;C:\DATA\PANDAT.DAT&#039;, ACCESS = &#039;SEQUENTIAL&#039;,      &amp;amp;&lt;br /&gt;
      STATUS = &#039;OLD&#039;, ERR = 900)                                        &lt;br /&gt;
                                                                        &lt;br /&gt;
                                                                        &lt;br /&gt;
!      This following section accumulates the sum of                    &lt;br /&gt;
!      the input variables.                                             &lt;br /&gt;
!      The first command reads the data record and                      &lt;br /&gt;
!      stores it in memory.                                             &lt;br /&gt;
           &lt;br /&gt;
      DO	                                                                &lt;br /&gt;
         READ (5, FMT = 1, END = 99) R, H &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The next command describes the form and location                 &lt;br /&gt;
!      of the data to be read.                                          &lt;br /&gt;
                                                                        &lt;br /&gt;
    1 FORMAT    (F4.2,F4.2) &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The next statements assign values to the variables.              &lt;br /&gt;
                                                                        &lt;br /&gt;
         PI = 3.14159 &lt;br /&gt;
         A = PI * R**2 + 2 * PI * R * H &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The next section writes the sums to the screen.                  &lt;br /&gt;
!      The first command, PRINT, denotes which FORMAT                   &lt;br /&gt;
!      statement is to be used, and the variables to be printed.        &lt;br /&gt;
                                                                        &lt;br /&gt;
         PRINT 11, H, R, A &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The following FORMAT statement describes how the                 &lt;br /&gt;
!      data field is to be written. Notice the semicolon in column 6    &lt;br /&gt;
!      which is used to denote continuation of the previous line.       &lt;br /&gt;
                                                                        &lt;br /&gt;
   11 FORMAT    (1X,&#039;RADIUS= &#039;,F6.2,10X,&#039;HEIGHT= &#039;,F6.1,10X,&#039;AREA= &#039;,   &amp;amp;&lt;br /&gt;
     &amp;amp;           F8.1)                                                  &lt;br /&gt;
                                                                        &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The following statement completes the loop.                      &lt;br /&gt;
                                                                        &lt;br /&gt;
      END DO &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The next section prints if the input data is invalid.            &lt;br /&gt;
                                                                        &lt;br /&gt;
  900 PRINT 21 &lt;br /&gt;
   21 FORMAT    (1X,&#039;INVALID DATA&#039;) &lt;br /&gt;
                                                                        &lt;br /&gt;
                                                                        &lt;br /&gt;
!      Now we close the file and end program execution.                 &lt;br /&gt;
                                                                        &lt;br /&gt;
   99 CLOSE (5) &lt;br /&gt;
      STOP &lt;br /&gt;
      END                                           &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* IBM Archives – History of FORTRAN&lt;br /&gt;
* John W. Backus – The FORTRAN Automatic Coding System&lt;br /&gt;
* ANSI/ISO standardi za Fortran 77, 90, 95, 2003, 2008&lt;br /&gt;
* BLAS i LAPACK dokumentacija&lt;br /&gt;
* University of California – Fortran Language Overview&lt;br /&gt;
&lt;br /&gt;
== Vanjske poveznice ==&lt;br /&gt;
&lt;br /&gt;
[http://www.ibiblio.org/pub/languages/fortran/ch1-1.html Povijest FORTRAN-a]&lt;br /&gt;
&lt;br /&gt;
== Izvori ==&lt;br /&gt;
&lt;br /&gt;
{{izvori}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorija:Programski jezici]]&lt;br /&gt;
[[Kategorija:IBM]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=Fortran&amp;diff=787615</id>
		<title>Fortran</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=Fortran&amp;diff=787615"/>
		<updated>2026-07-07T08:48:10Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Posebitosti */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Fortran&#039;&#039;&#039; (ili &#039;&#039;&#039;FORTRAN&#039;&#039;&#039;) ime je za proceduralni, imperativni [[programski jezik]] koji je bio razvijen tijekom 50-ih godina [[20. stoljeće|dvadesetog stoljeća]], i koristi se većinom u znanstvene svrhe. Ime FORTRAN dobiveno je od skraćivanjem engleske složenice &#039;&#039;&#039;For&#039;&#039;&#039;mula &#039;&#039;&#039;Tran&#039;&#039;&#039;slation.&lt;br /&gt;
&lt;br /&gt;
== Povijest razvoja i inačice ==&lt;br /&gt;
&lt;br /&gt;
=== Povijest razvoja ===&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN [[jezični prevoditelj]] (ili kompilator) razvila je tvrtka [[IBM]] za računalo [[IBM 704]] između [[1954.]] i [[1957.]] godine. Razvojnu grupu predvodio je [[John W. Backus]]. Kao jezični prevoditelj FORTRAN je nastao u povojima računarstva tj. kada su osnovna svojstva računala bile veoma skromne (mala glavna memorija, spora centralna jedinica) tako da je razvojni tim imao skučeni prostor za razvoj i implementaciju.&lt;br /&gt;
&lt;br /&gt;
Predvoditelj razvojne grupe John W. Backus je također bio i jedan od glavnih [[inženjer]]a i dizajnera računala [[IBM 704]], računala na kojem je razvijena prva inačica FORTRANA. Uz Backusa u razvojnoj grupi su sudjelovali su sljedeći programeri :&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
* Sheldon F. Best&lt;br /&gt;
* Harlan Herrick&lt;br /&gt;
* Peter Sheridan&lt;br /&gt;
* Roy Nutt&lt;br /&gt;
* Robert Nelson&lt;br /&gt;
* Irving Ziller&lt;br /&gt;
* Richard Goldberg&lt;br /&gt;
* Lois Haibt&lt;br /&gt;
* David Sayre&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
Razvojni tim FORTRANA nije razvio princip programa-prevoditelja te prevođenje složenog programskog jezika u objektni kod, ali oni su prva grupa koja je razvila uspješan složeni programski jezik.&lt;br /&gt;
&lt;br /&gt;
=== Inačice ===&lt;br /&gt;
&lt;br /&gt;
* FORTRAN I   (1954-1957) &lt;br /&gt;
* FORTRAN II  (1958)&lt;br /&gt;
* FORTRAN III (1958)&lt;br /&gt;
* FORTRAN IV  (1961)&lt;br /&gt;
* FORTRAN 66  (1966)&lt;br /&gt;
* FORTRAN 77  (1977)(ANSI standard)&lt;br /&gt;
* FORTRAN 90  (1990)(ANSI standard)&lt;br /&gt;
* FORTRAN 95  (1995)(ANSI standard)&lt;br /&gt;
* FORTRAN 2000 (2000)&lt;br /&gt;
* FORTRAN 2003 (2003)&lt;br /&gt;
* FORTRAN 2008 (2008)&lt;br /&gt;
&lt;br /&gt;
== Posebitosti ==&lt;br /&gt;
&lt;br /&gt;
Fortran je jedan od najstarijih visokorazinskih programskih jezika, a tijekom desetljeća razvio je skup osobitosti koje ga čine jedinstvenim u znanstvenom i tehničkom računarstvu. Njegove posebnosti proizlaze iz povijesnog razvoja, stroge sintakse, optimizacije za numeričke izračune i dugogodišnje uporabe u inženjerskim disciplinama.&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Optimiziran za numeričke izračune i znanstvene aplikacije&#039;&#039;&#039; - Fortran je od samog početka dizajniran za matematičke operacije, što ga čini iznimno brzim u radu s matricama, vektorima i kompleksnim numeričkim algoritmima. Kompajleri Fortrana tradicionalno generiraju vrlo učinkovit strojni kod, posebno za operacije s pomičnim zarezom.&lt;br /&gt;
# &#039;&#039;&#039;Jednostavna i stroga sintaksa&#039;&#039;&#039;- Sintaksa Fortrana je jednostavna, ali stroga. Povijesno je bio vezan uz formatirane linije (npr. FORTRAN 77), dok modernije inačice (Fortran 90+) uvode slobodni format, modularnost i čitljiviji kod. Stroga sintaksa smanjuje mogućnost pogrešaka i olakšava optimizaciju.&lt;br /&gt;
# &#039;&#039;&#039;Duga kompatibilnost unatrag&#039;&#039;&#039; - Jedna od najvećih posebnosti Fortrana jest iznimna kompatibilnost unatrag. Programi napisani prije 40 ili 50 godina često se mogu kompajlirati i pokrenuti na modernim sustavima bez većih izmjena. Ovo je ključno za znanstvene institucije koje održavaju stare, ali pouzdane numeričke modele.&lt;br /&gt;
# &#039;&#039;&#039;Učinkovito rukovanje poljima (arrayima)&#039;&#039;&#039; - Fortran ima napredne mogućnosti rada s poljima, uključujući: automatsko vektoriziranje, rad s višedimenzijskim poljima, ugrađene operacije nad cijelim poljima bez eksplicitnih petlji. Ovo ga čini idealnim za simulacije, fiziku, kemiju, meteorologiju i numeričku analizu.&lt;br /&gt;
# &#039;&#039;&#039;Modularnost i proširivost (Fortran 90+)&#039;&#039;&#039; - Moderni Fortran uvodi module, generičke funkcije, rekurziju, dinamičku alokaciju memorije i druge značajke koje ga čine usporedivim s modernim jezicima, ali uz zadržavanje numeričke učinkovitosti.&lt;br /&gt;
- &#039;&#039;&#039;Stabilnost i pouzdanost u dugotrajnim projektima&#039;&#039;&#039; - Zbog svoje jednostavnosti, stabilnosti i dugogodišnje uporabe, Fortran je i danas temelj mnogih znanstvenih biblioteka ([[BLAS]], [[LAPACK]], [[IMSL]]).Mnoge superračunalne simulacije i dalje se oslanjaju na Fortran zbog njegove predvidljivosti i brzine.&lt;br /&gt;
&lt;br /&gt;
== Nedostaci ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Iako je Fortran jedan od najvažnijih jezika u povijesti računarstva, posebno u znanstvenim i tehničkim disciplinama, ima i niz nedostataka koji proizlaze iz njegove starosti, povijesnog razvoja i ograničenja u modernim programerskim praksama.&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Ograničena podrška za suvremene paradigme&#039;&#039;&#039; - Fortran nije izvorno dizajniran za objektno orijentirano programiranje, funkcionalne paradigme ili moderne apstrakcije. Iako novije inačice (2003, 2008, 2018) uvode određene OOP elemente, njihova implementacija je ograničena i često neudobna u usporedbi s jezicima poput C++, Jave ili Pythona.&lt;br /&gt;
# &#039;&#039;&#039;Manjak standardiziranih biblioteka&#039;&#039;&#039; - Za razliku od modernih jezika koji imaju bogate standardne biblioteke (npr. Python, Java), Fortran se oslanja na vanjske znanstvene biblioteke. Nedostatak univerzalnih modula za rad s datotekama, mrežom, grafikom ili GUI‑jem čini ga nepraktičnim za opće programske zadatke.&lt;br /&gt;
# &#039;&#039;&#039;Složenost održavanja starog koda&#039;&#039;&#039; - Velika količina postojećeg Fortran koda napisana je u starim inačicama (FORTRAN 66, FORTRAN 77) koje koriste zastarjeli formatirani stil, goto naredbe i nečitljive strukture. Održavanje takvog koda zahtijeva specijalizirano znanje i često predstavlja izazov novim programerima.&lt;br /&gt;
# &#039;&#039;&#039;Slaba čitljivost u velikim projektima&#039;&#039;&#039; - Iako je sintaksa jednostavna, Fortran kod može postati teško čitljiv u kompleksnim numeričkim projektima zbog: velikog broja globalnih varijabli, nedostatka modernih mehanizama enkapsulacije, opsežnih polja i matrica koje se teško prate.&lt;br /&gt;
# &#039;&#039;&#039;Ograničena upotreba izvan znanstvenog područja&#039;&#039;&#039; - Fortran je gotovo isključivo prisutan u znanstvenim, inženjerskim i simulacijskim aplikacijama. U industriji, web‑u, mobilnom razvoju, igrama i poslovnim sustavima praktički se ne koristi, što smanjuje dostupnost programera i alata.&lt;br /&gt;
# &#039;&#039;&#039;Manja podrška u modernim razvojnim okruženjima&#039;&#039;&#039; - Iako postoje kvalitetni kompajleri (Intel, GNU, PGI), Fortran ima slabiju integraciju u suvremene IDE‑ove, sustave za upravljanje paketima i razvojne platforme. To otežava rad u timovima i integraciju s drugim tehnologijama.&lt;br /&gt;
&lt;br /&gt;
== Programski primjer ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;fortran&amp;quot;&amp;gt;&lt;br /&gt;
!      This program calculates the area of a tank,                      &lt;br /&gt;
!      excluding the bottom.                                            &lt;br /&gt;
!      The variables are assigned as follows:                           &lt;br /&gt;
!                                                                       &lt;br /&gt;
!          R  =  RADIUS                                                 &lt;br /&gt;
!          H  =  HEIGHT                                                 &lt;br /&gt;
!          PI =  3.14159                                                &lt;br /&gt;
!          A  =  AREA                                                   &lt;br /&gt;
!                                                                       &lt;br /&gt;
!      They are declared with the REAL statement below.                 &lt;br /&gt;
                                                                        &lt;br /&gt;
      REAL R, H, PI, A &lt;br /&gt;
                                                                        &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The OPEN command associates the data file, &amp;quot;PANDAT.DAT&amp;quot;,         &lt;br /&gt;
!      in folder &amp;quot;DATA&amp;quot; with logical device 5.  If there is an          &lt;br /&gt;
!      error, statement 900 is executed.                                &lt;br /&gt;
                                                                        &lt;br /&gt;
      OPEN (5, FILE = &#039;C:\DATA\PANDAT.DAT&#039;, ACCESS = &#039;SEQUENTIAL&#039;,      &amp;amp;&lt;br /&gt;
      STATUS = &#039;OLD&#039;, ERR = 900)                                        &lt;br /&gt;
                                                                        &lt;br /&gt;
                                                                        &lt;br /&gt;
!      This following section accumulates the sum of                    &lt;br /&gt;
!      the input variables.                                             &lt;br /&gt;
!      The first command reads the data record and                      &lt;br /&gt;
!      stores it in memory.                                             &lt;br /&gt;
           &lt;br /&gt;
      DO	                                                                &lt;br /&gt;
         READ (5, FMT = 1, END = 99) R, H &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The next command describes the form and location                 &lt;br /&gt;
!      of the data to be read.                                          &lt;br /&gt;
                                                                        &lt;br /&gt;
    1 FORMAT    (F4.2,F4.2) &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The next statements assign values to the variables.              &lt;br /&gt;
                                                                        &lt;br /&gt;
         PI = 3.14159 &lt;br /&gt;
         A = PI * R**2 + 2 * PI * R * H &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The next section writes the sums to the screen.                  &lt;br /&gt;
!      The first command, PRINT, denotes which FORMAT                   &lt;br /&gt;
!      statement is to be used, and the variables to be printed.        &lt;br /&gt;
                                                                        &lt;br /&gt;
         PRINT 11, H, R, A &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The following FORMAT statement describes how the                 &lt;br /&gt;
!      data field is to be written. Notice the semicolon in column 6    &lt;br /&gt;
!      which is used to denote continuation of the previous line.       &lt;br /&gt;
                                                                        &lt;br /&gt;
   11 FORMAT    (1X,&#039;RADIUS= &#039;,F6.2,10X,&#039;HEIGHT= &#039;,F6.1,10X,&#039;AREA= &#039;,   &amp;amp;&lt;br /&gt;
     &amp;amp;           F8.1)                                                  &lt;br /&gt;
                                                                        &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The following statement completes the loop.                      &lt;br /&gt;
                                                                        &lt;br /&gt;
      END DO &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The next section prints if the input data is invalid.            &lt;br /&gt;
                                                                        &lt;br /&gt;
  900 PRINT 21 &lt;br /&gt;
   21 FORMAT    (1X,&#039;INVALID DATA&#039;) &lt;br /&gt;
                                                                        &lt;br /&gt;
                                                                        &lt;br /&gt;
!      Now we close the file and end program execution.                 &lt;br /&gt;
                                                                        &lt;br /&gt;
   99 CLOSE (5) &lt;br /&gt;
      STOP &lt;br /&gt;
      END                                           &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* IBM Archives – History of FORTRAN&lt;br /&gt;
* John W. Backus – The FORTRAN Automatic Coding System&lt;br /&gt;
* ANSI/ISO standardi za Fortran 77, 90, 95, 2003, 2008&lt;br /&gt;
* BLAS i LAPACK dokumentacija&lt;br /&gt;
* University of California – Fortran Language Overview&lt;br /&gt;
&lt;br /&gt;
== Vanjske poveznice ==&lt;br /&gt;
&lt;br /&gt;
[http://www.ibiblio.org/pub/languages/fortran/ch1-1.html Povijest FORTRAN-a]&lt;br /&gt;
&lt;br /&gt;
== Izvori ==&lt;br /&gt;
&lt;br /&gt;
{{izvori}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorija:Programski jezici]]&lt;br /&gt;
[[Kategorija:IBM]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=Fortran&amp;diff=787614</id>
		<title>Fortran</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=Fortran&amp;diff=787614"/>
		<updated>2026-07-07T08:45:52Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Optimiziran za numeričke izračune i znanstvene aplikacije */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Fortran&#039;&#039;&#039; (ili &#039;&#039;&#039;FORTRAN&#039;&#039;&#039;) ime je za proceduralni, imperativni [[programski jezik]] koji je bio razvijen tijekom 50-ih godina [[20. stoljeće|dvadesetog stoljeća]], i koristi se većinom u znanstvene svrhe. Ime FORTRAN dobiveno je od skraćivanjem engleske složenice &#039;&#039;&#039;For&#039;&#039;&#039;mula &#039;&#039;&#039;Tran&#039;&#039;&#039;slation.&lt;br /&gt;
&lt;br /&gt;
== Povijest razvoja i inačice ==&lt;br /&gt;
&lt;br /&gt;
=== Povijest razvoja ===&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN [[jezični prevoditelj]] (ili kompilator) razvila je tvrtka [[IBM]] za računalo [[IBM 704]] između [[1954.]] i [[1957.]] godine. Razvojnu grupu predvodio je [[John W. Backus]]. Kao jezični prevoditelj FORTRAN je nastao u povojima računarstva tj. kada su osnovna svojstva računala bile veoma skromne (mala glavna memorija, spora centralna jedinica) tako da je razvojni tim imao skučeni prostor za razvoj i implementaciju.&lt;br /&gt;
&lt;br /&gt;
Predvoditelj razvojne grupe John W. Backus je također bio i jedan od glavnih [[inženjer]]a i dizajnera računala [[IBM 704]], računala na kojem je razvijena prva inačica FORTRANA. Uz Backusa u razvojnoj grupi su sudjelovali su sljedeći programeri :&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
* Sheldon F. Best&lt;br /&gt;
* Harlan Herrick&lt;br /&gt;
* Peter Sheridan&lt;br /&gt;
* Roy Nutt&lt;br /&gt;
* Robert Nelson&lt;br /&gt;
* Irving Ziller&lt;br /&gt;
* Richard Goldberg&lt;br /&gt;
* Lois Haibt&lt;br /&gt;
* David Sayre&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
Razvojni tim FORTRANA nije razvio princip programa-prevoditelja te prevođenje složenog programskog jezika u objektni kod, ali oni su prva grupa koja je razvila uspješan složeni programski jezik.&lt;br /&gt;
&lt;br /&gt;
=== Inačice ===&lt;br /&gt;
&lt;br /&gt;
* FORTRAN I   (1954-1957) &lt;br /&gt;
* FORTRAN II  (1958)&lt;br /&gt;
* FORTRAN III (1958)&lt;br /&gt;
* FORTRAN IV  (1961)&lt;br /&gt;
* FORTRAN 66  (1966)&lt;br /&gt;
* FORTRAN 77  (1977)(ANSI standard)&lt;br /&gt;
* FORTRAN 90  (1990)(ANSI standard)&lt;br /&gt;
* FORTRAN 95  (1995)(ANSI standard)&lt;br /&gt;
* FORTRAN 2000 (2000)&lt;br /&gt;
* FORTRAN 2003 (2003)&lt;br /&gt;
* FORTRAN 2008 (2008)&lt;br /&gt;
&lt;br /&gt;
== Posebitosti ==&lt;br /&gt;
&lt;br /&gt;
Fortran je jedan od najstarijih visokorazinskih programskih jezika, a tijekom desetljeća razvio je skup osobitosti koje ga čine jedinstvenim u znanstvenom i tehničkom računarstvu. Njegove posebnosti proizlaze iz povijesnog razvoja, stroge sintakse, optimizacije za numeričke izračune i dugogodišnje uporabe u inženjerskim disciplinama.&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Optimiziran za numeričke izračune i znanstvene aplikacije&#039;&#039;&#039; - Fortran je od samog početka dizajniran za matematičke operacije, što ga čini iznimno brzim u radu s matricama, vektorima i kompleksnim numeričkim algoritmima. Kompajleri Fortrana tradicionalno generiraju vrlo učinkovit strojni kod, posebno za operacije s pomičnim zarezom.&lt;br /&gt;
&lt;br /&gt;
=== Jednostavna i stroga sintaksa ===&lt;br /&gt;
&lt;br /&gt;
Sintaksa Fortrana je jednostavna, ali stroga. Povijesno je bio vezan uz formatirane linije (npr. FORTRAN 77), dok modernije inačice (Fortran 90+) uvode slobodni format, modularnost i čitljiviji kod. Stroga sintaksa smanjuje mogućnost pogrešaka i olakšava optimizaciju.&lt;br /&gt;
&lt;br /&gt;
=== Duga kompatibilnost unatrag ===&lt;br /&gt;
&lt;br /&gt;
Jedna od najvećih posebnosti Fortrana jest iznimna kompatibilnost unatrag. Programi napisani prije 40 ili 50 godina često se mogu kompajlirati i pokrenuti na modernim sustavima bez većih izmjena. Ovo je ključno za znanstvene institucije koje održavaju stare, ali pouzdane numeričke modele.&lt;br /&gt;
&lt;br /&gt;
=== Učinkovito rukovanje poljima (arrayima) ===&lt;br /&gt;
&lt;br /&gt;
Fortran ima napredne mogućnosti rada s poljima, uključujući:&lt;br /&gt;
&lt;br /&gt;
* automatsko vektoriziranje,&lt;br /&gt;
* rad s višedimenzijskim poljima,&lt;br /&gt;
* ugrađene operacije nad cijelim poljima bez eksplicitnih petlji.&lt;br /&gt;
&lt;br /&gt;
Ovo ga čini idealnim za simulacije, fiziku, kemiju, meteorologiju i numeričku analizu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Modularnost i proširivost (Fortran 90+) ===&lt;br /&gt;
&lt;br /&gt;
Moderni Fortran uvodi module, generičke funkcije, rekurziju, dinamičku alokaciju memorije i druge značajke koje ga čine usporedivim s modernim jezicima, ali uz zadržavanje numeričke učinkovitosti.&lt;br /&gt;
&lt;br /&gt;
=== Stabilnost i pouzdanost u dugotrajnim projektima ===&lt;br /&gt;
&lt;br /&gt;
Zbog svoje jednostavnosti, stabilnosti i dugogodišnje uporabe, Fortran je i danas temelj mnogih znanstvenih biblioteka ([[BLAS]], [[LAPACK]], [[IMSL]]).Mnoge superračunalne simulacije i dalje se oslanjaju na Fortran zbog njegove predvidljivosti i brzine.&lt;br /&gt;
&lt;br /&gt;
== Nedostaci ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Iako je Fortran jedan od najvažnijih jezika u povijesti računarstva, posebno u znanstvenim i tehničkim disciplinama, ima i niz nedostataka koji proizlaze iz njegove starosti, povijesnog razvoja i ograničenja u modernim programerskim praksama.&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Ograničena podrška za suvremene paradigme&#039;&#039;&#039; - Fortran nije izvorno dizajniran za objektno orijentirano programiranje, funkcionalne paradigme ili moderne apstrakcije. Iako novije inačice (2003, 2008, 2018) uvode određene OOP elemente, njihova implementacija je ograničena i često neudobna u usporedbi s jezicima poput C++, Jave ili Pythona.&lt;br /&gt;
# &#039;&#039;&#039;Manjak standardiziranih biblioteka&#039;&#039;&#039; - Za razliku od modernih jezika koji imaju bogate standardne biblioteke (npr. Python, Java), Fortran se oslanja na vanjske znanstvene biblioteke. Nedostatak univerzalnih modula za rad s datotekama, mrežom, grafikom ili GUI‑jem čini ga nepraktičnim za opće programske zadatke.&lt;br /&gt;
# &#039;&#039;&#039;Složenost održavanja starog koda&#039;&#039;&#039; - Velika količina postojećeg Fortran koda napisana je u starim inačicama (FORTRAN 66, FORTRAN 77) koje koriste zastarjeli formatirani stil, goto naredbe i nečitljive strukture. Održavanje takvog koda zahtijeva specijalizirano znanje i često predstavlja izazov novim programerima.&lt;br /&gt;
# &#039;&#039;&#039;Slaba čitljivost u velikim projektima&#039;&#039;&#039; - Iako je sintaksa jednostavna, Fortran kod može postati teško čitljiv u kompleksnim numeričkim projektima zbog: velikog broja globalnih varijabli, nedostatka modernih mehanizama enkapsulacije, opsežnih polja i matrica koje se teško prate.&lt;br /&gt;
# &#039;&#039;&#039;Ograničena upotreba izvan znanstvenog područja&#039;&#039;&#039; - Fortran je gotovo isključivo prisutan u znanstvenim, inženjerskim i simulacijskim aplikacijama. U industriji, web‑u, mobilnom razvoju, igrama i poslovnim sustavima praktički se ne koristi, što smanjuje dostupnost programera i alata.&lt;br /&gt;
# &#039;&#039;&#039;Manja podrška u modernim razvojnim okruženjima&#039;&#039;&#039; - Iako postoje kvalitetni kompajleri (Intel, GNU, PGI), Fortran ima slabiju integraciju u suvremene IDE‑ove, sustave za upravljanje paketima i razvojne platforme. To otežava rad u timovima i integraciju s drugim tehnologijama.&lt;br /&gt;
&lt;br /&gt;
== Programski primjer ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;fortran&amp;quot;&amp;gt;&lt;br /&gt;
!      This program calculates the area of a tank,                      &lt;br /&gt;
!      excluding the bottom.                                            &lt;br /&gt;
!      The variables are assigned as follows:                           &lt;br /&gt;
!                                                                       &lt;br /&gt;
!          R  =  RADIUS                                                 &lt;br /&gt;
!          H  =  HEIGHT                                                 &lt;br /&gt;
!          PI =  3.14159                                                &lt;br /&gt;
!          A  =  AREA                                                   &lt;br /&gt;
!                                                                       &lt;br /&gt;
!      They are declared with the REAL statement below.                 &lt;br /&gt;
                                                                        &lt;br /&gt;
      REAL R, H, PI, A &lt;br /&gt;
                                                                        &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The OPEN command associates the data file, &amp;quot;PANDAT.DAT&amp;quot;,         &lt;br /&gt;
!      in folder &amp;quot;DATA&amp;quot; with logical device 5.  If there is an          &lt;br /&gt;
!      error, statement 900 is executed.                                &lt;br /&gt;
                                                                        &lt;br /&gt;
      OPEN (5, FILE = &#039;C:\DATA\PANDAT.DAT&#039;, ACCESS = &#039;SEQUENTIAL&#039;,      &amp;amp;&lt;br /&gt;
      STATUS = &#039;OLD&#039;, ERR = 900)                                        &lt;br /&gt;
                                                                        &lt;br /&gt;
                                                                        &lt;br /&gt;
!      This following section accumulates the sum of                    &lt;br /&gt;
!      the input variables.                                             &lt;br /&gt;
!      The first command reads the data record and                      &lt;br /&gt;
!      stores it in memory.                                             &lt;br /&gt;
           &lt;br /&gt;
      DO	                                                                &lt;br /&gt;
         READ (5, FMT = 1, END = 99) R, H &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The next command describes the form and location                 &lt;br /&gt;
!      of the data to be read.                                          &lt;br /&gt;
                                                                        &lt;br /&gt;
    1 FORMAT    (F4.2,F4.2) &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The next statements assign values to the variables.              &lt;br /&gt;
                                                                        &lt;br /&gt;
         PI = 3.14159 &lt;br /&gt;
         A = PI * R**2 + 2 * PI * R * H &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The next section writes the sums to the screen.                  &lt;br /&gt;
!      The first command, PRINT, denotes which FORMAT                   &lt;br /&gt;
!      statement is to be used, and the variables to be printed.        &lt;br /&gt;
                                                                        &lt;br /&gt;
         PRINT 11, H, R, A &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The following FORMAT statement describes how the                 &lt;br /&gt;
!      data field is to be written. Notice the semicolon in column 6    &lt;br /&gt;
!      which is used to denote continuation of the previous line.       &lt;br /&gt;
                                                                        &lt;br /&gt;
   11 FORMAT    (1X,&#039;RADIUS= &#039;,F6.2,10X,&#039;HEIGHT= &#039;,F6.1,10X,&#039;AREA= &#039;,   &amp;amp;&lt;br /&gt;
     &amp;amp;           F8.1)                                                  &lt;br /&gt;
                                                                        &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The following statement completes the loop.                      &lt;br /&gt;
                                                                        &lt;br /&gt;
      END DO &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The next section prints if the input data is invalid.            &lt;br /&gt;
                                                                        &lt;br /&gt;
  900 PRINT 21 &lt;br /&gt;
   21 FORMAT    (1X,&#039;INVALID DATA&#039;) &lt;br /&gt;
                                                                        &lt;br /&gt;
                                                                        &lt;br /&gt;
!      Now we close the file and end program execution.                 &lt;br /&gt;
                                                                        &lt;br /&gt;
   99 CLOSE (5) &lt;br /&gt;
      STOP &lt;br /&gt;
      END                                           &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* IBM Archives – History of FORTRAN&lt;br /&gt;
* John W. Backus – The FORTRAN Automatic Coding System&lt;br /&gt;
* ANSI/ISO standardi za Fortran 77, 90, 95, 2003, 2008&lt;br /&gt;
* BLAS i LAPACK dokumentacija&lt;br /&gt;
* University of California – Fortran Language Overview&lt;br /&gt;
&lt;br /&gt;
== Vanjske poveznice ==&lt;br /&gt;
&lt;br /&gt;
[http://www.ibiblio.org/pub/languages/fortran/ch1-1.html Povijest FORTRAN-a]&lt;br /&gt;
&lt;br /&gt;
== Izvori ==&lt;br /&gt;
&lt;br /&gt;
{{izvori}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorija:Programski jezici]]&lt;br /&gt;
[[Kategorija:IBM]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=Fortran&amp;diff=787613</id>
		<title>Fortran</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=Fortran&amp;diff=787613"/>
		<updated>2026-07-07T08:45:23Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Nedostaci */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Fortran&#039;&#039;&#039; (ili &#039;&#039;&#039;FORTRAN&#039;&#039;&#039;) ime je za proceduralni, imperativni [[programski jezik]] koji je bio razvijen tijekom 50-ih godina [[20. stoljeće|dvadesetog stoljeća]], i koristi se većinom u znanstvene svrhe. Ime FORTRAN dobiveno je od skraćivanjem engleske složenice &#039;&#039;&#039;For&#039;&#039;&#039;mula &#039;&#039;&#039;Tran&#039;&#039;&#039;slation.&lt;br /&gt;
&lt;br /&gt;
== Povijest razvoja i inačice ==&lt;br /&gt;
&lt;br /&gt;
=== Povijest razvoja ===&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN [[jezični prevoditelj]] (ili kompilator) razvila je tvrtka [[IBM]] za računalo [[IBM 704]] između [[1954.]] i [[1957.]] godine. Razvojnu grupu predvodio je [[John W. Backus]]. Kao jezični prevoditelj FORTRAN je nastao u povojima računarstva tj. kada su osnovna svojstva računala bile veoma skromne (mala glavna memorija, spora centralna jedinica) tako da je razvojni tim imao skučeni prostor za razvoj i implementaciju.&lt;br /&gt;
&lt;br /&gt;
Predvoditelj razvojne grupe John W. Backus je također bio i jedan od glavnih [[inženjer]]a i dizajnera računala [[IBM 704]], računala na kojem je razvijena prva inačica FORTRANA. Uz Backusa u razvojnoj grupi su sudjelovali su sljedeći programeri :&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
* Sheldon F. Best&lt;br /&gt;
* Harlan Herrick&lt;br /&gt;
* Peter Sheridan&lt;br /&gt;
* Roy Nutt&lt;br /&gt;
* Robert Nelson&lt;br /&gt;
* Irving Ziller&lt;br /&gt;
* Richard Goldberg&lt;br /&gt;
* Lois Haibt&lt;br /&gt;
* David Sayre&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
Razvojni tim FORTRANA nije razvio princip programa-prevoditelja te prevođenje složenog programskog jezika u objektni kod, ali oni su prva grupa koja je razvila uspješan složeni programski jezik.&lt;br /&gt;
&lt;br /&gt;
=== Inačice ===&lt;br /&gt;
&lt;br /&gt;
* FORTRAN I   (1954-1957) &lt;br /&gt;
* FORTRAN II  (1958)&lt;br /&gt;
* FORTRAN III (1958)&lt;br /&gt;
* FORTRAN IV  (1961)&lt;br /&gt;
* FORTRAN 66  (1966)&lt;br /&gt;
* FORTRAN 77  (1977)(ANSI standard)&lt;br /&gt;
* FORTRAN 90  (1990)(ANSI standard)&lt;br /&gt;
* FORTRAN 95  (1995)(ANSI standard)&lt;br /&gt;
* FORTRAN 2000 (2000)&lt;br /&gt;
* FORTRAN 2003 (2003)&lt;br /&gt;
* FORTRAN 2008 (2008)&lt;br /&gt;
&lt;br /&gt;
== Posebitosti ==&lt;br /&gt;
&lt;br /&gt;
Fortran je jedan od najstarijih visokorazinskih programskih jezika, a tijekom desetljeća razvio je skup osobitosti koje ga čine jedinstvenim u znanstvenom i tehničkom računarstvu. Njegove posebnosti proizlaze iz povijesnog razvoja, stroge sintakse, optimizacije za numeričke izračune i dugogodišnje uporabe u inženjerskim disciplinama.&lt;br /&gt;
&lt;br /&gt;
=== Optimiziran za numeričke izračune i znanstvene aplikacije ===&lt;br /&gt;
&lt;br /&gt;
Fortran je od samog početka dizajniran za matematičke operacije, što ga čini iznimno brzim u radu s matricama, vektorima i kompleksnim numeričkim algoritmima. Kompajleri Fortrana tradicionalno generiraju vrlo učinkovit strojni kod, posebno za operacije s pomičnim zarezom.&lt;br /&gt;
&lt;br /&gt;
=== Jednostavna i stroga sintaksa ===&lt;br /&gt;
&lt;br /&gt;
Sintaksa Fortrana je jednostavna, ali stroga. Povijesno je bio vezan uz formatirane linije (npr. FORTRAN 77), dok modernije inačice (Fortran 90+) uvode slobodni format, modularnost i čitljiviji kod. Stroga sintaksa smanjuje mogućnost pogrešaka i olakšava optimizaciju.&lt;br /&gt;
&lt;br /&gt;
=== Duga kompatibilnost unatrag ===&lt;br /&gt;
&lt;br /&gt;
Jedna od najvećih posebnosti Fortrana jest iznimna kompatibilnost unatrag. Programi napisani prije 40 ili 50 godina često se mogu kompajlirati i pokrenuti na modernim sustavima bez većih izmjena. Ovo je ključno za znanstvene institucije koje održavaju stare, ali pouzdane numeričke modele.&lt;br /&gt;
&lt;br /&gt;
=== Učinkovito rukovanje poljima (arrayima) ===&lt;br /&gt;
&lt;br /&gt;
Fortran ima napredne mogućnosti rada s poljima, uključujući:&lt;br /&gt;
&lt;br /&gt;
* automatsko vektoriziranje,&lt;br /&gt;
* rad s višedimenzijskim poljima,&lt;br /&gt;
* ugrađene operacije nad cijelim poljima bez eksplicitnih petlji.&lt;br /&gt;
&lt;br /&gt;
Ovo ga čini idealnim za simulacije, fiziku, kemiju, meteorologiju i numeričku analizu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Modularnost i proširivost (Fortran 90+) ===&lt;br /&gt;
&lt;br /&gt;
Moderni Fortran uvodi module, generičke funkcije, rekurziju, dinamičku alokaciju memorije i druge značajke koje ga čine usporedivim s modernim jezicima, ali uz zadržavanje numeričke učinkovitosti.&lt;br /&gt;
&lt;br /&gt;
=== Stabilnost i pouzdanost u dugotrajnim projektima ===&lt;br /&gt;
&lt;br /&gt;
Zbog svoje jednostavnosti, stabilnosti i dugogodišnje uporabe, Fortran je i danas temelj mnogih znanstvenih biblioteka ([[BLAS]], [[LAPACK]], [[IMSL]]).Mnoge superračunalne simulacije i dalje se oslanjaju na Fortran zbog njegove predvidljivosti i brzine.&lt;br /&gt;
&lt;br /&gt;
== Nedostaci ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Iako je Fortran jedan od najvažnijih jezika u povijesti računarstva, posebno u znanstvenim i tehničkim disciplinama, ima i niz nedostataka koji proizlaze iz njegove starosti, povijesnog razvoja i ograničenja u modernim programerskim praksama.&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Ograničena podrška za suvremene paradigme&#039;&#039;&#039; - Fortran nije izvorno dizajniran za objektno orijentirano programiranje, funkcionalne paradigme ili moderne apstrakcije. Iako novije inačice (2003, 2008, 2018) uvode određene OOP elemente, njihova implementacija je ograničena i često neudobna u usporedbi s jezicima poput C++, Jave ili Pythona.&lt;br /&gt;
# &#039;&#039;&#039;Manjak standardiziranih biblioteka&#039;&#039;&#039; - Za razliku od modernih jezika koji imaju bogate standardne biblioteke (npr. Python, Java), Fortran se oslanja na vanjske znanstvene biblioteke. Nedostatak univerzalnih modula za rad s datotekama, mrežom, grafikom ili GUI‑jem čini ga nepraktičnim za opće programske zadatke.&lt;br /&gt;
# &#039;&#039;&#039;Složenost održavanja starog koda&#039;&#039;&#039; - Velika količina postojećeg Fortran koda napisana je u starim inačicama (FORTRAN 66, FORTRAN 77) koje koriste zastarjeli formatirani stil, goto naredbe i nečitljive strukture. Održavanje takvog koda zahtijeva specijalizirano znanje i često predstavlja izazov novim programerima.&lt;br /&gt;
# &#039;&#039;&#039;Slaba čitljivost u velikim projektima&#039;&#039;&#039; - Iako je sintaksa jednostavna, Fortran kod može postati teško čitljiv u kompleksnim numeričkim projektima zbog: velikog broja globalnih varijabli, nedostatka modernih mehanizama enkapsulacije, opsežnih polja i matrica koje se teško prate.&lt;br /&gt;
# &#039;&#039;&#039;Ograničena upotreba izvan znanstvenog područja&#039;&#039;&#039; - Fortran je gotovo isključivo prisutan u znanstvenim, inženjerskim i simulacijskim aplikacijama. U industriji, web‑u, mobilnom razvoju, igrama i poslovnim sustavima praktički se ne koristi, što smanjuje dostupnost programera i alata.&lt;br /&gt;
# &#039;&#039;&#039;Manja podrška u modernim razvojnim okruženjima&#039;&#039;&#039; - Iako postoje kvalitetni kompajleri (Intel, GNU, PGI), Fortran ima slabiju integraciju u suvremene IDE‑ove, sustave za upravljanje paketima i razvojne platforme. To otežava rad u timovima i integraciju s drugim tehnologijama.&lt;br /&gt;
&lt;br /&gt;
== Programski primjer ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;fortran&amp;quot;&amp;gt;&lt;br /&gt;
!      This program calculates the area of a tank,                      &lt;br /&gt;
!      excluding the bottom.                                            &lt;br /&gt;
!      The variables are assigned as follows:                           &lt;br /&gt;
!                                                                       &lt;br /&gt;
!          R  =  RADIUS                                                 &lt;br /&gt;
!          H  =  HEIGHT                                                 &lt;br /&gt;
!          PI =  3.14159                                                &lt;br /&gt;
!          A  =  AREA                                                   &lt;br /&gt;
!                                                                       &lt;br /&gt;
!      They are declared with the REAL statement below.                 &lt;br /&gt;
                                                                        &lt;br /&gt;
      REAL R, H, PI, A &lt;br /&gt;
                                                                        &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The OPEN command associates the data file, &amp;quot;PANDAT.DAT&amp;quot;,         &lt;br /&gt;
!      in folder &amp;quot;DATA&amp;quot; with logical device 5.  If there is an          &lt;br /&gt;
!      error, statement 900 is executed.                                &lt;br /&gt;
                                                                        &lt;br /&gt;
      OPEN (5, FILE = &#039;C:\DATA\PANDAT.DAT&#039;, ACCESS = &#039;SEQUENTIAL&#039;,      &amp;amp;&lt;br /&gt;
      STATUS = &#039;OLD&#039;, ERR = 900)                                        &lt;br /&gt;
                                                                        &lt;br /&gt;
                                                                        &lt;br /&gt;
!      This following section accumulates the sum of                    &lt;br /&gt;
!      the input variables.                                             &lt;br /&gt;
!      The first command reads the data record and                      &lt;br /&gt;
!      stores it in memory.                                             &lt;br /&gt;
           &lt;br /&gt;
      DO	                                                                &lt;br /&gt;
         READ (5, FMT = 1, END = 99) R, H &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The next command describes the form and location                 &lt;br /&gt;
!      of the data to be read.                                          &lt;br /&gt;
                                                                        &lt;br /&gt;
    1 FORMAT    (F4.2,F4.2) &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The next statements assign values to the variables.              &lt;br /&gt;
                                                                        &lt;br /&gt;
         PI = 3.14159 &lt;br /&gt;
         A = PI * R**2 + 2 * PI * R * H &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The next section writes the sums to the screen.                  &lt;br /&gt;
!      The first command, PRINT, denotes which FORMAT                   &lt;br /&gt;
!      statement is to be used, and the variables to be printed.        &lt;br /&gt;
                                                                        &lt;br /&gt;
         PRINT 11, H, R, A &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The following FORMAT statement describes how the                 &lt;br /&gt;
!      data field is to be written. Notice the semicolon in column 6    &lt;br /&gt;
!      which is used to denote continuation of the previous line.       &lt;br /&gt;
                                                                        &lt;br /&gt;
   11 FORMAT    (1X,&#039;RADIUS= &#039;,F6.2,10X,&#039;HEIGHT= &#039;,F6.1,10X,&#039;AREA= &#039;,   &amp;amp;&lt;br /&gt;
     &amp;amp;           F8.1)                                                  &lt;br /&gt;
                                                                        &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The following statement completes the loop.                      &lt;br /&gt;
                                                                        &lt;br /&gt;
      END DO &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The next section prints if the input data is invalid.            &lt;br /&gt;
                                                                        &lt;br /&gt;
  900 PRINT 21 &lt;br /&gt;
   21 FORMAT    (1X,&#039;INVALID DATA&#039;) &lt;br /&gt;
                                                                        &lt;br /&gt;
                                                                        &lt;br /&gt;
!      Now we close the file and end program execution.                 &lt;br /&gt;
                                                                        &lt;br /&gt;
   99 CLOSE (5) &lt;br /&gt;
      STOP &lt;br /&gt;
      END                                           &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* IBM Archives – History of FORTRAN&lt;br /&gt;
* John W. Backus – The FORTRAN Automatic Coding System&lt;br /&gt;
* ANSI/ISO standardi za Fortran 77, 90, 95, 2003, 2008&lt;br /&gt;
* BLAS i LAPACK dokumentacija&lt;br /&gt;
* University of California – Fortran Language Overview&lt;br /&gt;
&lt;br /&gt;
== Vanjske poveznice ==&lt;br /&gt;
&lt;br /&gt;
[http://www.ibiblio.org/pub/languages/fortran/ch1-1.html Povijest FORTRAN-a]&lt;br /&gt;
&lt;br /&gt;
== Izvori ==&lt;br /&gt;
&lt;br /&gt;
{{izvori}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorija:Programski jezici]]&lt;br /&gt;
[[Kategorija:IBM]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=Fortran&amp;diff=787612</id>
		<title>Fortran</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=Fortran&amp;diff=787612"/>
		<updated>2026-07-07T08:44:40Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Nedostaci */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Fortran&#039;&#039;&#039; (ili &#039;&#039;&#039;FORTRAN&#039;&#039;&#039;) ime je za proceduralni, imperativni [[programski jezik]] koji je bio razvijen tijekom 50-ih godina [[20. stoljeće|dvadesetog stoljeća]], i koristi se većinom u znanstvene svrhe. Ime FORTRAN dobiveno je od skraćivanjem engleske složenice &#039;&#039;&#039;For&#039;&#039;&#039;mula &#039;&#039;&#039;Tran&#039;&#039;&#039;slation.&lt;br /&gt;
&lt;br /&gt;
== Povijest razvoja i inačice ==&lt;br /&gt;
&lt;br /&gt;
=== Povijest razvoja ===&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN [[jezični prevoditelj]] (ili kompilator) razvila je tvrtka [[IBM]] za računalo [[IBM 704]] između [[1954.]] i [[1957.]] godine. Razvojnu grupu predvodio je [[John W. Backus]]. Kao jezični prevoditelj FORTRAN je nastao u povojima računarstva tj. kada su osnovna svojstva računala bile veoma skromne (mala glavna memorija, spora centralna jedinica) tako da je razvojni tim imao skučeni prostor za razvoj i implementaciju.&lt;br /&gt;
&lt;br /&gt;
Predvoditelj razvojne grupe John W. Backus je također bio i jedan od glavnih [[inženjer]]a i dizajnera računala [[IBM 704]], računala na kojem je razvijena prva inačica FORTRANA. Uz Backusa u razvojnoj grupi su sudjelovali su sljedeći programeri :&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
* Sheldon F. Best&lt;br /&gt;
* Harlan Herrick&lt;br /&gt;
* Peter Sheridan&lt;br /&gt;
* Roy Nutt&lt;br /&gt;
* Robert Nelson&lt;br /&gt;
* Irving Ziller&lt;br /&gt;
* Richard Goldberg&lt;br /&gt;
* Lois Haibt&lt;br /&gt;
* David Sayre&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
Razvojni tim FORTRANA nije razvio princip programa-prevoditelja te prevođenje složenog programskog jezika u objektni kod, ali oni su prva grupa koja je razvila uspješan složeni programski jezik.&lt;br /&gt;
&lt;br /&gt;
=== Inačice ===&lt;br /&gt;
&lt;br /&gt;
* FORTRAN I   (1954-1957) &lt;br /&gt;
* FORTRAN II  (1958)&lt;br /&gt;
* FORTRAN III (1958)&lt;br /&gt;
* FORTRAN IV  (1961)&lt;br /&gt;
* FORTRAN 66  (1966)&lt;br /&gt;
* FORTRAN 77  (1977)(ANSI standard)&lt;br /&gt;
* FORTRAN 90  (1990)(ANSI standard)&lt;br /&gt;
* FORTRAN 95  (1995)(ANSI standard)&lt;br /&gt;
* FORTRAN 2000 (2000)&lt;br /&gt;
* FORTRAN 2003 (2003)&lt;br /&gt;
* FORTRAN 2008 (2008)&lt;br /&gt;
&lt;br /&gt;
== Posebitosti ==&lt;br /&gt;
&lt;br /&gt;
Fortran je jedan od najstarijih visokorazinskih programskih jezika, a tijekom desetljeća razvio je skup osobitosti koje ga čine jedinstvenim u znanstvenom i tehničkom računarstvu. Njegove posebnosti proizlaze iz povijesnog razvoja, stroge sintakse, optimizacije za numeričke izračune i dugogodišnje uporabe u inženjerskim disciplinama.&lt;br /&gt;
&lt;br /&gt;
=== Optimiziran za numeričke izračune i znanstvene aplikacije ===&lt;br /&gt;
&lt;br /&gt;
Fortran je od samog početka dizajniran za matematičke operacije, što ga čini iznimno brzim u radu s matricama, vektorima i kompleksnim numeričkim algoritmima. Kompajleri Fortrana tradicionalno generiraju vrlo učinkovit strojni kod, posebno za operacije s pomičnim zarezom.&lt;br /&gt;
&lt;br /&gt;
=== Jednostavna i stroga sintaksa ===&lt;br /&gt;
&lt;br /&gt;
Sintaksa Fortrana je jednostavna, ali stroga. Povijesno je bio vezan uz formatirane linije (npr. FORTRAN 77), dok modernije inačice (Fortran 90+) uvode slobodni format, modularnost i čitljiviji kod. Stroga sintaksa smanjuje mogućnost pogrešaka i olakšava optimizaciju.&lt;br /&gt;
&lt;br /&gt;
=== Duga kompatibilnost unatrag ===&lt;br /&gt;
&lt;br /&gt;
Jedna od najvećih posebnosti Fortrana jest iznimna kompatibilnost unatrag. Programi napisani prije 40 ili 50 godina često se mogu kompajlirati i pokrenuti na modernim sustavima bez većih izmjena. Ovo je ključno za znanstvene institucije koje održavaju stare, ali pouzdane numeričke modele.&lt;br /&gt;
&lt;br /&gt;
=== Učinkovito rukovanje poljima (arrayima) ===&lt;br /&gt;
&lt;br /&gt;
Fortran ima napredne mogućnosti rada s poljima, uključujući:&lt;br /&gt;
&lt;br /&gt;
* automatsko vektoriziranje,&lt;br /&gt;
* rad s višedimenzijskim poljima,&lt;br /&gt;
* ugrađene operacije nad cijelim poljima bez eksplicitnih petlji.&lt;br /&gt;
&lt;br /&gt;
Ovo ga čini idealnim za simulacije, fiziku, kemiju, meteorologiju i numeričku analizu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Modularnost i proširivost (Fortran 90+) ===&lt;br /&gt;
&lt;br /&gt;
Moderni Fortran uvodi module, generičke funkcije, rekurziju, dinamičku alokaciju memorije i druge značajke koje ga čine usporedivim s modernim jezicima, ali uz zadržavanje numeričke učinkovitosti.&lt;br /&gt;
&lt;br /&gt;
=== Stabilnost i pouzdanost u dugotrajnim projektima ===&lt;br /&gt;
&lt;br /&gt;
Zbog svoje jednostavnosti, stabilnosti i dugogodišnje uporabe, Fortran je i danas temelj mnogih znanstvenih biblioteka ([[BLAS]], [[LAPACK]], [[IMSL]]).Mnoge superračunalne simulacije i dalje se oslanjaju na Fortran zbog njegove predvidljivosti i brzine.&lt;br /&gt;
&lt;br /&gt;
== Nedostaci ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Iako je Fortran jedan od najvažnijih jezika u povijesti računarstva, posebno u znanstvenim i tehničkim disciplinama, ima i niz nedostataka koji proizlaze iz njegove starosti, povijesnog razvoja i ograničenja u modernim programerskim praksama.&lt;br /&gt;
&lt;br /&gt;
# Ograničena podrška za suvremene paradigme - Fortran nije izvorno dizajniran za objektno orijentirano programiranje, funkcionalne paradigme ili moderne apstrakcije. Iako novije inačice (2003, 2008, 2018) uvode određene OOP elemente, njihova implementacija je ograničena i često neudobna u usporedbi s jezicima poput C++, Jave ili Pythona.&lt;br /&gt;
# Manjak standardiziranih biblioteka - Za razliku od modernih jezika koji imaju bogate standardne biblioteke (npr. Python, Java), Fortran se oslanja na vanjske znanstvene biblioteke. Nedostatak univerzalnih modula za rad s datotekama, mrežom, grafikom ili GUI‑jem čini ga nepraktičnim za opće programske zadatke.&lt;br /&gt;
# Složenost održavanja starog koda - Velika količina postojećeg Fortran koda napisana je u starim inačicama (FORTRAN 66, FORTRAN 77) koje koriste zastarjeli formatirani stil, goto naredbe i nečitljive strukture. Održavanje takvog koda zahtijeva specijalizirano znanje i često predstavlja izazov novim programerima.&lt;br /&gt;
# Slaba čitljivost u velikim projektima - Iako je sintaksa jednostavna, Fortran kod može postati teško čitljiv u kompleksnim numeričkim projektima zbog: velikog broja globalnih varijabli, nedostatka modernih mehanizama enkapsulacije, opsežnih polja i matrica koje se teško prate.&lt;br /&gt;
# Ograničena upotreba izvan znanstvenog područja - Fortran je gotovo isključivo prisutan u znanstvenim, inženjerskim i simulacijskim aplikacijama. U industriji, web‑u, mobilnom razvoju, igrama i poslovnim sustavima praktički se ne koristi, što smanjuje dostupnost programera i alata.&lt;br /&gt;
# Manja podrška u modernim razvojnim okruženjima - Iako postoje kvalitetni kompajleri (Intel, GNU, PGI), Fortran ima slabiju integraciju u suvremene IDE‑ove, sustave za upravljanje paketima i razvojne platforme. To otežava rad u timovima i integraciju s drugim tehnologijama.&lt;br /&gt;
&lt;br /&gt;
== Programski primjer ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;fortran&amp;quot;&amp;gt;&lt;br /&gt;
!      This program calculates the area of a tank,                      &lt;br /&gt;
!      excluding the bottom.                                            &lt;br /&gt;
!      The variables are assigned as follows:                           &lt;br /&gt;
!                                                                       &lt;br /&gt;
!          R  =  RADIUS                                                 &lt;br /&gt;
!          H  =  HEIGHT                                                 &lt;br /&gt;
!          PI =  3.14159                                                &lt;br /&gt;
!          A  =  AREA                                                   &lt;br /&gt;
!                                                                       &lt;br /&gt;
!      They are declared with the REAL statement below.                 &lt;br /&gt;
                                                                        &lt;br /&gt;
      REAL R, H, PI, A &lt;br /&gt;
                                                                        &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The OPEN command associates the data file, &amp;quot;PANDAT.DAT&amp;quot;,         &lt;br /&gt;
!      in folder &amp;quot;DATA&amp;quot; with logical device 5.  If there is an          &lt;br /&gt;
!      error, statement 900 is executed.                                &lt;br /&gt;
                                                                        &lt;br /&gt;
      OPEN (5, FILE = &#039;C:\DATA\PANDAT.DAT&#039;, ACCESS = &#039;SEQUENTIAL&#039;,      &amp;amp;&lt;br /&gt;
      STATUS = &#039;OLD&#039;, ERR = 900)                                        &lt;br /&gt;
                                                                        &lt;br /&gt;
                                                                        &lt;br /&gt;
!      This following section accumulates the sum of                    &lt;br /&gt;
!      the input variables.                                             &lt;br /&gt;
!      The first command reads the data record and                      &lt;br /&gt;
!      stores it in memory.                                             &lt;br /&gt;
           &lt;br /&gt;
      DO	                                                                &lt;br /&gt;
         READ (5, FMT = 1, END = 99) R, H &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The next command describes the form and location                 &lt;br /&gt;
!      of the data to be read.                                          &lt;br /&gt;
                                                                        &lt;br /&gt;
    1 FORMAT    (F4.2,F4.2) &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The next statements assign values to the variables.              &lt;br /&gt;
                                                                        &lt;br /&gt;
         PI = 3.14159 &lt;br /&gt;
         A = PI * R**2 + 2 * PI * R * H &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The next section writes the sums to the screen.                  &lt;br /&gt;
!      The first command, PRINT, denotes which FORMAT                   &lt;br /&gt;
!      statement is to be used, and the variables to be printed.        &lt;br /&gt;
                                                                        &lt;br /&gt;
         PRINT 11, H, R, A &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The following FORMAT statement describes how the                 &lt;br /&gt;
!      data field is to be written. Notice the semicolon in column 6    &lt;br /&gt;
!      which is used to denote continuation of the previous line.       &lt;br /&gt;
                                                                        &lt;br /&gt;
   11 FORMAT    (1X,&#039;RADIUS= &#039;,F6.2,10X,&#039;HEIGHT= &#039;,F6.1,10X,&#039;AREA= &#039;,   &amp;amp;&lt;br /&gt;
     &amp;amp;           F8.1)                                                  &lt;br /&gt;
                                                                        &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The following statement completes the loop.                      &lt;br /&gt;
                                                                        &lt;br /&gt;
      END DO &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The next section prints if the input data is invalid.            &lt;br /&gt;
                                                                        &lt;br /&gt;
  900 PRINT 21 &lt;br /&gt;
   21 FORMAT    (1X,&#039;INVALID DATA&#039;) &lt;br /&gt;
                                                                        &lt;br /&gt;
                                                                        &lt;br /&gt;
!      Now we close the file and end program execution.                 &lt;br /&gt;
                                                                        &lt;br /&gt;
   99 CLOSE (5) &lt;br /&gt;
      STOP &lt;br /&gt;
      END                                           &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* IBM Archives – History of FORTRAN&lt;br /&gt;
* John W. Backus – The FORTRAN Automatic Coding System&lt;br /&gt;
* ANSI/ISO standardi za Fortran 77, 90, 95, 2003, 2008&lt;br /&gt;
* BLAS i LAPACK dokumentacija&lt;br /&gt;
* University of California – Fortran Language Overview&lt;br /&gt;
&lt;br /&gt;
== Vanjske poveznice ==&lt;br /&gt;
&lt;br /&gt;
[http://www.ibiblio.org/pub/languages/fortran/ch1-1.html Povijest FORTRAN-a]&lt;br /&gt;
&lt;br /&gt;
== Izvori ==&lt;br /&gt;
&lt;br /&gt;
{{izvori}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorija:Programski jezici]]&lt;br /&gt;
[[Kategorija:IBM]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=Fortran&amp;diff=787611</id>
		<title>Fortran</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=Fortran&amp;diff=787611"/>
		<updated>2026-07-07T08:41:45Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Posebitosti */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Fortran&#039;&#039;&#039; (ili &#039;&#039;&#039;FORTRAN&#039;&#039;&#039;) ime je za proceduralni, imperativni [[programski jezik]] koji je bio razvijen tijekom 50-ih godina [[20. stoljeće|dvadesetog stoljeća]], i koristi se većinom u znanstvene svrhe. Ime FORTRAN dobiveno je od skraćivanjem engleske složenice &#039;&#039;&#039;For&#039;&#039;&#039;mula &#039;&#039;&#039;Tran&#039;&#039;&#039;slation.&lt;br /&gt;
&lt;br /&gt;
== Povijest razvoja i inačice ==&lt;br /&gt;
&lt;br /&gt;
=== Povijest razvoja ===&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN [[jezični prevoditelj]] (ili kompilator) razvila je tvrtka [[IBM]] za računalo [[IBM 704]] između [[1954.]] i [[1957.]] godine. Razvojnu grupu predvodio je [[John W. Backus]]. Kao jezični prevoditelj FORTRAN je nastao u povojima računarstva tj. kada su osnovna svojstva računala bile veoma skromne (mala glavna memorija, spora centralna jedinica) tako da je razvojni tim imao skučeni prostor za razvoj i implementaciju.&lt;br /&gt;
&lt;br /&gt;
Predvoditelj razvojne grupe John W. Backus je također bio i jedan od glavnih [[inženjer]]a i dizajnera računala [[IBM 704]], računala na kojem je razvijena prva inačica FORTRANA. Uz Backusa u razvojnoj grupi su sudjelovali su sljedeći programeri :&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
* Sheldon F. Best&lt;br /&gt;
* Harlan Herrick&lt;br /&gt;
* Peter Sheridan&lt;br /&gt;
* Roy Nutt&lt;br /&gt;
* Robert Nelson&lt;br /&gt;
* Irving Ziller&lt;br /&gt;
* Richard Goldberg&lt;br /&gt;
* Lois Haibt&lt;br /&gt;
* David Sayre&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
Razvojni tim FORTRANA nije razvio princip programa-prevoditelja te prevođenje složenog programskog jezika u objektni kod, ali oni su prva grupa koja je razvila uspješan složeni programski jezik.&lt;br /&gt;
&lt;br /&gt;
=== Inačice ===&lt;br /&gt;
&lt;br /&gt;
* FORTRAN I   (1954-1957) &lt;br /&gt;
* FORTRAN II  (1958)&lt;br /&gt;
* FORTRAN III (1958)&lt;br /&gt;
* FORTRAN IV  (1961)&lt;br /&gt;
* FORTRAN 66  (1966)&lt;br /&gt;
* FORTRAN 77  (1977)(ANSI standard)&lt;br /&gt;
* FORTRAN 90  (1990)(ANSI standard)&lt;br /&gt;
* FORTRAN 95  (1995)(ANSI standard)&lt;br /&gt;
* FORTRAN 2000 (2000)&lt;br /&gt;
* FORTRAN 2003 (2003)&lt;br /&gt;
* FORTRAN 2008 (2008)&lt;br /&gt;
&lt;br /&gt;
== Posebitosti ==&lt;br /&gt;
&lt;br /&gt;
Fortran je jedan od najstarijih visokorazinskih programskih jezika, a tijekom desetljeća razvio je skup osobitosti koje ga čine jedinstvenim u znanstvenom i tehničkom računarstvu. Njegove posebnosti proizlaze iz povijesnog razvoja, stroge sintakse, optimizacije za numeričke izračune i dugogodišnje uporabe u inženjerskim disciplinama.&lt;br /&gt;
&lt;br /&gt;
=== Optimiziran za numeričke izračune i znanstvene aplikacije ===&lt;br /&gt;
&lt;br /&gt;
Fortran je od samog početka dizajniran za matematičke operacije, što ga čini iznimno brzim u radu s matricama, vektorima i kompleksnim numeričkim algoritmima. Kompajleri Fortrana tradicionalno generiraju vrlo učinkovit strojni kod, posebno za operacije s pomičnim zarezom.&lt;br /&gt;
&lt;br /&gt;
=== Jednostavna i stroga sintaksa ===&lt;br /&gt;
&lt;br /&gt;
Sintaksa Fortrana je jednostavna, ali stroga. Povijesno je bio vezan uz formatirane linije (npr. FORTRAN 77), dok modernije inačice (Fortran 90+) uvode slobodni format, modularnost i čitljiviji kod. Stroga sintaksa smanjuje mogućnost pogrešaka i olakšava optimizaciju.&lt;br /&gt;
&lt;br /&gt;
=== Duga kompatibilnost unatrag ===&lt;br /&gt;
&lt;br /&gt;
Jedna od najvećih posebnosti Fortrana jest iznimna kompatibilnost unatrag. Programi napisani prije 40 ili 50 godina često se mogu kompajlirati i pokrenuti na modernim sustavima bez većih izmjena. Ovo je ključno za znanstvene institucije koje održavaju stare, ali pouzdane numeričke modele.&lt;br /&gt;
&lt;br /&gt;
=== Učinkovito rukovanje poljima (arrayima) ===&lt;br /&gt;
&lt;br /&gt;
Fortran ima napredne mogućnosti rada s poljima, uključujući:&lt;br /&gt;
&lt;br /&gt;
* automatsko vektoriziranje,&lt;br /&gt;
* rad s višedimenzijskim poljima,&lt;br /&gt;
* ugrađene operacije nad cijelim poljima bez eksplicitnih petlji.&lt;br /&gt;
&lt;br /&gt;
Ovo ga čini idealnim za simulacije, fiziku, kemiju, meteorologiju i numeričku analizu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Modularnost i proširivost (Fortran 90+) ===&lt;br /&gt;
&lt;br /&gt;
Moderni Fortran uvodi module, generičke funkcije, rekurziju, dinamičku alokaciju memorije i druge značajke koje ga čine usporedivim s modernim jezicima, ali uz zadržavanje numeričke učinkovitosti.&lt;br /&gt;
&lt;br /&gt;
=== Stabilnost i pouzdanost u dugotrajnim projektima ===&lt;br /&gt;
&lt;br /&gt;
Zbog svoje jednostavnosti, stabilnosti i dugogodišnje uporabe, Fortran je i danas temelj mnogih znanstvenih biblioteka ([[BLAS]], [[LAPACK]], [[IMSL]]).Mnoge superračunalne simulacije i dalje se oslanjaju na Fortran zbog njegove predvidljivosti i brzine.&lt;br /&gt;
&lt;br /&gt;
== Nedostaci ==&lt;br /&gt;
&lt;br /&gt;
== Programski primjer ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;fortran&amp;quot;&amp;gt;&lt;br /&gt;
!      This program calculates the area of a tank,                      &lt;br /&gt;
!      excluding the bottom.                                            &lt;br /&gt;
!      The variables are assigned as follows:                           &lt;br /&gt;
!                                                                       &lt;br /&gt;
!          R  =  RADIUS                                                 &lt;br /&gt;
!          H  =  HEIGHT                                                 &lt;br /&gt;
!          PI =  3.14159                                                &lt;br /&gt;
!          A  =  AREA                                                   &lt;br /&gt;
!                                                                       &lt;br /&gt;
!      They are declared with the REAL statement below.                 &lt;br /&gt;
                                                                        &lt;br /&gt;
      REAL R, H, PI, A &lt;br /&gt;
                                                                        &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The OPEN command associates the data file, &amp;quot;PANDAT.DAT&amp;quot;,         &lt;br /&gt;
!      in folder &amp;quot;DATA&amp;quot; with logical device 5.  If there is an          &lt;br /&gt;
!      error, statement 900 is executed.                                &lt;br /&gt;
                                                                        &lt;br /&gt;
      OPEN (5, FILE = &#039;C:\DATA\PANDAT.DAT&#039;, ACCESS = &#039;SEQUENTIAL&#039;,      &amp;amp;&lt;br /&gt;
      STATUS = &#039;OLD&#039;, ERR = 900)                                        &lt;br /&gt;
                                                                        &lt;br /&gt;
                                                                        &lt;br /&gt;
!      This following section accumulates the sum of                    &lt;br /&gt;
!      the input variables.                                             &lt;br /&gt;
!      The first command reads the data record and                      &lt;br /&gt;
!      stores it in memory.                                             &lt;br /&gt;
           &lt;br /&gt;
      DO	                                                                &lt;br /&gt;
         READ (5, FMT = 1, END = 99) R, H &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The next command describes the form and location                 &lt;br /&gt;
!      of the data to be read.                                          &lt;br /&gt;
                                                                        &lt;br /&gt;
    1 FORMAT    (F4.2,F4.2) &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The next statements assign values to the variables.              &lt;br /&gt;
                                                                        &lt;br /&gt;
         PI = 3.14159 &lt;br /&gt;
         A = PI * R**2 + 2 * PI * R * H &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The next section writes the sums to the screen.                  &lt;br /&gt;
!      The first command, PRINT, denotes which FORMAT                   &lt;br /&gt;
!      statement is to be used, and the variables to be printed.        &lt;br /&gt;
                                                                        &lt;br /&gt;
         PRINT 11, H, R, A &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The following FORMAT statement describes how the                 &lt;br /&gt;
!      data field is to be written. Notice the semicolon in column 6    &lt;br /&gt;
!      which is used to denote continuation of the previous line.       &lt;br /&gt;
                                                                        &lt;br /&gt;
   11 FORMAT    (1X,&#039;RADIUS= &#039;,F6.2,10X,&#039;HEIGHT= &#039;,F6.1,10X,&#039;AREA= &#039;,   &amp;amp;&lt;br /&gt;
     &amp;amp;           F8.1)                                                  &lt;br /&gt;
                                                                        &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The following statement completes the loop.                      &lt;br /&gt;
                                                                        &lt;br /&gt;
      END DO &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The next section prints if the input data is invalid.            &lt;br /&gt;
                                                                        &lt;br /&gt;
  900 PRINT 21 &lt;br /&gt;
   21 FORMAT    (1X,&#039;INVALID DATA&#039;) &lt;br /&gt;
                                                                        &lt;br /&gt;
                                                                        &lt;br /&gt;
!      Now we close the file and end program execution.                 &lt;br /&gt;
                                                                        &lt;br /&gt;
   99 CLOSE (5) &lt;br /&gt;
      STOP &lt;br /&gt;
      END                                           &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* IBM Archives – History of FORTRAN&lt;br /&gt;
* John W. Backus – The FORTRAN Automatic Coding System&lt;br /&gt;
* ANSI/ISO standardi za Fortran 77, 90, 95, 2003, 2008&lt;br /&gt;
* BLAS i LAPACK dokumentacija&lt;br /&gt;
* University of California – Fortran Language Overview&lt;br /&gt;
&lt;br /&gt;
== Vanjske poveznice ==&lt;br /&gt;
&lt;br /&gt;
[http://www.ibiblio.org/pub/languages/fortran/ch1-1.html Povijest FORTRAN-a]&lt;br /&gt;
&lt;br /&gt;
== Izvori ==&lt;br /&gt;
&lt;br /&gt;
{{izvori}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorija:Programski jezici]]&lt;br /&gt;
[[Kategorija:IBM]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=Fortran&amp;diff=787610</id>
		<title>Fortran</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=Fortran&amp;diff=787610"/>
		<updated>2026-07-07T08:40:05Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Fortran&#039;&#039;&#039; (ili &#039;&#039;&#039;FORTRAN&#039;&#039;&#039;) ime je za proceduralni, imperativni [[programski jezik]] koji je bio razvijen tijekom 50-ih godina [[20. stoljeće|dvadesetog stoljeća]], i koristi se većinom u znanstvene svrhe. Ime FORTRAN dobiveno je od skraćivanjem engleske složenice &#039;&#039;&#039;For&#039;&#039;&#039;mula &#039;&#039;&#039;Tran&#039;&#039;&#039;slation.&lt;br /&gt;
&lt;br /&gt;
== Povijest razvoja i inačice ==&lt;br /&gt;
&lt;br /&gt;
=== Povijest razvoja ===&lt;br /&gt;
&lt;br /&gt;
Prvi FORTRAN [[jezični prevoditelj]] (ili kompilator) razvila je tvrtka [[IBM]] za računalo [[IBM 704]] između [[1954.]] i [[1957.]] godine. Razvojnu grupu predvodio je [[John W. Backus]]. Kao jezični prevoditelj FORTRAN je nastao u povojima računarstva tj. kada su osnovna svojstva računala bile veoma skromne (mala glavna memorija, spora centralna jedinica) tako da je razvojni tim imao skučeni prostor za razvoj i implementaciju.&lt;br /&gt;
&lt;br /&gt;
Predvoditelj razvojne grupe John W. Backus je također bio i jedan od glavnih [[inženjer]]a i dizajnera računala [[IBM 704]], računala na kojem je razvijena prva inačica FORTRANA. Uz Backusa u razvojnoj grupi su sudjelovali su sljedeći programeri :&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
* Sheldon F. Best&lt;br /&gt;
* Harlan Herrick&lt;br /&gt;
* Peter Sheridan&lt;br /&gt;
* Roy Nutt&lt;br /&gt;
* Robert Nelson&lt;br /&gt;
* Irving Ziller&lt;br /&gt;
* Richard Goldberg&lt;br /&gt;
* Lois Haibt&lt;br /&gt;
* David Sayre&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
Razvojni tim FORTRANA nije razvio princip programa-prevoditelja te prevođenje složenog programskog jezika u objektni kod, ali oni su prva grupa koja je razvila uspješan složeni programski jezik.&lt;br /&gt;
&lt;br /&gt;
=== Inačice ===&lt;br /&gt;
&lt;br /&gt;
* FORTRAN I   (1954-1957) &lt;br /&gt;
* FORTRAN II  (1958)&lt;br /&gt;
* FORTRAN III (1958)&lt;br /&gt;
* FORTRAN IV  (1961)&lt;br /&gt;
* FORTRAN 66  (1966)&lt;br /&gt;
* FORTRAN 77  (1977)(ANSI standard)&lt;br /&gt;
* FORTRAN 90  (1990)(ANSI standard)&lt;br /&gt;
* FORTRAN 95  (1995)(ANSI standard)&lt;br /&gt;
* FORTRAN 2000 (2000)&lt;br /&gt;
* FORTRAN 2003 (2003)&lt;br /&gt;
* FORTRAN 2008 (2008)&lt;br /&gt;
&lt;br /&gt;
== Posebitosti ==&lt;br /&gt;
&lt;br /&gt;
Fortran je jedan od najstarijih visokorazinskih programskih jezika, a tijekom desetljeća razvio je skup osobitosti koje ga čine jedinstvenim u znanstvenom i tehničkom računarstvu. Njegove posebnosti proizlaze iz povijesnog razvoja, stroge sintakse, optimizacije za numeričke izračune i dugogodišnje uporabe u inženjerskim disciplinama.&lt;br /&gt;
&lt;br /&gt;
=== Optimiziran za numeričke izračune i znanstvene aplikacije ===&lt;br /&gt;
&lt;br /&gt;
Fortran je od samog početka dizajniran za matematičke operacije, što ga čini iznimno brzim u radu s matricama, vektorima i kompleksnim numeričkim algoritmima. Kompajleri Fortrana tradicionalno generiraju vrlo učinkovit strojni kod, posebno za operacije s pomičnim zarezom.&lt;br /&gt;
&lt;br /&gt;
=== Jednostavna i stroga sintaksa ===&lt;br /&gt;
&lt;br /&gt;
Sintaksa Fortrana je jednostavna, ali stroga. Povijesno je bio vezan uz formatirane linije (npr. FORTRAN 77), dok modernije inačice (Fortran 90+) uvode slobodni format, modularnost i čitljiviji kod. Stroga sintaksa smanjuje mogućnost pogrešaka i olakšava optimizaciju.&lt;br /&gt;
&lt;br /&gt;
=== Duga kompatibilnost unatrag ===&lt;br /&gt;
&lt;br /&gt;
Jedna od najvećih posebnosti Fortrana jest iznimna kompatibilnost unatrag. Programi napisani prije 40 ili 50 godina često se mogu kompajlirati i pokrenuti na modernim sustavima bez većih izmjena. Ovo je ključno za znanstvene institucije koje održavaju stare, ali pouzdane numeričke modele.&lt;br /&gt;
&lt;br /&gt;
=== Učinkovito rukovanje poljima (arrayima) ===&lt;br /&gt;
&lt;br /&gt;
Fortran ima napredne mogućnosti rada s poljima, uključujući:&lt;br /&gt;
&lt;br /&gt;
* automatsko vektoriziranje,&lt;br /&gt;
* rad s višedimenzijskim poljima,&lt;br /&gt;
* ugrađene operacije nad cijelim poljima bez eksplicitnih petlji.&lt;br /&gt;
&lt;br /&gt;
Ovo ga čini idealnim za simulacije, fiziku, kemiju, meteorologiju i numeričku analizu.&lt;br /&gt;
&lt;br /&gt;
== Nedostaci ==&lt;br /&gt;
&lt;br /&gt;
== Programski primjer ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;fortran&amp;quot;&amp;gt;&lt;br /&gt;
!      This program calculates the area of a tank,                      &lt;br /&gt;
!      excluding the bottom.                                            &lt;br /&gt;
!      The variables are assigned as follows:                           &lt;br /&gt;
!                                                                       &lt;br /&gt;
!          R  =  RADIUS                                                 &lt;br /&gt;
!          H  =  HEIGHT                                                 &lt;br /&gt;
!          PI =  3.14159                                                &lt;br /&gt;
!          A  =  AREA                                                   &lt;br /&gt;
!                                                                       &lt;br /&gt;
!      They are declared with the REAL statement below.                 &lt;br /&gt;
                                                                        &lt;br /&gt;
      REAL R, H, PI, A &lt;br /&gt;
                                                                        &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The OPEN command associates the data file, &amp;quot;PANDAT.DAT&amp;quot;,         &lt;br /&gt;
!      in folder &amp;quot;DATA&amp;quot; with logical device 5.  If there is an          &lt;br /&gt;
!      error, statement 900 is executed.                                &lt;br /&gt;
                                                                        &lt;br /&gt;
      OPEN (5, FILE = &#039;C:\DATA\PANDAT.DAT&#039;, ACCESS = &#039;SEQUENTIAL&#039;,      &amp;amp;&lt;br /&gt;
      STATUS = &#039;OLD&#039;, ERR = 900)                                        &lt;br /&gt;
                                                                        &lt;br /&gt;
                                                                        &lt;br /&gt;
!      This following section accumulates the sum of                    &lt;br /&gt;
!      the input variables.                                             &lt;br /&gt;
!      The first command reads the data record and                      &lt;br /&gt;
!      stores it in memory.                                             &lt;br /&gt;
           &lt;br /&gt;
      DO	                                                                &lt;br /&gt;
         READ (5, FMT = 1, END = 99) R, H &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The next command describes the form and location                 &lt;br /&gt;
!      of the data to be read.                                          &lt;br /&gt;
                                                                        &lt;br /&gt;
    1 FORMAT    (F4.2,F4.2) &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The next statements assign values to the variables.              &lt;br /&gt;
                                                                        &lt;br /&gt;
         PI = 3.14159 &lt;br /&gt;
         A = PI * R**2 + 2 * PI * R * H &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The next section writes the sums to the screen.                  &lt;br /&gt;
!      The first command, PRINT, denotes which FORMAT                   &lt;br /&gt;
!      statement is to be used, and the variables to be printed.        &lt;br /&gt;
                                                                        &lt;br /&gt;
         PRINT 11, H, R, A &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The following FORMAT statement describes how the                 &lt;br /&gt;
!      data field is to be written. Notice the semicolon in column 6    &lt;br /&gt;
!      which is used to denote continuation of the previous line.       &lt;br /&gt;
                                                                        &lt;br /&gt;
   11 FORMAT    (1X,&#039;RADIUS= &#039;,F6.2,10X,&#039;HEIGHT= &#039;,F6.1,10X,&#039;AREA= &#039;,   &amp;amp;&lt;br /&gt;
     &amp;amp;           F8.1)                                                  &lt;br /&gt;
                                                                        &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The following statement completes the loop.                      &lt;br /&gt;
                                                                        &lt;br /&gt;
      END DO &lt;br /&gt;
                                                                        &lt;br /&gt;
!      The next section prints if the input data is invalid.            &lt;br /&gt;
                                                                        &lt;br /&gt;
  900 PRINT 21 &lt;br /&gt;
   21 FORMAT    (1X,&#039;INVALID DATA&#039;) &lt;br /&gt;
                                                                        &lt;br /&gt;
                                                                        &lt;br /&gt;
!      Now we close the file and end program execution.                 &lt;br /&gt;
                                                                        &lt;br /&gt;
   99 CLOSE (5) &lt;br /&gt;
      STOP &lt;br /&gt;
      END                                           &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* IBM Archives – History of FORTRAN&lt;br /&gt;
* John W. Backus – The FORTRAN Automatic Coding System&lt;br /&gt;
* ANSI/ISO standardi za Fortran 77, 90, 95, 2003, 2008&lt;br /&gt;
* BLAS i LAPACK dokumentacija&lt;br /&gt;
* University of California – Fortran Language Overview&lt;br /&gt;
&lt;br /&gt;
== Vanjske poveznice ==&lt;br /&gt;
&lt;br /&gt;
[http://www.ibiblio.org/pub/languages/fortran/ch1-1.html Povijest FORTRAN-a]&lt;br /&gt;
&lt;br /&gt;
== Izvori ==&lt;br /&gt;
&lt;br /&gt;
{{izvori}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorija:Programski jezici]]&lt;br /&gt;
[[Kategorija:IBM]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=NK_Drava_Novigrad_Podravski&amp;diff=787473</id>
		<title>NK Drava Novigrad Podravski</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=NK_Drava_Novigrad_Podravski&amp;diff=787473"/>
		<updated>2026-07-05T01:57:10Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infookvir nogometni klub&lt;br /&gt;
| ime kluba          = Drava &lt;br /&gt;
| slika              = &lt;br /&gt;
| puno ime           = Nogometni klub &amp;quot;Drava&amp;quot; Novigrad Podravski &lt;br /&gt;
| nadimak            = &lt;br /&gt;
| godina osnivanja   = 1922.  &lt;br /&gt;
| igralište          = &#039;&#039;Stadion &amp;quot;Stjepan Mikor&amp;quot;&#039;&#039;, [[Novigrad Podravski]] &lt;br /&gt;
| kapacitet stadiona = &lt;br /&gt;
| predsjednik        =&lt;br /&gt;
| trener             = &lt;br /&gt;
| liga               = [[1. ŽNL Koprivničko-križevačka]] (V.) &lt;br /&gt;
| sezona             = 2019./20.  &lt;br /&gt;
| plasman            =  8. &lt;br /&gt;
| trenutačna sezona  =&lt;br /&gt;
| igrači             =&lt;br /&gt;
| pattern_la1= |pattern_b1= |pattern_ra1= |pattern_sh1= |pattern_so1= &lt;br /&gt;
| leftarm1= |body1= |rightarm1= |shorts1= |socks1= &lt;br /&gt;
| pattern_la2= |pattern_b2= |pattern_ra2= |pattern_sh2= |pattern_so2= &lt;br /&gt;
| leftarm2= |body2= |rightarm2= |shorts2= |socks2= &lt;br /&gt;
| pattern_la3= |pattern_b3= |pattern_ra3= |pattern_sh3= |pattern_so3= &lt;br /&gt;
| leftarm3= |body3= |rightarm3= |shorts3= |socks3= &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Nogometni klub &amp;quot;Drava&amp;quot;&#039;&#039;&#039; (&#039;&#039;&#039;&#039;&#039;NK &amp;quot;Drava&amp;quot;; NK &amp;quot;Drava&amp;quot; Novigrad Podravski; Drava Novigrad Podravski; Drava&#039;&#039;&#039;&#039;&#039;) je [[nogomet]]ni klub iz [[Novigrad Podravski|Novigrada Podravskog]], [[Koprivničko-križevačka županija]], [[Hrvatska|Republika Hrvatska]]. &amp;lt;br&amp;gt; &lt;br /&gt;
U sezoni 2020./21. &#039;&#039;&amp;quot;Drava&amp;quot;&#039;&#039; se natječe u &#039;&#039;[[1. ŽNL Koprivničko-križevačka|&amp;quot;1. ŽNL Koprivničko-križevačkoj&amp;quot;]]&#039;&#039;, ligi [[Sustav nogometnih liga u Hrvatskoj|petog stupnja hrvatskog nogometnog prvenstva]]. &lt;br /&gt;
&lt;br /&gt;
== O klubu == &lt;br /&gt;
U [[Novigrad Podravski|Novigradu Podravskom]] je 1917. godine je osnovan &#039;&#039;&amp;quot;Novigradski športski klub&amp;quot;&#039;&#039;, koje je portom preimenovan u &#039;&#039;Hrvatski športski klub &amp;quot;Svačić&amp;quot;&#039;&#039;, ali već 1918. godine prestaje s radom. &amp;lt;br&amp;gt; &lt;br /&gt;
Do osnivanja kluba dolazi u srpnju 1922. godine pod imenom &#039;&#039;&#039;&#039;&#039;&amp;quot;Novigradski sportski klub&amp;quot;&#039;&#039;&#039;&#039;&#039; (&#039;&#039;&#039;&#039;&#039;&amp;quot;NSK&amp;quot;&#039;&#039;&#039;&#039;&#039;), koji je 1926. godine promijenio ime u &#039;&#039;&#039;&#039;&#039;Športski klub &amp;quot;Drava&amp;quot;&#039;&#039;&#039;&#039;&#039; (&#039;&#039;&#039;&#039;&#039;ŠK &amp;quot;Drava&amp;quot;&#039;&#039;&#039;&#039;&#039;), a 1928. godine u &#039;&#039;&#039;&#039;&#039;&amp;quot;Športsko društvo &amp;quot;Drava&amp;quot;&#039;&#039;&#039;&#039;&#039; (&#039;&#039;&#039;&#039;&#039;ŠD &amp;quot;Drava&amp;quot;&#039;&#039;&#039;&#039;&#039;), jer su uz nogometnu momčad djelovale i sekcije u drugim športovima poput šaha, te kulturno-umjetničke sekcije. Nogometaši &#039;&#039;ŠD &amp;quot;Drave&amp;quot;&#039;&#039; su uglavnom igrali prijateljske utakmice. &#039;&#039;ŠD &amp;quot;Drava&amp;quot;&#039;&#039; je djelovala do 1941. godine, kada zbog sve većeg utjecaja [[Drugi svjetski rat|Drugog svjetskog rata]] prestaje s radom. &amp;lt;br&amp;gt; &lt;br /&gt;
Do obnove rada &#039;&#039;ŠD &amp;quot;Drave&amp;quot;&#039;&#039; dolazi 1946. godine - obnavlja se nogometna sekcija i osnivaju sekcije u drugim športovima. Za vrijeme [[SFRJ|socijalističke Jugoslavije]], do 1991. godine &#039;&#039;&amp;quot;Drava&amp;quot;&#039;&#039; se natjecala u ligama koje je organizirao nogometni savez iz [[Koprivnica|Koprivnice]] - &#039;&#039;&amp;quot;Podsavezna liga&amp;quot;&#039;&#039;, &#039;&#039;&amp;quot;Područna liga&amp;quot;&#039;&#039;, &#039;&#039;&amp;quot;općinska liga&amp;quot;&#039;&#039;, &amp;quot;&#039;&#039;Međuopćinska liga&amp;quot;&#039;&#039; i sl. &amp;lt;br&amp;gt; &lt;br /&gt;
Od osamostaljenja [[Hrvatska|Hrvatske]], &#039;&#039;&amp;quot;Drava&amp;quot;&#039;&#039; je najčešće igrala u &#039;&#039;[[1. ŽNL Koprivničko-križevačka|&amp;quot;1. ŽNL Koprivničko-križevačkoj&amp;quot;]]&#039;&#039;. Najveći ligaški uspjeh je &#039;&#039;&amp;quot;Drava&amp;quot;&#039;&#039; imala u sezoni 2001./02., kad su bili članovi &#039;&#039;[[3. HNL – Sjever|&amp;quot;3. HNL – Sjever&amp;quot;]]&#039;&#039;. Kao finalisti [[Kup Nogometnog saveza Koprivničko-križevačke županije|županijskog kupa]] u sezoni [[Hrvatski nogometni kup 2013./14.|2013./14.]] su nastupili u [[Hrvatski nogometni kup|Kupu Hrvatske]], gdje su ispali u osmini završnice.&lt;br /&gt;
&lt;br /&gt;
== Igralište == &lt;br /&gt;
Igralište &#039;&#039;&amp;quot;Drave&amp;quot;&#039;&#039; se naziva &#039;&#039;Stadion&amp;quot;Stjepan Mikor&amp;quot;&#039;&#039; po dugogodišnjem igraču, treneru, te kasnije i tajniku i predsjedniku kluba. &lt;br /&gt;
&lt;br /&gt;
== Uspjesi ==&lt;br /&gt;
&lt;br /&gt;
=== nakon 1991. === &lt;br /&gt;
; [[1. ŽNL Koprivničko-križevačka]] &lt;br /&gt;
* drugoplasirani: 2000./01. &lt;br /&gt;
&lt;br /&gt;
; [[2. ŽNL Koprivničko-križevačka]] &lt;br /&gt;
* prvak: 2010./11. &lt;br /&gt;
* drugoplasirani: 2009./10. &lt;br /&gt;
&lt;br /&gt;
; 1. općinska liga Koprivnica&lt;br /&gt;
* prvak: 1992./93. &lt;br /&gt;
&lt;br /&gt;
; [[Kup Nogometnog saveza Koprivničko-križevačke županije|Kup NS Koprivničko-križevačke županije]] &lt;br /&gt;
* finalist: 2012./13. &lt;br /&gt;
&lt;br /&gt;
=== do 1991. === &lt;br /&gt;
&lt;br /&gt;
== Pregled plasmana po sezonama ==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable collapsible collapsed&amp;quot; style=&amp;quot;font-size: 85%; text-align: center&amp;quot;&lt;br /&gt;
!sezona !!rang &amp;lt;br&amp;gt; lige !!liga !!dio lige !!poz. !!klubova &amp;lt;br&amp;gt; u ligi !!ut !!pob !!ner !!por !!gol+ !!gol- !!bod !!napomene !!izvori &lt;br /&gt;
|- &lt;br /&gt;
!colspan=&amp;quot;15&amp;quot;| Drava  &lt;br /&gt;
|-&lt;br /&gt;
|[[Podsavezna nogometna liga Koprivnica 1959./60.|1959./60.]] ||IV. ||Podsavezna liga Koprivnica || ||5. ||8 ||14 ||5 ||1 ||8 ||34 ||41 ||11 ||&amp;lt;small&amp;gt; liga također pod nazivom &#039;&#039;Prvenstvo Koprivničkog nogometnog podsaveza&#039;&#039; || &lt;br /&gt;
|-&lt;br /&gt;
|[[Podsavezna nogometna liga Koprivnica 1960./61.|1960./61.]] ||IV. ||Podsavezna liga Koprivnica || ||4. ||12 ||22 ||12 ||3 ||7 ||79 ||45 ||27 ||&amp;lt;small&amp;gt; liga također pod nazivom &#039;&#039;Prvenstvo Koprivničkog nogometnog podsaveza&#039;&#039; || &lt;br /&gt;
|-&lt;br /&gt;
|[[Podsavezna nogometna liga Koprivnica 1961./62.|1961./62.]] ||IV. ||Podsavezna liga Koprivnica || ||6. ||12 ||22 ||9 ||5 ||8 ||72 ||59 ||23 ||&amp;lt;small&amp;gt; liga također pod nazivom &#039;&#039;Prvenstvo Koprivničkog nogometnog podsaveza&#039;&#039; || &lt;br /&gt;
|-&lt;br /&gt;
|1962./63. || || || || || || || || || || || || || || &lt;br /&gt;
|-&lt;br /&gt;
|1963./64. || || || || || || || || || || || || || || &lt;br /&gt;
|-&lt;br /&gt;
|[[Podsavezna nogometna liga Koprivnica 1964./65.|1964./65.]] ||V. ||Podsavezna liga Koprivnica || ||10. ||12 ||22 ||7 ||2 ||13 ||53 ||69 ||16 ||&amp;lt;small&amp;gt; liga također pod nazivom &#039;&#039;Prvenstvo Koprivničkog nogometnog podsaveza&#039;&#039; || &lt;br /&gt;
|-&lt;br /&gt;
|1965./66. || || || || || || || || || || || || || || &lt;br /&gt;
|-&lt;br /&gt;
|1966./67. || || || || || || || || || || || || || || &lt;br /&gt;
|-&lt;br /&gt;
|1967./68. || || || || || || || || || || || || || || &lt;br /&gt;
|-&lt;br /&gt;
|[[Područna nogometna liga Koprivnica 1968./69.|1968./69.]] ||IV. ||Područna liga Koprivnica || ||9. ||12 ||22 ||8 ||2 ||12 ||49 ||59 ||18 ||&amp;lt;small&amp;gt; liga također pod nazivom &#039;&#039;Prvenstvo NSP Koprivnica&#039;&#039; || &lt;br /&gt;
|-&lt;br /&gt;
|1969./70. || || || || || || || || || || || || || || &lt;br /&gt;
|-&lt;br /&gt;
|1970./71. || || || || || || || || || || || || || || &lt;br /&gt;
|-&lt;br /&gt;
|1971./72. || || || || || || || || || || || || || || &lt;br /&gt;
|-&lt;br /&gt;
|1972./73. || || || || || || || || || || || || || || &lt;br /&gt;
|-&lt;br /&gt;
|1973./74. || || || || || || || || || || || || || || &lt;br /&gt;
|-&lt;br /&gt;
|1974./75. || || || || || || || || || || || || || || &lt;br /&gt;
|-&lt;br /&gt;
|1975./76. || || || || || || || || || || || || || || &lt;br /&gt;
|-&lt;br /&gt;
|1976./77. || || || || || || || || || || || || || || &lt;br /&gt;
|-&lt;br /&gt;
|1977./78. || || || || || || || || || || || || || || &lt;br /&gt;
|-&lt;br /&gt;
|1978./79. || || || || || || || || || || || || || || &lt;br /&gt;
|-&lt;br /&gt;
|1979./80. || || || || || || || || || || || || || || &lt;br /&gt;
|-&lt;br /&gt;
|1980./81. || || || || || || || || || || || || || || &lt;br /&gt;
|-&lt;br /&gt;
|[[Međuopćinska nogometna liga Koprivnica - Križevci 1981./82.|1981./82.]] ||VI. ||Međuopćinska liga Koprivnica-Križevci || ||6. ||12 ||22 ||8 ||4 ||10 ||46 ||40 ||20 || || &lt;br /&gt;
|-&lt;br /&gt;
|[[Međuopćinska nogometna liga Koprivnica 1982./83.|1982./83.]] ||VI. ||Međuopćinska liga Koprivnica || ||4. ||12 ||22 ||11 ||2 ||9 ||42 ||20 ||24 ||&amp;lt;small&amp;gt; liga također pod nazivom &#039;&#039;Međuopćinska liga Sjever - skupina Koprivnica&#039;&#039; || &lt;br /&gt;
|-&lt;br /&gt;
|[[Međuopćinska nogometna liga Koprivnica 1983./84.|1983./84.]] ||V. ||Međuopćinska liga Koprivnica || ||6. ||12 ||22 ||10 ||2 ||10 ||31 ||30 ||22 ||&amp;lt;small&amp;gt; liga također pod nazivom &#039;&#039;Međuopćinska liga Sjever - skupina Koprivnica&#039;&#039; || &lt;br /&gt;
|-&lt;br /&gt;
|[[Međuopćinska nogometna liga Koprivnica 1984./85.|1984./85.]] ||V. ||Međuopćinska liga Koprivnica || ||10. ||12 ||22 ||6 ||4 ||12 ||32 ||50 ||16 ||&amp;lt;small&amp;gt; liga također pod nazivom &#039;&#039;Međuopćinska liga Sjever - skupina Koprivnica&#039;&#039; || &lt;br /&gt;
|-&lt;br /&gt;
|[[Međuopćinska nogometna liga Koprivnica 1985./86.|1985./86.]] ||V. ||Međuopćinska liga Koprivnica || ||6. ||12 ||22 ||8 ||6 ||8 ||38 ||54 ||22 ||&amp;lt;small&amp;gt; liga također pod nazivom &#039;&#039;Međuopćinska liga Sjever - skupina Koprivnica&#039;&#039; || &lt;br /&gt;
|-&lt;br /&gt;
|[[Međuopćinska nogometna liga Koprivnica 1986./87.|1986./87.]] ||V. ||Međuopćinska liga Koprivnica || ||8. ||12 ||22 ||7 ||3 ||12 ||40 ||53 ||17 ||&amp;lt;small&amp;gt; liga također pod nazivom &#039;&#039;Međuopćinska liga Sjever - skupina Koprivnica&#039;&#039; || &lt;br /&gt;
|-&lt;br /&gt;
|1987./88. || || || || || || || || || || || || || || &lt;br /&gt;
|-&lt;br /&gt;
|1988./89. || || || || || || || || || || || || || || &lt;br /&gt;
|-&lt;br /&gt;
|1990./91. || || || || || || || || || || || || || || &lt;br /&gt;
|-&lt;br /&gt;
|1992. || || || || || || || || || || || || || || &lt;br /&gt;
|-&lt;br /&gt;
|[[6. rang HNL-a 1992./93.|1992./93.]] ||VI. ||1. općinska liga Koprivnica || ||bgcolor=&amp;quot;gold&amp;quot;|1. ||14 ||26 ||20 ||3 ||3 ||103 ||21 ||41 || || &lt;br /&gt;
|-&lt;br /&gt;
|[[5. rang HNL-a 1993./94.|1993./94.]] ||V. ||[[1. ŽNL Koprivničko-križevačka]] || ||6. ||14 ||26 ||11 ||7 ||8 ||45 ||37 ||29 || || &lt;br /&gt;
|-&lt;br /&gt;
|[[5. rang HNL-a 1994./95.|1994./95.]] ||V. ||1. ŽNL Koprivničko-križevačka || ||4. ||14 ||26 ||14 ||4 ||8 ||64 ||46 ||41 || || &lt;br /&gt;
|-&lt;br /&gt;
|[[5. rang HNL-a 1995./96.|1995./96.]] ||V. ||4. HNL - Sjever - Skupina B - Koprivničko-križevačka || ||12. ||14 ||26 ||8 ||5 ||13 ||37 ||59 ||29 || || &lt;br /&gt;
|-&lt;br /&gt;
|[[5. rang HNL-a 1996./97.|1996./97.]] ||V. ||4. HNL - Koprivničko-križevačka || ||10. ||13 (14) ||25 ||7 ||5 ||13 ||41 ||51 ||26 || || &lt;br /&gt;
|-&lt;br /&gt;
|[[4. rang HNL-a 1997./98.|1997./98.]] ||IV. ||4. HNL - Koprivničko-križevačka || ||7. ||12 ||22 ||8 ||6 ||8 ||37 ||43 ||30 || || &lt;br /&gt;
|-&lt;br /&gt;
|[[4. rang HNL-a 1998./99.|1998./99.]] ||IV. ||1. ŽNL Koprivničko-križevačka || ||9. ||14 ||26 ||9 ||2 ||15 ||48 ||59 ||29 || || &lt;br /&gt;
|-&lt;br /&gt;
|[[4. rang HNL-a 1999./2000.|1999./2000.]] ||IV. ||1. ŽNL Koprivničko-križevačka || ||10. ||14 ||26 ||10 ||4 ||12 ||51 ||71 ||34 || || &lt;br /&gt;
|-&lt;br /&gt;
|[[4. rang HNL-a 2000./01.|2000./01.]] ||IV. ||1. ŽNL Koprivničko-križevačka || ||bgcolor=&amp;quot;silver&amp;quot;|2. ||14 ||26 ||15 ||4 ||7 ||85 ||42 ||49 || || &lt;br /&gt;
|-&lt;br /&gt;
|[[3. HNL 2001./02.|2001./02.]] ||III. ||[[3. HNL – Sjever]] || ||12. ||16 ||30 ||8 ||9 ||13 ||55 ||72 ||33 || || &lt;br /&gt;
|-&lt;br /&gt;
|[[4. rang HNL-a 2002./03.|2002./03.]] ||IV. ||1. ŽNL Koprivničko-križevačka || ||bgcolor=&amp;quot;goldenrod&amp;quot;|3. ||14 ||26 ||12 ||7 ||7 ||62 ||34 ||43 || || &lt;br /&gt;
|-&lt;br /&gt;
|[[4. rang HNL-a 2003./04.|2003./04.]] ||IV. ||1. ŽNL Koprivničko-križevačka || ||7. ||14 ||26 ||10 ||5 ||11 ||52 ||65 ||35 || || &lt;br /&gt;
|-&lt;br /&gt;
|[[4. rang HNL-a 2004./05.|2004./05.]] ||IV. ||1. ŽNL Koprivničko-križevačka || ||9. ||14 ||26 ||9 ||4 ||13 ||41 ||73 ||31 || || &lt;br /&gt;
|-&lt;br /&gt;
|[[4. rang HNL-a 2005./06.|2005./06.]] ||IV. ||1. ŽNL Koprivničko-križevačka || ||14. ||16 ||30 ||9 ||5 ||16 ||51 ||76 ||32 || || &lt;br /&gt;
|-&lt;br /&gt;
|[[5. rang HNL-a 2006./07.|2016./17.]] ||V. ||1. ŽNL Koprivničko-križevačka || ||9. ||16 ||30 ||11 ||8 ||11 ||86 ||64 ||31 || || &lt;br /&gt;
|-&lt;br /&gt;
|[[5. rang HNL-a 2007./08.|2007./08.]] ||V. ||1. ŽNL Koprivničko-križevačka || ||16. ||16 ||30 ||6 ||2 ||22 ||48 ||102 ||20 || || &lt;br /&gt;
|-&lt;br /&gt;
|[[6. rang HNL-a 2008./09.|2008./09.]] ||VI. ||[[2. ŽNL Koprivničko-križevačka]] || ||7. ||14 ||26 ||12 ||1 ||13 ||61 ||63 ||37 || || &lt;br /&gt;
|-&lt;br /&gt;
|[[6. rang HNL-a 2009./10.|2009./10.]] ||VI. ||2. ŽNL Koprivničko-križevačka || ||bgcolor=&amp;quot;silver&amp;quot;|2. ||14 ||26 ||19 ||4 ||3 ||105 ||36 ||61 || || &lt;br /&gt;
|-&lt;br /&gt;
|[[6. rang HNL-a 2010./11.|2010./11.]] ||VI. ||2. ŽNL Koprivničko-križevačka || ||bgcolor=&amp;quot;gold&amp;quot;|1. ||13 ||24 ||16 ||4 ||4 ||77 ||35 ||52 || || &lt;br /&gt;
|-&lt;br /&gt;
|[[4. rang HNL-a 2011./12.|2011./12.]] ||IV. ||1. ŽNL Koprivničko-križevačka || ||8. ||16 ||30 ||12 ||7 ||11 ||51 ||41 ||43 || || &lt;br /&gt;
|-&lt;br /&gt;
|[[4. rang HNL-a 2012./13.|2012./13.]] ||IV. ||1. ŽNL Koprivničko-križevačka || ||13. ||16 ||30 ||9 ||6 ||15 ||44 ||58 ||33 || || &lt;br /&gt;
|-&lt;br /&gt;
|[[4. rang HNL-a 2013./14.|2013./14.]] ||IV. ||1. ŽNL Koprivničko-križevačka || ||8. ||16 ||30 ||12 ||4 ||14 ||46 ||54 ||40 || || &lt;br /&gt;
|-&lt;br /&gt;
|[[5. rang HNL-a 2014./15.|2014./15.]] ||V. ||1. ŽNL Koprivničko-križevačka || ||4. ||14 ||26 ||12 ||10 ||4 ||35 ||17 ||46 || || &lt;br /&gt;
|-&lt;br /&gt;
|[[5. rang HNL-a 2015./16.|2015./16.]] ||V. ||1. ŽNL Koprivničko-križevačka || ||4. ||14 ||26 ||13 ||6 ||7 ||45 ||34 ||45 || || &lt;br /&gt;
|-&lt;br /&gt;
|[[5. rang HNL-a 2016./17.|2016./17.]] ||V. ||1. ŽNL Koprivničko-križevačka || ||11. ||14 ||26 ||8 ||3 ||15 ||40 ||67 ||27 || || &lt;br /&gt;
|-&lt;br /&gt;
|[[5. rang HNL-a 2017./18.|2017./18.]] ||V. ||1. ŽNL Koprivničko-križevačka || ||11. ||14 ||26 ||6 ||7 ||13 ||28 ||57 ||25 || || &lt;br /&gt;
|-&lt;br /&gt;
|[[5. rang HNL-a 2018./19.|2018./19.]] ||V. ||1. ŽNL Koprivničko-križevačka || ||9. ||14 ||26 ||10 ||5 ||11 ||39 ||45 ||35 || || &lt;br /&gt;
|-&lt;br /&gt;
|[[5. rang HNL-a 2019./20.|2019./20.]] ||V. ||1. ŽNL Koprivničko-križevačka || ||8. ||14 ||13 ||5 ||2 ||6 ||20 ||31 ||17 ||&amp;lt;small&amp;gt; prekinuto radi pandemije COVID-19 || &lt;br /&gt;
|-&lt;br /&gt;
|[[1. ŽNL Koprivničko-križevačka 2020./21.|2020./21.]] ||V. ||1. ŽNL Koprivničko-križevačka || || ||14 || || || || || || || || || &lt;br /&gt;
|-&lt;br /&gt;
| || || || || || || || || || || || || || || &lt;br /&gt;
|-&lt;br /&gt;
| || || || || || || || || || || || || || || &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Poznati igrači == &lt;br /&gt;
&lt;br /&gt;
== Unutarnje poveznice == &lt;br /&gt;
* [[Novigrad Podravski]]&lt;br /&gt;
&lt;br /&gt;
== Vanjske poveznice ==&lt;br /&gt;
* [https://www.facebook.com/nkdravanp/ &#039;&#039;NK &amp;quot;Drava&amp;quot; Novigrad Podravski&#039;&#039;, facebook stranica] &lt;br /&gt;
* [http://www.novigrad-podravski.hr/index.php/93-udruge-i-drustva/nk-drava novigrad-podravski.hr, &#039;&#039;NK Drava&#039;&#039;] &lt;br /&gt;
* [https://epodravina.hr/tag/nk-drava-novigrad-podravski/ epodravina.hr, &#039;&#039;nk drava novigrad podravski&#039;&#039;] &lt;br /&gt;
* {{nje oznaka}} [https://www.weltfussball.com/teams/nk-drava-novigrad-podravski/ weltfussball.com, &#039;&#039;NK Drava Novigrad Podravski&#039;&#039;] &lt;br /&gt;
* {{en icon}} [https://www.transfermarkt.com/nk-drava-novigrad-podravski/startseite/verein/33109 transfermarkt.com, &#039;&#039;NK Drava Novigrad Podravski&#039;&#039;] &lt;br /&gt;
&lt;br /&gt;
== Izvori ==&lt;br /&gt;
{{izvori}}&lt;br /&gt;
* [http://www.novigrad-podravski.hr/index.php/udruge-i-drustva2/nogometni-klub-drava2 novigrad-podravski.hr, &#039;&#039;Nogometni klub Drava&#039;&#039;], pristupljeno 24. veljače 2021.&lt;br /&gt;
* [https://www.novigrad-podravski.hr/images/Monografija%2028%20sportski%20zivot%20novigrada%20podravskog.pdf novigrad-podravski.hr, Ivan Grekšić: &#039;&#039;Sportski život Novigrada&#039;&#039;], preuzeto 18. veljače 2021.&lt;br /&gt;
* Bratislav Stojanović, Dragiša Kovačević: &#039;&#039;Jugoslovenski fudbalski klubovi&#039;&#039;, Beograd, 1977., UDK: 061.237(497.1):796.332, str. 98.&lt;br /&gt;
* Franjo Frntić, Dragutin Hripko i dr: &#039;&#039;Sto godina nogometa u Hrvatskoj : 1880-1980.&#039;&#039;, Zagreb, 1983., UDK: 796.332(497.13)&amp;quot;1880/1980&amp;quot;, str. 95.-97.&lt;br /&gt;
* [https://www.ns-kckz.hr/klubovi.html ns-kckz.hr, &#039;&#039;Klubovi&#039;&#039;], pristupljeno 18. veljače 2021.&lt;br /&gt;
* [http://nogomet.lzmk.hr/clanak.aspx?id=1412 nogomet.lzmk.hr, &#039;&#039;&amp;quot;Nogometni leksikon&amp;quot;&#039;&#039;, &#039;&#039;Koprivničko-križevačka županija, nogometni savez&#039;&#039;]&lt;br /&gt;
* [https://www.poslovna.hr/lite/nk-drava-novigrad-podravski/9936/subjekti.aspx poslovna.hr, Nogometni klub Drava Novigrad Podravski]&lt;br /&gt;
* [https://www.fininfo.hr/Poduzece/Pregled/nk-drava-novigrad-podravski/Detaljno/581257 fininfo.hr, NK &amp;quot;DRAVA&amp;quot; NOVIGRAD PODRAVSKI]&lt;br /&gt;
* [https://search.bisnode.hr/hr/1034337/nk-drava-novigrad-podravski/ bisnode.hr, Nogometni klub &amp;quot;Drava&amp;quot; Novigrad Podravski]&lt;br /&gt;
&lt;br /&gt;
{{GLAVNIRASPORED:Drava Novigrad Podravski, NK}}&lt;br /&gt;
[[Kategorija:Nogometni klubovi u Koprivničko-križevačkoj županiji]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=Modul:InfoboxCore&amp;diff=787384</id>
		<title>Modul:InfoboxCore</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=Modul:InfoboxCore&amp;diff=787384"/>
		<updated>2026-07-01T11:58:04Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local util = {}&lt;br /&gt;
local row = {}&lt;br /&gt;
local section = {}&lt;br /&gt;
local image = {}&lt;br /&gt;
local dates = {}&lt;br /&gt;
local normdata = {}&lt;br /&gt;
&lt;br /&gt;
local paramMap = {&lt;br /&gt;
    [&amp;quot;ime&amp;quot;] = &amp;quot;ime&amp;quot;,&lt;br /&gt;
    [&amp;quot;name&amp;quot;] = &amp;quot;ime&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
    [&amp;quot;rođenje&amp;quot;] = &amp;quot;rodjenje&amp;quot;,&lt;br /&gt;
    [&amp;quot;rodjenje&amp;quot;] = &amp;quot;rodjenje&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
    [&amp;quot;mjesto rođenja&amp;quot;] = &amp;quot;mjesto_rodjenja&amp;quot;,&lt;br /&gt;
    [&amp;quot;mjesto_rodjenja&amp;quot;] = &amp;quot;mjesto_rodjenja&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
    [&amp;quot;smrt&amp;quot;] = &amp;quot;smrt&amp;quot;,&lt;br /&gt;
    [&amp;quot;mjesto smrti&amp;quot;] = &amp;quot;mjesto_smrti&amp;quot;,&lt;br /&gt;
    [&amp;quot;mjesto_smrti&amp;quot;] = &amp;quot;mjesto_smrti&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
    [&amp;quot;zanimanje&amp;quot;] = &amp;quot;zanimanje&amp;quot;,&lt;br /&gt;
    [&amp;quot;nacionalnost&amp;quot;] = &amp;quot;nacionalnost&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
    [&amp;quot;slika&amp;quot;] = &amp;quot;slika&amp;quot;,&lt;br /&gt;
    [&amp;quot;opis slike&amp;quot;] = &amp;quot;opis_slike&amp;quot;,&lt;br /&gt;
    [&amp;quot;opis_slike&amp;quot;] = &amp;quot;opis_slike&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
    [&amp;quot;viaf&amp;quot;] = &amp;quot;viaf&amp;quot;,&lt;br /&gt;
    [&amp;quot;eb&amp;quot;] = &amp;quot;eb&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function normalizeArgs(args)&lt;br /&gt;
    local out = {}&lt;br /&gt;
    for k, v in pairs(args) do&lt;br /&gt;
        local nk = paramMap[k] or k&lt;br /&gt;
        out[nk] = v&lt;br /&gt;
    end&lt;br /&gt;
    return out&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function util.isEmpty(v)&lt;br /&gt;
    return v == nil or v == &#039;&#039; or mw.text.trim(v) == &#039;&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function util.showIf(label, value)&lt;br /&gt;
    if util.isEmpty(value) then&lt;br /&gt;
        return &#039;&#039;&lt;br /&gt;
    end&lt;br /&gt;
    return row.render(label, value)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function row.render(label, value)&lt;br /&gt;
    return string.format(&lt;br /&gt;
        &#039;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;%s&amp;lt;/th&amp;gt;&amp;lt;td&amp;gt;%s&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&#039;,&lt;br /&gt;
        label,&lt;br /&gt;
        value&lt;br /&gt;
    )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.renderHeader(args)&lt;br /&gt;
    local name = args.ime or args.name or mw.title.getCurrentTitle().text&lt;br /&gt;
    return string.format(&lt;br /&gt;
        &#039;&amp;lt;tr class=&amp;quot;infobox-header&amp;quot;&amp;gt;&amp;lt;th colspan=&amp;quot;2&amp;quot;&amp;gt;%s&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&#039;,&lt;br /&gt;
        name&lt;br /&gt;
    )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function image.render(args)&lt;br /&gt;
    if util.isEmpty(args.slika) then&lt;br /&gt;
        return &#039;&#039;&lt;br /&gt;
    end&lt;br /&gt;
    local caption = args.opis_slike or &#039;&#039;&lt;br /&gt;
    return string.format(&lt;br /&gt;
        &#039;&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot; class=&amp;quot;infobox-image&amp;quot;&amp;gt;%s&amp;lt;div class=&amp;quot;infobox-caption&amp;quot;&amp;gt;%s&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&#039;,&lt;br /&gt;
        args.slika,&lt;br /&gt;
        caption&lt;br /&gt;
    )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function dates.format(date)&lt;br /&gt;
    if util.isEmpty(date) then return &#039;&#039; end&lt;br /&gt;
&lt;br /&gt;
    -- ISO format → odmah vrati&lt;br /&gt;
    if date:match(&amp;quot;^%d%d%d%d%-%d%d%-%d%d$&amp;quot;) then&lt;br /&gt;
        return mw.getContentLanguage():formatDate(&#039;j. F Y&#039;, date)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Format: 1.7.1980 ili 01.07.1980&lt;br /&gt;
    local d, m, y = date:match(&amp;quot;^(%d%d?)%.(%d%d?)%.(%d%d%d%d)$&amp;quot;)&lt;br /&gt;
    if d and m and y then&lt;br /&gt;
        return mw.getContentLanguage():formatDate(&#039;j. F Y&#039;, string.format(&amp;quot;%04d-%02d-%02d&amp;quot;, y, m, d))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Format: 1/7/1980 ili 1-7-1980&lt;br /&gt;
    d, m, y = date:match(&amp;quot;^(%d%d?)[/%-](%d%d?)[/%-](%d%d%d%d)$&amp;quot;)&lt;br /&gt;
    if d and m and y then&lt;br /&gt;
        return mw.getContentLanguage():formatDate(&#039;j. F Y&#039;, string.format(&amp;quot;%04d-%02d-%02d&amp;quot;, y, m, d))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Format: 1. srpnja 1980 (hrvatski mjeseci)&lt;br /&gt;
    local mjeseci = {&lt;br /&gt;
        [&amp;quot;siječnja&amp;quot;]=1, [&amp;quot;veljače&amp;quot;]=2, [&amp;quot;ožujka&amp;quot;]=3, [&amp;quot;travnja&amp;quot;]=4,&lt;br /&gt;
        [&amp;quot;svibnja&amp;quot;]=5, [&amp;quot;lipnja&amp;quot;]=6, [&amp;quot;srpnja&amp;quot;]=7, [&amp;quot;kolovoza&amp;quot;]=8,&lt;br /&gt;
        [&amp;quot;rujna&amp;quot;]=9, [&amp;quot;listopada&amp;quot;]=10, [&amp;quot;studenoga&amp;quot;]=11, [&amp;quot;prosinca&amp;quot;]=12&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    d, m, y = date:match(&amp;quot;^(%d%d?)%. (%a+) (%d%d%d%d)$&amp;quot;)&lt;br /&gt;
    if d and m and y and mjeseci[m] then&lt;br /&gt;
        return mw.getContentLanguage():formatDate(&lt;br /&gt;
            &#039;j. F Y&#039;,&lt;br /&gt;
            string.format(&amp;quot;%04d-%02d-%02d&amp;quot;, y, mjeseci[m], d)&lt;br /&gt;
        )&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- fallback: pokušaj formatDate direktno&lt;br /&gt;
    return mw.getContentLanguage():formatDate(&#039;j. F Y&#039;, date)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function util.linkPlace(text)&lt;br /&gt;
    if util.isEmpty(text) then return &#039;&#039; end&lt;br /&gt;
&lt;br /&gt;
    -- ako već sadrži [[ ]] → ne diraj&lt;br /&gt;
    if text:match(&amp;quot;%[%[&amp;quot;) then&lt;br /&gt;
        return text&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local parts = mw.text.split(text, &amp;quot;,&amp;quot;)&lt;br /&gt;
    for i, p in ipairs(parts) do&lt;br /&gt;
        p = mw.text.trim(p)&lt;br /&gt;
        parts[i] = string.format(&amp;quot;[[%s]]&amp;quot;, p)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return table.concat(parts, &amp;quot;, &amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function normdata.render(args)&lt;br /&gt;
    local out = {}&lt;br /&gt;
&lt;br /&gt;
    if not util.isEmpty(args.viaf) then&lt;br /&gt;
        table.insert(out, &#039;[https://viaf.org/viaf/&#039; .. args.viaf .. &#039; VIAF]&#039;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if not util.isEmpty(args.eb) then&lt;br /&gt;
        table.insert(out, &#039;[https://enciklopedija.cc/EB/&#039; .. args.eb .. &#039; EB]&#039;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if #out == 0 then&lt;br /&gt;
        return &#039;&#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return &#039;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Normativni nadzor&amp;lt;/th&amp;gt;&amp;lt;td&amp;gt;&#039; .. table.concat(out, &#039; · &#039;) .. &#039;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.render(args, mode)&lt;br /&gt;
    local output = {}&lt;br /&gt;
&lt;br /&gt;
    table.insert(output, p.renderHeader(args))&lt;br /&gt;
    table.insert(output, image.render(args))&lt;br /&gt;
    table.insert(output, section.render(args, mode))&lt;br /&gt;
    table.insert(output, normdata.render(args))&lt;br /&gt;
&lt;br /&gt;
    return table.concat(output, &amp;quot;\n&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function section.render(args, mode)&lt;br /&gt;
    local out = {}&lt;br /&gt;
&lt;br /&gt;
    -- Osnovni biografski podatci&lt;br /&gt;
    table.insert(out, util.showIf(&#039;Mjesto rođenja&#039;, util.linkPlace(args.mjesto_rodjenja)))&lt;br /&gt;
    table.insert(out, util.showIf(&#039;Mjesto smrti&#039;, util.linkPlace(args.mjesto_smrti)))&lt;br /&gt;
&lt;br /&gt;
    table.insert(out, util.showIf(&#039;Smrt&#039;, dates.format(args.smrt)))&lt;br /&gt;
    table.insert(out, util.showIf(&#039;Mjesto smrti&#039;, args.mjesto_smrti))&lt;br /&gt;
    table.insert(out, util.showIf(&#039;Zanimanje&#039;, args.zanimanje))&lt;br /&gt;
    table.insert(out, util.showIf(&#039;Nacionalnost&#039;, args.nacionalnost))&lt;br /&gt;
&lt;br /&gt;
    -- Proširenja&lt;br /&gt;
    table.insert(out, util.showIf(&#039;Obrazovanje&#039;, args.obrazovanje))&lt;br /&gt;
    table.insert(out, util.showIf(&#039;Poznata djela&#039;, args.djela))&lt;br /&gt;
    table.insert(out, util.showIf(&#039;Nagrade&#039;, args.nagrade))&lt;br /&gt;
    table.insert(out, util.showIf(&#039;Aktivno razdoblje&#039;, args.aktivno))&lt;br /&gt;
    table.insert(out, util.showIf(&#039;Organizacije&#039;, args.organizacije))&lt;br /&gt;
&lt;br /&gt;
    return table.concat(out, &amp;quot;\n&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p.biography(frame)&lt;br /&gt;
    local raw = frame:getParent().args&lt;br /&gt;
    local args = normalizeArgs(raw)&lt;br /&gt;
    return p.render(args, &amp;quot;biography&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=Modul:InfoboxCore/doc&amp;diff=787383</id>
		<title>Modul:InfoboxCore/doc</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=Modul:InfoboxCore/doc&amp;diff=787383"/>
		<updated>2026-07-01T11:44:50Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Stvorena prazna stranica.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=Modul:InfoboxCore&amp;diff=787382</id>
		<title>Modul:InfoboxCore</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=Modul:InfoboxCore&amp;diff=787382"/>
		<updated>2026-07-01T11:38:20Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Stvorena nova stranica sa sadržajem: »local p = {}  local util = {} local row = {} local section = {} local image = {} local dates = {} local normdata = {}  function util.isEmpty(v)     return v == nil or v == &amp;#039;&amp;#039; or mw.text.trim(v) == &amp;#039;&amp;#039; end  function util.showIf(label, value)     if util.isEmpty(value) then         return &amp;#039;&amp;#039;     end     return row.render(label, value) end  function row.render(label, value)     return string.format(         &amp;#039;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;%s&amp;lt;/th&amp;gt;&amp;lt;td&amp;gt;%s&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;#039;,         la...«.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local util = {}&lt;br /&gt;
local row = {}&lt;br /&gt;
local section = {}&lt;br /&gt;
local image = {}&lt;br /&gt;
local dates = {}&lt;br /&gt;
local normdata = {}&lt;br /&gt;
&lt;br /&gt;
function util.isEmpty(v)&lt;br /&gt;
    return v == nil or v == &#039;&#039; or mw.text.trim(v) == &#039;&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function util.showIf(label, value)&lt;br /&gt;
    if util.isEmpty(value) then&lt;br /&gt;
        return &#039;&#039;&lt;br /&gt;
    end&lt;br /&gt;
    return row.render(label, value)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function row.render(label, value)&lt;br /&gt;
    return string.format(&lt;br /&gt;
        &#039;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;%s&amp;lt;/th&amp;gt;&amp;lt;td&amp;gt;%s&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&#039;,&lt;br /&gt;
        label,&lt;br /&gt;
        value&lt;br /&gt;
    )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.renderHeader(args)&lt;br /&gt;
    local name = args.ime or args.name or mw.title.getCurrentTitle().text&lt;br /&gt;
    return string.format(&lt;br /&gt;
        &#039;&amp;lt;tr class=&amp;quot;infobox-header&amp;quot;&amp;gt;&amp;lt;th colspan=&amp;quot;2&amp;quot;&amp;gt;%s&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&#039;,&lt;br /&gt;
        name&lt;br /&gt;
    )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function image.render(args)&lt;br /&gt;
    if util.isEmpty(args.slika) then&lt;br /&gt;
        return &#039;&#039;&lt;br /&gt;
    end&lt;br /&gt;
    local caption = args.opis_slike or &#039;&#039;&lt;br /&gt;
    return string.format(&lt;br /&gt;
        &#039;&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot; class=&amp;quot;infobox-image&amp;quot;&amp;gt;%s&amp;lt;div class=&amp;quot;infobox-caption&amp;quot;&amp;gt;%s&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&#039;,&lt;br /&gt;
        args.slika,&lt;br /&gt;
        caption&lt;br /&gt;
    )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function dates.format(date)&lt;br /&gt;
    if util.isEmpty(date) then&lt;br /&gt;
        return &#039;&#039;&lt;br /&gt;
    end&lt;br /&gt;
    return mw.getContentLanguage():formatDate(&#039;j. F Y&#039;, date)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function section.render(args, mode)&lt;br /&gt;
    local out = {}&lt;br /&gt;
&lt;br /&gt;
    table.insert(out, util.showIf(&#039;Rođenje&#039;, dates.format(args.rodjenje)))&lt;br /&gt;
    table.insert(out, util.showIf(&#039;Mjesto rođenja&#039;, args.mjesto_rodjenja))&lt;br /&gt;
&lt;br /&gt;
    table.insert(out, util.showIf(&#039;Smrt&#039;, dates.format(args.smrt)))&lt;br /&gt;
    table.insert(out, util.showIf(&#039;Mjesto smrti&#039;, args.mjesto_smrti))&lt;br /&gt;
&lt;br /&gt;
    table.insert(out, util.showIf(&#039;Zanimanje&#039;, args.zanimanje))&lt;br /&gt;
    table.insert(out, util.showIf(&#039;Nacionalnost&#039;, args.nacionalnost))&lt;br /&gt;
&lt;br /&gt;
    return table.concat(out, &amp;quot;\n&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function normdata.render(args)&lt;br /&gt;
    local out = {}&lt;br /&gt;
&lt;br /&gt;
    if not util.isEmpty(args.viaf) then&lt;br /&gt;
        table.insert(out, &#039;[https://viaf.org/viaf/&#039; .. args.viaf .. &#039; VIAF]&#039;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if not util.isEmpty(args.eb) then&lt;br /&gt;
        table.insert(out, &#039;[https://enciklopedija.cc/EB/&#039; .. args.eb .. &#039; EB]&#039;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if #out == 0 then&lt;br /&gt;
        return &#039;&#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return &#039;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Normativni nadzor&amp;lt;/th&amp;gt;&amp;lt;td&amp;gt;&#039; .. table.concat(out, &#039; · &#039;) .. &#039;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.render(args, mode)&lt;br /&gt;
    local output = {}&lt;br /&gt;
&lt;br /&gt;
    table.insert(output, p.renderHeader(args))&lt;br /&gt;
    table.insert(output, image.render(args))&lt;br /&gt;
    table.insert(output, section.render(args, mode))&lt;br /&gt;
    table.insert(output, normdata.render(args))&lt;br /&gt;
&lt;br /&gt;
    return table.concat(output, &amp;quot;\n&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.biography(frame)&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    return p.render(args, &amp;quot;biography&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=Jeronim_Laski&amp;diff=787365</id>
		<title>Jeronim Laski</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=Jeronim_Laski&amp;diff=787365"/>
		<updated>2026-06-29T08:24:40Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infookvir političar&lt;br /&gt;
|ime             = Jeronim Łaski&lt;br /&gt;
|slika           = &lt;br /&gt;
|veličina        = &lt;br /&gt;
|opis slike      = &lt;br /&gt;
|malaslika       = &lt;br /&gt;
|opis male slike = &lt;br /&gt;
|datum rođenja   = [[27. rujna]] [[1496.]].&lt;br /&gt;
|datum smrti     = [[22. prosinca]] [[1542.]]., [[Krakov]], [[Poljska]]&lt;br /&gt;
&lt;br /&gt;
|položaj         = [[Dodatak:Popis hrvatskih banova|Hrvatski ban]]&lt;br /&gt;
|mandat_start    = [[srpanj]] [[1540.]]&lt;br /&gt;
|mandat_kraj     = [[rujan]]  [[1540.]]&lt;br /&gt;
|podpredsjednik  = &lt;br /&gt;
|podpremijer     = &lt;br /&gt;
|zamjenik        = &lt;br /&gt;
|premijer1       = &lt;br /&gt;
|predsjednik1    = &lt;br /&gt;
|prethodnik      = &lt;br /&gt;
|nasljednik      = &lt;br /&gt;
&lt;br /&gt;
|čin2            = [[vojvoda]]&lt;br /&gt;
|mandat_start2   = &lt;br /&gt;
|mandat_kraj2    = &lt;br /&gt;
|podpredsjednik2 = &lt;br /&gt;
|podpremijer2    = &lt;br /&gt;
|zamjenik2       = &lt;br /&gt;
|premijer2       = &lt;br /&gt;
|predsjednik     =&lt;br /&gt;
|prethodnik2     = &lt;br /&gt;
|nasljednik2     =&lt;br /&gt;
&lt;br /&gt;
|čin3            = &lt;br /&gt;
|mandat_start3   = &lt;br /&gt;
|mandat_kraj3    = &lt;br /&gt;
|podpredsjednik3 = &lt;br /&gt;
|podpremijer3    = &lt;br /&gt;
|zamjenik3       = &lt;br /&gt;
|premijer3       = &lt;br /&gt;
|predsjednik3    = &lt;br /&gt;
|prethodnik3     = &lt;br /&gt;
|nasljednik3     =&lt;br /&gt;
&lt;br /&gt;
|čin4            = &lt;br /&gt;
|mandat_start4   = &lt;br /&gt;
|mandat_kraj4    = &lt;br /&gt;
|podpredsjednik4 = &lt;br /&gt;
|podpremijer4    = &lt;br /&gt;
|zamjenik4       = &lt;br /&gt;
|premijer4       = &lt;br /&gt;
|predsjednik4    = &lt;br /&gt;
|nasljednik4     = &lt;br /&gt;
|prethodnik4     =&lt;br /&gt;
&lt;br /&gt;
|čin5            = &lt;br /&gt;
|mandat_start5   = &lt;br /&gt;
|mandat_kraj5    = &lt;br /&gt;
|podpredsjednik5 = &lt;br /&gt;
|podpremijer5    = &lt;br /&gt;
|zamjenik5       = &lt;br /&gt;
|premijer5       = &lt;br /&gt;
|predsjednik5    = &lt;br /&gt;
|prethodnik5     = &lt;br /&gt;
|nasljednik5     =&lt;br /&gt;
&lt;br /&gt;
|stranka         = &lt;br /&gt;
|supruga         = &lt;br /&gt;
|suprug          = &lt;br /&gt;
|fusnote         = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Jeronim Łaski&#039;&#039;&#039; ([[27. rujna]] [[1496.|1496]].- [[22. prosinca]] [[1542.|1542]]., Krakov, Poljska) bio je hrvatski ban i diplomat iz utjecajne poljske obitelji Łaski. Bio je nećak nadbiskupa [[Jan Łaski|Jana Łaskog]]. Bio je palatin [[Inowrocław|Inowrocława]] i [[Sieradz|Sieradza]].&amp;lt;ref&amp;gt;{{Citiranje knjige|last=Setton|first=Kenneth Meyer|title=The papacy and the Levant. 3: The sixteenth century to the reign of Julius III|date=1984|publisher=American Philosophical Soc|isbn=978-0-87169-161-3|series=Memoirs of the American Philosophical Society|location=Philadelphia}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Životopis ==&lt;br /&gt;
&lt;br /&gt;
Školovao se u [[Rim|Rimu]] 1513-14. i [[Bologna|Bologni]] 1514-17. U službu poljskog kralja stupa [[1519.|1519]].,a [[1520.|1520]]. odlazi u izaslanstvo francuskom kralju [[Franjo I., kralj Francuske|Franji I.]] i svetorimskom caru [[Karlo V., car Svetog Rimskog Carstva|Karlu V.]] Habsburgu. Od [[1523.|1523]]. Sierdzki vojvoda i član senata. U [[Pariz|Parizu]] je [[1524.|1524]]. neuspjelo pregovarao o savazu francuske i poljske dinastije te o savezu protiv Turaka. Unatoč protivljenju [[Žigmund I. Jagelović|Sigismunda I. Jagelovića]], pristupio je [[1527.|1527]]. [[Ivan Zapolja|Ivanu Zapolji]] te postao jednim od njegovih glavnih izaslanika; zagovarao ga u [[Pariz|Parizu]], [[Kopenhagen|Københavenu]] i [[München|Münchenu]], [[1528.|1528]]. u [[Istanbul|Carigradu]] u njegovo ime sklopio savez s [[Sulejman II.|Sulejmanom II.]], koji se obvezao pomoći Zapolji protiv [[Ferdinand I., car Svetog Rimskog Carstva|Ferdinanda I.]] i priznati ga za ugarskog kralja. Na početku 1530-ih nudio mir Ferdinandu u [[Innsbruck|Innsbrucku]] te ishodio francusku novčanu pomoć, dobio naslov vojvode Transilvanije. Sa Sulejmanovim se pouzdanikom Ludovikom Grittijem neuspjelo urotio protiv Zapolje [[1534.|1534]]. godine. Pušten iz tamnice [[1535.|1535]]., ušao u službu [[Ferdinand I., car Svetog Rimskog Carstva|Ferdinanda I.]] te [[1539.|1539]]. u Carigradu za njega pokušao dobiti Zapoljin dio Ugarske. &lt;br /&gt;
&lt;br /&gt;
U srpnju 1540. kralj ga je imenovao banom kraljevine Dalmacije, Hrvatske i Slavonije, ustupio mu [[Susedgrad]] i [[Stubica (Vrbovsko)|Stubicu]] te obećao plaću. Organizirao je upravunad posjedima, kralju predlagao paljenje kaštela [[Donja Stubica|Donje Stubice]] iz logističkih razloga te plaćanje harača kao zaštite od turskih razaranja. Za misije u Carigradu u jesen [[1540.|1540]]. zatočen, a [[1541.|1541]]. S vojskom doveden u [[Beograd]], odakle je pušten zbog bolesti.&amp;lt;ref&amp;gt;{{Citiranje weba|title=LASKI, Jeronim - Hrvatski biografski leksikon|url=https://hbl.lzmk.hr/clanak/laski-jeronim|access-date=2026-06-22|website=hbl.lzmk.hr}}&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Ubrzo nakon povratka u Poljsku, Jeronim je iznenada umro u [[Krakov]]u, vjerojatno otrovan od strane jednog od svojih brojnih neprijatelja.&amp;lt;ref&amp;gt;{{Citiranje weba|title=1911 Encyclopedia Britannica|url=https://doi.org/10.24097/wolfram.96543.data|access-date=2026-06-22|website=Wolfram Research Data Repository}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Izvori==&lt;br /&gt;
{{izvori}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vanjske poveznice==&lt;br /&gt;
&lt;br /&gt;
[[Kategorija: Hrvatski banovi]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=Jeronim_Laski&amp;diff=787364</id>
		<title>Jeronim Laski</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=Jeronim_Laski&amp;diff=787364"/>
		<updated>2026-06-29T08:23:24Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infookvir političar&lt;br /&gt;
|ime             = Josip Jelačić&lt;br /&gt;
|slika           = &lt;br /&gt;
|veličina        = &lt;br /&gt;
|opis slike      = &lt;br /&gt;
|malaslika       = &lt;br /&gt;
|opis male slike = &lt;br /&gt;
|datum rođenja   = ([[27. rujna]] [[1496.]].&lt;br /&gt;
|datum smrti     = [[22. prosinca]] [[1542.]]., [[Krakov]], [[Poljska]]&lt;br /&gt;
&lt;br /&gt;
|položaj         = [[Dodatak:Popis hrvatskih banova|Hrvatski ban]]&lt;br /&gt;
|mandat_start    = [[srpanj]] [[1540.]]&lt;br /&gt;
|mandat_kraj     = [[rujan]]  [[1540.]]&lt;br /&gt;
|podpredsjednik  = &lt;br /&gt;
|podpremijer     = &lt;br /&gt;
|zamjenik        = &lt;br /&gt;
|premijer1       = &lt;br /&gt;
|predsjednik1    = &lt;br /&gt;
|prethodnik      = &lt;br /&gt;
|nasljednik      = &lt;br /&gt;
&lt;br /&gt;
|čin2            = &lt;br /&gt;
|mandat_start2   = &lt;br /&gt;
|mandat_kraj2    = &lt;br /&gt;
|podpredsjednik2 = &lt;br /&gt;
|podpremijer2    = &lt;br /&gt;
|zamjenik2       = &lt;br /&gt;
|premijer2       = &lt;br /&gt;
|predsjednik     =&lt;br /&gt;
|prethodnik2     = &lt;br /&gt;
|nasljednik2     =&lt;br /&gt;
&lt;br /&gt;
|čin3            = &lt;br /&gt;
|mandat_start3   = &lt;br /&gt;
|mandat_kraj3    = &lt;br /&gt;
|podpredsjednik3 = &lt;br /&gt;
|podpremijer3    = &lt;br /&gt;
|zamjenik3       = &lt;br /&gt;
|premijer3       = &lt;br /&gt;
|predsjednik3    = &lt;br /&gt;
|prethodnik3     = &lt;br /&gt;
|nasljednik3     =&lt;br /&gt;
&lt;br /&gt;
|čin4            = &lt;br /&gt;
|mandat_start4   = &lt;br /&gt;
|mandat_kraj4    = &lt;br /&gt;
|podpredsjednik4 = &lt;br /&gt;
|podpremijer4    = &lt;br /&gt;
|zamjenik4       = &lt;br /&gt;
|premijer4       = &lt;br /&gt;
|predsjednik4    = &lt;br /&gt;
|nasljednik4     = &lt;br /&gt;
|prethodnik4     =&lt;br /&gt;
&lt;br /&gt;
|čin5            = &lt;br /&gt;
|mandat_start5   = &lt;br /&gt;
|mandat_kraj5    = &lt;br /&gt;
|podpredsjednik5 = &lt;br /&gt;
|podpremijer5    = &lt;br /&gt;
|zamjenik5       = &lt;br /&gt;
|premijer5       = &lt;br /&gt;
|predsjednik5    = &lt;br /&gt;
|prethodnik5     = &lt;br /&gt;
|nasljednik5     =&lt;br /&gt;
&lt;br /&gt;
|stranka         = &lt;br /&gt;
|supruga         = &lt;br /&gt;
|suprug          = &lt;br /&gt;
|fusnote         = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Jeronim Łaski&#039;&#039;&#039; ([[27. rujna]] [[1496.|1496]].- [[22. prosinca]] [[1542.|1542]].) bio je hrvatski ban i diplomat iz utjecajne poljske obitelji Łaski. Bio je nećak nadbiskupa [[Jan Łaski|Jana Łaskog]]. Bio je palatin [[Inowrocław|Inowrocława]] i [[Sieradz|Sieradza]].&amp;lt;ref&amp;gt;{{Citiranje knjige|last=Setton|first=Kenneth Meyer|title=The papacy and the Levant. 3: The sixteenth century to the reign of Julius III|date=1984|publisher=American Philosophical Soc|isbn=978-0-87169-161-3|series=Memoirs of the American Philosophical Society|location=Philadelphia}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Životopis ==&lt;br /&gt;
&lt;br /&gt;
Školovao se u [[Rim|Rimu]] 1513-14. i [[Bologna|Bologni]] 1514-17. U službu poljskog kralja stupa [[1519.|1519]].,a [[1520.|1520]]. odlazi u izaslanstvo francuskom kralju [[Franjo I., kralj Francuske|Franji I.]] i svetorimskom caru [[Karlo V., car Svetog Rimskog Carstva|Karlu V.]] Habsburgu. Od [[1523.|1523]]. Sierdzki vojvoda i član senata. U [[Pariz|Parizu]] je [[1524.|1524]]. neuspjelo pregovarao o savazu francuske i poljske dinastije te o savezu protiv Turaka. Unatoč protivljenju [[Žigmund I. Jagelović|Sigismunda I. Jagelovića]], pristupio je [[1527.|1527]]. [[Ivan Zapolja|Ivanu Zapolji]] te postao jednim od njegovih glavnih izaslanika; zagovarao ga u [[Pariz|Parizu]], [[Kopenhagen|Københavenu]] i [[München|Münchenu]], [[1528.|1528]]. u [[Istanbul|Carigradu]] u njegovo ime sklopio savez s [[Sulejman II.|Sulejmanom II.]], koji se obvezao pomoći Zapolji protiv [[Ferdinand I., car Svetog Rimskog Carstva|Ferdinanda I.]] i priznati ga za ugarskog kralja. Na početku 1530-ih nudio mir Ferdinandu u [[Innsbruck|Innsbrucku]] te ishodio francusku novčanu pomoć, dobio naslov vojvode Transilvanije. Sa Sulejmanovim se pouzdanikom Ludovikom Grittijem neuspjelo urotio protiv Zapolje [[1534.|1534]]. godine. Pušten iz tamnice [[1535.|1535]]., ušao u službu [[Ferdinand I., car Svetog Rimskog Carstva|Ferdinanda I.]] te [[1539.|1539]]. u Carigradu za njega pokušao dobiti Zapoljin dio Ugarske. &lt;br /&gt;
&lt;br /&gt;
U srpnju 1540. kralj ga je imenovao banom kraljevine Dalmacije, Hrvatske i Slavonije, ustupio mu [[Susedgrad]] i [[Stubica (Vrbovsko)|Stubicu]] te obećao plaću. Organizirao je upravunad posjedima, kralju predlagao paljenje kaštela [[Donja Stubica|Donje Stubice]] iz logističkih razloga te plaćanje harača kao zaštite od turskih razaranja. Za misije u Carigradu u jesen [[1540.|1540]]. zatočen, a [[1541.|1541]]. S vojskom doveden u [[Beograd]], odakle je pušten zbog bolesti.&amp;lt;ref&amp;gt;{{Citiranje weba|title=LASKI, Jeronim - Hrvatski biografski leksikon|url=https://hbl.lzmk.hr/clanak/laski-jeronim|access-date=2026-06-22|website=hbl.lzmk.hr}}&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Ubrzo nakon povratka u Poljsku, Jeronim je iznenada umro u [[Krakov]]u, vjerojatno otrovan od strane jednog od svojih brojnih neprijatelja.&amp;lt;ref&amp;gt;{{Citiranje weba|title=1911 Encyclopedia Britannica|url=https://doi.org/10.24097/wolfram.96543.data|access-date=2026-06-22|website=Wolfram Research Data Repository}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Izvori==&lt;br /&gt;
{{izvori}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vanjske poveznice==&lt;br /&gt;
&lt;br /&gt;
[[Kategorija: Hrvatski banovi]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=Jeronim_Laski&amp;diff=787363</id>
		<title>Jeronim Laski</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=Jeronim_Laski&amp;diff=787363"/>
		<updated>2026-06-29T08:18:33Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Životopis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Jeronim Łaski&#039;&#039;&#039; ([[27. rujna]] [[1496.|1496]].- [[22. prosinca]] [[1542.|1542]].) bio je hrvatski ban i diplomat iz utjecajne poljske obitelji Łaski. Bio je nećak nadbiskupa [[Jan Łaski|Jana Łaskog]]. Bio je palatin [[Inowrocław|Inowrocława]] i [[Sieradz|Sieradza]].&amp;lt;ref&amp;gt;{{Citiranje knjige|last=Setton|first=Kenneth Meyer|title=The papacy and the Levant. 3: The sixteenth century to the reign of Julius III|date=1984|publisher=American Philosophical Soc|isbn=978-0-87169-161-3|series=Memoirs of the American Philosophical Society|location=Philadelphia}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Životopis ==&lt;br /&gt;
&lt;br /&gt;
Školovao se u [[Rim|Rimu]] 1513-14. i [[Bologna|Bologni]] 1514-17. U službu poljskog kralja stupa [[1519.|1519]].,a [[1520.|1520]]. odlazi u izaslanstvo francuskom kralju [[Franjo I., kralj Francuske|Franji I.]] i svetorimskom caru [[Karlo V., car Svetog Rimskog Carstva|Karlu V.]] Habsburgu. Od [[1523.|1523]]. Sierdzki vojvoda i član senata. U [[Pariz|Parizu]] je [[1524.|1524]]. neuspjelo pregovarao o savazu francuske i poljske dinastije te o savezu protiv Turaka. Unatoč protivljenju [[Žigmund I. Jagelović|Sigismunda I. Jagelovića]], pristupio je [[1527.|1527]]. [[Ivan Zapolja|Ivanu Zapolji]] te postao jednim od njegovih glavnih izaslanika; zagovarao ga u [[Pariz|Parizu]], [[Kopenhagen|Københavenu]] i [[München|Münchenu]], [[1528.|1528]]. u [[Istanbul|Carigradu]] u njegovo ime sklopio savez s [[Sulejman II.|Sulejmanom II.]], koji se obvezao pomoći Zapolji protiv [[Ferdinand I., car Svetog Rimskog Carstva|Ferdinanda I.]] i priznati ga za ugarskog kralja. Na početku 1530-ih nudio mir Ferdinandu u [[Innsbruck|Innsbrucku]] te ishodio francusku novčanu pomoć, dobio naslov vojvode Transilvanije. Sa Sulejmanovim se pouzdanikom Ludovikom Grittijem neuspjelo urotio protiv Zapolje [[1534.|1534]]. godine. Pušten iz tamnice [[1535.|1535]]., ušao u službu [[Ferdinand I., car Svetog Rimskog Carstva|Ferdinanda I.]] te [[1539.|1539]]. u Carigradu za njega pokušao dobiti Zapoljin dio Ugarske. &lt;br /&gt;
&lt;br /&gt;
U srpnju 1540. kralj ga je imenovao banom kraljevine Dalmacije, Hrvatske i Slavonije, ustupio mu [[Susedgrad]] i [[Stubica (Vrbovsko)|Stubicu]] te obećao plaću. Organizirao je upravunad posjedima, kralju predlagao paljenje kaštela [[Donja Stubica|Donje Stubice]] iz logističkih razloga te plaćanje harača kao zaštite od turskih razaranja. Za misije u Carigradu u jesen [[1540.|1540]]. zatočen, a [[1541.|1541]]. S vojskom doveden u [[Beograd]], odakle je pušten zbog bolesti.&amp;lt;ref&amp;gt;{{Citiranje weba|title=LASKI, Jeronim - Hrvatski biografski leksikon|url=https://hbl.lzmk.hr/clanak/laski-jeronim|access-date=2026-06-22|website=hbl.lzmk.hr}}&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Ubrzo nakon povratka u Poljsku, Jeronim je iznenada umro u [[Krakov]]u, vjerojatno otrovan od strane jednog od svojih brojnih neprijatelja.&amp;lt;ref&amp;gt;{{Citiranje weba|title=1911 Encyclopedia Britannica|url=https://doi.org/10.24097/wolfram.96543.data|access-date=2026-06-22|website=Wolfram Research Data Repository}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Izvori==&lt;br /&gt;
{{izvori}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vanjske poveznice==&lt;br /&gt;
&lt;br /&gt;
[[Kategorija: Hrvatski banovi]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=Jeronim_Laski&amp;diff=787362</id>
		<title>Jeronim Laski</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=Jeronim_Laski&amp;diff=787362"/>
		<updated>2026-06-29T08:16:58Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Jeronim Łaski&#039;&#039;&#039; ([[27. rujna]] [[1496.|1496]].- [[22. prosinca]] [[1542.|1542]].) bio je hrvatski ban i diplomat iz utjecajne poljske obitelji Łaski. Bio je nećak nadbiskupa [[Jan Łaski|Jana Łaskog]]. Bio je palatin [[Inowrocław|Inowrocława]] i [[Sieradz|Sieradza]].&amp;lt;ref&amp;gt;{{Citiranje knjige|last=Setton|first=Kenneth Meyer|title=The papacy and the Levant. 3: The sixteenth century to the reign of Julius III|date=1984|publisher=American Philosophical Soc|isbn=978-0-87169-161-3|series=Memoirs of the American Philosophical Society|location=Philadelphia}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Životopis ==&lt;br /&gt;
&lt;br /&gt;
Školovao se u [[Rim|Rimu]] 1513-14. i [[Bologna|Bologni]] 1514-17. U službu poljskog kralja stupa [[1519.|1519]].,a [[1520.|1520]]. odlazi u izaslanstvo francuskom kralju [[Franjo I., kralj Francuske|Franji I.]] i svetorimskom caru [[Karlo V., car Svetog Rimskog Carstva|Karlu V.]] Habsburgu. Od [[1523.|1523]]. Sierdzki vojvoda i član senata. U [[Pariz|Parizu]] je [[1524.|1524]]. neuspjelo pregovarao o savazu francuske i poljske dinastije te o savezu protiv Turaka. Unatoč protivljenju [[Žigmund I. Jagelović|Sigismunda I. Jagelovića]], pristupio je [[1527.|1527]]. [[Ivan Zapolja|Ivanu Zapolji]] te postao jednim od njegovih glavnih izaslanika; zagovarao ga u [[Pariz|Parizu]], [[Kopenhagen|Københavenu]] i [[München|Münchenu]], [[1528.|1528]]. u [[Istanbul|Carigradu]] u njegovo ime sklopio savez s [[Sulejman II.|Sulejmanom II.]], koji se obvezao pomoći Zapolji protiv [[Ferdinand I., car Svetog Rimskog Carstva|Ferdinanda I.]] i priznati ga za ugarskog kralja. Na početku 1530-ih nudio mir Ferdinandu u [[Innsbruck|Innsbrucku]] te ishodio francusku novčanu pomoć, dobio naslov vojvode Transilvanije. Sa Sulejmanovim se pouzdanikom Ludovikom Grittijem neuspjelo urotio protiv Zapolje [[1534.|1534]]. godine. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pušten iz tamnice [[1535.|1535]]., ušao u službu [[Ferdinand I., car Svetog Rimskog Carstva|Ferdinanda I.]] te [[1539.|1539]]. u Carigradu za njega pokušao dobiti Zapoljin dio Ugarske. U srpnju 1540. kralj ga je imenovao banom kraljevine Dalmacije, Hrvatske i Slavonije, ustupio mu [[Susedgrad]] i [[Stubica (Vrbovsko)|Stubicu]] te obećao plaću. Organizirao je upravunad posjedima, kralju predlagao paljenje kaštela [[Donja Stubica|Donje Stubice]] iz logističkih razloga te plaćanje harača kao zaštite od turskih razaranja. Za misije u Carigradu u jesen [[1540.|1540]]. zatočen, a [[1541.|1541]]. S vojskom doveden u [[Beograd]], odakle je pušten zbog bolesti.&amp;lt;ref&amp;gt;{{Citiranje weba|title=LASKI, Jeronim - Hrvatski biografski leksikon|url=https://hbl.lzmk.hr/clanak/laski-jeronim|access-date=2026-06-22|website=hbl.lzmk.hr}}&amp;lt;/ref&amp;gt; Ubrzo nakon povratka u poljsku, Jeronim je iznenada umro u Krakovu, vjerojatno otrovan od strane jednog od svojih brojnih neprijatelja.&amp;lt;ref&amp;gt;{{Citiranje weba|title=1911 Encyclopedia Britannica|url=https://doi.org/10.24097/wolfram.96543.data|access-date=2026-06-22|website=Wolfram Research Data Repository}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Izvori==&lt;br /&gt;
{{izvori}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vanjske poveznice==&lt;br /&gt;
&lt;br /&gt;
[[Kategorija: Hrvatski banovi]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=Kip_bana_Josipa_Jela%C4%8Di%C4%87a_u_Zagrebu&amp;diff=787361</id>
		<title>Kip bana Josipa Jelačića u Zagrebu</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=Kip_bana_Josipa_Jela%C4%8Di%C4%87a_u_Zagrebu&amp;diff=787361"/>
		<updated>2026-06-29T08:16:05Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datoteka:Estatua de Ban Jelacic, Zagreb, Croacia, 2014-04-13, DD 01.JPG|230px|mini|desno|Kip bana Josipa Jelačića]]&lt;br /&gt;
[[Datoteka:Trg1880.jpg|230px|mini|desno|Kip 1880. godine, okrenut prema sjeveru.]]&lt;br /&gt;
&#039;&#039;&#039;Kip bana Josipa Jelačića&#039;&#039;&#039; kipara [[Anton Dominik Fernkorn|Dominika Fernkorna]] nalazi se na [[Trg bana Jelačića (Zagreb)|Trgu bana Jelačića]] u [[Zagreb]]u. Jedan je od glavnih simbola grada Zagreba.&lt;br /&gt;
&lt;br /&gt;
Kip je svečano otkriven na glavnom zagrebačkom trgu [[16. prosinca]] [[1866.]] godine. Dogodilo se to samo sedam godina nakon banove smrti. Kip prikazuje [[Josip Jelačić|Josipa Jelačića]] na [[konj]]u sa sabljom u ispruženoj desnoj ruci.&amp;lt;ref&amp;gt;https://povijest.hr/nadanasnjidan/podignut-kip-banu-jelacicu-1866-2/ Preuzeto 19. prosinca 2020.&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
U [[Hrvatska|Hrvatskoj]] se ustalio [[mit]] da je kip bana Josipa Jelačića na središnjem zagrebačkom trgu do [[1947.]] godine, kad su ga komunističke vlasti uklonile, bio okrenut prema [[sjever]]u kako bi svojom sabljom ‘pokazivao’ prema [[Mađarska|Mađarskoj]]. Iako u tome ima logike s obzirom na Jelačićeve povijesne borbe s [[Mađari]]ma, kip je zapravo bio okrenut prema najnaseljenijem dijelu grada u vrijeme postavljanja – [[Gradec (Zagreb)|Gornjem gradu]].&amp;lt;ref&amp;gt;https://croexpress.eu/ovo-malo-tko-zna-kip-bana-jelacica-u-zagrebu-nikad-nije-bio-okrenut-na-sjever-da-bi-prijetio-madarskoj-nego/ Preuzeto 19. prosinca 2020.&amp;lt;/ref&amp;gt; Danas je okrenut prema jugu. &lt;br /&gt;
&lt;br /&gt;
Godine [[1947.]] komunistički je režim uklonio kip, a [[1990.]] godine je kip bio ceremonijalno vraćen na trg. Za službeno otvaranje simbolično je izabran [[16. listopada]], datum Jelačićeva rođenja. Svečanost je pred više od 100 tisuća okupljenih građana otvorio tadašnji gradonačelnik [[Boris Buzančić]], a potom i tadašnji hrvatski predsjednik [[Franjo Tuđman]] nakon čega je počelo veliko slavlje.&amp;lt;ref&amp;gt;http://www.radiostudent.hr/povratak-kipa-bana-josipa-jelacica/ Preuzeto 19. prosinca 2020.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Konj]] ispod bana Jelačića zove se Emir i ban ga je dobio na poklon od Mahmud-bega Bašića iz [[Bihać]]a. Ban je na konju dojahao na ustoličenje u Zagrebu, a deset godina nakon banove smrti, s ovog svijeta odlazi i konj Emir. Antonu Dominiku Fernkornu je poslužio za model kipa [[1866.]] godine.&amp;lt;ref&amp;gt;http://licegrada.hr/prica-o-konju-smjestenom-na-najpoznatijem-zagrebackom-trgu/ Preuzeto 23. siječnja 2021.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Galerija ==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Datoteka:20130609 Zagreb 007.jpg&lt;br /&gt;
Datoteka:Croatia-00496 - Ban Josip Jelačić (9299672085).jpg&lt;br /&gt;
Datoteka:Spomenik banu Jelacicu 050409.jpg&lt;br /&gt;
Datoteka:Zagreb-HR-(Denkmal-Banus Graf J. Jelačić-1)-damir-zg.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Izvori ==&lt;br /&gt;
{{izvori}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorija:Spomenici u Hrvatskoj]]&lt;br /&gt;
[[Kategorija:Građevine u Zagrebu]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=Karlo_III.,_kralj_Ujedinjenog_Kraljevstva&amp;diff=787360</id>
		<title>Karlo III., kralj Ujedinjenog Kraljevstva</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=Karlo_III.,_kralj_Ujedinjenog_Kraljevstva&amp;diff=787360"/>
		<updated>2026-06-29T08:07:43Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Vladavina */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infookvir monarh&lt;br /&gt;
| ime                  = Karlo III.&amp;lt;br /&amp;gt;Charles III.&amp;lt;!----pogledaj izvore i stranicu za razgovor---&amp;gt;&lt;br /&gt;
| slika                = [[Datoteka:Charles, Prince of Wales in 2021 (cropped) (3).jpg|200px]]&lt;br /&gt;
| opis                 = 2. studenoga 2021.&lt;br /&gt;
| titula               = [[Popis engleskih i britanskih vladara|Kralj Ujedinjenog Kraljevstva]]&lt;br /&gt;
| vladavina            = [[8. rujna]] [[2022.]] – &#039;&#039;danas&#039;&#039;&lt;br /&gt;
| krunidba             = [[6. svibnja]] [[2023.]], [[London]]&lt;br /&gt;
| prethodnik           = [[Elizabeta II.]]&lt;br /&gt;
| nasljednik           = [[Princ William, princ od Walesa]]&lt;br /&gt;
| regent               =&lt;br /&gt;
| titula1              =&lt;br /&gt;
| vladavina1           = &lt;br /&gt;
| krunidba1            = &lt;br /&gt;
| prethodnik1          = &lt;br /&gt;
| nasljednik1          =&lt;br /&gt;
| regent1              =&lt;br /&gt;
| titula2              =&lt;br /&gt;
| vladavina2           = &lt;br /&gt;
| krunidba2            = &lt;br /&gt;
| prethodnik2          = &lt;br /&gt;
| nasljednik2          =&lt;br /&gt;
| regent2              =&lt;br /&gt;
| titula3              =&lt;br /&gt;
| vladavina3           = &lt;br /&gt;
| krunidba3            = &lt;br /&gt;
| prethodnik3          = &lt;br /&gt;
| nasljednik3          =&lt;br /&gt;
| regent3              =&lt;br /&gt;
| nasljeđe             = -&lt;br /&gt;
| supruga              = [[Diana, princeza od Walesa]] &amp;lt;br&amp;gt; [[Camilla, kraljica supruga Ujedinjenog Kraljevstva]]&lt;br /&gt;
| suprug               = &lt;br /&gt;
| supruzi              = &lt;br /&gt;
| djeca                = [[Princ William, princ od Walesa|Princ William, princ od Walesa]]&amp;lt;br&amp;gt;[[Harry, vojvoda od Sussexa]]&lt;br /&gt;
| puno ime             = Charles Philip Arthur George&lt;br /&gt;
| postumno ime        = &lt;br /&gt;
| dinastija            = [[Dinastija Windsor|Windsor]] &amp;lt;small&amp;gt;(službeno)&amp;lt;/small&amp;gt;&amp;lt;br/&amp;gt;[[Schleswig-Holstein-Sonderburg-Glücksburg|Glücksburg]] &amp;lt;small&amp;gt;(stvarno)&amp;lt;/small&amp;gt;&lt;br /&gt;
| vladarska himna      =&lt;br /&gt;
| otac                 = [[Filip, vojvoda od Edinburgha|princ Filip, vojvoda od Edinburgha]]&lt;br /&gt;
| majka                = [[Elizabeta II.]]&lt;br /&gt;
| datum rođenja        = [[14. studenoga]] [[1948.]]&lt;br /&gt;
| mjesto rođenja       = [[London]]&lt;br /&gt;
| datum smrti          =&lt;br /&gt;
| mjesto smrti         =&lt;br /&gt;
| datum pokopa         =&lt;br /&gt;
| mjesto pokopa        =&lt;br /&gt;
| potpis               =&lt;br /&gt;
| zanimanje            =&lt;br /&gt;
| vjera                = [[Anglikanska Crkva|anglikanac]]&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;Karlo III.&#039;&#039;&#039;&amp;lt;!----pogledaj izvore i stranicu za razgovor---&amp;gt;&amp;lt;ref&amp;gt;[https://www.enciklopedija.hr/clanak/71836 Karlo III.], [[Hrvatska enciklopedija (LZMK)|Hrvatska enciklopedija]], pristupljeno 8. siječnja 2025.&amp;lt;/ref&amp;gt;&amp;lt;!---Ovaj članak je nedavno nastao.----&amp;gt;&amp;lt;ref&amp;gt;{{Citiranje enciklopedije|naslov=Windsor |url=https://enciklopedija.hr/clanak/66220 |enciklopedija=Hrvatska enciklopedija |izdavač=Leksikografski zavod Miroslav Krleža |access-date=10. rujna 2022.}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;[[HINA]], [https://www.glasistre.hr/svijet/novi-britanski-kralj-zvat-ce-se-karlo-iii-817118 Novi britanski kralj zvat će se Karlo III.], &#039;&#039;[[Glas Istre]]&#039;&#039;, objavljeno 8. kolovoza 2022., pristupljeno 10. rujna 2022.&amp;lt;/ref&amp;gt; ili &#039;&#039;&#039;Charles III.&#039;&#039;&#039;&amp;lt;ref&amp;gt;{{cite web|url=https://www.vecernji.hr/vijesti/kako-se-pise-ime-novog-kralja-charles-iii-ili-karlo-iii-1615955|title=Kako se piše ime novog kralja, Charles III. ili Karlo III.? Institut za hrvatski jezik objavio svoju preporuku|newspaper=[[Večernji list]]|accessdate=10. rujna 2022.|date=9. rujna 2022.}}&amp;lt;/ref&amp;gt; ([[engleski jezik|eng.]] &#039;&#039;Charles III&#039;&#039;),  rodnog imena &#039;&#039;&#039;Charles Philip Arthur George&#039;&#039;&#039; ([[London]], [[14. studenog|14. studenoga]] [[1948.]]&amp;lt;ref&amp;gt;{{Citiranje enciklopedije|naslov=Charles|enciklopedija= Proleksis enciklopedija|url=https://proleksis.lzmk.hr/52810/|access-date=2022-09-09|izdavač=Leksikografski zavod Miroslav Krleža}}&amp;lt;/ref&amp;gt;), [[Popis engleskih i britanskih vladara|kralj je Ujedinjenog Kraljevstva]] i 14 drugih zemalja [[Commonwealth (zajednica država)|Commonwealtha]]. Postao je kralj 8. rujna 2022., smrću kraljice (svoje majke) [[Elizabeta II.|Elizabete II.]]&amp;lt;ref&amp;gt;{{Citiranje weba|izdavač=Deutsche Welle|naslove=Preminula je Elizabeta II: Kraljica je okončala službu {{!}} DW {{!}} 08.09.2022|url=https://www.dw.com/bs/preminula-je-elizabeta-ii-kraljica-je-okon%C4%8Dala-slu%C5%BEbu/a-59653393|access-date=2022-09-09|website=dw.com}}&amp;lt;/ref&amp;gt; Bio je [[Vojvoda od Cornwalla]] i [[Vojvoda od Rothesayja|Vojvoda od Rothesaya]] od [[1952.]] do [[2022.]], te je od [[2011.]] nosio titulu najstarijeg [[prijestolonasljednik|prijestolonasljednika]] u britanskoj povijesti.&amp;lt;ref&amp;gt;{{Citiranje novina|datum=2011-04-20|naslov=Prince Charles becomes longest-serving heir apparent|language=en-GB|work=BBC News|url=https://www.bbc.com/news/uk-13133587|access-date=2022-09-01|website=bbc.co.uk}}&amp;lt;/ref&amp;gt; On je [[Princ od Walesa]] s najdužim stažem, a taj je naslov držao od srpnja [[1958.]] do rujna [[2022.]]&amp;lt;ref&amp;gt;{{Citiranje novina|date=2017-09-09|title=Prince Charles is longest-serving Prince of Wales|language=en-GB|work=BBC News|url=https://www.bbc.com/news/uk-wales-41179772|access-date=2022-09-01}}&amp;lt;/ref&amp;gt; Nakon očeve smrti [[9. travnja]] [[2021.]], Charles je naslijedio i titulu Vojvode od Edinburgha.&amp;lt;ref&amp;gt;{{Citiranje weba|naslov=HRH The Duke of Edinburgh - College of Arms|url=https://www.college-of-arms.gov.uk/news-grants/news/item/187-hrh-the-duke-of-edinburgh|access-date=2022-09-01|website=college-of-arms.gov.uk|language=en-gb}}&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Službeno je okrunjen [[6. svibnja]] [[2023.]]&lt;br /&gt;
&lt;br /&gt;
Charles je rođen u [[Buckinghamska palača|Buckinghamskoj palači]], kao prvo dijete svoje majke i [[Filip, vojvoda od Edinburgha|Filipa, vojvode od Edinburgha]]; bio je prvi unuk kralja [[Đuro VI., kralj Ujedinjenog Kraljevstva|Đure VI]]. Školovao se u školama Cheam i Gordonstoun, koje je njegov otac pohađao kao dijete. Kasnije je proveo godinu dana u kampusu Gimnazije Geelong u [[Victoria (Australija)|Victoriji]], [[Australija]]. Nakon što je stekao diplomu na [[Sveučilište u Cambridgeu|Sveučilištu u Cambridgeu]], Charles je služio u Kraljevskom zrakoplovstvu i Kraljevskoj mornarici od [[1971.]] do [[1976.]] Godine [[1981.]] oženio se s [[Diana, princeza od Walesa|Dianom Spencer]], s kojom je dobio dvojicu sinova, [[Princ William, vojvoda od Cambridgea|princa Williama]] i [[Harry, vojvoda od Sussexa|princa Harryja]]. Godine [[1996.]] par se razveo nakon što su se oboje upustili u izvanbračne afere. Diana je sljedeće godine umrla u [[prometna nesreća|prometnoj nesreći]] u [[Pariz|Parizu]]. Godine [[2005.]] Charles se oženio svojom dugogodišnjom partnericom [[Camilla, vojvotkinja Cornwalla|Camillom Parker Bowles]].&lt;br /&gt;
&lt;br /&gt;
Kao Princ od Walesa Charles je preuzeo službene dužnosti u ime Elizabete II. Osnovao je dobrotvornu udrugu za mlade Prince&#039;s Trust [[1976.]] godine i pokrovitelj je, predsjednik ili član više od 400 drugih dobrotvornih udruga i organizacija. Zalagao se za očuvanje povijesnih građevina i važnosti arhitekture u društvu. Kritičar modernističke arhitekture, Charles je radio na stvaranju [[Poundbury|Poundburyja]], eksperimentalnog novog grada temeljenog na njegovom arhitektonskom ukusu.&amp;lt;ref&amp;gt;{{Citiranje novina|datum=2013-11-01|naslov=How the Poundbury project became a model for innovation|work=Financial Times|url=https://www.ft.com/content/94e6c310-3c8f-11e3-a8c4-00144feab7de|access-date=2022-09-09}}&amp;lt;/ref&amp;gt; Također je autor ili suautor niza knjiga.&lt;br /&gt;
&lt;br /&gt;
Kao upravitelj imanja Vojvodstva Cornwall podržavao je [[Ekološka poljoprivreda|ekološku poljoprivredu]] i sprječavanje [[Klimatske promjene|klimatskih promjena]], što mu je donijelo nagrade i priznanja brojnih ekoloških skupina.&amp;lt;ref&amp;gt;{{Citiranje weba|naslov=Prince Charles to receive environmental award in NYC|url=http://usatoday30.usatoday.com/news/nation/2007-01-28-prince-charles_x.htm|access-date=2022-09-09|website=usatoday30.usatoday.com}}&amp;lt;/ref&amp;gt; Također je istaknuti kritičar usvajanja [[Genetički modificirani organizmi|genetički modificirane hrane]].&amp;lt;ref&amp;gt;{{Citiranje novina|datum=2017-03-22|naslov=Princess Anne backs GM crops and livestock – unlike Prince Charles|url=http://www.theguardian.com/environment/2017/mar/22/princess-anne-backs-gm-crops-livestock-unlike-prince-charles|access-date=2022-09-09|work=The Guardian|language=en}}&amp;lt;/ref&amp;gt; Charlesova podrška [[Alternativna medicina|alternativnoj medicini]], uključujući [[Homeopatija|homeopatiju]], bila je predmet kritika.&amp;lt;ref&amp;gt;{{Citiranje novina|datum=2013-07-20|naslov=He&#039;s at it again: Prince Charles accused of lobbying Health Secretary|url=https://www.independent.co.uk/life-style/health-and-families/health-news/he-s-at-it-again-prince-charles-accused-of-lobbying-health-secretary-over-homeopathy-8723145.html|access-date=2022-09-09|work=The Independent|language=en}}&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Djetinjstvo ==&lt;br /&gt;
Rođen je u [[Buckinghamska palača|Buckinghamskoj palači]] u Londonu, za vrijeme vladavine njegova djeda po majci [[Đuro VI., kralj Ujedinjenog Kraljevstva|Đure VI]]. Dana [[15. prosinca]] [[1948.|1948]]. u Buckinghamskoj palači krstio ga je Geoffrey Fisher, tada kanterberijski [[nadbiskup]]. Među njegovim kumovima su bili njegovi djed i pradjed, [[Đuro VI., kralj Ujedinjenog Kraljevstva|Đuro VI.]] i [[Mary od Tecka|kraljica Mary]], te tetka [[kraljevna Margareta, grofica od Snowdowna|Margareta]] i [[Haakon VII. Norveški]]. &lt;br /&gt;
&lt;br /&gt;
Kako je Charles bio sin kćeri kralja Đura VI., u trenutku rođenja nije bio kraljević. Kralj Đuro VI. nije imao sinova, te je, kako bi djeci svoje najstarije kćeri i presumirane nasljednice omogućio pravo na titule kraljevića i oslovljavanje s &#039;&#039;Vaša kraljevska visosti&#039;&#039;, izdao kraljevski patent [[22. listopada]] [[1948.]] godine. Isti patent nije omogućio prinčevsku titulu i oslovljavanje djeci kraljeve mlađe kćeri, kraljevne Margarete.&lt;br /&gt;
&lt;br /&gt;
== Mladost ==&lt;br /&gt;
&lt;br /&gt;
[[Datoteka:Prince Charles arrives at Andrews Air Force Base in the United States, 1981.jpg|mini|desno|250px|Princ Charles u zračnoj luci u [[Sjedinjene Američke Države|Sjedinjenim Američkim Državama]] 1981. godine]]&lt;br /&gt;
&lt;br /&gt;
Godine [[1952.]] umro je kralj Đuro VI. i krunu je naslijedila Charlesova majka, što ga je odmah učinilo vojvodom Cornwalla i vojvodom Rothesaya. Prisustvovao je majčinoj krunidbi [[1953.]] godine u [[Westminsterska opatija|Westminsterskoj opatiji]], sjedeći pored svoje bake, [[Elizabeth Bowes-Lyon]].&lt;br /&gt;
&lt;br /&gt;
Kao i ostala kraljevska djeca, za odgoj i obrazovanje princa Charlesa bila je zadužena guvernanta. Godine [[1955.]] kraljica Elizabeta II. je prekinula tradiciju objavivši da će njen sin pohađati javnu školu, a ne imati privatne tutore. Svoje obrazovanje završio je u privatnom internatu na sjeveru [[Škotska|Škotske]]. Za razliku od prethodnih britanskih prijestolonasljednika, princ Charles nije pohađao vojnu školu.&lt;br /&gt;
&lt;br /&gt;
Titulu princa Walesa dobio je [[26. srpnja]] [[1958.]] godine, a formalna investitura održana je tek [[1. srpnja]] [[1969.]] godine u [[Wales]]u. &lt;br /&gt;
&lt;br /&gt;
Ranih [[1980-ih]] princ Charles je izrazio želju da postane generalni guverner [[Australija|Australije]], ali australski ministri se nisu složili i ideja je odbačena.&lt;br /&gt;
&lt;br /&gt;
== Vladavina ==&lt;br /&gt;
Charles je postao kraljem [[8. rujna]] [[2022.]] poslje smrti njegove majke kraljice [[Elizabeta II.]]&lt;br /&gt;
&lt;br /&gt;
== Brakovi ==&lt;br /&gt;
&lt;br /&gt;
Princ Charles se ženio dva puta; prvi put [[1981.]] godine, i drugi put [[2005.]] godine.&lt;br /&gt;
&lt;br /&gt;
=== Brak s Dianom Spencer ===&lt;br /&gt;
&lt;br /&gt;
[[Datoteka:Reagan with Charles and Diana C31901-3.jpg|mini|250px|lijevo|Princ i princeza Walesa kod predsjednika [[Ronald Reagan|Ronalda Reagana]] i njegove supruge [[Nancy Reagan|Nancy]]]]&lt;br /&gt;
Princ Charles upoznao je [[Diana Spencer|Dianu Spencer]] [[1977.]] godine, a njihova romansa započela je u ljeto [[1980.]] godine. Diana je odmah postala meta paparazza. Princ ju je zaprosio u veljači [[1981.]] godine, nakon što je dobio neophodno majčino odobrenje, i ona je pristala.&lt;br /&gt;
&lt;br /&gt;
Vjenčanje je održano [[29. srpnja]] [[1981.]] godine, pred 3500 gostiju i 750 000 000 gledatelja širom svijeta. Prisutni su bili svi europski monarshi, osim kralja [[Juan Carlos I.|Juana Carlosa]], koji je odlučio neprisustvovati vjenčanju zbog razmirica s Ujedinjenim Kraljevstvom oko teritorija na [[Gibraltar]]u. Prisustvovali su i europski predsjednici, s izuzetkom grčkog predsjednika (koji je odbio doći jer je zbačeni grčki kralj, [[Konstantin II., grčki kralj|Konstantin II.]], prinčev osobni prijatelj i rođak s očeve strane, u pozivnici nazvan &#039;&#039;kraljem Grka&#039;&#039;) i irskoga predsjednika (koji je odbio doći zbog razmirica s Ujedinjenim Kraljevstvom po pitanju [[Sjeverna Irska|Sjeverne Irske]]).&lt;br /&gt;
&lt;br /&gt;
Iz [[brak]]a su rođena dva sina, [[William, vojvoda od Cambridgea|princ William]] i [[Harry, princ Walesa|princ Henry]].&lt;br /&gt;
&lt;br /&gt;
Brak je ubrzo postao problematičan. Za njegov raspad Charlesovi prijatelji okrivljavali su Dianu i nazivali je mentalno nestabilnom, dok su mediji uglavnom kao krivca predstavljali Charlesa. Charles je ponovo ušao u vezu sa svojom bivšom djevojkom, [[Camilla, vojvotkinja Cornwalla|Camillom Parker-Bowles]]. Brak Charlesa i Diane se počeo raspadati pet godina nakon vjenčanja.&lt;br /&gt;
&lt;br /&gt;
U prosincu [[1992.]] godine u parlementu je objavljen formalan rastanak para. Njihov brak je formalno završio razvodom [[28. kolovoza]] [[1996.]] godine. Godinu dana kasnije, dana [[31. kolovoza]] [[1997.]] godine, bivša princeza Walesa je poginula u prometnoj nesreći.&lt;br /&gt;
&lt;br /&gt;
=== Brak s Camillom Parker-Bowles ===&lt;br /&gt;
&lt;br /&gt;
[[Datoteka:George W. Bush and the Prince of Wales with spouses.jpg|mini|250px|lijevo|Princ Charles i vojvotkinja Cornwalla kod predsjednika [[George W. Bush|Georgea Busha]] i njegove supruge [[Laura Bush|Laure]]]]&lt;br /&gt;
Brak s Charlesovom bivšom djevojkom i ljubavnicom za vrijeme braka s Dianom je bio kontroverzno pitanje; oboje su bili razvedeni, ali problem je predstavljao Camillin razvod zato što je njen bivši suprug bio živ. Naime, [[Engleska Crkva]], čiji poglavar Charles treba postati u budućnosti, nije priznavala razvod, te je u njenim očima Camilla bila još uvijek u braku sa svojim prvim mužem. S druge strane, onaj tko nije priznavao Charlesov razvod nakon Dianine smrti vidio ga je kao udovca.&lt;br /&gt;
&lt;br /&gt;
Dana [[10. veljače]] [[2005.]] godine objavljeno je da će kraljević Walesa oženiti Camillu Parker-Bowles [[8. travnja]] iste godine u dvorcu Windsor, te da će ceremonija biti građanskog tipa. Lokacija je kasnije promijenjena, iz bojazni da bi dvorac Windsor zbog civilnog vjenčanja princa Walesa mogao biti otvoren ostalim građanima za vjenčanja, te je izabran Guidhall. Dana [[4. travnja]] vjenčanje je odgođeno za [[9. travnja]] kako bi princ Walesa imao vremena prisustvovati sahrani [[Ivan Pavao II.|pape Ivana Pavla II.]]&lt;br /&gt;
&lt;br /&gt;
Po njihovom vjenčanju objavljeno je da Camilla, iako joj je to zakonski omogućeno, ne će koristiti titulu princeze od Walesa, pošto se ta titula još uvijek vezala uz ime Charlesove prve supruge. Isto tako je objavljeno da Camilla neće koristiti titulu kraljice kada Charles postane kralj, već da će biti oslovljavana kao princeza-pratilja. Međutim, ako parlament ne izda poseban zakon koji određuje njen status, ona će zakonski biti kraljica.&lt;br /&gt;
&lt;br /&gt;
== Izvori ==&lt;br /&gt;
{{Izvori}}&lt;br /&gt;
&lt;br /&gt;
{{Redoslijed|&lt;br /&gt;
|prethodnik = [[Elizabeta II.]]&lt;br /&gt;
|gl_članak_funkcija = [[Popis engleskih i britanskih vladara|Kralj Ujedinjenog Kraljevstva]]&lt;br /&gt;
|nasljednik = &lt;br /&gt;
}}&lt;br /&gt;
{{Engleski vladari}} &lt;br /&gt;
{{Britanski vladari}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorija:Britanski kraljevi]]&lt;br /&gt;
[[Kategorija:Windsori]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=Karlo_III.,_kralj_Ujedinjenog_Kraljevstva&amp;diff=787359</id>
		<title>Karlo III., kralj Ujedinjenog Kraljevstva</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=Karlo_III.,_kralj_Ujedinjenog_Kraljevstva&amp;diff=787359"/>
		<updated>2026-06-29T08:06:51Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Stvorena nova stranica sa sadržajem: »{{Infookvir monarh | ime                  = Karlo III.&amp;lt;br /&amp;gt;Charles III.&amp;lt;!----pogledaj izvore i stranicu za razgovor---&amp;gt; | slika                = 200px | opis                 = 2. studenoga 2021. | titula               = Kralj Ujedinjenog Kraljevstva | vladavina            = 8. rujna 2022. – &amp;#039;&amp;#039;danas&amp;#039;&amp;#039; | krunidba             = 6. svib...«.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infookvir monarh&lt;br /&gt;
| ime                  = Karlo III.&amp;lt;br /&amp;gt;Charles III.&amp;lt;!----pogledaj izvore i stranicu za razgovor---&amp;gt;&lt;br /&gt;
| slika                = [[Datoteka:Charles, Prince of Wales in 2021 (cropped) (3).jpg|200px]]&lt;br /&gt;
| opis                 = 2. studenoga 2021.&lt;br /&gt;
| titula               = [[Popis engleskih i britanskih vladara|Kralj Ujedinjenog Kraljevstva]]&lt;br /&gt;
| vladavina            = [[8. rujna]] [[2022.]] – &#039;&#039;danas&#039;&#039;&lt;br /&gt;
| krunidba             = [[6. svibnja]] [[2023.]], [[London]]&lt;br /&gt;
| prethodnik           = [[Elizabeta II.]]&lt;br /&gt;
| nasljednik           = [[Princ William, princ od Walesa]]&lt;br /&gt;
| regent               =&lt;br /&gt;
| titula1              =&lt;br /&gt;
| vladavina1           = &lt;br /&gt;
| krunidba1            = &lt;br /&gt;
| prethodnik1          = &lt;br /&gt;
| nasljednik1          =&lt;br /&gt;
| regent1              =&lt;br /&gt;
| titula2              =&lt;br /&gt;
| vladavina2           = &lt;br /&gt;
| krunidba2            = &lt;br /&gt;
| prethodnik2          = &lt;br /&gt;
| nasljednik2          =&lt;br /&gt;
| regent2              =&lt;br /&gt;
| titula3              =&lt;br /&gt;
| vladavina3           = &lt;br /&gt;
| krunidba3            = &lt;br /&gt;
| prethodnik3          = &lt;br /&gt;
| nasljednik3          =&lt;br /&gt;
| regent3              =&lt;br /&gt;
| nasljeđe             = -&lt;br /&gt;
| supruga              = [[Diana, princeza od Walesa]] &amp;lt;br&amp;gt; [[Camilla, kraljica supruga Ujedinjenog Kraljevstva]]&lt;br /&gt;
| suprug               = &lt;br /&gt;
| supruzi              = &lt;br /&gt;
| djeca                = [[Princ William, princ od Walesa|Princ William, princ od Walesa]]&amp;lt;br&amp;gt;[[Harry, vojvoda od Sussexa]]&lt;br /&gt;
| puno ime             = Charles Philip Arthur George&lt;br /&gt;
| postumno ime        = &lt;br /&gt;
| dinastija            = [[Dinastija Windsor|Windsor]] &amp;lt;small&amp;gt;(službeno)&amp;lt;/small&amp;gt;&amp;lt;br/&amp;gt;[[Schleswig-Holstein-Sonderburg-Glücksburg|Glücksburg]] &amp;lt;small&amp;gt;(stvarno)&amp;lt;/small&amp;gt;&lt;br /&gt;
| vladarska himna      =&lt;br /&gt;
| otac                 = [[Filip, vojvoda od Edinburgha|princ Filip, vojvoda od Edinburgha]]&lt;br /&gt;
| majka                = [[Elizabeta II.]]&lt;br /&gt;
| datum rođenja        = [[14. studenoga]] [[1948.]]&lt;br /&gt;
| mjesto rođenja       = [[London]]&lt;br /&gt;
| datum smrti          =&lt;br /&gt;
| mjesto smrti         =&lt;br /&gt;
| datum pokopa         =&lt;br /&gt;
| mjesto pokopa        =&lt;br /&gt;
| potpis               =&lt;br /&gt;
| zanimanje            =&lt;br /&gt;
| vjera                = [[Anglikanska Crkva|anglikanac]]&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;Karlo III.&#039;&#039;&#039;&amp;lt;!----pogledaj izvore i stranicu za razgovor---&amp;gt;&amp;lt;ref&amp;gt;[https://www.enciklopedija.hr/clanak/71836 Karlo III.], [[Hrvatska enciklopedija (LZMK)|Hrvatska enciklopedija]], pristupljeno 8. siječnja 2025.&amp;lt;/ref&amp;gt;&amp;lt;!---Ovaj članak je nedavno nastao.----&amp;gt;&amp;lt;ref&amp;gt;{{Citiranje enciklopedije|naslov=Windsor |url=https://enciklopedija.hr/clanak/66220 |enciklopedija=Hrvatska enciklopedija |izdavač=Leksikografski zavod Miroslav Krleža |access-date=10. rujna 2022.}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;[[HINA]], [https://www.glasistre.hr/svijet/novi-britanski-kralj-zvat-ce-se-karlo-iii-817118 Novi britanski kralj zvat će se Karlo III.], &#039;&#039;[[Glas Istre]]&#039;&#039;, objavljeno 8. kolovoza 2022., pristupljeno 10. rujna 2022.&amp;lt;/ref&amp;gt; ili &#039;&#039;&#039;Charles III.&#039;&#039;&#039;&amp;lt;ref&amp;gt;{{cite web|url=https://www.vecernji.hr/vijesti/kako-se-pise-ime-novog-kralja-charles-iii-ili-karlo-iii-1615955|title=Kako se piše ime novog kralja, Charles III. ili Karlo III.? Institut za hrvatski jezik objavio svoju preporuku|newspaper=[[Večernji list]]|accessdate=10. rujna 2022.|date=9. rujna 2022.}}&amp;lt;/ref&amp;gt; ([[engleski jezik|eng.]] &#039;&#039;Charles III&#039;&#039;),  rodnog imena &#039;&#039;&#039;Charles Philip Arthur George&#039;&#039;&#039; ([[London]], [[14. studenog|14. studenoga]] [[1948.]]&amp;lt;ref&amp;gt;{{Citiranje enciklopedije|naslov=Charles|enciklopedija= Proleksis enciklopedija|url=https://proleksis.lzmk.hr/52810/|access-date=2022-09-09|izdavač=Leksikografski zavod Miroslav Krleža}}&amp;lt;/ref&amp;gt;), [[Popis engleskih i britanskih vladara|kralj je Ujedinjenog Kraljevstva]] i 14 drugih zemalja [[Commonwealth (zajednica država)|Commonwealtha]]. Postao je kralj 8. rujna 2022., smrću kraljice (svoje majke) [[Elizabeta II.|Elizabete II.]]&amp;lt;ref&amp;gt;{{Citiranje weba|izdavač=Deutsche Welle|naslove=Preminula je Elizabeta II: Kraljica je okončala službu {{!}} DW {{!}} 08.09.2022|url=https://www.dw.com/bs/preminula-je-elizabeta-ii-kraljica-je-okon%C4%8Dala-slu%C5%BEbu/a-59653393|access-date=2022-09-09|website=dw.com}}&amp;lt;/ref&amp;gt; Bio je [[Vojvoda od Cornwalla]] i [[Vojvoda od Rothesayja|Vojvoda od Rothesaya]] od [[1952.]] do [[2022.]], te je od [[2011.]] nosio titulu najstarijeg [[prijestolonasljednik|prijestolonasljednika]] u britanskoj povijesti.&amp;lt;ref&amp;gt;{{Citiranje novina|datum=2011-04-20|naslov=Prince Charles becomes longest-serving heir apparent|language=en-GB|work=BBC News|url=https://www.bbc.com/news/uk-13133587|access-date=2022-09-01|website=bbc.co.uk}}&amp;lt;/ref&amp;gt; On je [[Princ od Walesa]] s najdužim stažem, a taj je naslov držao od srpnja [[1958.]] do rujna [[2022.]]&amp;lt;ref&amp;gt;{{Citiranje novina|date=2017-09-09|title=Prince Charles is longest-serving Prince of Wales|language=en-GB|work=BBC News|url=https://www.bbc.com/news/uk-wales-41179772|access-date=2022-09-01}}&amp;lt;/ref&amp;gt; Nakon očeve smrti [[9. travnja]] [[2021.]], Charles je naslijedio i titulu Vojvode od Edinburgha.&amp;lt;ref&amp;gt;{{Citiranje weba|naslov=HRH The Duke of Edinburgh - College of Arms|url=https://www.college-of-arms.gov.uk/news-grants/news/item/187-hrh-the-duke-of-edinburgh|access-date=2022-09-01|website=college-of-arms.gov.uk|language=en-gb}}&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Službeno je okrunjen [[6. svibnja]] [[2023.]]&lt;br /&gt;
&lt;br /&gt;
Charles je rođen u [[Buckinghamska palača|Buckinghamskoj palači]], kao prvo dijete svoje majke i [[Filip, vojvoda od Edinburgha|Filipa, vojvode od Edinburgha]]; bio je prvi unuk kralja [[Đuro VI., kralj Ujedinjenog Kraljevstva|Đure VI]]. Školovao se u školama Cheam i Gordonstoun, koje je njegov otac pohađao kao dijete. Kasnije je proveo godinu dana u kampusu Gimnazije Geelong u [[Victoria (Australija)|Victoriji]], [[Australija]]. Nakon što je stekao diplomu na [[Sveučilište u Cambridgeu|Sveučilištu u Cambridgeu]], Charles je služio u Kraljevskom zrakoplovstvu i Kraljevskoj mornarici od [[1971.]] do [[1976.]] Godine [[1981.]] oženio se s [[Diana, princeza od Walesa|Dianom Spencer]], s kojom je dobio dvojicu sinova, [[Princ William, vojvoda od Cambridgea|princa Williama]] i [[Harry, vojvoda od Sussexa|princa Harryja]]. Godine [[1996.]] par se razveo nakon što su se oboje upustili u izvanbračne afere. Diana je sljedeće godine umrla u [[prometna nesreća|prometnoj nesreći]] u [[Pariz|Parizu]]. Godine [[2005.]] Charles se oženio svojom dugogodišnjom partnericom [[Camilla, vojvotkinja Cornwalla|Camillom Parker Bowles]].&lt;br /&gt;
&lt;br /&gt;
Kao Princ od Walesa Charles je preuzeo službene dužnosti u ime Elizabete II. Osnovao je dobrotvornu udrugu za mlade Prince&#039;s Trust [[1976.]] godine i pokrovitelj je, predsjednik ili član više od 400 drugih dobrotvornih udruga i organizacija. Zalagao se za očuvanje povijesnih građevina i važnosti arhitekture u društvu. Kritičar modernističke arhitekture, Charles je radio na stvaranju [[Poundbury|Poundburyja]], eksperimentalnog novog grada temeljenog na njegovom arhitektonskom ukusu.&amp;lt;ref&amp;gt;{{Citiranje novina|datum=2013-11-01|naslov=How the Poundbury project became a model for innovation|work=Financial Times|url=https://www.ft.com/content/94e6c310-3c8f-11e3-a8c4-00144feab7de|access-date=2022-09-09}}&amp;lt;/ref&amp;gt; Također je autor ili suautor niza knjiga.&lt;br /&gt;
&lt;br /&gt;
Kao upravitelj imanja Vojvodstva Cornwall podržavao je [[Ekološka poljoprivreda|ekološku poljoprivredu]] i sprječavanje [[Klimatske promjene|klimatskih promjena]], što mu je donijelo nagrade i priznanja brojnih ekoloških skupina.&amp;lt;ref&amp;gt;{{Citiranje weba|naslov=Prince Charles to receive environmental award in NYC|url=http://usatoday30.usatoday.com/news/nation/2007-01-28-prince-charles_x.htm|access-date=2022-09-09|website=usatoday30.usatoday.com}}&amp;lt;/ref&amp;gt; Također je istaknuti kritičar usvajanja [[Genetički modificirani organizmi|genetički modificirane hrane]].&amp;lt;ref&amp;gt;{{Citiranje novina|datum=2017-03-22|naslov=Princess Anne backs GM crops and livestock – unlike Prince Charles|url=http://www.theguardian.com/environment/2017/mar/22/princess-anne-backs-gm-crops-livestock-unlike-prince-charles|access-date=2022-09-09|work=The Guardian|language=en}}&amp;lt;/ref&amp;gt; Charlesova podrška [[Alternativna medicina|alternativnoj medicini]], uključujući [[Homeopatija|homeopatiju]], bila je predmet kritika.&amp;lt;ref&amp;gt;{{Citiranje novina|datum=2013-07-20|naslov=He&#039;s at it again: Prince Charles accused of lobbying Health Secretary|url=https://www.independent.co.uk/life-style/health-and-families/health-news/he-s-at-it-again-prince-charles-accused-of-lobbying-health-secretary-over-homeopathy-8723145.html|access-date=2022-09-09|work=The Independent|language=en}}&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Djetinjstvo ==&lt;br /&gt;
Rođen je u [[Buckinghamska palača|Buckinghamskoj palači]] u Londonu, za vrijeme vladavine njegova djeda po majci [[Đuro VI., kralj Ujedinjenog Kraljevstva|Đure VI]]. Dana [[15. prosinca]] [[1948.|1948]]. u Buckinghamskoj palači krstio ga je Geoffrey Fisher, tada kanterberijski [[nadbiskup]]. Među njegovim kumovima su bili njegovi djed i pradjed, [[Đuro VI., kralj Ujedinjenog Kraljevstva|Đuro VI.]] i [[Mary od Tecka|kraljica Mary]], te tetka [[kraljevna Margareta, grofica od Snowdowna|Margareta]] i [[Haakon VII. Norveški]]. &lt;br /&gt;
&lt;br /&gt;
Kako je Charles bio sin kćeri kralja Đura VI., u trenutku rođenja nije bio kraljević. Kralj Đuro VI. nije imao sinova, te je, kako bi djeci svoje najstarije kćeri i presumirane nasljednice omogućio pravo na titule kraljevića i oslovljavanje s &#039;&#039;Vaša kraljevska visosti&#039;&#039;, izdao kraljevski patent [[22. listopada]] [[1948.]] godine. Isti patent nije omogućio prinčevsku titulu i oslovljavanje djeci kraljeve mlađe kćeri, kraljevne Margarete.&lt;br /&gt;
&lt;br /&gt;
== Mladost ==&lt;br /&gt;
&lt;br /&gt;
[[Datoteka:Prince Charles arrives at Andrews Air Force Base in the United States, 1981.jpg|mini|desno|250px|Princ Charles u zračnoj luci u [[Sjedinjene Američke Države|Sjedinjenim Američkim Državama]] 1981. godine]]&lt;br /&gt;
&lt;br /&gt;
Godine [[1952.]] umro je kralj Đuro VI. i krunu je naslijedila Charlesova majka, što ga je odmah učinilo vojvodom Cornwalla i vojvodom Rothesaya. Prisustvovao je majčinoj krunidbi [[1953.]] godine u [[Westminsterska opatija|Westminsterskoj opatiji]], sjedeći pored svoje bake, [[Elizabeth Bowes-Lyon]].&lt;br /&gt;
&lt;br /&gt;
Kao i ostala kraljevska djeca, za odgoj i obrazovanje princa Charlesa bila je zadužena guvernanta. Godine [[1955.]] kraljica Elizabeta II. je prekinula tradiciju objavivši da će njen sin pohađati javnu školu, a ne imati privatne tutore. Svoje obrazovanje završio je u privatnom internatu na sjeveru [[Škotska|Škotske]]. Za razliku od prethodnih britanskih prijestolonasljednika, princ Charles nije pohađao vojnu školu.&lt;br /&gt;
&lt;br /&gt;
Titulu princa Walesa dobio je [[26. srpnja]] [[1958.]] godine, a formalna investitura održana je tek [[1. srpnja]] [[1969.]] godine u [[Wales]]u. &lt;br /&gt;
&lt;br /&gt;
Ranih [[1980-ih]] princ Charles je izrazio želju da postane generalni guverner [[Australija|Australije]], ali australski ministri se nisu složili i ideja je odbačena.&lt;br /&gt;
&lt;br /&gt;
== Vladavina ==&lt;br /&gt;
Charles je postao kraljem [[8. rujna]] [[2022.]] kada je umrla njegova majka [[Elizabeta II.]]&lt;br /&gt;
&lt;br /&gt;
== Brakovi ==&lt;br /&gt;
&lt;br /&gt;
Princ Charles se ženio dva puta; prvi put [[1981.]] godine, i drugi put [[2005.]] godine.&lt;br /&gt;
&lt;br /&gt;
=== Brak s Dianom Spencer ===&lt;br /&gt;
&lt;br /&gt;
[[Datoteka:Reagan with Charles and Diana C31901-3.jpg|mini|250px|lijevo|Princ i princeza Walesa kod predsjednika [[Ronald Reagan|Ronalda Reagana]] i njegove supruge [[Nancy Reagan|Nancy]]]]&lt;br /&gt;
Princ Charles upoznao je [[Diana Spencer|Dianu Spencer]] [[1977.]] godine, a njihova romansa započela je u ljeto [[1980.]] godine. Diana je odmah postala meta paparazza. Princ ju je zaprosio u veljači [[1981.]] godine, nakon što je dobio neophodno majčino odobrenje, i ona je pristala.&lt;br /&gt;
&lt;br /&gt;
Vjenčanje je održano [[29. srpnja]] [[1981.]] godine, pred 3500 gostiju i 750 000 000 gledatelja širom svijeta. Prisutni su bili svi europski monarshi, osim kralja [[Juan Carlos I.|Juana Carlosa]], koji je odlučio neprisustvovati vjenčanju zbog razmirica s Ujedinjenim Kraljevstvom oko teritorija na [[Gibraltar]]u. Prisustvovali su i europski predsjednici, s izuzetkom grčkog predsjednika (koji je odbio doći jer je zbačeni grčki kralj, [[Konstantin II., grčki kralj|Konstantin II.]], prinčev osobni prijatelj i rođak s očeve strane, u pozivnici nazvan &#039;&#039;kraljem Grka&#039;&#039;) i irskoga predsjednika (koji je odbio doći zbog razmirica s Ujedinjenim Kraljevstvom po pitanju [[Sjeverna Irska|Sjeverne Irske]]).&lt;br /&gt;
&lt;br /&gt;
Iz [[brak]]a su rođena dva sina, [[William, vojvoda od Cambridgea|princ William]] i [[Harry, princ Walesa|princ Henry]].&lt;br /&gt;
&lt;br /&gt;
Brak je ubrzo postao problematičan. Za njegov raspad Charlesovi prijatelji okrivljavali su Dianu i nazivali je mentalno nestabilnom, dok su mediji uglavnom kao krivca predstavljali Charlesa. Charles je ponovo ušao u vezu sa svojom bivšom djevojkom, [[Camilla, vojvotkinja Cornwalla|Camillom Parker-Bowles]]. Brak Charlesa i Diane se počeo raspadati pet godina nakon vjenčanja.&lt;br /&gt;
&lt;br /&gt;
U prosincu [[1992.]] godine u parlementu je objavljen formalan rastanak para. Njihov brak je formalno završio razvodom [[28. kolovoza]] [[1996.]] godine. Godinu dana kasnije, dana [[31. kolovoza]] [[1997.]] godine, bivša princeza Walesa je poginula u prometnoj nesreći.&lt;br /&gt;
&lt;br /&gt;
=== Brak s Camillom Parker-Bowles ===&lt;br /&gt;
&lt;br /&gt;
[[Datoteka:George W. Bush and the Prince of Wales with spouses.jpg|mini|250px|lijevo|Princ Charles i vojvotkinja Cornwalla kod predsjednika [[George W. Bush|Georgea Busha]] i njegove supruge [[Laura Bush|Laure]]]]&lt;br /&gt;
Brak s Charlesovom bivšom djevojkom i ljubavnicom za vrijeme braka s Dianom je bio kontroverzno pitanje; oboje su bili razvedeni, ali problem je predstavljao Camillin razvod zato što je njen bivši suprug bio živ. Naime, [[Engleska Crkva]], čiji poglavar Charles treba postati u budućnosti, nije priznavala razvod, te je u njenim očima Camilla bila još uvijek u braku sa svojim prvim mužem. S druge strane, onaj tko nije priznavao Charlesov razvod nakon Dianine smrti vidio ga je kao udovca.&lt;br /&gt;
&lt;br /&gt;
Dana [[10. veljače]] [[2005.]] godine objavljeno je da će kraljević Walesa oženiti Camillu Parker-Bowles [[8. travnja]] iste godine u dvorcu Windsor, te da će ceremonija biti građanskog tipa. Lokacija je kasnije promijenjena, iz bojazni da bi dvorac Windsor zbog civilnog vjenčanja princa Walesa mogao biti otvoren ostalim građanima za vjenčanja, te je izabran Guidhall. Dana [[4. travnja]] vjenčanje je odgođeno za [[9. travnja]] kako bi princ Walesa imao vremena prisustvovati sahrani [[Ivan Pavao II.|pape Ivana Pavla II.]]&lt;br /&gt;
&lt;br /&gt;
Po njihovom vjenčanju objavljeno je da Camilla, iako joj je to zakonski omogućeno, ne će koristiti titulu princeze od Walesa, pošto se ta titula još uvijek vezala uz ime Charlesove prve supruge. Isto tako je objavljeno da Camilla neće koristiti titulu kraljice kada Charles postane kralj, već da će biti oslovljavana kao princeza-pratilja. Međutim, ako parlament ne izda poseban zakon koji određuje njen status, ona će zakonski biti kraljica.&lt;br /&gt;
&lt;br /&gt;
== Izvori ==&lt;br /&gt;
{{Izvori}}&lt;br /&gt;
&lt;br /&gt;
{{Redoslijed|&lt;br /&gt;
|prethodnik = [[Elizabeta II.]]&lt;br /&gt;
|gl_članak_funkcija = [[Popis engleskih i britanskih vladara|Kralj Ujedinjenog Kraljevstva]]&lt;br /&gt;
|nasljednik = &lt;br /&gt;
}}&lt;br /&gt;
{{Engleski vladari}} &lt;br /&gt;
{{Britanski vladari}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorija:Britanski kraljevi]]&lt;br /&gt;
[[Kategorija:Windsori]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://enciklopedija.cc/index.php?title=Karlo_III.&amp;diff=787358</id>
		<title>Karlo III.</title>
		<link rel="alternate" type="text/html" href="https://enciklopedija.cc/index.php?title=Karlo_III.&amp;diff=787358"/>
		<updated>2026-06-29T08:06:10Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Karlo III.&#039;&#039;&#039; može biti:&lt;br /&gt;
&lt;br /&gt;
* [[Karlo III., kralj Francuske]]&lt;br /&gt;
* [[Karlo III., car Svetog Rimskog Carstva]]&lt;br /&gt;
* [[Karlo III., kralj Ugarske i Hrvatske|Karlo III. kralj Ugarske, Hrvatske i Napulja]]&lt;br /&gt;
* [[Karlo III., kralj Navarre]]&lt;br /&gt;
* [[Karlo VI., car Svetog Rimskog Carstva|Karlo III. kralj Aragona i Kastilje]]&lt;br /&gt;
* [[Karlo III., kralj Španjolske]]&lt;br /&gt;
* [[Karlo III., princ Monaka]]&lt;br /&gt;
* [[Karlo Valois|Karlo III., grof Valoisa i car Latinskog Carstva]]&lt;br /&gt;
* [[Karlo III., kralj Ujedinjenog Kraljevstva]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{razdvojba}}&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
</feed>