Vagy egy IDE-m is, abban fejlesztek mindent. Fordítónak AS65-öt használ, emulátornak pedig YAPE-t. Fel kéne tegyem őket, de eddig híre hamva sem volt senkinek akit érdekelt volna a Plusi programozás.
Bekerült mind a négy játékom a versenybe: 2002 1K MiniGame. Nemsokára lehet majd szavazni.
Egyébként valaki emlegetett egy disassemblert lejjebb. Nekem van a PC-re egy Plus/4 disassemblerem, csak nincs fent a neten. Nagyon szépen megy, bár lenne rajta mit fejleszteni. Vagy egy IDE-m is, abban fejlesztek mindent. Fordítónak AS65-öt használ, emulátornak pedig YAPE-t. Fel kéne tegyem őket, de eddig híre hamva sem volt senkinek akit érdekelt volna a Plusi programozás.
Igazából semmi extra követelmény:
- csak abban a 8 sorban mozgassa az FF07-et ahol megy a felirat
- ne kelljen a szöveget többszörösen letárolni a memóriában :)
A többi nem érdekes, mondjuk rá. És optimizáljunk a méretre.
Néha 7végén is dolgozni kell. :(
Optimalizálás: Igazán nagy projectnél az ember tényleg elbukna, illetve rengeteg munka lenne a géppel versenyezni. Közepes feladatoknál is inkább belemgyünk egy kicsit gyengébb kódba, ráhagyjuk a gépre a hülyeségeit, nem töltünk el vele 100x-annyi időt. De ilyen pici feladatnál nem nyerhet a gép! :)
Várom a általad definiált scroll-feladatot. Jó lesz, mert a megkötések miatt nagyobb lesz mérete, és még többet lehet optimalizálni rajta :))
Te most vettél netet otthonra, vagy bejársz 7végén? :)
Optimizálás: igaz is nem is. Egy nagyobb kód optimizálását talán minden szempontból jobban csinálja a gép... De amiben az embernél van az előny - mint mindig - az a megértés, valamint a akár a követelmények, körülmények megváltoztatása a cél érdekében. Ezt egy fordítóprogram sosem teheti meg. Legalábbis asszem :)
Viszont MC! Ha azt akarod, hogy teljes, használható scrollal versenyezzünk, akkor írd ki a feltételeket. Akkor arra fogunk optimalizálni. Ezt én tökjó szórakozásnak tartom. Ilyenkor bizonyosodik be, amit sokan nem ismernek el, mégpedig az, hogy az EMBER sokkal jobban tud optimalizálni, mint egy fordító.
Tehát tudjon 256 byte-nál többet is scrollozni, legyen előtte-utánna ff1d-vágás, és a raszteridő is minimalizálódjon? Ezt hogyan lehetne vesrenyszerűen eldönteni? A te sebességmérőddel? Ok, írj le mindent, szerintem ketten már biztos versenyezni fogunk... :) (Ugye Csabó?)
Látom azóta MC is kinyilvánította a véleményét. Nem baj MC, tudod ez csak amolyan lokális "szénnéoptimalizálomverseny" nem pedig globális, mindent elsöprő. (Azt úgy lehetne megrendezni, hogy a ROM-ot optimalizálnánk, és van egy olyan érzésem, hogy felére tuti lemenne :)) )
Tehát Csabó! Sikerült még leszednem belőle :))) Íme:
Így már csak 30 byte.
Csakhát a Te optimalizálásodban volt egy olyan "megkötés", ami az enyémben nem. Nevezetesen, hogy a rasztervárás csak #$27 lehet. Elfogadom, ez egy jó trükk, mert a #$27-et felhasználod a sorkiíratáshoz is, de akkor engedd meg, hogy én is éljek egy újabbal:
Itt a scroll forrása $d0-$d1 ugye. Ha azt mondod, nem fogadod el, belegyezek. (még akkor is 1 byte-al döntelek :)) )
A sta$0c00,y -t is le lehetne cserélni egy sta($d2),y-ra, egy újabb byte nyerése érdekében, de ez már tényleg nem lenne etikus. :)
Az első két byteot írja felül. Elkezd $1005 felett $00-at keresni, ahol megvan (szerinte) ott kezd a következő sor. Aztán a $00-utáni byte-tól is sorszámoz tovább :-(
Mindez elkerülhető, hogyha monitorból L"filename",8-al tölti az ember. Akkor fut. Csak éppen ez egy kicsit nehézkes az átlagos felhasználónak, és az 1Ks versenyben ki van írva, hogy LOAD/RUN-ra menjen.
YAPE-ban azért megy, mert csak (hogy Ati szavaival éljek) "benyalja" a memóriába a programot. Szóval nem hajtódik végre az átsorszámozás. Ez valójában egy bug, emiatt van is pár program ami érdekes módon nem fut (kell nekik az átsorszámozás).
Na, 3 db játék teljesen kész. A negyedik is megy, de azon még javítgatok... Jajj de nincs hely...
És ha újralinkeli, akkor egy fix helyen felülír valamit, nem? Azt nem lehet elkerülni, hogy ez kárt okozzon? Vagy akkor már nem éri meg?
És hogyhogy a YAPE alatt nem linkel?
Sajnos az a trükk nem vált be. Ugye lehet kódot írni $1001-től. Mikor átfut a SYS-en (ami $9E $xx $xx) az is, meg egy klasszul választott SYS érték (mondjuk 4242 -> szóval 4 = $34 = NOP2) is átugorható minden baj nélkül. Tehát: az első 4 byte (ami rendesen $100D a basic link, meg akármi a sorszámnak) már felhasználható. Csakhogy ez csak YAPE alatt ment... :-( Mikor DLOAD-dal (vagy akár LOAD,8,1-el) töltesz egy ilyen programot, akkor a hülye basic újralinkeli azt az egy basic sort, szóval elromlik a kód. Nem jött össze végül is.
1. Az eredetiben (Maugli 56 byteosában) is benne volt ez a hiba.
2. Igen, ez jó trükk!!! Senkit nem zavar hogy lassul, mivel méretre optimalizálunk, nem sebességre. Ha ezt nem tenném, mint lentebb már elmítettem Mauglninak, két FF1D vizsgálat kellene, mert azok a ciklusok amikor nem másoljuk a szöveget, túl gyorsak és befejezik egy rasztersoron belül. Érted?
3. Ez a hiba is benne volt az eredetiben.
Nyilvánvaló, hogy ez a kód így nem jó semmire. A célom csak az volt, hogy az eredetit rövidítsem (nem kijavítsam :-)
Azért vannak fenntartásaim.
1, csak 256 hosszú szöveget kezel, de azt is úgy, hogy az első 40 karaktert meg kell ismételni $2200-tól. Ez ellentmond a nagy spórolós kódnak, mert 40-et nem spóroltál ezen a megoldáson :)
2, feleslegesen minden frissítéskor kirajzolja újra az egész szöveget, holott elég volna minden 8. esetben (raszteridő)
3, végképp csak kötekedés, de a teljes képernyőre ráereszted a módosított ff07-et
Főleg az 1. pont a húzós kifogás, mert ugye spórolás volt a cél, de ez így önmaga ellen dolgozik :)
Amúgy zseniális, nem nagyon lehet már összébbnyomni
Ezt mire érted? Emlékszem, hogy te hoztad fel a témát, de én rögtön (aznap) lelkesen rávágtam, hogy írok játékokat...
Igen arra gondoltam. Ugy latszik tartos volt a lelkesedesed, kivancsian varom a vegeredmenyt!
Viszont a tömörítőről nem tudtam. Most töltöttem le. Te használtad már?
Nem, meg nem probaltam, mostanaban inkabb nagyobb dolgokat irok. Persze gondolkodtam, hogy en is indulok valamivel, de semmi egetrengeto nem jutott eszembe.
Egyebkent korabban irtad:
Rájöttem hogy hogy lehet futtatható kódot írni $1001-től, úgy hogy mégis Basicben elinduljon a program (csomó byte-ot spórolunk...)