Welcome, Guest. Please login or register.


Author Topic: HiSoft Pascal (Read 180287 times)

Offline Povi

  • EP addict
  • *
  • Posts: 2307
  • Country: hu
    • http://povi.fw.hu
Re: HiSoft Pascal
« Reply #270 on: 2017.April.25. 13:37:45 »
kis hack:

integer (16 bit, előjeles) szám kiiratása word-ként (előjel nélkül)
prímszámok 65535-ig
*** Speicherplatz zu klein

Offline Lacika

  • EP addict
  • *
  • Posts: 3211
  • Country: hu
    • http://www.ep128.hu
Re: HiSoft Pascal
« Reply #271 on: 2017.April.25. 22:13:51 »
Találtam egy súlyos bug-ot a HiSoft Pascalban.

Az < összehasonlító operátor hibás eredményt ad, ha a két oldal különbsége nagyobb, mint 32768.

Tehát:
-1 < 32767 = TRUE
-2 < 32767 = FALSE

Az > összehasonlító operátor hibás eredményt ad, ha a két oldal különbsége nagyobb, mint 32767.

Tehát:
0 > 32767 = FALSE
-1 > 32767 = TRUE

Ez elvileg nem bug, benne van az eredeti doksiban is. Meg az enyémben is :ds_icon_cheesygrin:
"A HiSoft Pascal-ban, alapértelmezett beállítással, egész típusú kifejezések összehasonlításánál, ha a két szám közötti különbség nagyobb, mint 32767, akkor hibás eredményt kapunk. Például, ha I, és J változó INTEGER típusú, az alábbi vizsgálat eredményeképpen megjelenik a 'Rossz eredmeny' felirat:

    I:=-768;J:=32000;
    IF I>J THEN WRITELN('Rossz eredmeny');

A pontos, de lassabb kiértékelő algoritmust az I direktívával kapcsolhatjuk be. (Ld. fordítási direktívákat.)"

"I direktíva
{$I- }
{$I+ }
Az egész típusú kifejezéseken végrehajtott relációs műveletek kiértékelő algoritmusát választja ki. Az alapértelmezett, kikapcsolt direktíva esetében a gyorsabb algoritmust fordítja a programba, ilyenkor, ha a két vizsgálandó kifejezés értéke közötti különbség nagyobb, mint 32767, hibás eredményt kapunk. Bekapcsolt állapotban lassabb és hosszabb kódot fordít, amely azonban minden esetben helyes eredményt ad."

Offline Lacika

  • EP addict
  • *
  • Posts: 3211
  • Country: hu
    • http://www.ep128.hu
Re: HiSoft Pascal
« Reply #272 on: 2017.April.25. 22:15:45 »
kis hack:

integer (16 bit, előjeles) szám kiiratása word-ként (előjel nélkül)
prímszámok 65535-ig

Ez jól hangzik.
WORD típust bele lehet "belehegeszteni" a Hisoft-Pascalba?

Offline Povi

  • EP addict
  • *
  • Posts: 2307
  • Country: hu
    • http://povi.fw.hu
Re: HiSoft Pascal
« Reply #273 on: 2017.April.26. 09:27:36 »
Ez jól hangzik.
WORD típust bele lehet "belehegeszteni" a Hisoft-Pascalba?
én kicsi vagyok ahhoz... :-) Meg ahhoz full fordítható disassembly kéne, ami nekem nincs
a {$O-} -val ki lehet kapcsolnia túlcsordulás figyelését, tehát nem fog kiakadni a 32767 + 1 -re
de azt könnyű megoldani, hogy word-ként írja ki az integer-t, két poke az egész

*** Speicherplatz zu klein

Offline Povi

  • EP addict
  • *
  • Posts: 2307
  • Country: hu
    • http://povi.fw.hu
Re: HiSoft Pascal
« Reply #274 on: 2017.April.26. 09:31:09 »
Ez elvileg nem bug, benne van az eredeti doksiban is. Meg az enyémben is :ds_icon_cheesygrin:
Hm... Tényleg!
Viszont akkor kikapcsolt I-vel úgy működik, mintha word-oket hasonlítanál össze :-)
*** Speicherplatz zu klein

Offline Lacika

  • EP addict
  • *
  • Posts: 3211
  • Country: hu
    • http://www.ep128.hu
Re: HiSoft Pascal
« Reply #275 on: 2017.April.26. 12:07:31 »
én kicsi vagyok ahhoz... :-) Meg ahhoz full fordítható disassembly kéne, ami nekem nincs
a {$O-} -val ki lehet kapcsolnia túlcsordulás figyelését, tehát nem fog kiakadni a 32767 + 1 -re
de azt könnyű megoldani, hogy word-ként írja ki az integer-t, két poke az egész

Mi az a két POKE? Beleraknám az ismertetőbe.

Offline Povi

  • EP addict
  • *
  • Posts: 2307
  • Country: hu
    • http://povi.fw.hu
Re: HiSoft Pascal
« Reply #276 on: 2017.April.26. 14:33:55 »
Mi az a két POKE? Beleraknám az ismertetőbe.

Code: [Select]
  poke(#05be, chr(#18));
  poke(#05e7, chr(#18));
visszaállítás:
Code: [Select]
  poke(#05be, chr(#28));
  poke(#05e7, chr(#28));
az első poke csak akkor kell, ha formázott kiírást akarunk (vezető space-ekkel), különben elhagyható.

*** Speicherplatz zu klein

Offline Lacika

  • EP addict
  • *
  • Posts: 3211
  • Country: hu
    • http://www.ep128.hu
Re: HiSoft Pascal
« Reply #277 on: 2017.April.26. 18:30:39 »
Konstansokkal viszont nem lehet összehasonlítást végezni, ha jól látom. Ez a két POKE csak a kiírással van hatással?

Offline Povi

  • EP addict
  • *
  • Posts: 2307
  • Country: hu
    • http://povi.fw.hu
Re: HiSoft Pascal
« Reply #278 on: 2017.April.26. 18:42:54 »
Konstansokkal viszont nem lehet összehasonlítást végezni, ha jól látom. Ez a két POKE csak a kiírással van hatással?
Lehet, ha hexa-ban írod be.
Pl. 40000 = #9c40
*** Speicherplatz zu klein

Offline Lacika

  • EP addict
  • *
  • Posts: 3211
  • Country: hu
    • http://www.ep128.hu
Re: HiSoft Pascal
« Reply #279 on: 2017.May.04. 20:20:33 »
Endi Tunnel Demoja Pascalban

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: HiSoft Pascal
« Reply #280 on: 2017.May.05. 10:26:43 »
Endi Tunnel Demoja Pascalban

hát igen, nem sokkal gyorsabb
amúgy mi lenne sokkal gyorsabb ep-n ha pascalban lenne írva?
Vigyázat! Szektás vagyok! :)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: HiSoft Pascal
« Reply #281 on: 2017.May.05. 10:39:51 »
hát igen, nem sokkal gyorsabb

Valószínűleg az EXOS rajzoló rutinjai korlátozzák a sebességet. Nagyobb gyorsulás elsősorban olyan programoknál lehetséges, amelyek sok egyszerű műveletet végeznek egész számokkal.

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: HiSoft Pascal
« Reply #282 on: 2017.May.05. 11:06:10 »
Valószínűleg az EXOS rajzoló rutinjai korlátozzák a sebességet. Nagyobb gyorsulás elsősorban olyan programoknál lehetséges, amelyek sok egyszerű műveletet végeznek egész számokkal.

na akkor majd gondolkodok ilyesmin
bár ügye végül ki kell majd rajzolni, szóval... (mert én grafikai dolgokban gondolkodok csak, vagy játékban)
Vigyázat! Szektás vagyok! :)

Offline Povi

  • EP addict
  • *
  • Posts: 2307
  • Country: hu
    • http://povi.fw.hu
Re: HiSoft Pascal
« Reply #283 on: 2017.May.05. 11:50:50 »
hát igen, nem sokkal gyorsabb
amúgy mi lenne sokkal gyorsabb ep-n ha pascalban lenne írva?
Graphca módban írt játékok jó gyorsak lennének.
*** Speicherplatz zu klein

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: HiSoft Pascal
« Reply #284 on: 2017.May.05. 12:46:25 »
gracha módú játékot írtam párat, bár elég egyszerűek de gondolom az már sok munka lenne pascalba átírni...

de mondjuk ilyesmi?
bár ez meg a sin miatt lesz lassú gondolom...
Vigyázat! Szektás vagyok! :)