PEL + Apple II+ — pokusni ROM v0.7
Apple II+ programe sada učitavaš izravno u PEL načinu rada. Emulator automatski odabire Apple kompatibilnu memorijsku i I/O kartu, uz isti procesor i osnovni RAM. Stvarni Apple II+ firmware dio je ukupnog kombiniranog ROM-a od 32 KiB. Izvorni PEL ROM nije pronađen: raspored banaka, dekoder i prilagodba prikaza jasno su označene rekonstrukcijske pretpostavke.
Učitavanje programa
Na početnoj stranici odaberi Orao 64 · Memorijska karta · v0.7. U PEL panelu klikni Učitaj Apple program ili povuci datoteku na zaslon. .dsk i .do predstavljaju DOS redoslijed sektora, .po ProDOS redoslijed slike; ovaj format ne jamči da sadržaj diskete može raditi na Apple II+. Disk II u slotu 6 pokreće stvarni kod s diskete. Nije potrebno ručno prebaciti na odvojenu Apple referencu niti uključiti kompatibilnost prije učitavanja.
Apple DOS .bin s četiri početna bajta adrese i duljine učitava se na navedenu adresu i tamo pokreće; duljina mora odgovarati ostatku datoteke. Sirovi .bin bez tog zaglavlja nema pouzdano zapisanu početnu adresu i UI ga odbija. Dodaj pravilno DOS zaglavlje ili programatski pozovi loadBinary uz format apple-II+, address i entry. BASIC datoteka spremljena kao tekst nije strojni .bin. Automatski odabir temelji se na odabranom Apple učitavanju i formatu, a ne nepogrešivom prepoznavanju proizvoljnih bajtova.
Klikni zaslon za tipkovnicu. Pauza zaustavlja CPU. Kolor kartica za Apple program mijenja prikaz između 640×200 mono i 640×400 u boji bez ponovnog pokretanja programa. Reset vraća pokusni PEL monitor i njegov BASIC. Sklopka Apple II+ kompatibilnost dopušta i ručni odabir; promjena osobnosti ponovno inicijalizira stroj. Odvojena Apple II+ referenca ostaje dostupna za usporedbu.
Provjera ROM poziva
Gumb Provjeri Apple ROM pozive učitava vlastiti 6502 program. On stvarnim JSR pozivima koristi SETKBD, SETVID, INIT, SETNORM, SETTXT, HOME, COUT, WAIT i RDKEY iz Apple dijela ROM-a. Na upit TIPKA: pritisni tipku; program je pročita i ispiše pa iscrta lores točku. Browser ne zamjenjuje ove rutine vlastitim tumačem. Gumb Pokreni probnu Apple igru učitava dodatni vlastiti program za tipkovnicu i grafiku.
Kako stane u 32 KiB
Fizički bajtovi $0000–$3FFF čuvaju prilagođeni Orao32 BASIC i monitor. $4000–$4FFF sadrže kompaktne nativne rutine; njihov font i monitor dijele već pohranjene bajtove. $5000–$7FFF sadrže stvarnih 12 KiB Apple II+ Applesoft/Autostart ROM-a. nativeMap vraća izvornu logičku nativnu banku, a Apple osobnost mapira posljednjih 12 KiB na $D000–$FFFF. Dvije EPROM slike po 16 KiB daju istu ukupnu sliku. Ova ušteda ne tvrdi da je PEL primijenio takvo ožičenje.
Apple programi pristupaju standardnim adresama tipkovnice, zvučnika, videa, Disk II i language-card preklopnicima. Osnovnih 48 KiB RAM-a dijeli se s PEL strojem. Model proširenja od 64/256 KiB zadržan je; Apple programi koriste standardnu language-card mapu, a dodatne PEL banke nemaju izmišljeni standardni Apple protokol. Apple logički prikaz ostaje 280×192, odnosno 40×24 znakova; prikazuje se unutar većeg PEL rastera. Veći raster ne pretvara program u nativni 80×25 ili povećava njegovu logičku razlučivost. Izvorne Apple boje preslikavaju se na osam pokusnih RGB boja PEL prikaza. Paleta i preslikavanje na PEL kolor površinu ostaju pokusni.
Nativni PEL monitor i hrvatski znakovi
HELP, BASIC/BC, MON, MEM, VIDEO, CLS, CHARSET i DOS ostaju nativne naredbe. BASIC koristi stvarni Eagle BASIC Orla32; pri MEM SIZE potvrdi Enter. Gumb BASIC pošalje i tu potvrdu. Numerirani program pokreće RUN, LIST ga ispisuje, EXIT vraća SM. Primjer PRINT 2+3*4 daje 14. BANK, READ, WRITE, DUMP i GO primaju heksadecimalne adrese; COLOR 0..7 i COLORS koriste pokusnu paletu. Nativni tekst ima 80×25 znakova i bitmap 640×200/640×400.
Bitmapovi ČĆĐŠŽ/čćđšž potječu iz originalnog Orlova ROM-a. Njihov identitet u PEL-u ostaje pretpostavka. Pri Apple izvršavanju zadržava se standardni Apple generator znakova radi kompatibilnosti; Apple program dobiva vlastite uobičajene kodove i prikaz. Hrvatski nativni font vraća se s PEL monitorom. Opcija YUASCII bira preslikavanje hrvatskih tipki; ne potvrđuje izvorni PEL raspored.
Sabotage
Korisnikovo sjećanje da je Impuls pokretao Sabotage sačuvano je kao svjedočenje. Verzija v0.7 provjerava igru Marka Allena iz 1981. izravno unutar PEL varijante: automatski Disk II boot, izvorni početni zaslon, odgovor N na pitanje o upravljivim projektilima, D/F pomicanje topa i Space paljba. Stanje topa, projektila i hires bitmapa provjerava se u 6502 memoriji, uz oba prikaza. Testna komercijalna disketa nije dio web-sadržaja; učitaj vlastitu sliku.
Izvorni izdavačev On-Line Letter, lipanj 1981., str.16 navodi 48K Apple II/II Plus s disketom. Analiza originalnog programa pokazuje izravne pristupe Apple hardveru. Zato ROM pozivi sami nisu dovoljni: integrirani sklop uključuje i sabirnicu, video i periferije.
Granice i ponovljivost
Cilj je obični Apple II+ s Disk II. Provjereni programi i sistemske rutine ne dokazuju kompatibilnost sa svakim programom, zaštitom disketa ili dodatnom karticom. Apple IIe/IIc proširenja nisu cilj ovog profila. Izvorni PEL BOS/SM, BASIC, VDOS i registri HD6845 nisu obnovljeni; memorijska karta slijedi prihvaćeni izvor, a detalji dekodera ostaju pokusni. Stare Orlove grafičke i kasetne rutine još nisu prilagođene PEL-u. Binarna slika namijenjena je ovom emulatoru.
Sastav i Apple pozivi · ROM podrijetlo · Potvrđeni nalazi · Provjere · Datoteke i SHA-256. node firmware/build.cjs obnavlja identični kombinirani ROM; node firmware/build-apple-call-test.cjs obnavlja strojni test. native/build.cjs i engine/build.cjs grade jezgru uz pinani esbuild i sačuvane izvore. Povijesni ROM-ovi imaju zasebno podrijetlo od MIT licencije novog integracijskog koda.
Video, zvuk i paddles u v0.7
Apple CPU i standardna memorijska mapa ostaju isti. Apple dekoder čita stvarni tekst/lores/hires framebuffer. Pokusni video adapter pretvara njegov prikaz u bajtove PEL videomemorije: tri ravnine po 32768 bajtova, red od 80 bajtova, MSB lijevo. Završni renderer čita samo ove ravnine, jednako kao za nativni ROM. Apple prikaz zauzima središnjih 560 piksela unutar 640; obrub je 40 piksela sa svake strane. Mono slika ima 192 reda unutar 200, kolor slika 384 reda unutar 400. Mono koristi prvu ravninu; boja kvantizira RGB na tri bita. Neizmijenjena slika ne prepisuje videomemoriju. Fizički raspored, konverzija, paleta i vremenska svojstva adaptera ostaju hipoteza.
U panelu Zvuk i paddles uključi Zvuk klikom dok radi Apple program. Reprodukciju stvara stvarni C030 kod. Isključivanje i pauza prekidaju već zakazane buffere. Pri brzom ručnom izvršavanju testova broj zakazanih buffera ograničen je radi sprječavanja zvučnog zaostatka; emulacija i generiranje uzoraka nastavljaju se. Reset nativnog stroja vraća monitor i utišava zvuk. Browser može zahtijevati novi klik za audio. Nativni pokusni zvučnik v0.7 opisan je u odjeljku Orao demo.
Četiri klizača određuju položaj PDL0–PDL3 (0–100%). Miš/dodir bira par 0+1 ili 2+3; X upravlja prvom, Y drugom osi. Za dodir povuci po ploči; strelice na fokusiranoj ploči mijenjaju položaj. PB0–PB2 drži mišem/dodirom ili tipkama Space/Enter na fokusiranom gumbu. Otpuštanje, gubitak fokusa i pauza otpuštaju PB tipke. Vrati paddles u sredinu daje 50% za sve osi. Položaj se prenosi u stvarna Apple I/O očitanja i timere; originalni PEL priključci i njihovo vrijeme nisu potvrđeni.
Prošireni program na stvarnom 6502 uspoređuje integrirani PEL i zasebnu Apple referencu: tipkovnički latch/strobe, tri PB tipke, četiri paddle timera, banke jezične kartice, zaštitu ROM-a i nastanak PCM uzoraka. Tekst, lores, hires i miješani prikaz testirani su na obje stranice u mono/kolor načinu; uspoređuju se svi pikseli i video ravnine. Odvojena UI provjera uključuje stvarni WebAudio, miš, dodir, gubitak fokusa i lokalni file:// rad. CPU test provjerava 40000 kombinacija valjanih dvocifrenih BCD operanada za ADC/SBC i osnovne IRQ/NMI/RTI slučajeve; ne tvrdi pokrivenost svih nevaljanih BCD flagova ili izvornog PEL ožičenja prekida.
Prema korisnikovoj odluci spremanje i vraćanje stanja nisu dodani. Ranije varijante i izvorni razvojni zapisi ostaju u svojim mapama. Nova v0.7 je lokalna dopuna; pripremljena objava i release osnovica ostaju v0.3.0.
Model adaptera · Razvoj v0.7 · Provjere.
Izvorni Orao32 monitor u v0.7
Na glavnoj stranici odaberi Orao 64 · Memorijska karta · v0.7. Naredba A 1000 radi iz početnog PEL sistemskog monitora, a MON otvara izvorni Orao32 monitor s oznakom *. Programski parser, miniasembler i disasembler dolaze iz očuvanog ROM-a Orla32. Izvršava ih isti NMOS 6502; preglednik šalje znakove i modelira hardver.
U prethodnoj v0.5 početni SM dispatcher poznavao je samo novi popis naredbi. Dodatne zakrpe FFA3, FFA6 i FFB8 prepisivale su izvorni monitorski command loop. v0.7 vraća cijeli FFA3–FFE5 byte-identično originalu. Most za neblokirajuću tipkovnicu premješten je u originalnu ROM ispunu E6E0, a povratak u SM na FF00. Čuva originalne tablice naredbi, miniasembler, disasembler i memorijske rutine. Izvorni input frontend i echo rade preko prilagođenog čitača tipkovnice; ispis prolazi kroz nativni PEL firmware i njegove video ravnine. Demo sada za izlaz koristi FF00.
Primjer: pošalji A 1000, zatim u zasebnim redovima LDA #2A, STA 0500 i RTS. Q napušta miniasembler i vraća originalni monitor; njegov prikaz ? pri Q zadržava originalno ponašanje. X 1000 1005 ispisuje tri unesene instrukcije. U 1000 izvršava program i upisuje 2A u CPU RAM na 0500. M 0500 omogućuje pregled i izmjenu bajta; Q izlazi iz M. Sve adrese i brojevi su heksadecimalni, bez obaveznog prefiksa $. A1000 i A 1000 oba rade. Unosi velika slova.
Izvorne naredbe: A adresa je miniasembler; X početak kraj je disasembler; E početak kraj ispisuje memorijski blok; M adresa otvara interaktivnu izmjenu; C početak kraj računa sumu; F početak kraj bajt puni blok; U adresa izvršava strojni program; Q odredište početak kraj kopira blok. Q unutar A ili M služi izlasku. Originalni parser, granice blokova i pogreške zadržavaju njegova pravila. Monitor vidi aktivnu CPU memorijsku kartu; dodatne fizičke PEL banke ostaju dostupne sistemskim BANK/READ/WRITE naredbama, a adrese izvornog video i kazetnog hardvera nisu preslikane.
Vrati PEL sustav / SM šalje Q, zatim U FF00 kroz stvarni ROM ulaz; iz BASIC-a šalje EXIT. Taj gumb služi i kad je aktivan interaktivni A ili M. Ručno na promptu * koristi U FF00. PEL sistemske naredbe HELP, MEM, VIDEO, BANK, READ i WRITE pripadaju SM-u. Njihovi gumbi automatski vraćaju SM pa šalju naredbu. MON iz BASIC-a najprije izvršava EXIT pa otvara originalni monitor. BC i BW iz originalnog monitora ostaju hladni/topli BASIC ulazi; EXIT vraća PEL SM. Reset vraća početni nativni sustav.
Originalni zvučni bell nije preslikan: njegova stara adresa bila bi RAM u PEL modelu, pa je poziv utišan. Nativni demo i FE1D zvuk ostaju dostupni. Originalne kazetne, diskovne i grafičke rutine zahtijevaju zasebnu hardversku prilagodbu. Integracija Orao32 monitora nije potvrda da je povijesni PEL koristio isti monitor ili raspored rutina.
Izvor za sintaksu je priručnik Orla, poglavlje 3. Binarno polazište i SHA-256 su u firmware/provenance.json. Test uspoređuje byte-identične raspone izvornog monitora i na CPU-u provjerava A/X/U, E/M/C/F/Q, uređivanje, BC/EXIT, mono/64K i kolor/256K. Apple kompatibilnost i prethodni demo provjereni su odvojeno.
Orao demo i nativni zvuk u v0.7
Na početnoj stranici odaberi Orao 64 · Memorijska karta · v0.7. Klikni Pokreni grafiku i melodiju ispod zaslona. Program radi u nativnom Orao/PEL modu: pokretni dijamant, traka boja i ljestvica od osam tonova. Klik pokreće i zvuk; ako browser ne dopusti reprodukciju, uključi sklopku Zvuk. Demo je ugrađen lokalno u demo/orao-demo.js, pa je uvijek dostupan i preko file:// bez mrežnog preuzimanja. Dostupni su program, izvorni kod i podrijetlo.
Kolor kartica bira 640×200 mono ili 640×400 s osam RGB boja. Demo sam provjerava geometriju i ponovno crta prikaz; nema resetiranja CPU-a pri ovoj promjeni. Pauza zaustavlja procesor, sliku i zakazane zvučne buffere. Nastavi vraća izvršavanje. Sklopka Zvuk utišava reprodukciju, dok program nastavlja raditi. Escape na fokusiranom zaslonu izvršava povratak u stvarni monitor i utišava demo; Reset vraća nativni monitor. Demo možeš ponovno pokrenuti istim gumbom.
Nativni zvuk u v0.4 nije bio implementiran; WebAudio i zvučni prekidač bili su dostupni samo Apple osobnosti. Pokusni jednobitni izlaz na FE1D uveden je u v0.5 i zadržan u v0.7. Pisanje bita 0 određuje razinu 0 ili 1; čitanje vraća tu razinu. Stvarni CPU pristupi s brojem ciklusa stvaraju PCM uzorke, a WebAudio ih reproducira nakon korisničkog klika. Grafika, frekvencija i tempo dolaze iz 6502 programa, bez host animacije ili melodijskog sekvencera. Nominalni takt je 2 MHz; promjena takta mijenja tempo i visinu tona. Rad crtača između tonskih nizova stvara kratke razmake. Reprodukcija pri brzom ručnom izvršavanju ograničava red buffera kako ne bi stvarala zvučni zaostatak.
FE1D je projektirana adresa za ovu rekonstrukciju, a nije podatak iz dokumentacije ni pronađeni PEL registar. Izvorni PEL zvučni sklop i ROM ostaju nepoznati. Native paddles nisu uvedeni; dostupni su u Apple kompatibilnoj osobnosti. Apple C030 zvučnik i njegova memorijska karta ostaju odvojeni od nativnog priključka.
Program ima 1283 bajta i izvršava se u RAM-u od 1000; radne varijable su 0800–0812. Prije učitavanja stvarni ROM inicijalizira konzolu, pa program može pozvati nativnu rutinu C200 za znakove. Izravno koristi pokusne FE15/16/17/19 priključke triju PEL ravnina i FE1D zvučni izlaz. Preuzeta binarna datoteka je sirovi nativni program za ovu varijantu; nije Orao32 TAP ni Apple DOS binarna datoteka. Koristi ugrađeni gumb ili API Impuls9010.loadNativeDemo().
Provjereni su stvarni CPU, crtež svih osam boja, pozitivni i negativni PCM uzorci, zakazana WebAudio reprodukcija, mono/kolor promjena, pauza, utišavanje, Escape/Reset, ponovno pokretanje, lokalni file:// i dodir na mobilnom prikazu. Apple procesor za usporedbu miruje dok radi nativni demo. Provjere funkcionalnosti ne potvrđuju povijesno PEL ožičenje.
Spremanje stanja nije dodano. Prethodne varijante, transkripti, kasete i release osnovice sačuvani su. v0.7 je lokalna dopuna; posljednja pripremljena objava ostaje v0.3.0. Razvoj · Provjere.
Dokumentacija izdanja
Bilješke izdanja v0.7.0 opisuju lokalne promjene i provjere. Strojni zapis izdanja povezuje razvoj, izvore i manifest. Sve prethodne verzije i izvorni razvojni transkripti ostaju u svojim mapama.