# Orao 2026 v0.20 · izbornici, datum i sat

Gornji izbornici zauzimaju 376 umjesto 488 piksela. Tekst ima 8 px unutarnjeg odmaka, uz tanke razdjelnike. Crtanje, odabir i padajući izbornici koriste iste granice. Desno je lokalni datum i 24-satno vrijeme u obliku DD.MM.YYYY. HH:MM. Uklonjena donja statusna linija ostaje uklonjena.

C0 formatira binarni RTC i objavljuje tekst kroz zaštićeni prikazni protokol; C3 crta sve znakove. Host samo uzorkuje lokalni sat uređaja. Za prikaz minute nije potrebno iscrtavanje svake sekunde: promjena minute/datuma označava samo gornje desno područje za osvježavanje. Pauzirani emulator prikazuje posljednji dovršeni kadar; pri nastavku dobiva aktualno vrijeme.

RTC je nova rekonstrukcijska komponenta ovog fiktivnog računala, ne povijesno potvrđen Orao sklop. C0-only read-only registri C065E0–E9: čitanje E0 latcha dword reviziju E0–E3 i minute/sate/dan/mjesec/godinu low/high u E4–E9. C0 tekst je na 300120. Izvorni Orao32 ROM i CPU semantika ostaju neizmijenjeni. Node/CLI testovi imaju deterministički početni RTC 01.01.2000. 00:00; stvarne aplikacije odmah uzorkuju lokalni sat.

[Provjere](verification.json) pokrivaju granice svih izbornika, stvarni Edge, ponoć, prijestupni datum, RTC latch, izostanak ponovnog iscrtavanja iste minute, Rust testove te prikaz i miš. Prethodna [mjerenja kursora](benchmark.json) pripadaju v0.19; za ovu promjenu nije izmišljeno novo mjerenje brzine. Lokalni razvoj, bez ZIP-a ili udaljene objave. Publikacijska osnovica ostaje v0.16.0.

## Prethodni razvoj

# Orao 2026 v0.19 · kursor i čista radna ploha

Unutarnja statusna linija pri dnu Orlova zaslona uklonjena je iz C3 prikazne liste; oslobođeni redovi pripadaju pozadini radne plohe u obje teme. Vanjske kontrole emulatora i MHz u prozorima Orla32 ostaju dostupni.

C3 crta isti softverski kursor, uz izvorni save-under i rezanje na rubovima zaslona. Videoport se podešava na početku retka i kad nakon preskočenih jednakih piksela započne novi niz promjena. Promijenjeni pikseli prolaze CPU VRAM upis i postojeći auto-increment port. Nema host kursora ni host crtanja Orlova GUI-ja. Broj firmware instrukcija/ciklusa namjerno je smanjen; CPU semantika i izvorni Orao32 ROM ostaju neizmijenjeni.

Web raspoređuje kratak kooperativni CPU posao nakon ulaza, prije idućeg animacijskog callbacka. Taj posao ulazi u postojeći vremenski budžet; pauza ga sprječava. Klikovi i otpuštanja ostaju ulazne barijere. Rust v0.1.11 dodatno spaja uzastopne pomake prije ulaska u radni red, bez spajanja preko klikova, tipkovnice, modifikatora ili gubitka fokusa. Native zadržava povlačenje obrisa.

[Mjerena promjena](benchmark.json) odnosi se na ulaz do dovršenog CPU kadra i ne predstavlja FPS ni potpuno mjerenje OS/monitorske latencije. [Provjere](verification.json) obuhvaćaju rubove, preklapanje kursora, redoslijed gumba, prikaz, izvorni BASIC i stvarni Edge/Win32.

Lokalni razvoj; nije pripremljen ZIP niti izvršena udaljena objava. Publikacijska osnovica ostaje v0.16.0. Prethodne inačice ostaju byte-identične.

## Prethodni razvoj

# Orao 2026 v0.18 · deset prolaza optimizacije

1. **Raspoređivanje jezgri:** JS pamti odabranu jezgru do roka druge jezgre ili timera. Eksperimentalni raspoređivači u Rustu i Wasmu odbačeni su nakon mjerenja.
2. **Instrukcije Orla32:** JS grupira NMOS instrukcije do sljedećeg roka i jednim prolazom određuje jezgru i rok. Izvorni Rust i Wasm raspoređivači zadržani su.
3. **C3 memorija:** Kraći pristup zaštićenom C3 međuspremniku, uz istu zaštitu i brojače.
4. **Status prikaza:** Postojeći read-only busy registar čita se kraćim putem; Wasm zrcalo vrijedi do sljedeće JS barijere.
5. **Procesi i IPC:** Zajednički JS sloj smanjuje callbackove i privremene nizove pri traženju procesa i GUI pozivima.
6. **Dovršeni kadrovi:** Web ponovno koristi međuspremnik i kopira označeni raspon tek na dovršenom CPU kadru; promjena geometrije kopira cijelu sliku.
7. **Neizmijenjeni pikseli:** Jednak host piksel ne zapisuje se ponovno; emulirani videoport i brojači ostaju. Sigurni C3 portovi ne prekidaju grupu događaja.
8. **Zvuk:** Utišani web izlaz prazni red bez kopije, a stereo PCM pretvara se jednim prolazom. Rust pokus nije prihvaćen.
9. **Diskovi:** Zajednički JS kontroler pamti najraniji mogući dovršetak; PIO bajtovi, prekidi, reset i rokovi zadržavaju ponašanje.
10. **CPU i česta čitanja:** JS binarni ADC/SBC grupira zastavice, uz izvorni decimalni put. JS/Wasm najčešća čitanja ranije dekodiraju. Ručno preuređeni Wasm ALU i sve Rust inačice odbačeni su.

Deset prolaza ispitano je na Rust, JS i Wasm pogonima. Prihvaćene promjene su u JS v0.18 i Wasm v0.11. Sve sporije Rust inačice odbačene su: aktivni native ostaje izvorni v0.1.9, bez novog native paketa. Wasm zadržava izvorni raspoređivač i ALU. Izvorni ROM, firmware, raspored virtualnih ciklusa i izvorno ponašanje razmaka redaka ostaju sačuvani. CPU nastavlja čitati, pisati i kopirati svaki emulirani bajt. Host prenosi dovršene slike i zvuk.

Provjere pokrivaju editor/pisač/IPC, dva radna procesa, GUI klijent, oba originalna Orla32, BOS/VDOS/monitor, tipkovnicu/miš, prikaz i zvuk. Svaki prolaz uspoređuje registre, cikluse i pune kontrolne zbrojeve memorije/slike/uređaja sa svojom prethodnom verzijom. [Mjerenja](benchmark.json) sadrže konačne medijane triju izmjeničnih pokretanja; [provjere](verification.json) bilježe testove. Apsolutna Rust i web vremena ne uspoređuju se jer koriste vlastite neizmijenjene firmware inačice.

Lokalni razvoj, bez ZIP-a i udaljene objave. Publikacijska osnovica ostaje v0.16.0; ranije verzije i svi izvornici ostaju sačuvani. Web oznaka 1 MHz unutar slike ostaje nominalna, a native MHz ostaje izmjeren prema stvarnom vremenu.

## Prethodni razvoj

# Orao 2026 v0.17 · tri prolaza optimizacije

1. Dohvat instrukcija i podataka iz ROM-a i privatnog RAM-a ide kraćim putem kroz isti dekoder.
2. Privatni upisi provjeravaju samo premještanje procesa i postojeću zaštitu ROM preklopa.
3. C3 videoportovi izbjegavaju nepovezane uređaje; Wasm čita bajt slike gosta iz zajedničke memorije bez zasebnog povratka u JS. Wasm više ne kopira registre usnulih ili zaustavljenih nativnih jezgri pri svakoj sinkronizaciji; metapodaci raspoređivanja ostaju aktualni, a buđenje vraća puni prijenos stanja. Ciklus sabirnice i dalje se izvršava, s istim redoslijedom i brojačima. Rust dodatno zadržava samo četiri polja događaja umjesto kopije 40 registara.

Neizmijenjeni firmware i izvorni Orao32 ROM daju iste registre, memoriju, sliku i broj emuliranih ciklusa na kontrolnim točkama. Izvorno ponašanje razmaka redaka ostaje sačuvano, prema odluci korisnika; ova optimizacija ga ne normalizira. Pauzirani gosti zadržavaju čitljivu sliku. Skaliranje, stabilni scroll, zvuk i mjerenje stvarno izvršenih ciklusa ostaju sačuvani.

Mjerenje koristi iste scenarije prije i poslije: boot, pomicanje miša, povlačenje prozora te jedan i dva gosta. Konačni `benchmark.json` sadrži medijane tri uzastopna izmjenična mjerenja; to su mjerenja izvršnog pogona, bez browser/GDI prikaza, host audio uređaja i vremenskog ograničavanja.

Lokalni razvoj, bez novog publikacijskog ZIP-a i udaljene objave. Prethodne verzije i publikacijska osnovica v0.16.0 ostaju sačuvane.

## Prethodni razvoj

# Orao 2026 v0.16 · kontinuirani BASIC scroll

Provjeren je stvarni program `10 PRINT RND(3),` / `20 RUN` pokrenut naredbom `RUN` u neizmijenjenom izvornom ROM-u. Rezervni način prihvata žive slike više ne propušta nepotpuno pomaknut redak ROM konzole. Brojač VRAM upisa koristi donji 31 bit za serijski broj, a gornji bit označava upis iz izvornih ROM rutina za tekst (E300–E4D8, PC nakon dohvata naredbe). C3 pri promijenjenom brojaču provjerava oba kraja kopiranja. Za ove upise zadržava prethodnu sliku i ponavlja pokušaj; kontinuirani izravni grafički upisi zadržavaju dosadašnje ograničeno osvježavanje.

Oznaka je samo metapodatak prikaza. Nema izmjena ROM-a, rezultata ni ciklusa NMOS naredbi, zaustavljanja gosta, host crtanja ili DMA. Kopiranje i rasterizaciju izvršava C3. Ostaje DPI svjestan jednak fizički razmak redaka.

Lokalni razvoj; nema ZIP-a ni udaljene objave. Prethodne inačice ostaju sačuvane.

## Prethodni razvoj v0.15

# Orao 2026 v0.15 · jednak razmak tekstnih redaka

Proizvoljno skaliranje moglo je pretvoriti pravilan izvorni razmak od osam redaka piksela u naizmjeničnih, primjerice, sedam i osam fizičkih piksela. Prikaz sada bira mjerilo koje svakoj takvoj ćeliji daje cijeli broj fizičkih piksela. Pritom ostaju mali slobodni rubovi. Skala se ponovno računa pri promjeni veličine, punom zaslonu i DPI-ja.

Browser čuva izvornu veličinu canvas rastera te skalira cijeli prikaz jednim transformom, uz spremnik odgovarajuće veličine za pomicanje slike. Time izbjegava dodatno zaokruživanje veličine samog rastera. Koordinate miša i dodira koriste stvarni vizualni pravokutnik slike.

CPU, originalni ROM, firmware, nativni raspored redaka i Wasm izvršni kod ostaju byte-identični v0.14 / Wasm v0.7. Ne umeću se novi retci niti se mijenja ispis programa. Dosadašnje provjere cjelovitosti scrolla ostaju na snazi. Ovo je popravak prikaznog mjerila. Rust v0.1.7 dodatno preuzima DPI promjene po monitoru kako Windows ne bi ponovno skalirao cijeli prozor.

Lokalni razvoj; nema publikacijskog ZIP-a ni udaljene objave. Ranije verzije ostaju sačuvane.

## Prethodni razvoj v0.14

# Orao 2026 v0.14 · stabilniji i brži scroll

C0 spaja osvježavanja i prije skupog prijenosa čeka kratki predah u video upisima gosta. C3 CPU kopira izvor u odvojeni radni spremnik te uspoređuje serijski broj video upisa prije i poslije kopiranja. Broje se i upisi istih bajtova, pa scroll kroz prazne stupce ne može proći kao stabilan izvor. Odbačena kopija ponovno označava prikaz za osvježavanje. C3 zatim crta samo promijenjene retke, preskače prekrivene slojeve i koristi brži proširivač osam piksela. Samostalne video transakcije upisuju promijenjene četvorke piksela; opća kompozicija zadržava precizno označavanje promjena.

Kopiranje, tekst, pokazivač i prikaz i dalje izvršava emulirani CPU. Izvorni Orao32 ROM, instrukcije, broj ciklusa i zvuk nisu promijenjeni; nema pauziranja gosta ili DMA. Dodano je samo praćenje video upisa u emulatoru. Eksperimentalni sistemski portovi C065D0/D4 daju serijske brojeve uz odvojene C0/C3 bajtne zasune; C3 preko D8 traži ponavljanje. To nisu povijesni Orao32 registri i nisu mapirani gostu.

Program koji bez predaha piše po cijelom ekranu ne smije trajno zalediti prikaz. Nakon 250 ms neprekidno opaženih upisa dopuštena je jedna živa CPU kopija, zatim se opet traži stabilan izvor. Takva kopija ostaje nepromjenjiva tijekom crtanja, ali nije jamstvo dovršenog semantičkog kadra proizvoljnog programa. Regresije izvornog ROM-a i pomicanja s razmacima prolaze bez tog iznimnog puta i bez razlomljenih znakova.

Lokalni razvoj; nema publikacijskog ZIP-a ili udaljene objave. Ranije verzije ostaju sačuvane.

## Prethodni razvoj

# Orao 2026 v0.13 · cjelovita slika Orla 32

C3 kopira označenih 8 KiB video memorije gosta u svoju privatnu radnu memoriju prije rasterizacije. Svi redci jednog prikazanog kadra koriste isti radni međuspremnik. C0 prenosi nepromjenjivu oznaku osvježavanja gosta i oštećenje cijelog područja njegova prikaza. C3 iz jednog izvornog bajta proširuje osam piksela, uz zadržanu obradu odrezanih rubova.

Sve kopiranje i crtanje izvršava emulirani CPU. Nema host crtanja, DMA, pauziranja gosta ni izmjena izvornog ROM-a ili NMOS procesora. Ovo je interni prikazni međuspremnik, bez spremanja/učitavanja stanja emulatora. Kretanje pokazivača zadržava postojeći brzi put.

Lokalni razvoj; nije pripremljen ZIP niti udaljena objava. Ranije verzije ostaju netaknute.

## Zadržane upute iz v0.12

# Orao 2026 v0.12 · Odzivniji pokazivač

Lokalni razvoj, 21. listopada 2026. Nije pripremljen novi ZIP niti provedena udaljena objava.

C3 čuva pozadinu ispod softverskog pokazivača u vlastitoj privatnoj memoriji. Pomak obnavlja staru pozadinu, sprema novu i crta isti pokazivač kroz nativni CPU i postojeće video priključke. Obradi se najviše 45 starih i 45 novih piksela, neovisno o udaljenosti pomaka. Nema host pokazivača ni host crtanja GUI-ja.

Običan pomak više ne čisti dvije maske od po 3072 bajta i ne prolazi popisom objekata. Promjena prozora, teksta ili slike ponovno crta oštećeno područje bez pokazivača; tek nakon dovršetka C3 sprema novu pozadinu i dodaje pokazivač. Nepromijenjeni redci bez oštećenih pločica preskaču i pripremu popisa objekata. Klikovi, povlačenje, promjena veličine i FIFO zadržavaju izvorni redoslijed.

CPU, raspoređivač, sabirnica i uređaji zadržavaju postojeća pravila. Promijenjen je nativni GUI firmware, pa su broj izvršenih naredbi i proteklo virtualno vrijeme manji; usporedba s v0.11 traži jednake dovršene piksele i funkcionalno stanje. JS/Wasm v0.12 međusobno se provjeravaju i po taktovima, registrima i memoriji.

[Pokreni](index.html) · [Mjerenja](benchmark.json) · [Provjere](verification.json) · [Wasm v0.5](../../prototypes/wasm-v05/index.html?engine=wasm) · [Ranija v0.11](../orao-2026-v0.11/index.html).

Gradnja: `node firmware/build.cjs`. Nativni kursor: `firmware/cursor-save-under.cjs`. Privatni C3 međuspremnik: 018000–01804F, metapodaci 0220–0243; za ostale jezgre nije dijeljeni GUI resurs. Puna sukladnost fizičkom W65C832 nije dokazana.

## Rad s plohom

Nakon POST-a pričekajte prvi dovršeni prikaz. Klik odabire prozor. Naslov se povlači, donji desni kut mijenja veličinu, lijevi narančasti gumb zatvara prozor, a desni gumb spušta ga iza ostalih. Ikone i izbornik Prozori ponovno otvaraju alate. Tab mijenja fokus. F10 otvara izbornik; strelice biraju izbornik i stavku, Enter izvršava, Escape zatvara.

Bilješke su jednostavan sistemski zapisnik: unos na kraju teksta, Enter, Backspace i automatsko praćenje završnih redaka. Ctrl+S ili Spremi RAM čuva radnu kopiju do reseta. Ctrl+P otvara točan RAM pregled ispisa. Uredi nudi novi zapis i povrat RAM kopije. Ovo još nisu datotečni editor i spooler: nema spremanja bilježaka na medij niti slanja ovog pregleda fizičkom pisaču. Postojeći nativni editor/pisač i IPC primjer ostaju u razvojnim kontrolama.

Radni disk zasad otvara sistemske alate. Ne prikazuje izmišljene datoteke ili zauzeće diska. Stvarni katalog, učitavanje/spremanje i HDD volumeni koriste postojeći VDOS ispod zaslona. Disketa ostaje 140 KiB, HDD 20 MiB sa 146 privremenih volumena. Izvezite IMG prije zatvaranja stranice; nema automatske trajne pohrane.

Ikone Orao32 C1/C2 rezerviraju odgovarajuću jezgru prema postojećim kernel pravilima. Prozori prikazuju stvarni izvorni ROM i VRAM; klik odabire tipkovnicu. Zatvaranje prozora zaustavlja tu instancu i oslobađa jezgru. Ako je jezgra zauzeta vezanim nativnim procesom, oslobodite je u kontrolama procesa. GUI radi i s obje jezgre rezervirane. Uključi zvuk aktivira WebAudio.

F12 ili GUI / tekst vraća tekstualni prikaz 640 × 480 za VDOS i monitor. C3 prvo očisti cijeli tekstualni framebuffer. F12 vraća plohu i njezine RAM podatke. Gubitak fokusa otpušta tipke i hvatanje miša. Na uskom zaslonu ploha zadržava razlučivost i može se vodoravno pomicati unutar okvira.

## Arhitektura i osvježavanje

Osam sistemskih i osam aplikacijskih mjesta za prozore, jedan prozor i osam naredbi crtanja po običnom procesu. GUI je sistemski softver, bez korisničkog prioriteta ili zasebne aplikacijske jezgre. C0 provjerava vlasništvo i objavljuje nepromjenjive poruke; C3 iz vlastitog zaštićenog stanja sastavlja scenu i konačan raspon retka u privatnoj RAM. Pokazivač obrađuje zaseban nativni save-under postupak. Zaštićena maska ima 64 × 48 pločica veličine 16 × 16. Izbornici i završni redci bilježaka označavaju ograničene promjene; Orao32 prijavljuje promijenjene retke VRAM-a. C3 predodabire naredbe za skup od 16 redaka i koristi 32-bitne CPU upise za jednobojne raspone.

Preglednik predaje dovršenu C3 sliku; nema vidljivih međuslojeva. Kopiranje završne slike služi samo prikazu, ne crtanju ili upravljanju prozorima. Prvi prikaz i pomaci cijelih prozora još su zahtjevni u softverskoj emulaciji. Nema GPU-a, blittera, AV DMA-a ni multithreadinga.

Emulirani korisnički kod ne može mijenjati stanje GUI-ja, RAM bilježaka, objavljenu scenu, ulazne događaje ili video priključke. Klijent crta samo vlastiti sadržaj; naslov dobiva stvarni PID. Izvorni monitor i postojeće provjere ovlasti ostaju dostupni. Stvarne CPU pogreške imaju pouzdanu sistemsku obavijest s PID-om; običan ispis ostaje u zasebnim zapisima. Zaštita vrijedi za emulirani kod; razvojni JavaScript API i alati preglednika ostaju pouzdani.

[Pokazivač i osvježavanje v0.12](docs/gui-v0.12.md) · [BOS GUI ABI](docs/gui-v0.8.md) · [Monitor i pogreške](docs/monitor-v0.7.md) · [BOS loader](docs/bos-loader-v0.6.md) · [Provjere](verification.json).

Granice: novi izvorno nacrtani bitmap font Orao UI 16 (8 × 16, ASCII i hrvatska slova), osnovni miš bez kotačića, zapisnik s unosom na kraju do 840 bajtova i jedna RAM kopija/pregled. Nema punog datotečnog upravitelja, trajnog GUI spremanja, cjelovitog tekst editora, korisničkih bitmap površina ili cjelovite Unicode/IME podrške. VDOS=IDOS ostaje projektna pretpostavka. Puna W65C832 ciklusna sukladnost nije dokazana.


## Prikaz i puni zaslon

Gumb **Puni zaslon** nalazi se iznad slike emulatora. U punom zaslonu ostaju dostupni gumb za izlaz i izbor povećanja; Escape vraća stranicu. Zadano povećanje je 100 % s jednim slikovnim pikselom po CSS pikselu. Na užem prozoru koristite pomicanje ili izaberite Prilagodi zaslonu. Puni zaslon odmah bira prilagodbu; povratak vraća ranije povećanje. Opcija 200 % daje točno dvostruke piksele. Omjer slike ostaje očuvan i pri promjeni GUI/tekst (F12). Hrvatska slova crta C3 iz ROM-a. Bilješke imaju 13 vidljivih redaka s razmakom od 20 piksela.