Keresés

Részletes keresés

siz Creative Commons License 2017.07.27 0 0 8315

Van a KERNAL-nak az IOINIT rutinja $ff84-nél. Ez egy jmp $f30b-t tartalmaz, ahol ez van:

 

df30b                                   
.f30b a9 0f     lda #0f                 
.f30d 85 00     sta  00                 
.f30f a9 08     lda #08                 
.f311 85 01     sta  01                 

Egyébként a reset rutin is így kezdődik:

dfff6                                   
.fff6 8d 3e ff  sta  ff3e               
.fff9 4c a4 f2  jmp  f2a4               
.f318 8e f3 fe  stx  fef3               
.f31b e8        inx                     
.f31c 8e f4 fe  stx  fef4               
                                        
dfff6                                   
.fff6 8d 3e ff  sta  ff3e               
.fff9 4c a4 f2  jmp  f2a4               
                                        
df2a4                                   
.f2a4 a2 ff     ldx #ff                 
.f2a6 78        sei                     
.f2a7 9a        txs                     
.f2a8 d8        cld                     
.f2a9 20 a6 cf  jsr  cfa6               
---------------------------             
.f2ac 20 0b f3  jsr  f30b               
---------------------------

 

Itt is a második JSR már oda hív be.

 

Előzmény: IEC-ATA (8314)
IEC-ATA Creative Commons License 2017.07.26 0 0 8314

Lehet az lesz a megoldás, hogy a P1-re "1"-et írok, ekkor a negáltja megjelenik a P6-on vagyis ott "0" lesz és akkor a CLK-ra kívülről adok "1"-et.

Egyébként az e feletti kódokat átírtam már a 6510-es procihoz és le is teszteltem. Általában, vagyis inkább mindig +3 ASL-el többet kell beírni, csakhogy ezekhez az átírásokhoz a kernel szabad helyein szubrutinokat kell írni, hogy meglegyen a megfelelő bit eltolás (P6-P7 helyett P3-P4), de ezek már mennek. Csak a fent ill. alant írt kód tesztelésénél akadtam el. Meg meg kellene keresnem az eredeti kernelben a $0000-cím hol állítódik be $0F-re, mert a 6510-es procinál $07 kell, így POKE-olni kell az elején! :-D

Előzmény: siz (8313)
siz Creative Commons License 2017.07.26 0 0 8313

Itt ugye arra készült a szerző, hogy te a gépen a  CLK-OUT-ot magas szintre állítod (ami ha jól emlékszem invertált, tehát a megfelelő bitet 0-ra), ez meg arra vár, hogy valamelyik soros buszos eszköz lehúzza azt 0-ra.

 

Az meg, hogy miért van meg több helyen? Passz. Lehet, hogy utána kezdtek el spórolni a hellyel vagy kritikus volt az időzítés vagy nem ugyanaz csinálta. Sose fogjuk megtudni.

Előzmény: IEC-ATA (8310)
scarabaeus Creative Commons License 2017.07.26 0 0 8312

Fura, mert a 6. (ASL után 7.) bit alapján egyértelműen visszaugrik a BMI, ha az 1-es. Ha egy sima LDA #$40 vagy hasonló van az ASL előtt, és utána a BMI, akkor ez van, a $01 regiszterből kiolvasott érték esetén is úgy kellene lennie.

Előzmény: IEC-ATA (8310)
IEC-ATA Creative Commons License 2017.07.26 0 0 8311

Ja, meg akkor is "0" a CLK-in ha "kézzel" lehúzom "0"-ra! :-)

 

Előzmény: IEC-ATA (8310)
IEC-ATA Creative Commons License 2017.07.26 0 0 8310

Én is valami ilyenre jutottam. A programrészletet kimásoltam és úgy futtattam. Mégsem értem a működését, mert ha a CLK "0" akkor i tovább fut, meg ugye CLK "1"-re is. A CLK_in alap állapotban "1" (rajta a felhúzó ellenállás) akkor "0" ha a CLK-out-ra "1"-es parancsot adok. Amúgy szépen át lehet írogatni a kernelt, csak itt elakadtam, hogy hogyan működik. Meg még azt nem értem, ha egyszer van egy olyan szubrutin, hogy soros busz adatainak olvasása $E2D4, ezt több helyen látom hogy használja egy JSR$-el, de utána meg ugyanezt  kódot már nem JSR$ hívja meg, hanem be van írva a programba, akkor már miért nem tudta mégegyszer meghívni? Minek kell külön is leírni??? biztos volt elég hely!?

Előzmény: scarabaeus (8309)
scarabaeus Creative Commons License 2017.07.26 0 0 8309

Közvetlenül annyit jelentene, hogy a $01 adatregisztert addig olvassuk, amíg változik, aztán a beolvasott érték 6. bitjét (0-tól számozva) az ASL a 7. bitbe tolja, ott aztán megvizsgálva a bitet, ha 1-es, a BMI-vel elölről kezdjük az előbbi ciklust, ha viszont 0 volt, továbblépünk.

Értelme pedig:

Előzmény: IEC-ATA (8308)
IEC-ATA Creative Commons License 2017.07.26 0 0 8308

Van egy kód részlet a kernelben, valaki értelmezné nekem?

 

>E297 LDA$ 01

>E299 CMP$ 01

>E29B BNE$ E297

>E29D ASL

>E29E BMI$ E297

 

A többit majd utána! :-)

siz Creative Commons License 2017.07.26 0 0 8307

Lemezes játék hivatalosan talán nem is jelent meg plus/4-re a Commodore csődje előtt. Azóta már igen (pl. a Majesty of Sprites vagy a magyar Adventures in Time, amiket a Psytronik adott ki). A régi C64 átiratok, amiket írtál szinte kivétel nélkül 1541 gyorstöltővel jöttek ki.

Előzmény: Sheme (8306)
Sheme Creative Commons License 2017.07.25 0 0 8306

5. Pedig vannak, a Pigmy, Csory, TGMS(?) TCFS által portolt játékok, pl Borrowed / Tass Times, Deja Vu, Grand Prix Circuit, ...

 

Mintha gyors töltős lenne a ... Times, de nem vennék rá poison-t.

Előzmény: Törölt nick (8304)
siz Creative Commons License 2017.07.25 0 0 8305

Azt írják a 7501 adatlapon, hogy a gate in arra van, hogy a R/W vonalat megakadályozza, hogy alacsony szintre menjen. Ez meg azért kell, hogy a RAS és CAS-t össze szinkronizálja, hogy nehogy rossz pillanatban menjen a DRAM felé egy írás művelet. Azt is írják, hogy normálisan ez a MUX-ra van kötve.

Az én értelmezésemben meg a plus/4-ben ez nem feltétlenül kell, mert úgyis a TED vezérli a RAS/CAS/MUX-ot is, meg az órajelet is a proci felé, szal ő garantálja, hogy ez az időzítés jó legyen.

 

Itt van az adatlap.

Előzmény: Törölt nick (8304)
Törölt nick Creative Commons License 2017.07.25 0 0 8304

Srácok!

1. Ez nem az én "találmányom", az ős 264-es prototipus is 6510el épült anno..

2. "gate in" kérdéskör:eleve sosem lesz semmiféle 6502 és 6510 100.0000% kompatibilis, amig rá nem jövünk mi azt a speciális eset amikor ez a jel _kell_..

3. A 6510 elvileg _nem bírja_ a két megát, hogy van olyan, ami mégis, az eleve egy nagyon durva  "overclocking", annak minden stabilitási és egyéb hátrányával

4. A 6502es prototipus egy Baltissen féle rajz, kétlem (a hibák miatt főleg) hogy valaha élesben működőre megépítette volna..ő elsősorben "C64 guy", levlistán valakinek sok éve csinálta ezt a skiccet, aztán ennyiben is maradt...   ha jól rémlik

5. Lehet evvel szenvedni, meg legyen gyorstöltő, legyen jövőhét, ha magamnak gyorstöltőzök, átírom azt is, és lesz gyors töltésem, ha egy utántöltős játék (hű de "gyakori" pluszin?!? :)) vagy demo nem megy, most arra mit mondjak, ehhez kell majd eredeti gép meg proci,... vagy emulátor..hűhaa...

6. Lett volna ennek folytatása, értelme, az eredeti motiváció olyasmi volt, hogy 6510en van NMI, ami a pluszis világban egy nem várt istenkártya, egy megkerülhetetlen "tutifrézer", relative kevés plusz alkatrésszel és kódolással..

7. Onnantól viszont, hogy van egy 99.9%-os, nem emulátorok, meg leírások, hanem az eredeti, igazi áramkör rajzai, fotója, felderített funkciói alapján készült FPGA TED, eléggé okafogyott az egész....

8. Azt sem tartom túl reálisnak ,hogy majd tönkremegy meg "elfogy" a világból a proci, és 6510el _kell_ gyűjteményi vasak életbentartásához "élesben" kiváltani, annyi 264es gép készült, sokat nem, vagy alig használtak, kétlem, hogy ilyen overkill gyűjteményi értéke lesz majd egyszer, valaha, még a mi életünkben ennek a szériának

 

 

 

 

 

 

Előzmény: siz (8297)
siz Creative Commons License 2017.07.25 0 0 8303

Látni fogod. Csak az a kérdés, hogy hogyan jeleníted meg a regiszterek tartalmát. A KERNAL-ba épített monitor BRK után frissít csak. Ha pl. YaPE monitorról van szó, az minden utasítás után frissít.

Előzmény: IEC-ATA (8302)
IEC-ATA Creative Commons License 2017.07.25 0 0 8302

Ezt kipróbálom! Azt hittem, hogy ha egy akkuba töltött értéket aminek az utolsó bitje "1" egy ASL utasítással eltolom, és az utolsó bit a carry-be kerül, akkor azt látni fogom. De akkor majd az alábbi módszerrel. Köszönöm!

Előzmény: siz (8301)
siz Creative Commons License 2017.07.25 0 0 8301

A monitorban mutatott regiszter értékek csak BRK-ra futás után frissülnek.

Előzmény: IEC-ATA (8298)
siz Creative Commons License 2017.07.25 0 0 8300

Jól emlékszel.

Előzmény: ergoGnomik (8299)
ergoGnomik Creative Commons License 2017.07.24 0 0 8299

Két lehetőséged van. Az egyik, hogy BCS vagy BCC ugrást csinálsz. A másik, hogy PHP, PLA utasításokkal átmásolod az akkumulátorba. A processzor állapotbitjei emlékeim szerint sorrendben NV1BDIZC, így a legalsó bitet kell tesztelned. Már ha jól tényleg emlékszem.

Előzmény: IEC-ATA (8298)
IEC-ATA Creative Commons License 2017.07.24 0 0 8298

Az az igazság, hogy csináltattam már nyákfilmet egy kisebb nyákhoz a 6502+6522=8501 nyákomhoz. Most már javítva az eredeti Baltissen féle rajzot, ugyanis abban rosszul adta meg a 8501 "P" port lábait. Ő P0-P6-ig rajzolta, ami nem jó, mert ugye a P0-P4,P6-P7 kell. Meg rendeltem egy logikai analizátort, hogy lássam is hogy mi a helyzet. Másik kérdés: Ha a CARRY-be lévő értéket honnan tudom kiolvasni? Elviekben az állapot regiszter (SR) tartalmazza, de ha monitort beírom akkor csak $00 van benne.

Előzmény: siz (8297)
siz Creative Commons License 2017.07.23 0 0 8297

Szerintem nem (teljesen) ezt az irányt kellene erőltetni: ahogy többen írták is, nem kis macera a soros port kezelő rutinokat átírogatni, hogy más portkiosztással menjenek. Nem lehetetlen, de ettől még semmilyen gyorstöltő nem fog menni vele, tehát gyakorlatilag 1551-re korlátozod a gépet.

Akkor már inkább tényleg egy 6502+6522 kombó kell, meg egy rakat OR kapu, amivel CS jelet adsz neki, amikor a $00 vagy $01 címeket szólítja meg a proci (címbusz felső 15 bit 0). És akkor még a 6522 adatbuszát is külön kell címezgetni, mert nem adatirány regiszter, aztán adatregiszter a kiosztása, hanem először két adat, aztán két irány. (Bár ez meg a 6522 A2-es bitjére a CPU processzor A0 negáltját kötve megoldható. Akkor már csak az a kérdés (amire nem emlékszem fejből), hogy a 6522-nél ugyanúgy az 1-es adatirány jelenti-e a bemenetet, mint a 7501-nél.

Előzmény: IEC-ATA (8289)
tanárnéni kedvence Creative Commons License 2017.07.23 0 0 8296

Akarom mondani, clk, na jóccakát. :)

Előzmény: tanárnéni kedvence (8295)
tanárnéni kedvence Creative Commons License 2017.07.23 0 0 8295

Ja, pl. $e290-nél is data in, de most nem olvasom végig az egész ROM-ot. :)

Előzmény: tanárnéni kedvence (8294)
tanárnéni kedvence Creative Commons License 2017.07.23 0 0 8294

Értem. Hát ez egy bittel kevesebb, és enélkül is össze volt vonva a tape out és clk out. Esetleg a magnó motorját lehet mindig pörgetni, vagy összegányolni atn/data out vonalakkal a magnó vezérlését, vagy felfűzni egy filléres mikrovezérlőt soros egységnek, és azon keresztül vezérelni. :)

De szerintem ettől megoldható a serial kernalmódosítás, csak a gyors töltők nem. A clk in-t is kezelni kell, és nem biztos, hogy csak egy helyen (pl. $e216), ahogy a datánál sem.

Előzmény: ergoGnomik (8292)
IEC-ATA Creative Commons License 2017.07.22 0 0 8293

A vezérlő rutinok mennek! Mivel a P0-P2- lévő DATA CLK ANT, nem változtak. A DATA vagy CLK magasra állításával a negáltja megjeleni a P3-P4-en. Ezeket vissza is lehet olvasni. "Csak a soros busz olvasásáért felelős rutinokat kell átírni.  Az biztos lehet hogy nem lesz kompatibilis a gyorstöltőkkel, nem is az a cél, hanem hogy összehozható-e.

Előzmény: ergoGnomik (8292)
ergoGnomik Creative Commons License 2017.07.22 0 0 8292

A baj az, hogy a 6510-nek (8500-nak) az integrált 8 bites I/O portjából a 0..5 bitek vannak kivezetve a tok lábaira, a [7|8]501-nek meg a 0..4, 6 és 7 bitek. Szóval van egy I/O vonal ami a TED gépekben nem használt, és nincs másik kettő, ami meg igen. Ez szoftver farigcsálás nélkül tuti nem fog összejönni. Igazából az is kétséges, hogy át lehet faragni úgy az IEC kezelő rutinokat, hogy egyáltalán működjön. Szerintem.

Előzmény: tanárnéni kedvence (8291)
tanárnéni kedvence Creative Commons License 2017.07.22 0 0 8291

A kódhoz értettem valamikor, de a hardverhez nem. Azt nem értem, miért kellene a szoftvert módosítani, $01-et átrendezni, amikor így szinte semmivel (gyors töltők) nem lesz kompatibilis a gép. Nem lehetne a hardvert "áthuzalozni", hogy a helyükre kerüljenek a serial jelek?

 

Előzmény: IEC-ATA (8289)
IEC-ATA Creative Commons License 2017.07.22 0 0 8290

Jaja! Commodore-szerviz kolléga írása inspirált! 

Előzmény: Sheme (8288)
IEC-ATA Creative Commons License 2017.07.22 0 0 8289

Szertettem volna életre kelteni a floppyt a 6510-es CPU-val, de nem akaródzik! Nem is csoda hisz annyira nem vágom azért a gépi kódot! Meg nem is értek hozzá!!! :-)

Ameddig eljutottam.

 

 

A rajzon berajzoltam, hogy a 6510-es P3-as lábát kineveztem CLK_IN a P4-es lábat DATA_IN-re és be is huzaloztam az eredeti ic foglalat P6-P7 lábaira. Mivel a gép bekapcsolásakor a "P" port adat irány regisztere $0F ami %00001111 binárisan és ami azt jelenti, hogy P0-P3 kimenetként funkcionálnak. Esetemben egy POKE 0,7-el a P3-at bemenetre állítottam (%00000111). Tehát az adatirány regiszter beállítva (Hogy ez kernelből hogy állítódik nem tudom és nem is kerestem,de így maradt a tesztek alatt)
Az eredeti procis gép adatregisztere($0001) alap állapotban $C8, ami %11001000 tehát a P0-P2 alacsony szinten vannak(DATA_out, CLK-out, ANT), a P3 magas "H" ez vezérli a magnó motort ha van. P4 magnó adat_be tehát amúgy is bemenet, a P5 nincs és a könyv szerint nem is programozható. A P6-P7 Pedig szintén "H" magas jellel rendelkeznek, mert a felhúzó ellenállás rajtuk van és amúgy is az adatirány regiszter szerint bemenetek.

Akkor most a rajz szerinti elrendezés. P3 CLK_IN, P4 DATA_IN. POKE 0,7-el beállítva az adatirány regiszter, mint fentebb írtam. Az adat regiszter $18-on áll ami %00011000, vagyis megfelel a proci huzalozásának, P0-P2 alacsony szinten vannak(DATA_out, CLK-out, ANT), P3 magas "H" CLK-in felhúzó ellenállás rajta, P4 DATA-in szintén felhúzó ellenállással.

A ROM listába $E2D4-en van a "soros busz adatainak olvasása" ami

>E2D4 LDA$ 01

>E2D6 CMP$ 01

>E2D8 BNE$ E2D4

>E2DA ASL

>E2DB RTS

Ez a szubrutin betölti az akkumulátorba az adatregiszter értékét, összehasonlítja az értékét $01-el, ha nem az (BNE$E2D4) újratölti, ha érték egyezik, (ASL) akkumulátor értékéből az utolsó bitet, ami a DATA_in(P7) beküldi a Carrybe.
Itt jön az én kapcsolásom aminek P4 a DATA_in-e hogy kerül az a carrybe? CSináltam a kernel-be egy ugrást a $E2D4-ről a kernel egy szabad területére.

>E2D4 JMP$ FCD1

Itt megcsináltam egy rutint ami eltolja a megfelelő értékkel az akkumulátor értékét.

 

>FCD1 LDA$ 01

>FCD3 CMP$ 01

>FCD5 BNE$ FCD1

>FCD7 ASL

>FDC8 ASL

>FCD9 ASL

>FCDA ASL

>FCDB RTS

Hát azt mondom nem ilyen egyszerű a P6-P7 port kiváltása a P3-P4-el, mert nem megy. Igaz azt nem néztem, hogy a CLK_IN-t ellenőrzi e a kernel a seriel port használatakor, de biztos, mert akkor minek negálták vissza! Várom az építő jellegű hozzászólásokat. Még az "Ennek semmi értelme" is jöhet, mert mint írtam korábban "Nem értek hozzá" :-D Köszi!

Előzmény: IEC-ATA (8287)
Sheme Creative Commons License 2017.07.22 0 0 8288

Ha jól értem, a 7501 helyett most 6510-zel üzemel?

Előzmény: IEC-ATA (8287)
IEC-ATA Creative Commons License 2017.07.21 0 0 8287

Épp akartam írni ,hogy minden írása felér egy rendőrségi feljelentéssel, de közben láttam, hogy moderálják az oldalt.

Egyéb hírek:

 

Megcsináltam commodore-szerviz kolléga "hogyan erőltessünk 6510-es processzort a plussyba" projectjét(nem biztos hogy így kell írni). A minap nyákfilmeket gyártattam és összeollóztam egy adaptert, mert nem szeretek drótozni. tökéletesen működik, de nem teszteltem semmivel, csak bekapcsoltam és ment 30 percig kb. A melegedése a procinak a szokásos, semmi extra. Még a kernelt kell átírni hogy menjen is legalább a seriel port. Már nézegettem a kernelt, talán még én is meg tudom csinálni.

 

https://youtu.be/-gvHmDfURdw

 

 

Előzmény: siz (8286)
siz Creative Commons License 2017.07.21 0 0 8286

Na közben úgy látom innen is kib@szták. Akkor jön új néven, de a stílusból max. a 3. hozzászólásból kiderül úgyis, hogy ő az. Igazából nem is értem, néha tök normálisakat tud írni, aztán megint visszaesik ebbe a sértődött stílusba és lerombolja, amit esetleg felépített.

Előzmény: IEC-ATA (8283)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!