Konekielisen ohjelman sijoittaminen muistiin ei en[[ ole ongelma. Mik[li olet tehnyt basic-ohjelman ja sen lisuk-keena on pieni konelielikoodi, joka pi- t[isi saada mahtumaan jonnekin, on rat- kaisu t[ss[.
Tavallisestihan mc:n voi laittaa alka-maan $c000:sta, mutta se on my\s hyv[ paikka grafiikka datoille yms. Kasetti-puskuri on my\s OK, mutta se on pieni (nojaa sent[[n kaikkineen 204 tavua) ja se tyhjenee aina koneen resetoituessa.
Basic muistin loppup[[ on yksi mahdol-lisuus, mutta kuten kaikki muutkin vaih-toehdot, t[ytyy koodi ladata erikseen sinne tai siirt[[ omalla ohjelmallaan. Lis[ksi t[ytyy basicin loppua muuttaa etteiv[t muuttujat pyyhi ohjelmaa yli.
Kun pist[t mc:n heti basicin-koodin j[lkeen ratkeavat (l[hes kaikki) pulmat Ainoina rajoituksina on ensinn[kin tie- tysti se, ett[ vapaa ram piisaa molem- mille koodeille, sek[ basicin tarvit- semille muuttujille ja pienet niksit ohjelman tallennuksessa. Muistin riip- puvuuden jokain saa selville fre(x):ll[ ja siit[ ja ohjelmien koosta ei sen enenp[[. Mutta miten talletat ohjelmat.
Tee ensin KOKO basic-ohjelma ja tal- leta se. Sitten sammutat koneen ja la- taat ohjelman ja katsot ohjelman lopun peek(45)+256*peek(46). Lis[[ t[h[n lukuun muutama tavu ( noin niinkuin var-muudenvuoksi) ja kirjoita mc alkaen siit[. Kun konekieli on valmis talleta se levylle, kunhan ensin pistit yl\s sen loppuosoitteen. Nyt sammutat koneenja lataat basicin ja sitten konekoodin ( tietenkin ,8,1:ll[ ) sitten vain poke-at paikkoihin 45 ja 46 konekoodin loppu-ositteen (+muutama tavu varmuudenvuoksi)ja talletat koko roskan yhdell[ savella aivan normaalisti[: SAVE"PROGIS",8 .
Nyt kun lataat ohjelman tulee sek[ basic, ett[ mc samalla kertaa ilman pilkku ykk\st[ ja oikeille paikoilleen, mutta basicohjelmaa ei saa eik[ voi muuttaa t[m[n j[lkeen niin,ett[ sen pituus muutuu yhdell[k[[n tavulla, muuten mc ei pysy paikallaan. Ja vaikka se ei si-s[lt[isi yht[[n absoluuttista osoitetta muuttuu sen alkuosoite. T[m[n voisi tietysti kiert[[ laittamalla alkuun isonliudan NOPpeja ja aloittamalla jostain niiden keskelt[, mutta menee liian vai- keaksi. Miten sitten voi tiet[[ oikean alkuosoitteen konekieliohjelmalleen jos ei ole viel[ ehtinyt basicohjelman lop- puun ja mik[ kiinnostavinta muuttuu ba- sicohjelman loppu silloinkin kun kirjoi-tat sys k[sky[. No voit laittaa siihen kohtaan vaikkapa n[in: SYS xxxxx.Nyt voit lopuksi kirjoittaa [ksien p[[l-le oikean osoitteen ilman ett[ ohjelman pituus muuttuu ( tietenkin pit[[ laittaanolla eteen jos mc alkuos. on 4 mrk pit-k[).
Ent[p[ miten basic-ohjelman k[ytt[m[t muuttujat suhtautuvat konekieliohjel- maan? Eiv[t mitenk[[n koska ne eiv[t tied[ sen olemassaolosta mit[[n. Lata- uksen yhteydess[ basickoodin loppuosoit-teeksi tuli konekoodin loppu ( se mink[ poketit silloin) ja muuttujat ei v[lit[ hevon hel... mit[ sit[ ennen on. Ja basic ohjelman suoritus taas ei p[[se lujahtamaan konekoodin puolelle, koska basic loppuu kolmeen nollan, jotka ovat paikallaa automaattisesti. Kuva selit- t[[: ( muut paitsi ek[ osoite ovat tie- tenkin tilanteesta riippuvia )
Homma ei onnistu jos et osaa laskea eniten- ja v[hitenmerkitsevi[ tavuja yh-teen. Ja pojektia helpottaa suunnatto- masti jos omistat mc-monitorin, joka on muistissa jatkuvasti, mutta ei kulu- ta koneen muistia ( esim. Fastload ). Olen k[ytt[nyt t[t[ kikkaa joissain Ilpoissa.
2.
Listauksen sotkemis niksej[.
<x> merkit tarkoittavat yhden n[pp[i- men painamista.
10 REM""<del><rvs on>ttttttt<rvs off>TAMA LOPPU NAKYY ILMAN RIVINUMEROA
<del> tarkoittaa siis n[pp[imist\n oik. yl[nurkassa olevaa nappia sellaise-naan, ilman shifti[.