Welcome, Guest. Please login or register.


Author Topic: BASIC (Read 194316 times)

Offline ergoGnomik

  • EP lover
  • *
  • Posts: 914
  • Country: hu
  • Stray cat from Commodore alley
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Firefox 64.0 Firefox 64.0
    • View Profile
Re: BASIC
« Reply #1305 on: 2019.February.04. 07:50:36 »
I have added your suggested method. It works... faster.... but only up to 9999.... Why?
Storing numeric values works roughly as follows, according to a Hungarian book (Tippek és trükkök ENTERPRISE - Tips and Tricks ENTERPRISE). Numeric values are usually stored in the variable table in 5+1 bytes. Some integer values are stored in two bytes native binary form and the rest of the memory allocated to it is filled with 127. Integers larger than 9999 and floats are stored in BCD form. Maybe that has to do something with it.

Offline szipucsu

  • EP addict
  • *
  • Posts: 8393
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 64.0 Firefox 64.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: BASIC
« Reply #1306 on: 2019.February.04. 23:13:06 »
És azzal lehet spórolni valamit, ha string változó maximális hosszát előre meghatározzuk?
Például:

100 GET A$
110 IF A$....

És ez elé még odaírjuk, hogy

90 STRING *1 A$

Így talán a Zzzip is később fut ki a szabad helyből és nem tart fent annyi helyet egy új változónak?
100 SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
110 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
120 SOUND PITCH 25,SYNC 2
Videos

Offline endi

  • EP addict
  • *
  • Posts: 7305
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 70.0.3538.102 Chrome 70.0.3538.102
    • View Profile
    • Honlapom
Re: BASIC
« Reply #1307 on: 2019.February.04. 23:29:07 »
ezzel nagyon sokat lehet spórolni! ha nincs megadva a hossz, asszem minden string 256 bájtot foglal
Vigyázat! Szektás vagyok! :)

Offline szipucsu

  • EP addict
  • *
  • Posts: 8393
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 71.0.3578.98 Chrome 71.0.3578.98
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: BASIC
« Reply #1308 on: 2019.February.05. 12:16:12 »
Az envelope-nak miért csak 25 fázisnak van hely alapból? Persze fel lehet szabadítani több helyet is neki, pl.

CLOSE #103
SET SOUND BUFFER 30 (vagy még nagyobb)
OPEN #103:"sound:"

Ha nagy sound buffert adunk meg, akkor az mi elől veszi el a helyet? Hogy a Zzzipnek bezavar, azt nem hiszem, hiszen a zzzippel lefordított program betöltése előtt is lehet sok envelope numbert létrehozni, még a zzzippelt program is tudja azokat használni.
100 SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
110 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
120 SOUND PITCH 25,SYNC 2
Videos

Offline endi

  • EP addict
  • *
  • Posts: 7305
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 70.0.3538.102 Chrome 70.0.3538.102
    • View Profile
    • Honlapom
Re: BASIC
« Reply #1309 on: 2019.February.05. 13:39:45 »
hát a nagyobb sound buffet több memóriát foglal.
már nem emlékszem pontosan mennyit, de asszem nem sokat, csodálkoztam is hogy miért olyan kevés a default
Vigyázat! Szektás vagyok! :)

Offline szipucsu

  • EP addict
  • *
  • Posts: 8393
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 65.0 Firefox 65.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: BASIC
« Reply #1310 on: 2019.February.24. 18:19:17 »
Endi, az jutott eszembe, hogy a Mega Pacman játékodat meg lehetne csinálni grafikus karakteres képernyőre, több szín lenne. Bár a soronként megnyitott videólapok a scrollt talán nem tennék lehetővé, vagy legalábbis nehezebb lenne megcsinálni. De attól tartok, nincs meg az eredeti basic program, csak a zzzippelt, legalábbis az ep128.hu-n.
Meg a 2016-os (félig befejezett) Snakeprise is megcsinálható lenne gracha módra. Ez akár sokszínű is lehet, mert a karakterek alakjának nincs túl nagy jelentősége.
100 SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
110 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
120 SOUND PITCH 25,SYNC 2
Videos

Offline endi

  • EP addict
  • *
  • Posts: 7305
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 71.0.3578.98 Chrome 71.0.3578.98
    • View Profile
    • Honlapom
Re: BASIC
« Reply #1311 on: 2019.February.24. 18:41:36 »
Endi, az jutott eszembe, hogy a Mega Pacman játékodat meg lehetne csinálni grafikus karakteres képernyőre, több szín lenne. Bár a soronként megnyitott videólapok a scrollt talán nem tennék lehetővé, vagy legalábbis nehezebb lenne megcsinálni. De attól tartok, nincs meg az eredeti basic program, csak a zzzippelt, legalábbis az ep128.hu-n.
Meg a 2016-os (félig befejezett) Snakeprise is megcsinálható lenne gracha módra. Ez akár sokszínű is lehet, mert a karakterek alakjának nincs túl nagy jelentősége.

már el is felejtettem ezt a játékot :D
Vigyázat! Szektás vagyok! :)

Offline szipucsu

  • EP addict
  • *
  • Posts: 8393
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 65.0 Firefox 65.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: BASIC
« Reply #1312 on: 2019.March.15. 22:14:53 »
Eljárás nem hívhatja meg önmagát, mert a sokadig meghívás után hiba lesz? Például ez a 40. meghívás után lefagy:

10 DEF EKT
20  CALL EKT
30 END DEF
40 CALL EKT

De ha nem ilyen direktbe hívjuk meg, akkor működhet? Például ilyesmi:

10 DEF EKT
20   IF A>80 THEN CALL EKT
30 END DEF
35 FOR X=1 TO 2000
40   LET A=RND(120)
50   CALL EKT
60 NEXT

Valami hasonlót sikerült a kígyós játékomba betenni. Próbálgattam, de sokadik meghívás után sem fagy le.
100 SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
110 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
120 SOUND PITCH 25,SYNC 2
Videos

Offline endi

  • EP addict
  • *
  • Posts: 7305
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 71.0.3578.98 Chrome 71.0.3578.98
    • View Profile
    • Honlapom
Re: BASIC
« Reply #1313 on: 2019.March.15. 23:07:08 »
a rekurzív függvényhívás hasznos dolog, de persze nyilván minden hívás plusz memóriát foglal, így aztán egyszercsak elfogy a memória...
Vigyázat! Szektás vagyok! :)

Offline ergoGnomik

  • EP lover
  • *
  • Posts: 914
  • Country: hu
  • Stray cat from Commodore alley
  • OS:
  • Windows NT 6.3 Windows NT 6.3
  • Browser:
  • Vivaldi 2.3.1440.61 Vivaldi 2.3.1440.61
    • View Profile
Re: BASIC
« Reply #1314 on: 2019.March.16. 00:05:09 »
Nos, a két változat között az az eltérés, hogy mesterségesen 39-re (vagy 38-ra?) korlátozod a hívás "mélységét" a második esetben, így sosem éri el a 40-es határt. Egyébként a kettő között nincs érdemi különbség.

Offline szipucsu

  • EP addict
  • *
  • Posts: 8393
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 65.0 Firefox 65.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: BASIC
« Reply #1315 on: 2019.March.16. 10:10:45 »
Nos, a két változat között az az eltérés, hogy mesterségesen 39-re (vagy 38-ra?) korlátozod a hívás "mélységét" a második esetben, így sosem éri el a 40-es határt.
Ezt nem teljesen értem. Mivel korlátoztam én a hívás mélységét 39-re?

Arra jöttem rá, az első változat lényegében végtelen ciklusba állítja az eljárást, ez tesz be neki.
Ha nem kerül végtelen ciklusba, hanem különféle IF és CASE ágak esetén hívja meg önmagát újra, és közben változnak a feltételek is, ami miatt önmagát újra meghívhatja, akkor már nem érvényes ez a 39 körüli határ? Ha egyszer már lemegy végig END DEF-ig, akkor már jó lesz?

A kukacos játékban van egy tárgy, amihez ha hozzáér a kukac, átkerül a képernyő másik részére. Viszont a képernyő másik részén is egyből meg kell nézni, milyen tárgy van ott, ahova kerül a kukac. Tehát az eljárás, amiben megvizsgálja, mihez ér hozzá a kukac, az meghívja önmagát, ha ilyen teleporthoz ér hozzá, hogy utána azt is megvizsgálja, hogy ahova került a kukac, ott mi van. Remélem, érthető. :D Ha nem akkor majd teszek fel róla részt.
Én sokat próbálgattam, játék közben mindig teleportáltam, és nem fagyott le.
100 SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
110 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
120 SOUND PITCH 25,SYNC 2
Videos

Offline ergoGnomik

  • EP lover
  • *
  • Posts: 914
  • Country: hu
  • Stray cat from Commodore alley
  • OS:
  • Windows NT 6.3 Windows NT 6.3
  • Browser:
  • Firefox 64.0 Firefox 64.0
    • View Profile
Re: BASIC
« Reply #1316 on: 2019.March.16. 10:58:36 »
Jajj! Nagyon figyelmetlenül olvastam a kódod. Bocsi! Nem is értem hogyan, de beleláttam hogy A értékét hívásonként csökkentgeti, pedig konkrétan nem csinál semmit.

Amíg A értéke nem haladja meg a nyolcvanat, addig csak egyszer fog lefutni az EKT függvény. Ha A értéke legalább 81, akkor viszont az én értelmezésem szerint újra előáll a "végtelen ciklus".

Egyébként nem a "végtelenség" a baj, hanem annak az adminisztratív memóriának (ún. verem) az elfogyása, amivel nyomon követi az IS-BASIC az egymásba ágyazódó függvényhívásokat.

Offline szipucsu

  • EP addict
  • *
  • Posts: 8393
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 65.0 Firefox 65.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: BASIC
« Reply #1317 on: 2019.March.16. 11:15:03 »
Ha A értéke legalább 81, akkor viszont az én értelmezésem szerint újra előáll a "végtelen ciklus".
Igen, most már ki is próbáltam, tényleg végtelen "ciklus lett", pedig én sem erre számítottam először.
Ha nem lesz végtelen ciklus, akkor nem telhet be a verem az ilyen önmagát meghívó eljárástól, akkor sem, ha sokszor hívja meg önmagát?
100 SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
110 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
120 SOUND PITCH 25,SYNC 2
Videos

Offline ergoGnomik

  • EP lover
  • *
  • Posts: 914
  • Country: hu
  • Stray cat from Commodore alley
  • OS:
  • Windows NT 6.3 Windows NT 6.3
  • Browser:
  • Vivaldi 2.3.1440.61 Vivaldi 2.3.1440.61
    • View Profile
Re: BASIC
« Reply #1318 on: 2019.March.16. 11:47:45 »
Ha nem lesz végtelen ciklus, akkor nem telhet be a verem az ilyen önmagát meghívó eljárástól, akkor sem, ha sokszor hívja meg önmagát?
Pontosabb azt mondani, hogy ha a rekurzív hívások száma nem haladja meg a kritikus értéket, akkor a program futása nem fog emiatt hibával megszakadni.

Offline szipucsu

  • EP addict
  • *
  • Posts: 8393
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 65.0 Firefox 65.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: BASIC
« Reply #1319 on: 2019.March.16. 12:00:45 »
Pontosabb azt mondani, hogy ha a rekurzív hívások száma nem haladja meg a kritikus értéket, akkor a program futása nem fog emiatt hibával megszakadni.
Szerintem sok rekurzív hívás volt abban a kukacos játékban, ahogy teszteltem, direkt úgy játszottam, hogy sok legyen, de nem lett gond. Nem is hibával szakadna meg olyankor, nekem teljesen le is fagyott, amikor elérte a 39 körüli értéket a lentebbi program, és csak a reset segített, még a STOP-ra sem reagált.
Na, de majd abba a topikba kicsit konkrétabban leírom a helyzetet.
100 SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
110 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
120 SOUND PITCH 25,SYNC 2
Videos