Menu

Näytä viestit

Tämä jakso sallii sinun katsoa tämän jäsenen kaikkia viestejä. Huomaa, että näet vain niiden alueiden viestit, joihin sinulla on nyt pääsy.

Näytä viestit Menu

Aiheet - Syypori6510

#1
Kyllä meni 2 iltaa tätä vikaa etsiessä...

Olen ottanut projektissani käyttöön tällaisen näppärän autostart menetelmän "METHOD #1: RTS TO STACK" @ https://codebase64.org/doku.php?id=base:autostarting_disk_files eikä siinä mitään, hienosti toimii. Kävi kuitenkin niin, että kun myöhemmin lisäsin projektiin näppäimistön skannaus koodin (ei kernalia käytössä) niin sen kanssa oli ihme murheita, mm. joskus se melkein toimi, joskus luki vain muutamaa näppäintä, parhaimmillaankin pimeänä kuitenkin aina yksi näppäinmatriisin sarake (se jossa mm Q,E,T,U,O). Tätä sitten tosiaan pari iltaa debuggasin enkä osannut yhdistää sitä mitenkään tuohon autostarttiin, vaan luulin, että vika oli muutoksissa jotka minun piti tehdä löytämääni skannauskoodiin. Mutta vihdoin hokasin, että autostartin kolme ensimmäistä riviä

lda #$7f ;suppress any irq&nmi
sta $dc0d ;to disallow abort load by R/S
sta $dc0e

ovat syypäänä ongelmiini.
Paikat joihin se kirjoittaa %01111111 ovat CIA#1:n "Interrupt control and status register" ja "Timer A control register".

En saa mitään tolkkua miksi rutiinin kirjoittaja tekee noin ja tekeekö nuo rivit edes sen mitä kommenteissa lukee? Tulkintani mukaan siinä nimenomaan pistetään timeri ja keskeytykset päälle, mutta onko näin?

Kaikki toimii hienosti kun rivit poistaa (itseasiassa vain sta $dc0e poisto riittää), mutta jokin tarkoitus kai niillä on? Että pitäisikö ne jättää siihen ja konffata CIA myöhemmin oletusasetuksiin, kunhan nekin jostain löytäisi.

Sekin olisi tietty tietää mikä saa näppäimistön skannauksen sekoilemaan kun CIA on kyseisellä tavalla konffattu.
#2
Bitin Nypläys / Satunnaisluvut ja VICE
helmikuu 23, 2015, 22:27
Nyt on sellainen ongelma, että kun tarttisin satunnaisluvun tai parikin niin ei vaan VICEn kanssa oikein irtoo eikä löyvy netistäkään apuja. Hommaan voi käyttää SID-piiriä siten, että pannaan suhinaa kolmostorveen (äänettömästi) ja sitten noukitaan satunnaislukuja osoitteesta $D41B. Menetelmä on kuvattu monessakin paikassa kuten vaikka tässä näin: http://www.atarimagazines.com/compute/issue72/random_numbers.php.

Hyvin näyttäisi toimivan elävässä elämässä oikealla koneella, mutta VICEllä kun ajelen kehitteillä olevaa ohjelmantynkääni autostartilla niin sekvenssi on joka ajolla sama. Tietääkö kukaan mitään aiheesta ja kuinka päästä ongelmasta eroon? Vai täytyykö vaihtaa menetelmää ja mikä sitten olisi hyvä ja VICEn kestävä? Myös olisi kiva tietää jos joku törmännyt peliin joka normaalisti sisältää satunnaisuutta, mutta VICEllä toistaisikin aina itseään?
#3
Niin, todellakin, tuli askarreltua poljin kuusnepaan. Pelasin tuossa Commandoa pari päivää takaperin ja kuten aina ennekin, ei meinannut koskaan käsi ehtiä SPACElle granaatinheittoon. Sitten kun katse harhautui lattialla lojuvaan kitaran efektipedaaliin niin läksi siitä ajatus lentoon, että jos tuon kytkisi koneen näppismatriisiin tietyllä tavoin niin voisi polkea niitä granaatteja vihollisen niskaan ja aiheuttaa aivan ennenkokematonta havokkia. Tuumasta toimeen, kaikki osat löytyi laatikoiden pohjilta:

- tietokoneen vanha IDE piuha josta saadaan 2x20 naarasliitin kiinni C64:n näppisporttiin (käytetään vain toista riviä, toisen rivin lattakaapeliterät kannattaa taivuttaa pois tinauksen tieltä)
- pieni pala reikälevyä (kiskoilla)
- piikkirimaa 36:n piikin verran
- 1/4 tuuman jakkiliitin pedaalia varten

Pedaali (tai mikä tahansa muu kytkin) voidaan kytkeä viritykseen 64:llä (8x8) eri tavalla joten mikä tahansa näppäimen painallus onnistuu. Pari kuvaa liitteenä.
#4
Liitteenä pari kuvaa, toisessa johtoviritys jolla vien kuvan television S-Video liittimeen ja toinen kuva huonosta kuvasta joka on tuloksena. Kuva siis on melko tarkka, mutta siinä on tuollainen rasterikuvio päällä. Livenä kuva oikeastaan vielä hieman pahempi kuin mitä tuosta liitekuvasta käy ilmi. Olen testannut useammalla C64:lla ja kaikilla sama juttu.

Eli ilmeisestikään en osaa käyttää oikein tuota aikoinaan huuto.netistä ostettua adapterin pätkää koska lupauksena oli hyvä kuva. Sinänsä kytkentä ei totaalisen pielessä kait voi olla koska värit tuota rasteria lukuunottamatta ovat oikein. Missä siis vika?
#5
Minulla on sorvissa otsikon mukainen projekti, eli C64 emulaattori Raspberry Piissä ilman käyttöjärjestelmää. Ei ole ihan alkumetreillä enää, mutta ei ole vielä likimainkaan käyttökelpoinenkaan. Mm. CIA piiri(t) ei ole valmis joten ei ole näppistä eikä vilkkuvaa kursoria, mutta prosessori on melko OK ja VICkiä on sen verran, että boottitekstit saadaan näkyville (ja näkyykin melkein oikein "Katso kuvat!") ;)
Nopeudessakin on toivomisen varaa, ei toimi vielä reaaliajassa, mutta tähän on lääkettä kiikarissa.

Voisin laitaa koodit jakoon tässä kohta jos jotakuta sattuu kiinnostamaan.
#6

:pondering:
En varmaan osaa oikein googlea käyttää kun en löydä vastausta otsikon mukaiseen kysymykseen, että kuinka saa kaiveltua esille tiedoston latausosoitteen. Konekielisen (tai yleensäkin raakaa dataa) sisältävän tiedoston latausosoite lienee levyn pinnalla pari ensimmäistä tavua jonka mukaan komento load...,8,1 osaa sijoittaa roinat oikeaan osoitteeseen, mutta jos tätä osoitetta ei varsinaisesti tiedä niin mistä voi tietää minne ladattu data on löydettävissä?

Pöydältä löytyy Reijo Lundahlin kirja "1541-LEVYASEMA" joka on ollut erinomainen apu tähän asti, mutta pettää tässä kohtaa. Kirjassa sivutaan asiaa ainoastaan näin: "Ohjelman latausosoitteen selvittämiseksi voit käyttää levyaseman mukana tulleella levykkeellä olevaa ohjelmaa LOAD ADDR." Tuota levykettähän mulla ei tietenkään ole.
#7

Sattuipa onnistumaan aika mukavasti otsikon mukainen homma. Kirjaan nyt tähän ylös käyttämäni menetelmän. Käyttiksenä mull OS X, oletan, että Linuxissa toimii täsmälleen samoin.


  • Imuroi ja pura c64tapedecode työkalu osoitteesta: http://sourceforge.net/projects/c64tapedecode/
  • Mene paketin src hakemistoon ja aja make. Binäärit muodostuu samaan hakemistoon. Tarvittava ohjelma on tap2wav
  • Konvertoi .tap tiedosto äänitiedostoksi .wav komennolla
    ./tap2wav -r -L 8000 peli.tap >peli.wav
    En ole varma -L 8000 parametrin pakollisuudesta, mutta ilman -r parametria C64 ei lukenut kasettia.
  • Tietokone kiinni kasettinauhuriin, nauha pesään, record päälle ja peli.wav soimaan. Signaalin tason säädin nauhurissa niin ettei pauku lainkaan punaiselle, mutta en tiedä miten tarkka tässä tarvitsee olla.
  • Kun nauha nauhoitettu niin se on valmis ja tuikataan kasettiasemaan.

Testasin tekemällä toimivan kaksipuoleisen (=kaksiosaisen) nauhan Armalyte:stä. Bruce Leestä ei tullut loppuun asti toimivaa nauhaa. Latausmusiikki ja tekstit tulivat näkyville latauksen ajaksi, mutta sitten kun pelin olisi pitänyt lähteä käyntiin, mitään ei tapahtunut.