Welcome, Guest. Please login or register.


Author Topic: Általános BASIC Kérdések (Read 423803 times)

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9898
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Általános BASIC Kérdések
« Reply #1260 on: 2018.October.24. 11:00:08 »
A kevésbé pontos számábrázolás miatt nem teljesül a feltétel. Most amit próbáltam: C64, Spectrum, CPC, ezeken nem fut helyesen.
Akkor ott könnyen csúszhat be hiba, amire nem számít az ember, és nem fog működni a program.
Nálunk csak Zzzippel lefordítva nem működne ez a program. Úgy viszont sokkal gyorsabban nem csinálja meg, amit C64-en sem. :D
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: Általános BASIC Kérdések
« Reply #1261 on: 2018.October.24. 11:03:24 »
a jobb számábrázolás vajon akkor is számít a sebességben, ha nem használunk komoly számításokat? pl csak egy figura mozog a képernyőn, összeadások, kivonások...
a 102-es csatornára írás valóban sokkal gyorsabb, de még ez is lassabb a specy-nél... (pedig tudjuk hogy ott 9 byte-ot kell kiírni egy karakterhez).

aha, a többi dolog (fejlettebb basic), érthető...

néha olyan érzésem van amúgy zippelt basic-el (amiben nekem nagy tapasztalatom van ügye), hogy az hozza a specy basic sebességét :)
Vigyázat! Szektás vagyok! :)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Általános BASIC Kérdések
« Reply #1262 on: 2018.October.24. 13:23:35 »
a jobb számábrázolás vajon akkor is számít a sebességben, ha nem használunk komoly számításokat?

Úgy látom, törteknél és 16 biten nem ábrázolható értékeknél számít, az egyszerű egész számos műveleteket (pl. A=1+2) az IS-BASIC külön támogatja.

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: Általános BASIC Kérdések
« Reply #1263 on: 2018.October.24. 15:03:10 »
Úgy látom, törteknél és 16 biten nem ábrázolható értékeknél számít, az egyszerű egész számos műveleteket (pl. A=1+2) az IS-BASIC külön támogatja.

nocsak, tök jó
Vigyázat! Szektás vagyok! :)

Offline Lacika

  • EP addict
  • *
  • Posts: 3191
  • Country: hu
    • http://www.ep128.hu
Re: Általános BASIC Kérdések
« Reply #1264 on: 2018.October.24. 18:54:23 »
A kevésbé pontos számábrázolás miatt nem teljesül a feltétel. Most amit próbáltam: C64, Spectrum, CPC, ezeken nem fut helyesen.

A korabeli gépek közül csak az Ep és a TVC tud pontosan számolni.

Offline Lacika

  • EP addict
  • *
  • Posts: 3191
  • Country: hu
    • http://www.ep128.hu
Re: Általános BASIC Kérdések
« Reply #1265 on: 2018.October.24. 18:56:34 »
nocsak, tök jó

A 0 és 9999 közti egész számok a gyorsaság miatt nem lebegőpontos alakban tárolódnak, hanem a normál Z80 formátumban, 16 bites bináris számként.

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: Általános BASIC Kérdések
« Reply #1266 on: 2018.October.24. 18:59:48 »
A 0 és 9999 közti egész számok a gyorsaság miatt nem lebegőpontos alakban tárolódnak, hanem a normál Z80 formátumban, 16 bites bináris számként.

wow... ez nem semmi. de ha átlépi a limitet (vagy nem egész szám lesz) akkor dinamikusan átvált ezek szerint. ami nem feltétlen okos megoldás... akkor már miért nem lehetett definiálni hogy milyen típusú számot akarok? hmm...
Vigyázat! Szektás vagyok! :)

Offline Lacika

  • EP addict
  • *
  • Posts: 3191
  • Country: hu
    • http://www.ep128.hu
Re: Általános BASIC Kérdések
« Reply #1267 on: 2018.October.24. 19:49:07 »
wow... ez nem semmi. de ha átlépi a limitet (vagy nem egész szám lesz) akkor dinamikusan átvált ezek szerint. ami nem feltétlen okos megoldás... akkor már miért nem lehetett definiálni hogy milyen típusú számot akarok? hmm...

Szerintem mindenképen 6 byte-ot foglal az interpreter  a számváltozónak, így semmiből nem áll dinamikusan váltani.
Nézegettem olyan BASIC-et, amiben van külön egész típus (CBASIC), csak a szívás van vele. C64-en is max. ciklusváltozónak használják.

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: Általános BASIC Kérdések
« Reply #1268 on: 2018.October.24. 19:51:31 »
és tényleg :)
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: Általános BASIC Kérdések
« Reply #1269 on: 2018.December.26. 14:02:49 »
rájöttem hogy fogok basic-ben pixeles függőleges scrollt csinálni. volt egy olyan próbálkozásom, hogy az lpt-ben fent összehúztam egy sort, alul meg széthúztam. így az kép elcsúszott és végül is működött, de ennél jobb ötlet lehet ha a memória címeket írom át az lpt-ben.
majd egyszer, ha lesz kedvem megint valamit csinálni, mostanában nem nagyon van :)
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: Általános BASIC Kérdések
« Reply #1270 on: 2018.December.26. 14:36:28 »
egyébként, hogy én milyen hülye vagyok! hiszen marha egyszerű megoldani hogy basic-ből egyszerűen megadjunk videó memória címet, ami fix lesz az adott videó lapon! nem lekérdezni kell hogy az exos hova osztotta ki! hanem egyszerűen le kell foglalni egy videó szegmenst, és brute force módszerrel bele-poke-olni az lpt-be. így exos kompatibilis lesz (hiszen le van foglalva neki a szegmens) és fix memória című, hiszen azt poke-olunk az lpt-be amit akarunk.
így kikerülhető az, hogy az exos ki tudja hova és hány szegmensre foglal le egy exos videólapot.
na persze ez esetben csak poke-al tudunk majd írni a videólapra :)
Vigyázat! Szektás vagyok! :)

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9898
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Általános BASIC Kérdések
« Reply #1271 on: 2019.February.01. 12:26:51 »
Van bármilyen előnye a program működése szempontjából, ha hosszú változónevek helyett rövideket adunk meg? Pl. LET BOMBA=3 helyett LET B=3. Akár a program sebessége szempontjából, vagy Zzzippel lefordítva gyorsabb lesz? Előnyös, ha minél kevesebb változónevet használunk? Pl. átmeneti változóknak ugyanazt a nevet adni, pl.
100 FOR WAIT=1 to 200
110 NEXT
(És mindig a WAIT változót használni átmeneti kis feladatokra, a WAIT tartalmát máshol nem használja fel a program.)
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Általános BASIC Kérdések
« Reply #1272 on: 2019.February.01. 13:05:49 »
Rövidebb név valóban gyorsabb, bár ki kéne mérni, hogy mennyire észrevehető.
Ami biztos: kisebb lesz a programméret, valamint futás közben is kevesebb memóriát igényel a program. Nagy méretű, a Basic memóriát kitöltő programnál ez már számíthat.
Minél kevesebb változót használni szintén spórolás a memóriával. És amikor egy még nem használt változót használunk, akkor azt létre kell hozni a rendszernek, így biztos gyorsabb újrafelhasznált változókkal dolgozni. Szintén kérdés, hogy ez vajon mennyire észlelhető.
Zzzipnél szerintem a neveket eldobja, lefordított címeket használ, valamint eleve definiálja az összes változót, így szerintem sebesség befolyásolás nincs. De a zzzipelt programnál eleve hamarabb elszokott fogyni a memória, így a minél kevesebb változó használata ajánlott.

Offline Povi

  • EP addict
  • *
  • Posts: 2296
  • Country: hu
    • http://povi.fw.hu
Re: Általános BASIC Kérdések
« Reply #1273 on: 2019.February.01. 13:29:53 »
Van bármilyen előnye a program működése szempontjából, ha hosszú változónevek helyett rövideket adunk meg? Pl. LET BOMBA=3 helyett LET B=3. Akár a program sebessége szempontjából, vagy Zzzippel lefordítva gyorsabb lesz? Előnyös, ha minél kevesebb változónevet használunk? Pl. átmeneti változóknak ugyanazt a nevet adni, pl.
100 FOR WAIT=1 to 200
110 NEXT
(És mindig a WAIT változót használni átmeneti kis feladatokra, a WAIT tartalmát máshol nem használja fel a program.)
Nem tudom, az IS-BASIC hogy működik, de pl. a C64-nél (és az összes korai Microsoft BASIC esetében) a változó neveit deklarálás sorrendjében rakta el a memóriába, és hivatkozáskor lineáris kereséssel kereste meg azokat. Ezért a gyakran használt változókat minél előbb kellett deklarálni, hogy hamarabb megtalálja.
A BBC BASIC-ben már ABC sorrednben rakta el a változóneveket, lehet, hogy az IS-BASIC is így működik, elég sok ötletet át vettek belőle
*** Speicherplatz zu klein

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: Általános BASIC Kérdések
« Reply #1274 on: 2019.February.01. 13:58:43 »
ez érdekes. ezek szerint az x használata nem igazán jó, ahol abc sorrendben van indexelve :)
ki lehetne mérni ezeket, bár lehet, hogy felesleges, úgyis minden basic programot zzzippelni kell :)
Vigyázat! Szektás vagyok! :)