Welcome, Guest. Please login or register.


Author Topic: BASIC (Read 214191 times)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4825
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 58.0 Firefox 58.0
    • View Profile
Re: BASIC
« Reply #1320 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: 8602
  • 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 #1321 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?
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 IstvanV

  • EP addict
  • *
  • Posts: 4825
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 58.0 Firefox 58.0
    • View Profile
Re: BASIC
« Reply #1322 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: 8602
  • 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 #1323 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.
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 Zozosoft

  • EP addict
  • *
  • Posts: 13731
  • 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 #1324 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: 955
  • 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 #1325 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: 1965
  • 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 #1326 on: 2019.June.24. 12:29:35 »
*** Speicherplatz zu klein

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 73.0.3683.103 Chrome 73.0.3683.103
    • View Profile
    • Honlapom
Re: BASIC
« Reply #1327 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: 811
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 67.0 Firefox 67.0
    • View Profile
Re: BASIC
« Reply #1328 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: 8602
  • 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 #1329 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.
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 Ferro73

  • EP lover
  • *
  • Posts: 811
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 67.0 Firefox 67.0
    • View Profile
Re: BASIC
« Reply #1330 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: 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:
  • Firefox 67.0 Firefox 67.0
    • View Profile
    • Honlapom
Re: BASIC
« Reply #1331 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: 8602
  • 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 #1332 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.)
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 Ferro73

  • EP lover
  • *
  • Posts: 811
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 67.0 Firefox 67.0
    • View Profile
Re: BASIC
« Reply #1333 on: 2019.July.05. 21:39:01 »
Szerkesztek egy DEF CHAR rutint

Amit később már csak be kell illeszteni
Variációk hirtelen:
1.
        RESTORE  XXXX
        CALL CHAR

XXX  DATA 31,1,2,3,4,5,6,7,8,9

2. Ami a példában van
       CALL CHAR(31,1,2,3,4,5,6,7,8,9)

Melyik tűnik kezelhetőbnek.

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.)

Azok azért kellenek mert per pillanat nem tudom az eltolásokat meg a start cimet.
A szimulációhoz  kellenek azok a számolások is.
Így pontosabb az értékelés.

Offline szipucsu

  • EP addict
  • *
  • Posts: 8602
  • 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 #1334 on: 2019.July.05. 21:50:46 »
Szerkesztek egy DEF CHAR rutint
Ha tényleg gyorsabb SPOKE-kal definiálni át a karaktereket zzzippelt programban, mint SET CHARACTER-rel, akkor ez jó ötlet! Játék közbeni karakteres animhoz praktikus lehet! Tudsz majd írni olyat, ahol meg kell adni a SET CHARACTER utáni számokat, és azt átadja a SPOKE-os eljárásnak?
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