C64-ohjelmointi

Aloittaja Pitka_Masa, heinäkuu 20, 2005, 18:04

« edellinen - seuraava »

Pitka_Masa

Tänne voisi siis lisätä koodinpätkiä, jos haluaa.

fmatic

Löytyykö täältä innokkaita kuusnepalla koodaajia. Kertokaa myös koodaatteko nimenomaan kuusnepalla vai väkerättekö koodia esim: emulaattorilla?

Itse en juurikaan koodia naputtele kuuslankulla vaan melko usein kirjoittelen koodia kannettavalla pc:llä koska jos jotain pidempää koodia naputtelen on se melkoisen tytölästä kirjoitella kuusnelosen näppäimistöllä...

fmatic

Tässä lainaus wanhasta viestistäni tuolta foorumin kätköistä:

"Kun nyt noista koodinpätkistä tuli puhetta niin tässäpä yksi mielenkiintoinen viritys. On testattavissa ihan emulaattorillakin.
 
Kyseessä on kikkailua SID-piirillä jonka äänevoimakkuuden nollauksen ja täydelle asetuksen seuraksena syntyvää napsausta hyväksikäyttäen luodaan uusi ääni eräänlainen "sähkökitara" efekti :)
 
Koodia naputtelemaan:
 
10 FORX=54272TO54296:POKEX,0:NEXT
20 POKE54296,15:POKE54296,0:FORX=1TO5:NEXT:GOTO20
 
Koodin syötettyä ajetaan ohjelma komennolla RUN ja painetaan RETURN emulaattorilla tietenkin PC:n Enter
 
Tässä koodinpätkässä napsausta luupataan loputtomiin joten emulaattorin sulkeminen pelastaa korvasi :)"
      

Ezkimoukko

Höh. Tuota F-Maticin laittamaa pätkää olisin halunnut testata mutta kerkisin laittamaan C64:n jo takaisin hyllyyn kun kasettiasema ei toiminut.  :(

Pitka_Masa

Minä koodaan c64:llä. Tai vähän harjoittelen. Simons basicilla olen tehnyt spritejä ja kopioinut esimerkkiohjelmaa, joka piirtää ruudulle antiikkiauton...

bloodycut

Koodaaminen kiinnostas ja luoda joku hittipeli kuuslankulla ja sitte sen vois kääntää emulaattorille.

Slimex

LainaaKoodaaminen kiinnostas ja luoda joku hittipeli kuuslankulla ja sitte sen vois kääntää emulaattorille.

Ei niitä pelejä käännetä emulaattoreille, ne emulaattorit kääntää sen pelin/ohjelman sille alustalle, millä emulaattoria ajetaan.
Hittipelin koodaaminen ois tietysti kivaa, mutta vaatii erittäin hyvää konekielen koodaustaitoa. BASICillä ei mitää pelejä koodailla, ellei sitte jotai hirsipuuta yms. 6510:n konekielen alkeisiin on suht helppoa päästä kuuslankulla (koska assemblereita löytyy action replay -moduleista erillisiin ohjelmiin) mutta ensimmäisenä pitää osata heksadesimaalit ja binääriluvut. Ja ensiksi täytyykin opetella ajattelemaan binääri/heksamaisesti kaikki matematiikka. Myös konekielinen ohjelmointi vaatii erillaista ajattelua, kaikki pitää tehdä yksityiskohtaisesti ja yksinkertaisesti. Esim. pelkästään joku poke -tyyppinen käsky vaatii kaksi riviä (viisi tavua) koodia. Toisaalta lineaariset lisäykset ja vähennykset voi tehdä muistipaikoista helpommin kuin basicillä. Sanomattakin on selvää, että BASIC on noin 10-200 kertaa hitaampaa kuin konekieli (johtuen siitä että jokainen BASIC-käsky joutuu läpäisemään kernelin basic-tulkin "käännöksen" konekieleksi). Tämä siis karkeasti tapahtuu jokaisella alustalla, prosessori EI ymmärrä mitään muuta kieltä kuin konekieltä (prosessorin äidinkieli). Eli kaikki kielet (jokaisessa tietokoneessa, PC MAC PSP XBOX), oli koodinpätkä sitten C:tä C++:aa Javaa Pascalia BASICiä, joudutaan AINA kääntämään konekieleen. Ja sanomattakin on kai selvää, että konekieli riippuu prosessorista?  ;)
no pain, no c64

bloodycut

juu mitäs tohon sanos, meni vähän jauhot suuhun mut jos tän alan taitajia löytyis nii olis mukava tehä yhteistyötä jollain tasolla...

Slimex

Jos nyt on jauhot hiukan menny suuhun niin ei hätää, kirjallisuutta on enemmän kuin laki sallii netissä. Tässäpä linkki mihinkä törmäsin melkein kuin vahingossa: http://www.bombjack.org/commodore/books.htm

Melkoinen kirjallisuusaitta nepistille!  :o

Ja bloodycutille tiedoksi että lataapa noista toi The Machine Language Book Of The Commodore 64 (se missä on keltanen tietsikka punasella ruudulla kannessa), homma selitetään aika näppärästi tuossa kirjassa. ::)
no pain, no c64

Syntax_Error

Uuff. Todella hieno linkki. Kiitos!
5 rem - Sekodemo :) -
10 N=INT(200*RND(0)+1)
20 PRINT CHR$(N);
30 GOTO 10

Slimex

#10
LainaaUuff. Todella hieno linkki. Kiitos!
eipä kestä, joutuu itekki kahlaan aika paljon...  :P harmi ettei löytyny simons basicciä sitä tarvitseville  :-/

ps. enköhän jossain vaiheessa koodaa omaa ekaa 1k introo tässä ku kerkiää (jos ehdin)

ps2. ja tottakai pistän tänne sorsat tai listat
no pain, no c64

Teekoo

LainaaLöytyykö täältä innokkaita kuusnepalla koodaajia. Kertokaa myös koodaatteko nimenomaan kuusnepalla vai väkerättekö koodia esim: emulaattorilla?

No, minä olen kyllä naputellut koodia, taikka siis tarkennetaan että olen kopioinut ohjelmia vanhoista kirjoista ja netin sivustoilta (esim. atariarchives-sivuilla on Compute, Creative Computing ym. lehtien artikkeleita). Kopiointia ei kai oikeestaan voi sanoa ohjelmoinniksi, ihan pieniä muutoksia olen joskus koittanut ohjelmiin tehdä, ei ole kovin hyvin onnistunut. Tietysti 64:sen Programmers Reference Guideen ym. oikeen ajatuksella perehtyminen olisi asiaa. Vaikka sehän on vaan hyvä että harrastetta/opittavaa riittää.
Emulaattoreista en ymmärrä, (sen verran aloittelija) ihan kuusnepalla olen naputellut. Oikeestaan 64:sen näppäimistö on mielestäni ihan mukava käyttää. Kannettavalla nykytietsikallani kirjoittamista koitan välttää, näppäimet on litteät, lähellä toisiaan ja harva se kerta onnistun kirjoittaessani hipaisemaan jotain nappia niin, että kursori hyppää ties minne ja huomaan kirjoitaneeni hetken aikaa jonnekin jo kirjotetun tekstin väliin (menee hermo...). Tätäkin kirjoittelen vanhalla pöytäkoneella jossa "oikea" näppäimistö, IBM kb-8926, vuodelta -96.

Commodoreen liittyvät kirjat löysin kun kokeilin Amazon.comissa hakua, että löytyiskö jotain ja sieltähän löytyy, jatkuvasti usean sivun verran Commodore koneisiin ja niiden ohjelmointiin liittyvää kirjallisuutta! Jopa jollain kolmella USD:lla voi löytää jonkun -80 luvun alun kirjan, joka näyttää siltä, että se on kerran avattu ja laitettu komeroon 25:ksi vuodeksi! Siihen joku 12 euroa lähetyskuluja päälle (useat siellä ilmoittelevat divarit lähettää "internationally") Ei ole mielestäni paha kun ottaa huomioon, ettei noita täältä Suomesta oikeen löydä, ainakaan sellasia melkeen kuin pakasta vedettyjä. Kirjat sinänsä ovat jo mielenkiintoisia aiheeseen liittyviä keräilykappaleita.

Olen Hesassa kysellyt muutamissa divareissa, että onko näkynyt vanhoja tietokone aiheisia kirjoja tai lehtiä (esim. Poke&Peek, MikroBitti) niin ei oo mitään havaintoa. Olisiko muuten jollain vinkkiä? Taitaa vaan olla että täällä on alunperinkin atk aiheista kirjallisuutta ja lehteä myyty sen verta vähän, että noin 25 vuodessa on melkeen kaikki hävinny. Toista jossain jenkeissä jossa näitä laitteitakin myytiin -80 luvulla miljoonia, siellä riittää oheiskamaakin vielä nykyäänkin.
Noista kopsaamistani ohjelmista vois vaikka mainita sellasen, joka laskee auton polttoaineen kuluksen (näyttää tosin miles/gallon), siihen on mulla jo harrasteauton vuoden tankkaukset talletettu. Kopsasin myös yhden integraalilaskuja ratkaisevan ohjelman, naputtelin siihen vanhasta koulukirjasta joitakin laskuja (joista en ite mitään tajua) ja kuusnepahan rupes putkauttelemaan oikeita vastauksia. (kirjassa oli vastaukset tarkistusta varten)

Vaativin kopsaus on kyllä ollut tekstinkäsittely ohjelma SpeedScript 3.1. Tuohan on alunperin -80 alussa 64:lle ja VIC:lle Compute! lehden toimittajien kirjoittama ohjelma. Tuo oli haastavampi siinä mielessä, että siinä on noin 6 kilotavua koodia konekielellä. Sen kirjoittamiseen tarvittiin (niin ikään Compute! lehden) konekieli editori ohjelma MLX. Verrattain puuduttavassa konekielikoodin naputtelussa olisi varmasti tullut virheitä, mutta MLX vertasi jokaista naputeltua riviä checksum-lukuun, joka naputeltiin rivin päätteeksi ja kehotti tarvittaessa kirjoittamaan rivin uudestaan.

Tuo SpeedScript on kyllä oikeasti aika vaikuttava ohjelma, kun ottaa huomioon mitä 6 kilotavulla ohjelmakoodia saa aikaiseksi ja mihin hintaan. Ominaisuuksia niinkuin, leikepöydän käyttö, tulostus, haku toiminto, no joo eihän siinä ole jotain 200 eri fonttia niinkuin M$ wördissä (mikä onkin hirveen tarpeellista) ja jos ajattelee mitä 6 kt:lla saa aikaan nykyajan tietsikassa, vissiin pikakuvakkeen työpöydälle? Joku kuusnepa harrastaja kirjoittikin jollain palstalla että toki, onhan Word parempi kuin SpeedScript, mutta se on kanssa about 200 kertaa isompi (en muuten tiedä miten tuo tarkallen on,,,) ja entä onko se sitten 200 kertaa parempi, no hell no!

-80 luvulla suht noviisi tietokoneen omistajakin saattoi mennä kirjakauppaan, ostaa kirjan, (näkyy olleen 9.95 USD) ja naputella koodin sieltä,  Nykyään täytyy laittaa kättä taskuun pikkasen syvemmälle ja mahdollisuutta itse tekemiseen ei ole, tai ainakin osaamista vaaditaan paljon, paljon enemmän. Kehitys kehittyy ja artisti maksaa, eiku siis kuluttaja.
Kyllä tuo ohjelmien kopsaaminen kirjoista tai netistä löytyvistä artikkeleista on mielestäni siisti osa näiden Commodore laitteiden harrastusta, siinä voi tavallaan kokea samoja ahaa-elämyksiä, omatoimista tekemistä ja pioneerihenkeä, mikä oli mahdollista ihan jokaiselle tietsikan omistajalle silloin, kun nämä laitteet olivat uusia.

Slimex

Tuo kopsaaminen toisen koodista on vasta alkua suurelle seikkailulle ohjelmoinnin alussa. Todellisilta guruilta joutui aikoinaan oppimaan pelkästään sen varassa. Nykyään pystyn aika hyvin aloittamaan rakenteen ja pääkoodin itse, mutta jotkin jipot joutuu "kurkkaamaan" kaverin koodista. Tämä siis yleisesti kun sorsat on tiedossa (source code, eli lähdeohjelmalistaus), mutta nepalla homma toimii toisin... Koodi on katsottava jollain (Action Replay ehkä paras) konekielimonitorilla joko ohjelman ajon aikana tai vastaavan kk-monitorin omistavalla ohjelmalla sekä moduuleilla (1541U, AR6, FC3 jne.), koska sorsat on yleensä pelkkää 110 DATA 0,4,60,254,50 -rivistöä tai pakattua dataa. Jos todella haluaa ohjelmoida nepaa, niin UNOHDA BASIC. Suurempi mielihyvä tulee konekielisestä koodaamisesta ja todellinen aarreaitta odottaa tietokoneen (jopa nykyisien) syvimpiä syviä kahlanneelle heksadesimaalien ja binäärikoodien taitajalle! Koska konekielessä piilee ymmärrys tietokoneen syvimpää olemusta kohtaan. Ja siihen C64 oli aikoinaan paras ja viimeinen esimerkki ymmärtämään mikroprosessorin elämää.

Onhan noita eri ohjelmointikieliä nepalle. Kaikki täysin turhia käännösnopeudeltaan, jos vertaa nykypäivän koneisiin ja hyödyn suhteisiin C64:sella.
no pain, no c64

hannkesk

Itse olen parhaillaan väsäämässä C64 sellaista peliä kuin Block Dude. Idea on vähän loderunneria ja giana sistersia, xevious design kopioiden. Ohjelmoin konekielellä pelkästään.

Idea on seuraavaa.: Block dudessä on kenttä, jonka duden pitää selvittää aikarajassa ja päästä maaliin. Ongelma on kentässä on korkeita seiniä, joiden yli dude ei pääse kuin liikuttamalla niiden viereen laatikoita ja tekemällä niistä ikään kuin reitti, jotta pääsee maaliin. Kentässä on rajallinen määrä laatikoita, joiden avulla pitää päästä maaliin.

Ehkä saan sen valmiiksi niin voi laittaa muille. Voitte kertoa mielipiteenne!

Toinen väsääminen on myös menossa, josta varmaan joskus saa tehtyä loppuun. Cannon fodder c64 versio. Tarkoituksena olisi saada edes yksi kenttä, jota voisi pelailla valmiiksi.


romppainen

LainaaToinen väsääminen on myös menossa, josta varmaan joskus saa tehtyä loppuun. Cannon fodder c64 versio.

Tuossa onkin kova nimike jota olen kaikessa hiljaisuudessa toivonut muutaman muun Amiga-pohjaisen käännöksen ohella joskus ilmaantuvaksi, toivottavasti onnistuu  :)