Sakkprogram 487 bájtban

Hírek, érdekességek, melyekben felbukkan a kis fekete doboz is...
Avatar
csege
Alapító tag
Hozzászólások: 220
Csatlakozott: 2012.01.06. 15:15
Tartózkodási hely: Föld.Naprendszer.Tejút

Sakkprogram 487 bájtban

Hozzászólás Szerző: csege » 2015.01.28. 13:07

Hihetetlen: 487 bájtban írtak meg egy komplett sakkprogramot
Egy demócsoport a héten tette közzé annak az x86-os processzorokra írt programnak a forráskódját, ami egy vélhetően a tagok korával vetekedő idő óta fennálló csúcsot döntött meg a legkisebb sakkprogram kategóriában. A BootChess ugyanis alig 487 bájtban implementálja a klasszikus játék egy gépi variánsát, szemben az eddigi csúcstartó 1K ZX Chess mintegy kétszer ekkora méretével.
http://prog.hu/hirek/3804/Hihetetlen+48 ... ramot.html


és ott a cikkben a link a ZX Chess hez is:
http://archive.org/stream/your-computer ... 9/mode/2up

Avatar
csege
Alapító tag
Hozzászólások: 220
Csatlakozott: 2012.01.06. 15:15
Tartózkodási hely: Föld.Naprendszer.Tejút

Re: Sakkprogram 487 bájtban

Hozzászólás Szerző: csege » 2015.01.28. 13:18

És akkor már érdemes végiglapozni -olvasni magát az újságot is:
Your Computer Magazine
http://archive.org/stream/your-computer ... 0/mode/2up
rettenetesen erős anyag szerintem. Ha nekünk ilyen forrásaink lehettek volna!
:roll:
(c)

Avatar
Asimo
Hozzászólások: 147
Csatlakozott: 2012.01.09. 18:49

Re: Sakkprogram 487 bájtban

Hozzászólás Szerző: Asimo » 2015.01.28. 22:26

csege írta:A BootChess ugyanis alig 487 bájtban implementálja a klasszikus játék egy gépi variánsát, szemben az eddigi csúcstartó 1K ZX Chess mintegy kétszer ekkora méretével.
Nekem eddig ezeket sikerült találnom:
BootChess - 508 bájt
ZX-81 Chess - 672 bájt

Persze így is kisebb a BootChess, de nem fele.

csaba
Alapító tag
Hozzászólások: 332
Csatlakozott: 2012.01.09. 19:18
Rádióamatőr hívójel: HG5BMU
Tartózkodási hely: Surány
Kapcsolat:

Re: Sakkprogram 487 bájtban

Hozzászólás Szerző: csaba » 2015.01.29. 08:20

Gondolom ez a méret a betöltött kód, az 1K-ban pedig még benne van a képernyő memória, változók, munkaterület is.
A cikkben szereplő 487byte-ban ez nyilván nincs benne, így a ZX81-1K-val nem lehet összehasonlítani.

Avatar
Asimo
Hozzászólások: 147
Csatlakozott: 2012.01.09. 18:49

Re: Sakkprogram 487 bájtban

Hozzászólás Szerző: Asimo » 2015.01.29. 22:14

csaba írta:Gondolom ez a méret a betöltött kód, az 1K-ban pedig még benne van a képernyő memória, változók, munkaterület is.
A cikkben szereplő 487byte-ban ez nyilván nincs benne, így a ZX81-1K-val nem lehet összehasonlítani.
Az 1K Chess nem 1K code. A 16K-s játék sem 16K, hanem 16K-s gépen futó. Az 1K-s chess is 1K-s unexpanded ZX-81-en futó játék.
Írtam, hogy az 1K Chess gépikódja 672 bájt. Viszont azt elírtam, hogy 508 bájt a BootChess. Fordítástól függően, a legkisebb mérete 487 bájt.
Ez pedig jól összehasonlítható. 185 bájttal rövidebb gépikódban megvalósította ugyanazt a sakkot.
Nyilván olyan lehetőségekkel élt, amivel a ZX81 nem tud (BIOS hívások, rövidebb gépi kódú utasítások).

Egyébként, tavaly volt egy magyar ZX81 1K chess plusz verzió, Gaál Zsolttól:
http://www.sinclairzxworld.com/viewtopic.php?f=4&t=1476

Nem néztem meg részletesen, mintha ő további kb. 40-60 bájtot faragott volna az eredeti verzióból. Persze még így is 120-140 bájttal rövidebb az x86-os verzió.

Avatar
FpgaJoco
Hozzászólások: 125
Csatlakozott: 2012.01.09. 15:20

Re: Sakkprogram 487 bájtban

Hozzászólás Szerző: FpgaJoco » 2015.01.30. 08:48

Szerintem a z80 és az x86 kód összehasolítása ilyen módon értelmetlen, a közhelyes krumpli-alma összeadás jut eszembe róla.
Az x86 már a legelején is egy osztállyal "magasabb" volt, mint a z80, olyan utasításokkal rendelkezett, amelyek rövidebb kód
írását tették lehetővé. Csak pár ezek közül:
- összetettebb feltétel vizsgálat, amivel a relációk azonnal kiértékelhetők (jp jnp jg jge jle), míg a z80 egyszerre csak egy jelzőbitet tud viszgálni (jr c, nc, z nz...)
- komplex címzésmód a memória hozzáféréshez (base+index+offset) pl mov al,_b[si+bx+brd-num-'a'+6]
- loop jcxz test, rep utasítások
- div és mult (bár ezeket nem láttam a forráskódban, az igaz)
A legtöbb ilyet a z80 cpu-n csak több soros rutinokkal lehet megoldani. Hozzáteszem, noha a kód maga 16 bites x86 kód, vannak benne 486-os utasítások
is, pl bsr (bit scan) vagy movzx (8-16 bit konverzió), amelyek megint csak bővebb rutint igényelnénk z80-on.
Plusz ahogy előttem is említettétek, van pár bios hívás (noha ugyanez a lehetőség a 8 bites gépeken is adott, ott is hívhatsz basic rutint),
Így az összehasonlítás komoly szakmai szemmel értelmetlen. Csak a laikusok nézhetnek kerek szemmel, mi bölcsen tudjuk, hogy krumpli az almával
nem komparálható. :-)

Joco

Válasz küldése

Vissza: “Hírek, érdekességek”

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 2 vendég