the scene > demoscene
Neon Station by Digimind
ssg:
dosbox 0.72 ile duzgun cali$miyor. alet acili$ta register'larin belli degerde oldugunu assume ediyor onla ilgili bir problem olabilir.
disassembly'sinden anladigim kadariyla demonun boyu 253 byte aslinda ama araya bir adet sub al,0 siki$tirmi$ amcam 255'e tamamlamak icin :) bir de kodu biraz dolambacli yazmi$, misal mov al, 13h yerine sub al, ed gibi. (halbuki ayni yeri kapliyorlar).
geri kalani recursive matematik mucizesi duruyor. bol bol fpu i$lemi. fpu instruction'lari stack bazli oldugundan ne i$ yaptigini cikarmak icin kagit kalem kullanmak lazim, zahmetli i$.
muthi$ bir teknik ba$ari.
skate:
size limiti 255 değil 256 olduğu için sub al,0'ın bir işlevi olacağını tahmin ediyorum. aklımdaki ihtimaller:
1) carry flag ile işlem yapıyor olabilir.
2) self modifying code kullanmıştır, 0'ın olduğu adresi değiştiriyordur kod.
3) disassembly sırasında bazı opcodelar eksik görüntülendiyse o komut sub değil ondan önce gelen komutun parametresi olabilir.
ıncelemedim, tahmin sadece.
ssg:
senin du$undugunu ben de du$undum skate ama koda bakinca oyle olmadigi goruluyor. instruction sadece bir kere ba$ta (int 10h'dan sonra) execute ediliyor. sonrasinda gelen instruction ise fld idi yanli$ hatirlamiyorsam. (carry'yle keskelalaka). carry'yi ilerde bir yerde kullandigina dair de bir emare hatirlamiyorum.
ben soylediklerine ek olarak bir ihtimal hizdan kazanmak icin loop address'i aligned hale getirmeye cali$mi$ olabilir demi$tim ama takip eden loop label 11. offsette.
belki de unutmu$tur :)
skate:
evet garipmiş. unutmuş olduğuna ihtimal vermek istemiyorum ama olabilir. kodu adreslere dikkat ederek kaydırıp denemek lazım aslında.
ben de bir kez aynen 2 bytelık bir opcode'u fazladan bırakmıştım Horny 31b intro için. Sebebine gelince; introyu kodladım, 31b olduğunu gördüm, ismini Horny koydum, sonra gereksiz 2 bytelık bir satır gördüm. ısim ve espiri optimizasyon için çırpanan deli gönlümü bastırmayı başardı :D
bkz: http://www.tr-demoscene.info/bbs/showthread.php?t=2178
official olarak yayınlamadığımı, sadece bu forum ve bitfellas'a geyik olarak gönderdiğimi hatırlatayım.
Bakkada:
255Byte nirvanaya ulasmistir :)
Navigasyon
[0] Mesajlar
[#] Sonraki Sayfa
[*] Önceki Sayfa
Tam sürüme git