Welcome, Guest. Please login or register.


Author Topic: HiSoft Pascal (Read 87670 times)

Offline Povi

  • EP addict
  • *
  • Posts: 2296
  • Country: hu
    • http://povi.fw.hu
Re: HiSoft Pascal
« Reply #15 on: 2013.October.29. 20:10:59 »
ha az editorban nyomsz egy "W"-t, majd ENTER-t, az nem jó? utána már 80 karakteresben maradsz
*** Speicherplatz zu klein

Offline Lacika

  • EP addict
  • *
  • Posts: 3191
  • Country: hu
    • http://www.ep128.hu
Re: HiSoft Pascal
« Reply #16 on: 2013.October.29. 20:16:03 »
Quote from: Povi
ha az editorban nyomsz egy "W"-t, majd ENTER-t, az nem jó? utána már 80 karakteresben maradsz
Programból nem lehet váltani? Bár Spectrumos cucc, tartok tőle, hogy nem...

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14721
  • Country: hu
    • http://enterprise.iko.hu/
Re: HiSoft Pascal
« Reply #17 on: 2013.October.29. 20:24:00 »
Quote from: Povi
Zozo, escape szekvenciákat küldeni lehet karakterenként is küldeni, vagy csak egyben, stringként? Pl. esc "F" a Fill-re...
Lehet.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14721
  • Country: hu
    • http://enterprise.iko.hu/
Re: HiSoft Pascal
« Reply #18 on: 2013.October.29. 20:28:19 »
Quote from: Povi
az létezhet, hogy a 2.3-as EXOS valamiért összeveszik a Pascal-lal?
2.32-vel már működik rendesen
Elképzelhető, fogtunk ott egy bugot, amitől 2.31 lett :oops: EXDOS volt a konfigodban? Ha jól emlékszem magnós konfigban jött elő.

Offline Lacika

  • EP addict
  • *
  • Posts: 3191
  • Country: hu
    • http://www.ep128.hu
Re: HiSoft Pascal
« Reply #19 on: 2013.October.29. 22:07:49 »
Azt kell, hogy mondjam a Hisoft Pascal még gyorsabb, mint a Turbo Pascal. ;-)

Offline Povi

  • EP addict
  • *
  • Posts: 2296
  • Country: hu
    • http://povi.fw.hu
Re: HiSoft Pascal
« Reply #20 on: 2013.October.30. 09:42:15 »
elkezdtem "szebbíteni" a grafikai rutinokat (már külön TPU-ban vannak)

a FILL pl. ilyen lett
Code: [Select]
PROCEDURE FILL(CH:INTEGER);
BEGIN
  INLINE(#DD,#7E,#02) {LD A,(IX+2)};
  INLINE(#06,#1B) {LD B,27};
  INLINE(#F7,#07) {EXOS 7};
  INLINE(#DD,#7E,#02) {LD A,(IX+2)};
  INLINE(#06,#46) {LD B,"F"};
  INLINE(#F7,#07) {EXOS 7};
END;

kérdésem az, hogy vajon mennyivel lassabb n db bájtot kiírni EXOS 7-tel, mint egy n-bájtos blokkírás EXOS 8-cal? (pl. a paletta írásnál 10 byte-ot kell küldeni, persze ez pont nem sebességkritikus, az ember nem gyakran állítgatja a palettát).

egy olyan tesztet azért csináltam, hogy ASMON-ban a 255-ös csatornára kiküldtem egy 5000 byte-os blokkot (teliírtam a képernyőt "A" betűkkel), ez kb. 9 mp volt
és kiírattam 5000 db "A" betűt EXOS 7-tel is, ez kb. 13 mp volt. Úgy gondolom, hogy maga a ciklus futási ideje nem ront 4 mp-et, tehát ennyivel lassabb a byte-onkénti másolás.

még más teszteken is jár a fejem, egyelőre csak hangosan gondolkodok
*** Speicherplatz zu klein

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: HiSoft Pascal
« Reply #21 on: 2013.October.30. 10:13:27 »
Összehasonlítás az ASM verzióval (minden teszt a 100h címtől (program indítása) a billentyűzetre várakozás eléréséig futott, kivéve az utolsót, ami a rajzolás sebességét nem mérte):

Eredeti verzió (rövid EXOS 8 blokkok): 10.96 s
Pufferelt video adat (az összes adatot először csak egy pufferben tárolta, majd az egészet egyszerre írta ki egy EXOS 8 hívással, és csak utána hívta a display-t): 8.67 s
Pufferelt verzió karakterenkénti kiírásra módosítva: 17.43 s
Pufferelt változat csak az EXOS 8 eléréséig: 0.61 s

A tesztek 640K-s emulált konfiguráción futottak, a BFh port értéke 4 volt (várakozás csak M1-nél).

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14721
  • Country: hu
    • http://enterprise.iko.hu/
Re: HiSoft Pascal
« Reply #22 on: 2013.October.30. 10:39:32 »
EXOS 7/8 közti különbséget a HxC progiban is jól éreztem, elsőként karakterenként írta ki a fájlneveket (főként a hosszú fájlnevek miatt, amiket apránként kell összevadászni), aztán raktam bele puffer+EXOS 8 módszert amivel sokkal gyorsabb lett.

Offline Povi

  • EP addict
  • *
  • Posts: 2296
  • Country: hu
    • http://povi.fw.hu
Re: HiSoft Pascal
« Reply #23 on: 2013.October.30. 10:58:49 »
Quote from: IstvanV
Összehasonlítás az ASM verzióval (minden teszt a 100h címtől (program indítása) a billentyűzetre várakozás eléréséig futott, kivéve az utolsót, ami a rajzolás sebességét nem mérte):

Eredeti verzió (rövid EXOS 8 blokkok): 10.96 s
Pufferelt video adat (az összes adatot először csak egy pufferben tárolta, majd az egészet egyszerre írta ki egy EXOS 8 hívással, és csak utána hívta a display-t): 8.67 s
Pufferelt verzió karakterenkénti kiírásra módosítva: 17.43 s
Pufferelt változat csak az EXOS 8 eléréséig: 0.61 s

A tesztek 640K-s emulált konfiguráción futottak, a BFh port értéke 4 volt (várakozás csak M1-nél).
ez jó, köszi István! :-)
érdekes, hogy csak maga a rajzolás kb. 8 mp.
akkor úgy tűnik, mégis csak jobb a blokkírás, akár két bájt esetén is (?) - sok kicsi sokra megy
viszont most azon gondolkodom, hogy lehetne ezt elegánsan megoldani.
mert procedúránként lokális puffert létrehozni sok idő, és bonyolult is oda másolni dolgokat.
vagy marad az eredeti verzió, ahol van egy xx (jelen esetben 255) byte-os puffer, a memória tetején deklarálva
ezzel csak két baj van:
1. nem túl elegáns (szerintem)
2. ha ezt a fájlt include-olni akarom, akkor már nem lehet a második pas fájlban globális változókat deklarálni
*** Speicherplatz zu klein

Offline Povi

  • EP addict
  • *
  • Posts: 2296
  • Country: hu
    • http://povi.fw.hu
Re: HiSoft Pascal
« Reply #24 on: 2013.October.30. 11:22:29 »
közben arra rájöttem, ha marad a pufferes verzió (aminek ismert a kezdőcíme), akkor gyorsabb a POKE helyett INLINE használni, kicsit rövidebb kódot is létre lehet hozni
*** Speicherplatz zu klein

Offline Lacika

  • EP addict
  • *
  • Posts: 3191
  • Country: hu
    • http://www.ep128.hu
Re: HiSoft Pascal
« Reply #25 on: 2013.October.30. 22:40:06 »
Az nem túl szimpatikus, hogy a write másképp működik, mint TP-ben.:ds_icon_frown:

Offline Povi

  • EP addict
  • *
  • Posts: 2296
  • Country: hu
    • http://povi.fw.hu
Re: HiSoft Pascal
« Reply #26 on: 2013.October.31. 08:38:48 »
Azon gondolkodom, hogy csinálok egy egyszerűbb grafikai rutingyűjteményt is, ami a DOS-os TP graph.tpu-jával lenne kompatibilis. Nem kéne csatornaszámokat megadni, meg ilyenek, hanem lenne fixen pl. a 101-es csatornán egy 4 színű grafikus lap, 320x200-ban (és akkor a CGA kompatibilitás is meg lenne :-D ).
Azt nem értem még, hogy az EXOS miért bal alsó sarokba rakja a 0,0-t? nekem bal fölül logikusabb lenne.
Azon gondolkodom még, hogy lehet, hogy olyan rutinokat kéne írni, ami nem EXOS esc szekvenciákat küld (pl. vonalrajzolásnál), hanem közvetlenül írja a video RAM-ot, így sokkal gyorsabb lenne (persze a video-laphoz szabályosan le lenne foglalva egy szegmens).
*** Speicherplatz zu klein

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14721
  • Country: hu
    • http://enterprise.iko.hu/
Re: HiSoft Pascal
« Reply #27 on: 2013.October.31. 09:10:35 »
Quote from: Povi
Azt nem értem még, hogy az EXOS miért bal alsó sarokba rakja a 0,0-t?
Matekórán hova raktad a koordináta rendszer kezdetét? :-)

Offline Povi

  • EP addict
  • *
  • Posts: 2296
  • Country: hu
    • http://povi.fw.hu
Re: HiSoft Pascal
« Reply #28 on: 2013.October.31. 10:14:25 »
az origóba :-)
OK, ennek is van egy logikája, de a másik változatnak is (bal felső sarok).
*** Speicherplatz zu klein

Offline Povi

  • EP addict
  • *
  • Posts: 2296
  • Country: hu
    • http://povi.fw.hu
Re: HiSoft Pascal
« Reply #29 on: 2013.October.31. 10:20:23 »
kezd egyre kevésbé tetszeni ez a HiSoft Pascal... (pedig jó gyors)
nem ismeri a konstansokat...
nagybetűvel kell írni mindent...
*** Speicherplatz zu klein