T[ll[ kerralla on keskitytty enemm[n Basicin puolelle, nimitt[in POKEja ym. on taas kaiveltu muistinpohjalta esiin. Ihan kiva ja TOSI k[yt[nn\llinen on seuraava:
KUINKA SAADAAN OHJELMASSA KURSORI VILKKUMAAN?{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}{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}
POKE 204,0 saa aikaan sen, ett[ kur- sori vilkkuu siin[ kohdassa ruutua itsekseen, mihin viimeksi on PRINTtauksella j[[ty. VILKUTUS toimii koko ajan, koska hommaa hoidetaan konekielisest[ INTERRUPTista v[h[n v[- li[. Esim. GET-rutiinissa on t[t[ ideaa hauska k[ytt[[.
VILKUTUS saadaan pois pokeilemalla POKE 204,1 (kiitti MIKKO!)
HALUATKO SAADA TIETOKONEESTASI ULOS KIRKONKELLON {SHIFT-+}{SHIFT-+}NT{SHIFT-+}?{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}{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}
Jos niin, kirjoita t[m[ ohjelma:
1 FOR B=1 TO 15:POKE 54296,B:NEXT
2 FOR N=1 TO 3:POKE 54277,10: POKE 54278,252:POKE 54272,254
3 POKE 54273,7:POKE 54276,17: FOR T=1 TO 100:NEXT:POKE 54276,16
4 FOR R=0 TO 1000:NEXT:NEXT N
5 FOR R=14 TO 0 STEP-1:POKE54296,R:NEXT
Kuminaa saat venytelty[ muuttamalla muistipaikkoihin 54277 ja 54278 pokea- misia. {SHIFT-+}[nen korkeutta voit muuttaa vaihtamalla 54272 ja 54273 pokejen arvoa.
Tuo 64:n KERNAALI on kyll[ hy\dyllinen. Keksin taas laatiessani uutta versiota valikosta uuden RUN/STOP-estokikan..
Idea l\ytyy INTERRUPTista (keskeytyk- sist[). Aivan ensimm[inen rutiini, mink[ interrupt tekee, on ett[ se katsoo, onko run/stoppia painettu ja sen j[lkeen hoitaa koneen sis[isen reaaliaikakellon. Jotta saamme sen estetty[, muutamme interruptin alku- osoitetta.
Konekielell[: SEI LDA #$34 LDY #$EA STA $0314 STY $0315 CLI RTS
BASICILLA en ole kokeillut, mutta sen PIT{SHIFT-+}ISI menn[ n[in:
POKE 788,52: POKE 789,234
Normaali alkumuistipaikka on $ EA31. Nyt ohjelma hypp[[ suoraan sen yli kursorinvilkutusrutiiniin. Muista, ett[ reaaliaikakello ei nyt toimi.
HI ja LO ovat sen muistipaikan HI- ja LO-BYTEJ{SHIFT-+}, johon halutaan kone ohjata silloin, kun RESTOREA on n[p[itetty.
M-paikkaan laitetaan sitten k[sky RTI joka ohjaa koneen taas p[[ohjel- maan. Jos haluat, voit pist[[ sinne my\s (RTI-k[sky[ ennen) jonkin pienen ohjelmanp[tk[n, ei kuitenkaan kovin pitk[[ sellaista, joka esim. muuttaa ruudun v[rej[ tai kirjoittaa vaikkapa {SHIFT-+}H{SHIFT-+}KUTTI tai sitten resetoi muistia...
RTI-k[skyh[n on k[sky, joka vastaa v[h[n basic-k[sky[ RETURN tai konekie- len RTS:[[, mutta t[m[ RTI on tehty eri INTERRUPTeja varten. RTI-k[sky on sellainen, ett[ jonkin interruptin (BREAK-,RASTER-,NMI-,...) lopussa palataan RTI-k[skyll[ p[[ohjelmaan.
(Tarkoitettu 64:n basicia harrrasta- maan alkaville)
Olettekos koskaan yritt[neet tehd[ latausohjelmaa jollekin ohjelmalle??
Serkkuni kyseli sellaista tuossa v[h[n aikaa sitten puhelimitse ja en ole varma menik\ juttu perille, joten t[ss[ tulee Antille ja muillekin,jotka haluavat esim. pelins[ ohjeet ohjel- maansa, kuitenkin ennen p[[ohjelman latausta.
Idea on aivan yksinkertainen ja sit[ samaa k[ytt[[ my\s Floppiksen MENU-ohjelma ladatessaan p[[ohjelman, joka on kanssa basicia, ja k[ynnis- t[en sen samantien.
Ohjelmien alussa ei tarvitse olla mit[[n salaper[isi[ IHMEPOKEJA, vaan yksinkertaisesti l[hdett[ess[ lataa- maan uutta basic-ohjelmaa POKEtaan koneen n[pp[imist[puskuriin pari juttua, jotka kohta selit[n. Samoin ruutuun PRINTataan v[h[n tavaraa ja viel[ 'painettujen n[pp[inten' luku- m[[r[ POKEtaan muistiin. Selit[n kohta.
N[pp[imist\puskuri on semmoinen muistialue muistissa, jonne kone rekis- ter\i aina kulloinkin painetut n[pp[imet tai k[skyt. Oletkin varmaan huomannut ladatessasi jotain ohjelmaa, ett[ kun kone lataa ja lataa ohjelmaa ja painelet joitain n[pp[imi[, niin ohjelman latauduttua kirjoittamasi teksti tulostuu ruutuun. Se johtuu siit[, ett[ n[pp[imist\puskuri on 'varastoinut' kirjoittamasi tai ainakin suurimman siit[ osan muistiin. Muistiin mahtuu 10 merkki[ tai k[sky[.
Alue on muistissa 631-640 (POKE 631,?) ja siihen liittyy muistipaikka, joka laskee painettujen n[pp[inten m[[r[n. Muistipaikka on 198, eli sinne joku arvoista 0-10. Jos 0, niin kone alkaa kirjoitetun tallentamisen n[pp[imist\- puskuriin alusta. Jos poketaan 198:aan vaikkapa 2, kone lukee muistipaikkojen 631 ja 632 arvot ja tekee niiden mukaan. Pokeiltu arvo voi olla vaikka RETURN ja se on koodattuna arvo 13. Tai arvo voi olla 131, joka vastaa yhdistelm[k[sky[ LOAD <RETURN> + RUN. Tuota arvoa meid[nkin rutiini k[ytt[[ hyv[kseen.
NYT ON VAIN NIIN, ETT{SHIFT-+} TILA LOPPUU. LATAA JATKO-OSA LEVYLT{SHIFT-+} VALIKON KAUTTA. PAINA F6-N{SHIFT-+}PP{SHIFT-+}INT{SHIFT-+}...!!