Welcome, Guest. Please login or register.


Author Topic: Általános BASIC Kérdések (Read 423682 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 #1455 on: 2020.August.25. 23:43:28 »
A szabad videomemoria merete szab korlatot neki
Mi fogyaszthatja el a szabad videomemóriát? Csak a videolapok? Tehát ha beállítom az összes szükséges videolap méretét és megnyitom őket, és utána már nem nyitok újabb videolapokat, akkor már nem csökkenhet a szabad videomemória mérete?
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Online geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: Általános BASIC Kérdések
« Reply #1456 on: 2020.August.26. 08:27:42 »
Elméletileg csak te :D , igen ha megnyitod őket, akkor tovább már nem csökken.

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 #1457 on: 2020.August.26. 11:27:04 »
Mostanában a "szipucsu kérdez" topik ez. Újabb ravasz kérdés: A status sor videolapját meg lehet változtatni, pl. kétszínű karakteres lapról négyszínű karakteres lapra? Betöltésnél-kimentésnél jó, ha látszik magnós gépen, viszont ha át vannak definiálva a karakterek négyszínű karakterekre, akkor krixkraxok vannak ott.
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Online geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: Általános BASIC Kérdések
« Reply #1458 on: 2020.August.26. 11:40:24 »
Nincs rá Basic parancs, csak SPOKE-olással tudod lecserélni, megvan egy változódban hol kezdődik az LPT, a változó +1 címre kell 40-et írni, ez akkor érvényes, ha a változód értéke nem az képernyő 1. sorának LPB-jére mutat, hanem a Státusz sorának LPB-jére, ha a képernyő 1. sorának LPB-jére, akkor változó-15 -ös helyére kell SPOKE-olni a 40-et.

Offline gflorez

  • EP addict
  • *
  • Posts: 3607
  • Country: es
    • Támogató Támogató
Re: Általános BASIC Kérdések
« Reply #1459 on: 2020.August.26. 17:59:53 »
Szia, szipucsu. Ez a program, amelyet Zzzip-re akarok konvertálni.

----------

Hello, szipucsu. This is the program I want to Zzzip.

----------

Hola szipucsu. Este es el programa que quiero convertir a Zzzip.

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 #1460 on: 2020.August.26. 21:49:14 »
Hola szipucsu. Este es el programa que quiero convertir a Zzzip.
I have tried both the original and the compiled program on the emulator (I have only the emulator). I know it doesn't work without the hardware. However, the original and the compiled programs do the same. "Initialising USB device.." is in progress but nothing happens. Does it do the same with the hardware? Or does it hang up earlier?
[ Guests cannot view attachments ]
I suggest deleting all the "'!" signs and comments. It can also cause problems for the Zzzip. But I haven't found anything that should affect running the compiled program...
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline gflorez

  • EP addict
  • *
  • Posts: 3607
  • Country: es
    • Támogató Támogató
Re: Általános BASIC Kérdések
« Reply #1461 on: 2020.August.27. 06:30:59 »
Great! Now it works correctly with some minor errors that I will fix.

The program has three screens.  The first brief one is when the USB is initialized and an intro song is played while the other two screens are drawn in the background. The second one is the file-manager/directory-navigator, that now works very fast.

[ Guests cannot view attachments ]

And the third one is the playing screen, that launches a song but stops with a "*** Not understood." message.

[ Guests cannot view attachments ]

There is some way to know the offending line number?

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 #1462 on: 2020.August.27. 09:46:27 »
There is some way to know the offending line number?
Unfortunately no. Zzzip forgets the line numbers of the original program.
As I see line  4390 returns  (4390 RETURN) to the line 510 and this line might be guilty:

Code: [Select]
510 IF (IN(35) BAND 8)<>8 THEN GOTO 510
It is easier this way (without brackets):

Code: [Select]
510 IF IN(35) BAND 8<>8 THEN GOTO 510
I have compiled it this way. Is it working now?
[ Guests cannot view attachments ]

If not, you could find out something else instead of BAND. Or maybe:

Code: [Select]
510 LET GUSTAVO=IN(35)
515 IF GUSTAVO AND 8<>8 THEN GOTO 510
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline gflorez

  • EP addict
  • *
  • Posts: 3607
  • Country: es
    • Támogató Támogató
Re: Általános BASIC Kérdések
« Reply #1463 on: 2020.August.27. 10:23:20 »


I only can use BAND , as I am managing bits. I can search other ways, with arithmetic.

What version of Zzzip do you use? I have to fix it by myself...

Thanks.

Online geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: Általános BASIC Kérdések
« Reply #1464 on: 2020.August.27. 10:29:20 »
If you use

V=IN(35)
IF V/8-V/16*2=0 GOTO 510

should work, since ZZZIP works only with integers :D :D
« Last Edit: 2020.August.27. 10:45:00 by geco »

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 #1465 on: 2020.August.27. 10:47:10 »
What version of Zzzip do you use? I have to fix it by myself...
Zzzip 1.2. It can be downloaded here, scroll down to the bottom of the page. Hay que ir abajo en la página.

Anyway, the simplest way is to use this snapshot if you have enabled virtual file I/O and have a working directory on your hard drive (set by alt+F in the EP128Emu):
[ Guests cannot view attachments ]
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline gflorez

  • EP addict
  • *
  • Posts: 3607
  • Country: es
    • Támogató Támogató
Re: Általános BASIC Kérdések
« Reply #1466 on: 2020.August.27. 14:36:43 »
Thanks both. Later I will try it.

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 #1467 on: 2020.September.05. 09:58:10 »
Azt hogyan lehet a legegyszerűbben megcsinálni, hogy a program véletlenszerű sorrendbe rakja a számokat 1 és N között? Arra kellene, hogy a játékban a szintek véletlenszerű sorrendben jöjjenek egymás után, mint az Enterball-nál, de az első és utolsó szint is mindig változna.

Én ezt találtam ki, 1 és 8 között véletlenszerű sorrendbe rakja a számokat. Lehet ennél egyszerűbben?
Code: [Select]
    1 PROGRAM "sorrend.bas"
   10 RANDOMIZE
  100 NUMERIC SZINTEK(1 TO 8)
  110 FOR A=1 TO 8
  120   LET B=RND(8)+1
  125   IF A>1 THEN
  130     FOR C=1 TO A-1
  140       IF B=SZINTEK(C) THEN GOTO 120
  150     NEXT
  155   END IF
  160   LET SZINTEK(A)=B
  170 NEXT
  180 FOR A=1 TO 8
  190   PRINT SZINTEK(A)
  200 NEXT
Zzzippel lefordítva a programot a 2. szám mindig a 2 volt, fura. Az első meg mindig vagy az 5, vagy a 6, talán ritkán más is.
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline ergoGnomik

  • EP addict
  • *
  • Posts: 1291
  • Country: hu
  • Stray cat from Commodore alley
Re: Általános BASIC Kérdések
« Reply #1468 on: 2020.September.05. 11:24:50 »
Azt is csinálhatod, hogy sorrendben feltöltöd a szintek tömbjét, és ciklusban kiválasztasz véletlenszerűen két tömbelemet, amiket felcserélsz. A ciklus hosszát meg kikísérletezed, hogy hány cserét érdemes elvégezni hogy a szemednek kellemes véletlen sorrend álljon elő. Érdemes még arra is figyelni, hogy a felcserélendő két elem különböző legyen (tehát ne akarja a program mondjuk az ötödik elemet az ötödikkel megcserélni), illetve azt is lehet esetleg ellenőrizni, hogy ne ismétlődjön meg a legutóbbi csere (pölö egyes a kettessel egymás után kétszer, vagy hármas a hatossal, majd hatos a hármassal).

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 #1469 on: 2020.September.05. 14:32:18 »
ciklusban kiválasztasz véletlenszerűen két tömbelemet, amiket felcserélsz

Kipróbáltam ezt is, ez is működik:
Code: [Select]
  100 PROGRAM "sorrend2.bas"
  110 RANDOMIZE
  120 NUMERIC SZINTEK(1 TO 8)
  130 FOR A=1 TO 8
  140   LET SZINTEK(A)=A
  150 NEXT
  160 FOR X=1 TO 20
  170   LET A=RND(8)+1:LET B=RND(8)+1
  180   IF A=B THEN GOTO 170
  185   LET C=SZINTEK(A)
  200   LET SZINTEK(A)=SZINTEK(B)
  210   LET SZINTEK(B)=C
  220 NEXT
  230 FOR A=1 TO 8
  240   PRINT SZINTEK(A)
  250 NEXT

Továbbgondolva az ötleted, végigmegyek ciklussal az összes elemen, és tetszőleges elemmel felcserélem. Így tuti, hogy mindenhol lesz csere, és elég csak akkora ciklus, ahány elem van a tömbben. Így az sem baj, ha önmagával cseréli meg, sőt jó is, mert különben nem lehetne az 1 sosem az első, így több variáció lehet. Azt hiszem, ez a legjobb és egyben leggyorsabb módszer:

Code: [Select]
  100 PROGRAM "sorrend3.bas"
  110 RANDOMIZE
  120 NUMERIC SZINTEK(1 TO 8)
  130 FOR A=1 TO 8
  140   LET SZINTEK(A)=A
  150 NEXT
  160 FOR X=1 TO 8
  170   LET A=X:LET B=RND(8)+1
  180   !IF A=B THEN GOTO 170 ! nem is kell ez
  185   LET C=SZINTEK(A)
  200   LET SZINTEK(A)=SZINTEK(B)
  210   LET SZINTEK(B)=C
  220 NEXT
  230 FOR A=1 TO 8
  240   PRINT SZINTEK(A)
  250 NEXT
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos