Keresés

Részletes keresés

IEC-ATA Creative Commons License 2017.08.01 0 0 8321

Meglett a hiba és az eredménye is a javításnak! :-) A floppy elindult! Próbáltam DEMO-val, persze leült a meghajtó, de a cél nem az volt, hogy turbóval is menjen, hanem csak az hogy betöltsön, ezt maradéktalanul meg is csinálja. :-) A mentést is kipróbáltam, az nincs a videon, de működik!!! Akkor >>>ITT<<< lehet nézelődni! :-)

Előzmény: ergoGnomik (8320)
ergoGnomik Creative Commons License 2017.07.29 0 0 8320

És tényleg! Akkor máshol van az eb sírhantja. IEC-ATA keresgélhet tovább.

Előzmény: siz (8319)
siz Creative Commons License 2017.07.28 0 0 8319

Emlékeim szerint a $ff20-$ff3d használható rendesen.

Előzmény: ergoGnomik (8318)
ergoGnomik Creative Commons License 2017.07.28 0 0 8318

Az $FF20 szerintem mérsékelten lesz csak jó, mert az beleesik a TED regiszter címtartományába, és ott nem szokott ROM lenni. Ha jól tudom.

Előzmény: IEC-ATA (8317)
IEC-ATA Creative Commons License 2017.07.28 0 0 8317

Fél siker! :-) Megírtam átírtam a kernelben lévő rutinokat a P3-P4. lábakra. A fél siker azt takarja, hogy LOAD-ra, Directory-ra elindul a Floppy meghajtó, de csak forgatja a lemezt. Valahol még kifagy. Van egy olyan érzésem, hogy a kernelben beírt új programkódok nem jó helyen vannak. Az $FCD1-től írtam be a helyettesítő kódokat, illetve az $FF20-tól. Itt volt hely! Jók ezek a címek? Majdnem az összes seriel portot író és olvasó rutint sikerült az eredetiről a módosított proci lábakra átírni, (külön kimásoltam és futtattam az eredeti kódokat, csináltam a seriel portra a CLK-ra és a DATA-ra is nyomógombot szimulálva a jeleket) Ezeket természetesen a módosított proci lábakra is kipróbáltam átírva a kernelt. Valahol még bug van. Van még egy két rutin amit le akarok ellenőrizni, habár csak sima ANT, DATA CLK magasra állítás, de van benne egy (ha magas) na ezeket még átnézem. :-)

siz Creative Commons License 2017.07.27 0 0 8316

Na jó, kicsit elrontottam a másolást, így a helyes:

 

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               
                                       
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: siz (8315)
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: Commodore-szerviz (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: Commodore-szerviz (8304)
Commodore-szerviz 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)

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