# Orao 64 / Impuls 9010 v0.7: memorijska karta

Implementacija od 16. listopada 2026. slijedi [prihvaćenu Wikipedijinu kartu Orla 64](https://hr.wikipedia.org/w/index.php?title=Orao_64&oldid=6776552). Izvorni PEL ROM nije dostupan. Ovo je izvršiva rekonstrukcija; adrese uređaja i bankiranje ostaju pokusni.

| CPU raspon | Izvorna PEL osobnost v0.7 |
| --- | --- |
| `$0000–$00FF` | RAM nulte strane |
| `$0100–$01FF` | RAM hardverskog stoga 6502 |
| `$0200–$03FF` | Sistemski RAM za softverske vektore; zadržani Orao32 monitor koristi i svoje varijable te ulazni buffer `$0280` |
| `$0400–$07FF` | Korisnički RAM; rekonstrukcija rezervira `$0600–$069F` za nativnu konzolu i SM |
| `$0800–$7FFF` | Privremeno obični RAM; izvor ovaj raspon ne opisuje |
| `$8000–$BFFF` | Izravni 16 KiB prozor u fizičke video ravnine |
| `$C000–$FBFF` | ROM 1, uz pokusni odabir BASIC/monitor ili nativne banke |
| `$FC00–$FEFF` | I/O; nedodijeljene lokacije čitaju `$FF`, upisi se zanemaruju |
| `$FF00–$FFFF` | ROM sistemskog menadžera: ulaz `$FF00`, reset, monitorski dispatcher i procesorski vektori |

Oznake sistemskog i korisničkog RAM-a opisuju namjenu, ne posebne uređaje. Nije obnovljen izvorni PEL raspored pojedinačnih vektora. Zadržani Orao32 brojčani buffer koristi `$03FF–$0410`. Nativno radno područje premješteno je s `$0300` na `$0600`; BASIC program počinje na `$0800` i završava prije `$8000`. Inicijalizacija BASIC-a ne ispituje VRAM kao slobodnu programsku memoriju. Kapacitet fizičkog glavnog RAM-a ostaje 64/256 KiB; nije jednak veličini trenutačno vidljivog običnog RAM prozora.

## Video i proširenje

Tri postojeće ravnine imaju po 32768 bajtova. `$FE15` bira ravninu 0–2, a novi pokusni `$FE18`, bit 0, bira donju ili gornju polovicu ravnine. CPU adresa `$8000 + n` pristupa `ravnina[polovica * 16384 + n]`. To je rekonstrukcijsko rješenje za 16 KiB prozor, ne pronađeno PEL ožičenje. Stranica i ravnina vraćaju se na nulu pri resetu.

Izravni CPU prozor i zadržani port podataka `$FE19` pišu iste fizičke bajtove. Oba puta označavaju promijenjene retke za isti planarno izvedeni prikaz. Portni video pokazivač `$FE16/$FE17` ostaje neovisan o polovici CPU prozora. `$FE1A/$FE1B` i dalje daju pokusni kružni početak prikaza. Mono koristi prvih 16000 bajtova prve ravnine; kolor 32000 bajtova svake od triju ravnina, s istim eksperimentalnim RGB rasporedom.

Prošireni glavni RAM ostaje dostupan preko postojećih fizičkih portova `$FE20–$FE23` i naredbi `BANK/READ/WRITE`. Stari gornji RAM overlay je uklonjen: bit 0 `$FE14` više ne uključuje RAM preko ROM-a. Glavni RAM i VRAM nisu isti niz. Karta ne daje vjerodostojan povijesni protokol za dodatne banke.

## Premještanje firmwarea

Isti I/O dekoder vrijedi za čitanje instrukcija i podataka. U `$FC00–$FEFF` nema skrivenog ROM-a ni iznimke koja bi dopuštala izvršavanje po starim adresama.

Potrebni izvorni Orao32 bajtovi iz tog raspona logički su premješteni na `$E000–$E2FF`, preko njihovih već pohranjenih fizičkih bajtova `$3C00–$3EFF`. Eksplicitni popis u `firmware/relocate-template.cjs` prevezuje apsolutne instrukcijske operande i tablicu RTS odredišta BASIC proširenja, uključujući `EXIT`. Izvorni font ostaje fizički pohranjen na `$2000–$22FF`; nativni firmware ga čita na `$D800–$DAFF`. Ne mijenja se format Apple ROM-a.

Ulaz u SM sada je `$FF00`, iz originalnog monitora naredbom `U FF00`; UI i demo koriste isti ulaz. Tijelo SM-a na `$CA00` pripada ROM-u 1. Ne tvrdimo da cijeli sustav stane u zadnjih 256 bajtova. Izvorni monitorski command loop `$FFA3–$FFE5`, tablice, miniasembler i disasembler ostaju sačuvani. Stari Orao32 video, kaseta i disk nisu pretvoreni u PEL uređaje. Stara linijska grafička rutina je zaustavljena s RTS jer joj završetak zauzima novi SM ulaz; stari kružni raster također nije raspoloživ kao PEL API.

## Apple II+ i provjere

Apple program aktivira vlastitu Apple memorijsku i I/O kartu na istom CPU-u, uz istu pohranu osnovnog RAM-a. Appleovih `$8000–$BFFF` tada je RAM, a `$FC00–$FEFF` dio Apple ROM-a. Povratak ili reset ponovno uspostavlja novu PEL kartu. Apple raster i dalje prolazi kroz fizičke PEL video ravnine i zajednički renderer.

[Provjere](verification.json) obuhvaćaju granice raspona, cijeli video prozor, sve polovice/ravnine, piksele nastale stvarnim 6502 upisima, ROM zaštitu, I/O, BASIC, izvorni monitor, demo/zvuk i Apple kompatibilnost. Funkcionalni prolaz ne potvrđuje autentičnost nepoznatih registara i dekodera. Spremanje i vraćanje stanja nije dodano.

Ovo je lokalna razvojna verzija. Prethodni emulatori i službene objavne osnovice ostaju sačuvani; novi ZIP nije pripremljen.
