Welcome, Guest. Please login or register.


Author Topic: HiSoft Pascal (Read 87709 times)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: HiSoft Pascal
« Reply #285 on: 2017.May.05. 13:17:42 »
A sin(x) számítását táblázattal is meg lehetne oldani. Akár a BASIC verzióban is, mert valójában csak néhány száz lehetséges x ismétlődik 0 és 12.8 között 0.04 felbontással. A százzal osztás és hússzal szorzás is a táblázatba építhető. Pascal vagy asm változatban pedig át lehet írni a programot egész számok használatára.
« Last Edit: 2017.May.05. 13:20:56 by IstvanV »

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: HiSoft Pascal
« Reply #286 on: 2017.May.05. 13:23:49 »
na ez érdekes lett.
lores és függőleges step, így gyorsabb bár kisebb felbontás
emlékszem, ilyeneket úgy csináltam annak idején, hogy ránéztem hogy milyen gyorsan csinálja, nagyjából megbecsültem hány óra míg végez, és addig elmentem valami mást csinálni :)

ah mekkora király lett volna még egy gép, amíg az egyik renderel :D

Vigyázat! Szektás vagyok! :)

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: HiSoft Pascal
« Reply #287 on: 2017.May.05. 13:30:01 »
az előző hiresben, step nélkül
Vigyázat! Szektás vagyok! :)

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9898
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: HiSoft Pascal
« Reply #288 on: 2017.May.05. 13:32:52 »
ah mekkora király lett volna még egy gép, amíg az egyik renderel :D
Vagy a multitask SymbOS rendszer. Bár abban nem tudom, programozni lehet-e valamilyen nyelven.
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: HiSoft Pascal
« Reply #289 on: 2017.May.05. 13:36:52 »
Pixelenkénti sin() nélkül:
[ Guests cannot view attachments ]

Offline Povi

  • EP addict
  • *
  • Posts: 2296
  • Country: hu
    • http://povi.fw.hu
Re: HiSoft Pascal
« Reply #290 on: 2017.May.05. 20:21:00 »
Eratoszthenész szitája:
Code: [Select]
program sieve2;

var
  prime : array[0..32767] of boolean;
  n, index : integer;

begin
  {$A-}
  {$O-}
  poke(#38, chr(#c9));

  for n := 1 to 32767 do
    prime[n] := true;

  for n := 1 to 127 do begin
    if prime[n] then begin
      index := 2 * (n * n + n);
      repeat
        prime[index] := false;
        index := index + n + n + 1;
      until (hi(index) > chr(#7f));
    end;
  end;

  poke(#0328, chr(120));
  poke(#05be, chr(#18));
  poke(#05e7, chr(#18));

  write(chr(27),'S', 2 : 8);
  for n := 1 to 32767 do
    if prime[n] then write(n + n + 1 : 8);
  writeln;

  poke(#0328, chr(121));
  poke(#05be, chr(#28));
  poke(#05e7, chr(#28));

  poke(#38, chr(#f5));
end.
*** Speicherplatz zu klein

Offline Povi

  • EP addict
  • *
  • Posts: 2296
  • Country: hu
    • http://povi.fw.hu
Re: HiSoft Pascal
« Reply #291 on: 2017.May.05. 20:25:33 »
*** Speicherplatz zu klein

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: HiSoft Pascal
« Reply #292 on: 2017.May.06. 14:32:36 »
Pixelenkénti sin() nélkül:

Asm verzió (lehetne ditherelt is, a korábban már használt kóddal egyszerűen megoldható):
[ Guests cannot view attachments ]

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: HiSoft Pascal
« Reply #293 on: 2017.May.06. 15:51:04 »
Asm verzió (lehetne ditherelt is, a korábban már használt kóddal egyszerűen megoldható):
(Attachment Link)

ez is exossal írja a pixeleket?
Vigyázat! Szektás vagyok! :)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: HiSoft Pascal
« Reply #294 on: 2017.May.06. 16:04:22 »
ez is exossal írja a pixeleket?

Nem, de külön pixel rajzoló rutint használ (tetszőleges X, Y, szín), tehát lehetne gyorsabb is ha figyelembe venné hogy a pixeleket sorban rajzolja balról jobbra és felülről lefelé, ezért nem kellene a címet mindig újra számítani.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: HiSoft Pascal
« Reply #295 on: 2017.May.08. 15:01:17 »
[ Guests cannot view attachments ]

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: HiSoft Pascal
« Reply #296 on: 2017.May.09. 10:24:18 »
Endi Tunnel Demoja Pascalban

Az megoldható, hogy Pascal program asm rajzoló rutinokat használjon? Ez különösen pixelenkénti rajzolásnál lenne hasznos. A sin() számítása is elkerülhető a ciklusban (a fenti dither4c.com is tartalmaz ilyen megoldást), bár itt a futásidő jelentős részét az EXOS ellipszis rutinja teszi ki. De a BASIC változat is gyorsul 7:42-ről 5:44-re ilyen optimalizálással.
« Last Edit: 2017.May.09. 10:45:02 by IstvanV »

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: HiSoft Pascal
« Reply #297 on: 2017.May.09. 10:37:35 »
Az megoldható, hogy Pascal program asm rajzoló rutinokat használjon?
Van INLINE.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: HiSoft Pascal
« Reply #298 on: 2017.May.11. 10:44:44 »
Van INLINE.

Ez így meglehetősen korlátozottnak tűnik. :oops: Esetleg ha már lefordított asm rutinokat lehetne betölteni fix címre (ahol a Pascal program nem írja felül) és onnan hívni, az használhatóbb lenne. PC-s C fordítóknál (SDCC és z88dk) viszonylag könnyen megoldható a már meglevő EP-s betöltő módosításával, de azokat nem használja senki, a HiSoft Pascal "bővítésének" több értelme lenne.

Offline Povi

  • EP addict
  • *
  • Posts: 2296
  • Country: hu
    • http://povi.fw.hu
Re: HiSoft Pascal
« Reply #299 on: 2017.May.11. 17:46:00 »
Ez így meglehetősen korlátozottnak tűnik. :oops: Esetleg ha már lefordított asm rutinokat lehetne betölteni fix címre (ahol a Pascal program nem írja felül) és onnan hívni, az használhatóbb lenne. PC-s C fordítóknál (SDCC és z88dk) viszonylag könnyen megoldható a már meglevő EP-s betöltő módosításával, de azokat nem használja senki, a HiSoft Pascal "bővítésének" több értelme lenne.
Az Alter paranccsal a Compiler és a Translate stack-et átírva (default értéke 0xffff) a megadott érték fölött memóriacímeket nem fogja bántani a Pascal.
Tehát oda lehet már betölteni gépi kódu rutinokat.
A TIN paranccsal lehet a legegyszerűbben betölteni fájlt.
használata:
TIN(filenév, memóriacím);
pl.:
tin('valami.o', #c000);

meghívni a rutint a user paranccsal lehet.
pl.: user(#c000);

a rutinnak RET-tel kell végződnie
*** Speicherplatz zu klein