home *** CD-ROM | disk | FTP | other *** search
/ Floppy Magazine 1986 #3 / Floppy_Magazine_86-3_1986_Megasystems_Oy_fi.d64 / castle.art < prev    next >
Text File  |  2023-02-26  |  6KB  |  64 lines

  1.  
  2.                    {SHIFT--}{$de}{$de}
  3.                    {SHIFT--}
  4.      {SHIFT--}{$de}            {SHIFT--}             {SHIFT--}{$de}
  5.      {SHIFT--}        {CBM-A}{CBM-S}{CBM-A}{CBM-S}{CBM-A}{CBM-S}{CBM-A}{CBM-S}{CBM-A}{CBM-S}{CBM-A}{CBM-S}       {SHIFT--}
  6.    {CBM-A}{CBM-S}{CBM-A}{CBM-S}{CBM-A}{CBM-S}     {SHIFT--}{CBM-Z}{CBM-X}{CBM-Z}{CBM-X}{CBM-Z}{CBM-X}{CBM-Z}{CBM-X}{CBM-Z}{CBM-X}{SHIFT--}     {CBM-A}{CBM-S}{CBM-A}{CBM-S}{CBM-A}{CBM-S}
  7.    {SHIFT--}{CBM-Z}{CBM-X}{CBM-Z}{CBM-X}{SHIFT--}     {CBM-Z}{CBM-S}========{CBM-A}{CBM-X}     {SHIFT--}{CBM-Z}{CBM-X}{CBM-Z}{CBM-X}{SHIFT--}
  8.    {CBM-Z}{CBM-S}=={CBM-A}{CBM-X}      {SHIFT--}========{SHIFT--}      {CBM-Z}{CBM-S}=={CBM-A}{CBM-X}
  9.     {SHIFT--}=={CBM-Z}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{CBM-E}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{CBM-E}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{CBM-X}=={SHIFT--}
  10.     {SHIFT--}==========={CBM-A}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{CBM-S}==========={SHIFT--}
  11.     {CBM-Z}{CBM-S}=========={SHIFT--}CASTLE{SHIFT--}=========={CBM-A}{CBM-X}
  12.      {SHIFT--}=========={CBM-Q}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{CBM-W}=========={SHIFT--}
  13.      {SHIFT--}=========={SHIFT--}      {SHIFT--}=========={SHIFT--}
  14.      {SHIFT--}=========={SHIFT--}      {SHIFT--}=========={SHIFT--}
  15.      {CBM-Z}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{CBM-E}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{CBM-E}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{CBM-X}
  16.  
  17.      {CBM-A}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{CBM-S}
  18.      {SHIFT--} CASTLEN OHJELMARAKENTEESTA {SHIFT--}
  19.      {CBM-Z}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{CBM-X}
  20.  
  21.      Ohjelma koostuu basic-osuudesta se-k[ lukuisasta joukosta konekielirutiine-ja. Alun perin ohjelma tehtiin kokonaan basicill[, mutta sitten osat muutettiin yksi toisensa j[lkeen konekielisiksi.   Konekielt[ tarvitaan kaikissa nopeutta, sulavuutta ja muistink[yt\n taloudelli- suutta edellytt[viss[ teht[viss[ kuten  esimerkiksi spritekuvioiden liikuttelus-sa, alkuarvojen asettelussa ja taustamu-siikin soittamisessa.
  22.  
  23.  
  24. BASIC-OHJELMARUNKO
  25. {CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}
  26.  
  27.      Ohjelma alkaa konekielirutiinien   latauksilla ja alkuarvojen asetteluilla,joista suurin osa tehd[[n siis konekie- lell[.  My\s tulostaulukko 'TOP TEN' la-dataan levylt[ ja talletetaan takaisin  sinne aina, kun siihen tulee muutoksia. Ajanlasku on tehty basicill[, l[ht\arvo-na 150, jota v[hennet[[n yksi kerrallaanja tulostetaan PRINT-k[skyll[ n[ytt\\n. Kun aika loppuu (tulee nollaksi), menet-t[[ pelaaja yhden ukon.  Kun ukkoja ei  en[[ ole j[ljell[, peli p[[ttyy.  T[l-  l\in lasketaan saadut pisteet ja tulos- ta verrataan jokaiseen tulostaulukon al-kioon.  Mik[li tulos on suurempi kuin   taulukon alin alkio, siirret[[n tulosta yksi kerrallaan yl\sp[in,kunnes se on   oikealla paikallaan.  N[in taulu pysyy  koko ajan oikeassa j[rjestyksess[.
  28.  
  29.      Basic-osasta ohjataan my\s irq-ru- tiinin kytkeminen p[[lle ja pois p[[lt[.Suurin osa konekielikoodista liittyy    suoraan spritek[sittelyyn ja kulkee ns  irq-osoitteen kautta aina 1/60 sekunnin v[lein.  Commodoren oma keskeytysosoite muistipaikassa 0314-0315 vaihdetaan     n[ytt[m[[n oman konekielikoodin alkuun  ja koodi lopetetaan hypyll[ alkuper[i-  seen irq-osoitteeseen EA31.  Ukon kuol- lessa ajan loppumiseen tai h[m[h[kkiin  t\rm[[miseen, palautetaan alkuper[inen  irq-osoite paikalleen (konekielisesti), jolloin kaikki 'automaattiset' tausta-  toiminnot pys[htyv[t.
  30.  
  31.  
  32. GRAFIIKKA
  33. {CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}
  34.  
  35.      Castle:n teossa on k[ytetty ns omiamerkkej[ sek[ spritej[.  Omat merkit te-kev[t lattiakuvion kolmiulotteiseksi,   el[v[t tikapuut, aarteet ja jotkin teks-tiosuudet, kuten jo alkukuvasta voi huo-mata.  Muutamat 'kirjaimet' muodostuvat useastakin merkist[ kuten pelin nimi.   Pelikentt[ tulostetaan n[kyviin konekie-lisesti, jolloin ruutu t[yttyy salaman- nopeasti.  Basicill[ tehtyn[ sama veisi useamman sekunnin.  Lattiat ovat aina   samoilla paikoilla, mutta tikapuita on  jonkin varran vaihteleva m[[r[ ja ne    ovat hieman satunnaisissa paikoissa.    Tikapuiden m[[r[laskurit ja koordinaatiton talletettu tiettyyn muistialueeseen, josta ohjelma poimii ne aina ruudun t[y-t\n yhteydess[.  Kaikilla ruuduilla on  lis[ksi oma v[rins[.
  36.  
  37.      Spritej[ on k[ytetty ukon ja h[m[- h[kkien muodostamisessa.  Ukolla on kol-me eri muotoa kumpaankin suuntaan men-  ness[ ja h[m[h[keill[ kaksi muotoa.     Usea muoto tekee liikkeen sulavaksi,    mutta vain nopealla konekielell[ liiku- tettaessa.  Basicill[ liike j[[ pakosta-kin hitaaksi, sill[ ohjelmassa on paljonmuutakin teht[v[[.  Jos taas muotoja on v[hemm[n, on liikekiin nykiv[mp[[.
  38.  
  39.      H[m[h[kkej[ on aluksi kolme.  Nel- j[nnenkin kaikki tiedot ovat koko ajan  olemassa, mutta se kytket[[n n[kyv[ksi  vasta my\hemmin.  N[iss[kin on v[rej[   hy\dynnetty.
  40.  
  41.  
  42. MUSIIKKI
  43. {CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}
  44.  
  45.      Taustalla soi irq-rutiinissa kaikenaikaa kolme ja puoli minuuttia kest[v[  klassisen musiikin sovitus.  Musiikiksi on valittu Ludwig van Beethovenin AdagioKuutaosonaatista.  Musiikki k[ytt[[ hy- v[kseen Commodoren kaikkia kolmea [[ni- generaattoria, joten [[ni[kin on kolme. {SHIFT-+}[net soitetaan alueelta 24000 alkaen,  jonne on talletettu kunkin nuotin yl[-  [[ni, ala[[ni ja kesto.  Rutiinin joka  kutsulla kestosta v[hennet[[n yksi sa-  malla kun em. kolme [[nipiiri[ kytket[[np[[lle.  Kun kesto tulee nollaksi, hae- taan esille seuraavan nuotin arvot.  Mu-siikki alkaa taas alusta, kun kaikki    nuotit on soitettu (yht 6 kB).
  46.  
  47.  
  48. KONEKIELITEKNIIKKA
  49. {CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}
  50.  
  51.      Useimmat konekielirutiinit sijait- sevat alueella 49152-53000 ja alueella  20000-23000.  Muutamia n[ist[ k[ytet[[n alkuarvojen asettelemiseen.  Erilaisia  laskureita on sijoitettu kasettipusku-  riin.  Suurin osa rutiineista on kuiten-kin irq-keskeytysosoitteen takana, jotenne ovat k[yt[nn\llisesti koko ajan toi- minnassa.  N[it[ ovat mm.
  52.  
  53.      - h[m[h[kkien siirto
  54.      - ukon siirto, t\rm[ysten valvonta
  55.      - musiikin hoito
  56.      - ohjelman tilojen ja n[pp[inten
  57.        seuranta ym.
  58.  
  59.      Jokaisella kierroksella siirret[[n kutakin h[m[h[kki[ yhden pixelin verran oikealle tai vasemmalle.  Jos otus on tikapuun kohdalla, arvotaan lis[ksi tikapuista meno.  Jos meno sallitaan, viritet[[n tikapuulaskuri 32 kierroksen ajaksi ja tikapuun toisessa p[[ss[ arvotaan kullkusuunta uudelleen.  Jos jokin otus osuu ukkoon, virittyy t\rm[ysrekisteri ja tapahtuu siirtyminen kuolemarutiiniin.
  60.  
  61.      Ukkoa siirret[[n nelj[ pixeli[ /   kierros, mutta vain jos joysticki[ on   liikutettu.  Tikapuissa kulku on sama   kuin h[m[h[keill[.  Jokaisella vasen /  oikea-siirrolla tutkitaan ukon kohdalla oleva taustamerkki.  Jos se on aarre,   k[yd[[n lis[[m[ss[ bonuslaskuria (score)ja jos aarre oli ruudun viimeinen, tul- laan pois irq-osasta ja hoidetaan loppu-k[sittely ja seuraavan ruudun asetus.   Ohjelman lopetuksesssa 'GAME OVER'      -tekstin v[ri[ vaihdetaan useasti ja sa-malla suoritetaan viiv[styssilmukkaa.
  62.  
  63. ----------------------------------------
  64. t