ENTERPRISE KLUB
2019. szeptember 7., 1055 Budapest, Nyugati tér 9. 14-19 óráig
Részletek
Welcome, Guest. Please login or register.


Author Topic: BASIC (Read 170987 times)

Offline ergoGnomik

  • EP lover
  • *
  • Posts: 791
  • 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 #1350 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: 7855
  • 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 #1351 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.
SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
SOUND PITCH 25,SYNC 2
Videos

Offline IstvanV

  • EP addict
  • *
  • Posts: 4806
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 58.0 Firefox 58.0
    • View Profile
Re: BASIC
« Reply #1352 on: 2019.March.16. 12:34:39 »
A lényeg, hogy legyen valamilyen kilépési feltétel, ami megakadályozza a végtelen ciklust. Elsősorban olyan problémánál érdemes ilyen megoldást használni, ami egyszerűen leírható "rekurzív" módon. Például az alábbi programban a FILL() területet tölt fel a PLOT PAINT utasításhoz hasonlóan, bár a megvalósítás nem hatékony (ennél nagyobb területnél le is fagy, de ez csak egy egyszerű példa):

23066-0

Offline szipucsu

  • EP addict
  • *
  • Posts: 7855
  • 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 #1353 on: 2019.March.16. 13:17:41 »
A lényeg, hogy legyen valamilyen kilépési feltétel, ami megakadályozza a végtelen ciklust.
Tehát ha például 30-szor meghívja önmagát az eljárás, utána a program másik részéhez kerül a végrehajtás, majd később újra meghívja 30-szor önmagát az eljárás, akkor a kétszer 30 nem adódik össze, hogy így túllépje a 39-et és lefagyjon?
SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
SOUND PITCH 25,SYNC 2
Videos

Offline IstvanV

  • EP addict
  • *
  • Posts: 4806
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 58.0 Firefox 58.0
    • View Profile
Re: BASIC
« Reply #1354 on: 2019.March.16. 13:26:46 »
Tehát ha például 30-szor meghívja önmagát az eljárás, utána a program másik részéhez kerül a végrehajtás, majd később újra meghívja 30-szor önmagát az eljárás, akkor a kétszer 30 nem adódik össze, hogy így túllépje a 39-et és lefagyjon?

Ha az első 30 hívás visszatért, akkor nem.

Offline szipucsu

  • EP addict
  • *
  • Posts: 7855
  • 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 #1355 on: 2019.March.18. 12:10:02 »
Valakinek van ötlete, hogy lehetne a következőt egyszerűbben, rövidebben megcsinálni?

Code: [Select]
4210   SET CHARACTER 0,102,255,255,159,15,159,255,255,102
 4230   SET CHARACTER 0,0,102,255,255,159,15,159,255,255
 4250   SET CHARACTER 0,0,0,102,255,255,159,15,159,255
 4270   SET CHARACTER 0,0,0,0,102,255,255,159,15,159
 4290   SET CHARACTER 0,0,0,0,0,102,255,255,159,15
 4310   SET CHARACTER 0,0,0,0,0,0,102,255,255,159
 4330   SET CHARACTER 0,0,0,0,0,0,0,102,255,255
 4350   SET CHARACTER 0,0,0,0,0,0,0,0,102,255
 4370   SET CHARACTER 0,0,0,0,0,0,0,0,0,102

A lényeg, hogy karakteres animációval a karaktert elsüllyeszti. A végéről az utolsó szám eltűnik, az elejére (a karakter kódja után) pedig nulla kerül. (Itt most pont a karakter kódja is 0, ezért több 0 van az elején.)
Az se lenne baj, ha a számokat nem kell megadni, hanem a memóriából kiolvassa, mi van ott, bár nem létfontosságú, ahhoz sok speek kell.
SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
SOUND PITCH 25,SYNC 2
Videos

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13429
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Firefox 65.0 Firefox 65.0
    • View Profile
    • http://enterprise.iko.hu/
Re: BASIC
« Reply #1356 on: 2019.March.18. 12:36:15 »
Én valami ilyesmire gondolnék:
Code: [Select]
4210 NUMERIC C(9)
4220 C(1)=102:C(2)=255:C(3)=255:C(4)=159:C(5)=15:C(6)=159:C(7)=255:C(8)=255:C(9)=102
4230 FOR I=1 TO 9
4240   SET CHARACTER 0,C(1),C(2),C(3),C(4),C(5),C(6),C(7),C(8),C(9)
4250   FOR J=9 TO 2 STEP -1
4260     C(J)=C(J-1)
4270   NEXT J
4280   C(1)=0
4290 NEXT I
C-t lehetne ciklusban SPEEK-kel tölteni.

Offline ergoGnomik

  • EP lover
  • *
  • Posts: 791
  • Country: hu
  • Stray cat from Commodore alley
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Vivaldi 2.3.1440.60 Vivaldi 2.3.1440.60
    • View Profile
Re: BASIC
« Reply #1357 on: 2019.March.18. 12:44:49 »
Felvehetnél egy tömböt, aminek az első felét nullával töltöd fel, a második felét pedig a karakter definiciójának adataival. A karakter definiálásánál a tömböt úgy olvasod ki, hogy az animáció fázisával megnöveled az indexet. [Zozó kódjának alapján SET CHARACTER 0,C(1+I),C(2+I),C(3+I),C(4+I),C(5+I),C(6+I),C(7+I),C(8+I),C(9+I)] A süllyesztést a fázis [az előbbi kódban I] értékének csökkentésével kezelheted.

Offline Povi

  • EP addict
  • *
  • Posts: 1857
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 75.0.3770.100 Chrome 75.0.3770.100
    • View Profile
    • http://povi.fw.hu
Re: BASIC
« Reply #1358 on: 2019.June.24. 12:29:35 »
*** Speicherplatz zu klein

Offline endi

  • EP addict
  • *
  • Posts: 7144
  • 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 73.0.3683.103 Chrome 73.0.3683.103
    • View Profile
    • Honlapom
Re: BASIC
« Reply #1359 on: 2019.June.24. 18:30:59 »
alapvetően a specy-c64-és hasonló kis gépeknek kéne egy szobrot állítani.
lehetne kickstarter vagy indiegogo kampányt is csinálni hozzá. szerintem a világ több részén állítani kéne szobrokat :)
Vigyázat! Szektás vagyok! :)

Offline Ferro73

  • EP lover
  • *
  • Posts: 657
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 67.0 Firefox 67.0
    • View Profile
Re: BASIC
« Reply #1360 on: 2019.July.04. 16:27:15 »
Próbált valaki más is gyorsítással foglalkozni.
pl: get a$ v. speek 
    case    v.  if     win case
    print  v. poke

valami tapasztalat.

Kérdés megint.
Melyik ZZZIP jó Ep128emu2.0.11.2 hoz
Köszönöm
« Last Edit: 2019.July.04. 20:02:18 by Ferro73 »

Offline szipucsu

  • EP addict
  • *
  • Posts: 7855
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 67.0 Firefox 67.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: BASIC
« Reply #1361 on: 2019.July.04. 16:40:49 »
Melyik ZZZIP jó Ep128emu2.0.11.2 hoz
Mindegyik. Az 1.2-es (letöltési link) a legfrissebb, én ezt használom.
Azt hiszem, valamelyik exos.rom-mal nem működik rendesen, talán a 232-vel? A 2.1-gyel tuti jól működik.
SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
SOUND PITCH 25,SYNC 2
Videos

Offline Ferro73

  • EP lover
  • *
  • Posts: 657
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 67.0 Firefox 67.0
    • View Profile
Re: BASIC
« Reply #1362 on: 2019.July.05. 20:43:43 »
Sebesség: SET CHARACTER X,......   v. SPOKE

A példa program 10x írná újra a 128 karaktert.
1. normál SET CHARACTER  .....
2. SPOKE .....
3. CALL >  DEF CHAR ... SPOKE ....

TIME:
BASIC módban
1.  00:03:48
2.  00:05:05
3.  00:09:07

ZZZIP
1.  00:00:27
2.  00:00:06
3.  00:00:06

Ezért nem mindegy mire optimalizáljuk.

Offline endi

  • EP addict
  • *
  • Posts: 7144
  • 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:
  • Firefox 67.0 Firefox 67.0
    • View Profile
    • Honlapom
Re: BASIC
« Reply #1363 on: 2019.July.05. 20:47:09 »
Sebesség: SET CHARACTER X,......   v. SPOKE

igen, igen, a poke/spoke nagy ereje a zzzipnek :)
« Last Edit: 2019.July.05. 21:10:04 by szipucsu, Reason: Túl hosszú idézet törlése »
Vigyázat! Szektás vagyok! :)

Offline szipucsu

  • EP addict
  • *
  • Posts: 7855
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 67.0 Firefox 67.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: BASIC
« Reply #1364 on: 2019.July.05. 21:29:55 »
A példa program 10x írná újra a 128 karaktert.
Ez biztosan jól működik? Az első (set characteres) módszer változtatja csak meg a 32-es karakter alakját, a következő két módszer szerintem nem jól működik. (Az A változót nem használod fel sehol, és az a 0+0 is fura nekem, mihez kell.)
SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
SOUND PITCH 25,SYNC 2
Videos