Uutiset:

Genetic Point BBS Powered by Amiga
g-point.tunk.org port:1024 tai 500

Main Menu

Texti seikkailu muistin lisäys

Aloittaja virgo, maaliskuu 08, 2025, 16:11

« edellinen - seuraava »

virgo

Aika ajoin foorumeille tulee juttua aiheesta
Texti seikkailu pelit ja varsinkin niiden ohjelmoinnissa
toistuu monesti sama aihe eli muistin loppuminen kesken
pelin teon !

Monesti keskustelu ajautuu nopeasti hyvin tekniseksi ja varmasti myös
haastavaksi pelin ohjelmoijalle kun aletaan puhumaan textin pakkaamisesta
ynnä muista kone kieltä vaativista asioista johon pelin tekijällä
ei varsinaisesti ole vielä kykyä paneutua tarvittavalla intsiteetillä
neuvoista varmasti on apua joillekin mutta suurimmalle osalle
se näyttää johtavan siihen että koko projekti kuivuu kasaan
ja into laantuu kun visiotaan ei pysty täysillä toteuttamaan

päätin sitten tylsyyttäni tappaakseni tehdä asialle jotain
ja siitä syntyi mem.add niminen ohjelma simpeliydessään
sen antaa pelin tekijälle Basicin alaisuudessa täyden muisti avaruuden
käyttöön lähinnä ohjelma on tarkoitettu huone kuvausten siirto
muisti alueille johin Basic ei helposti pääse mikä on about puolet
ja koska ne yleensä vievät pelistä mammuttimaisen osan muistista

konekieli ohjelma valloittaa tarkoitukseen muisti alueen $C000-FFFF
ohjelma tukee myös alueita $8000 alkaen mutta rutiinien sijoitus
aiheuttaa tässä tapauksessa ongelmia muuttujien kanssa
$A000 alue taas on ROM piirin alla ja se pitäisi ensin saada edestä pois
että sitä voisi kutsua

joten ainakin aluksi $C000- riittäkööt
allekirjoittaneeseen voi ottaa yhteyksiä jos haluaa ottaa käyttöön myös
Basic ROM alla olevan muistin !

Olen tässä kirjoittamassa testin seikkailua jolla demostroidana rutiini
käyttöä ja samalla saan myös testattua että rutiini myös toimii
jossain kohtaa kirjoitan homman vielä uudelleen REL fileitä käyttäväksi
joka pitkän päälle on se järkevin tapa toimia isojen data määrien kanssa
tämä projekti alkoi pelkästä konseptin idea testauksesta
joten tehdääm tämä ensin valmiiksi ja siirrytään REL fileisiin
kun sen aika koittaa tedään tämä siis ensin valmiiksi ettei jää kesken..,
ja jos ei pidä jatkuvasta levyaseman rouskuttamisesta tämä on siihen hyvä ratkaisu
samoin toimii myös kasetti versiona jota REL ei tue

ohjelma sijoittuu siis osoitteeseen $C000
sitä kutsutaan sys4096*12 komennolla kerran latauksen jälkeen
ohjelma linkkiytyy USR(x) komentoon joka kautta sitä käytetään
seuraavaksi se lataa levyltä tai kasetilta SEQ,PRG tai USR fileen
nimeltä "TEXT" ohjelma tarkistaa myös että onko texti
tiedosto ja ladattu vai ei ja jos on niin latausta ei tehdä uudelleen
vain USR komento linkataan toimivaksi

Tämän jälkeen text tiedosto kanta on valmis käyttöön
yksin kertaisella komennolla A=USR(huone) komennolla
joka tulostaa ruutuun huoneen kuvauksen ja pysäyttää
väliaikaisesti tulostuksen jos se ylittää 20 rivin pituuden

Itse texti tiedosto näyttää tältä tiedoston ensimmäinen merkki pitää olla
"*"
;--- file text ---
*
Huone #1
Tämä on lasten huone
*
Huone #2
Tämä on keittiö
*
Huone #3
Tämä on olohuone
@
tiedoston päätää aina "@" merkkin
textin voi tehdä suoraan PCllä ja muuttaa tarvittavaan muotoon
Petcat ohjelmalla joka asentuu koneellesi Vicen mukana
petcat -w -text -o text -- pc.text
HC tekijät käyttävät jotain C64 textin käsittely ohjelmaan joka mudostaa
SEQ tiedostoja esim. TurboAsm

itse Basic ohjelma näyttää tältä

10 clr:am=4096*12
12 if peek(am)=0then:load"mem.add",8,1
15 sys am

CLR komento on melko välttämätön nollamaan muuttuja taulukot
konekieli ohjelman latauksen jälkeen
ainakin DIM komento ensimmäisellä yrityksellä sekoa jos sitä ei tee
PEEK komento tarkistaa onko ohjelma jo ladattu muistiin
SYS linkittää USR komennon käyttöön ja jos tietokanta ei vielä
ole koneen muistissa se ladataan sinne
ohjelma tulostaa ruudulle laskurin montako blokkia se on jo ladannut muistiin
tulostus paikkaa voi säätää POKE komennolla
muistipaikat X=$340 ja Y=$341 (832 ja 833)

Toki rutiinia voi käyttää mihin ikinä max määrä tietueita on
1-255 muistin loppu voi tulla aikaisemminkin jos tietueet ovat
kooltaan suuria

Liittenä itse ohjelma ja koe text tiedosto
yes yes bad englis mutta jollain homma on alotettava :p
rivitystäkään ei ole korjattu 40 merkki leveyteen..
( huom. Liitteet näkyvät vain sisään kirjaituneille käyttäjille )

lisää tietoa apua saa kysymällä  hauskoja ohjelmointi hetkiä !

Genetic-PET C64 BBS:
g-point.tunk.org port 1025

Genetic-point Amiga BBS:
g-point.tunk.org port 500

virgo

koe pelikin tulee jakoon kun saan sen valmiiksi...
Genetic-PET C64 BBS:
g-point.tunk.org port 1025

Genetic-point Amiga BBS:
g-point.tunk.org port 500