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...)
Maugli: Ok. Kérjük azt a 32 byte-ost, mert a 39-est meg tudom dönteni :-)
Tessék: (31 byte a SEI nélkül)
begin DEC $FF07
..... BPL copy
..... INC addrs+1
..... LDA #$07
..... STA $FF07
copy. LDX #$27
wait. CPX $FF1D
..... BNE wait
addrs LDA $2100,x
..... STA $0C00,x
..... DEX
..... BPL addrs
..... BMI begin
Bubis: Na mivan, beizgattalak? :)
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... Én tényleg már azóta írogatom őket, és nyaggatok mindenkit az áltam ismert fórumokon/levélben, hogy írjanak... Nézd csak meg a (315)-öst... Viszont a tömörítőről nem tudtam. Most töltöttem le. Te használtad már?
Nem, mind "bugyiban" volt, szobában, dobozban... Van 1 pár bejezetlen munkám... (4bites digi+sprite...:)
Irni kellene 1 pár konvertáloprogit, ami a PC-s képeket, digiket átrakja... :) Najó... Inkább csak a képeket... :)
Mintha Lacoste-nál láttam volna ilyet, de nem tudom az emil cimét... Valaki esetleg?
Én most másoltam át egy csomó lemezet (400 oldalnyit), 100-ból 1 volt rossz átlagban. Úgyhogy szerintem nincs okod aggódásra. :) Hacsak nem a hangfalon tároltad őket 10 évig :-))
Nem adtam el! Hogyan is tettem volna. Csak bekrepált. Először a táp kezdett rosszalkodni, melegedett, így 15 perc után fagyott a plusi. Szereltünk rá hűtőbordát. Atán egyszer csak fekete kép. Azóta kiszereltünk egy-s-mást Jimy gépébe átraktunk pár cuccot. (pl. ted)
Na jó, mondjuk én vagy 2 hónapja csak plusin programozok, nyomorgatom be az 1K-s játékaimat. Olyanokat optimalizáltam, hogy csak na... Remélem lesz meglepi, mikor kijönnek.
Na mivan, beizgattalak? :) Egyebkent van tomorito direkt 1K-s progikra. Ha szukseged van ra es erdekel, beirtam a cimet a Plus/4 World Forumba az 1K Game Compo topikba.
Jesszusom, te eladtad a gepedet?!? :)))))
En ismerek egy sracot, akinek valszeg lenne eledo Plus/4-ese is (mivel a pincejeben lattan vagy 10 C64-et, ugyanannyi 1541-et es mas commodoreokat is), de o budapesti. Ha erdekel az emailje bigfoot@c64.rulez.org, mond, hogy bubis iranyitott hozza. Neha eljar szeged fele is, tehat meg annak is lehet valoszinusege, hogy nem kell utaznod.