Welcome, Guest. Please login or register.


Author Topic: Általános BASIC Kérdések (Read 423780 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 #195 on: 2011.December.29. 18:13:28 »
Zzzippelve nem mûködik jól. Az R=RECALL nem mûködik egyáltalán, és amikor az epdos font után a bomber fontot töltöm be, félig töltõdik csak be és hibaüzenettel leáll.
A Recall-nál valami kerekítést végez a gép, ez zavarhat talán be neki. A betöltéssel kapcsolatos gondot nem értem.
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline Ep128

  • EP addict
  • *
  • Posts: 1849
  • Country: hu
    • Honlapom
Re: Általános BASIC Kérdések
« Reply #196 on: 2011.December.29. 19:06:28 »
Fél-off: A Szeile Sanyi féle Enterprise Windows -ban épp a karakterkészítõ az, ami teljesen tökéletesen mûködik és az ég világon mindent tud! :-)

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 #197 on: 2011.December.31. 11:45:46 »
TEXT 40-et betettem. A STOP billentyût letiltottam, hogy ne lehessen kilépni a programból, mert az belerondítana a 102-es képernyõbe.
A file mûveletes részeket WHEN blokkokba tettem. Töltési/mentési hibánál elvileg ki kéne írnia a hibaüzenetet és egy gombnyomásra mennie kéne tovább. Ehelyett pl. magnós mentésnél a STOP gomb megnyomására vad dolgokat mûvel (de legalább nem lép ki a programból). Valaki megnézhetné, miért nem tökéletes.
[ Guests cannot view attachments ]

UI: Tudtátok egyébként, hogy a :DEF_DEV_TAPE az emulátorban a TAPE:-t teszi alapértelmezett eszközzé? Azt hittem, csak FILE: és DISK: eszköznél mûködik, de kipróbáltam, és magnóval is mûködött.
« Last Edit: 2011.December.31. 11:48:57 by szipucsu »
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

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 #198 on: 2012.March.06. 15:58:55 »
Hogyan lehet annak a képernyõnek (videólapnak) a méretét megváltoztatni, amin a kurzor villog?
Tehát hogy ne a szokásos kb. 24x42-es méretû legyen, hanem pl. 6x42, vagy valami olyasmi, mint ami a GRAPHICS utasítás kiadása után lesz a képernyõ alján, mert felülre pl. egy másik videólapot nyitok meg.

Kísérletezgettem. Eddig a következõre jutottam:
Code: [Select]
100 CLOSE #0
110 SET VIDEO X 41
120 SET VIDEO Y 6
130 OPEN #0:"VIDEO:"
140 DISPLAY #0:AT 21 FROM 1 TO 6
Elõször a 0-ás helyett a 102-es csatornával próbálkoztam, egyáltalán nem mûködött a PRINT utasítás az alapértelmezett csatornára (*** Editor video channel error lett). 0-ás csatornával a PRINT már mûködik, de sima videólapot nyit csak meg, nem olyat, amibe én magam irkálhatok és adhatok ki parancsokat, így az INPUT utasítás sem mûködik rendesen a 0-ás lapra.
Ez valószínû nem meglepõ, mert nem a 0-ás, hanem a 102-es csatornával kellett volna próbálkozni, mert a 0-ás csatorna valami editor, nem videó. De 102-es csatornával nem mûködött rendesen a fenti program (Editor video channel error). Akkor mit is kéne pontosan csinálni a 0-ás és a 102-es csatornával, hogy olyasmi "szerkesztõfelület" nyíljon meg, mint ami a GRAPHICS utasítás kiadása után van a képernyõ alján?


UI: Ááá, megvan, be kellett zárni a 0-ás csatornát is, a 102-essel hókuszpókuszolni és újra megnyitni mindkettõt. Csak akkor jutott eszembe, amikor ezt leírtam. Töröljük ezt a hozzászólást akkor, vagy maradjon érdekességként?
« Last Edit: 2012.March.06. 16:04:34 by szipucsu »
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Általános BASIC Kérdések
« Reply #199 on: 2012.March.06. 16:15:49 »
Úgy látszik, késve, de itt egy egyszerű példa:

[ Guests cannot view attachments ]

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 #200 on: 2012.March.06. 16:27:37 »
Úgy látszik, késve, de itt egy egyszerû példa:

Azért köszi!
De igazából miért van szükség a 0-ás csatorna bezárására és újra megnyitására?
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 #201 on: 2012.March.06. 16:48:42 »
De igazából miért van szükség a 0-ás csatorna bezárására és újra megnyitására?
Mert az EDITOR-nak az "alárendeltje" a 102-es.

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 #202 on: 2012.March.08. 18:24:59 »
Egy érdekes kérdés:
Amikor egy basic program a memóriában van és azzal dolgozunk, meg lehetne azt valahogy oldani, hogy egy utasításra vagy valahogy kiírja a gép, hogy a basic programban milyen változók (mi a nevük) fordulnak elõ?
Pl. így mûködne:

:VALPRINT
A, B, N, X, Y, CURX, CURY, A$, NEV$, KIIR$
ok

Amikor már hosszú a basic program és már nem tudom, milyen változóneveket használtam, nem tudom, hogy muszáj-e valami cifra változónevet kitalálni új változónak, vagy addig még nem volt pl. az N mint numerikus változó. Régebben sokszor botlottam ebbe a problémába.

Egy másik, ami jól jöhetne, ha rá lehetne valahogy keresni, hogy egy basic programban egy adott utasítás elõfordul-e, és hol.
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline Tuby128

  • EP addict
  • *
  • Posts: 1448
  • Country: hu
Re: Általános BASIC Kérdések
« Reply #203 on: 2012.March.08. 19:49:34 »
Ha azt akarod, hogy egy utasításra kiírja, hogy mely változónak mi az értéke akkor a következõt ajánolm:

100 PROGRAM "szipucsu.bas"
110 ! itt kezdõdik a program
...
1980 ! itt legyen mondjuk a vége
1990 END
2000 print A, B, N, X, Y, CURX, CURY, A$, NEV$, KIIR$
2010 END

Ezek után ha megszakad a program és kíváncsi vagy az értékre, akkor:
START 2000

Programot úgy kell írni Szipucsu, hogy vázlatot írsz közben. A papíron szerepelnie kell a változóknak és a hozzájuk tartozó rövid megjegyzésnek. Hosszú programok esetén már másképp nem lehet.
 Szubrutinok (DEF) esetén is jó volna felsorolásszerûen, hogy milyen rutink vannak a programban, és mi a feladatuk röviden.


Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Általános BASIC Kérdések
« Reply #204 on: 2012.March.08. 20:21:04 »
Programot úgy kell írni Szipucsu, hogy vázlatot írsz közben. A papíron szerepelnie kell a változóknak és a hozzájuk tartozó rövid megjegyzésnek. Hosszú programok esetén már másképp nem lehet.
 Szubrutinok (DEF) esetén is jó volna felsorolásszerûen, hogy milyen rutink vannak a programban, és mi a feladatuk röviden.
Ezt hívják program specifikációnak. Amíg nem volt meg, addig nem is lehetett géphez nyúlni programozás órán :-)

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Általános BASIC Kérdések
« Reply #205 on: 2012.March.08. 20:24:37 »
Egyébként a Tippek-Trükkökben vannak ilyesmik, mint amit Szipucsu kérdez. Lua-ba kéne átírni õket, és akkor lehetne a ep128emu-val Basic-et is debuggolni :-)

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 #206 on: 2012.March.08. 20:40:40 »
Ha azt akarod, hogy egy utasításra kiírja, hogy mely változónak mi az értéke akkor a következõt ajánolm:
Én arra gondoltam, hogy magukat a változókat írja ki. Pl. ki emlékszik már rá, használtam-e pl. N-t, mint numerikus változót.

Persze, vázlat nem rossz, ha van elõre. De programírás közben jut eszébe az embernek, hogy még ezt is, azt is meg lehetne csinálni, és akkor jönnek újabb változónevek. Most pl. Lacika felvetette, hogy legyen képernyõtörlés abban a Dot collector szerkesztõben, ehhez meg újabb változók kellenek. És akkor még kitaláljuk, hogy pl. mértani alakzatokat is generáljon a pályára a játék, akkor ahhoz újabb változónevek kellenek, és ki tudja már követni, milyen változóneveket "használtunk el" eddig, milyeneket nem. Ez azért gond, mert ha egy olyan változót kezdek használni egy új dologra, aminek a program másik részén más szerepe van, akkor balhé lesz.

Bár lehetne pl. AKARMI, ILYENISLESZ meg hasonló változóneveket kitalálni, amik addig nem voltak, végülis azzal is mûködik a program. Csak lehet, jobban szereti a gép is, ha rövid változónevek vannak, vagy tévedek? Mert akkor mindegy, milyen neveket adunk a változóknak.

Meg pl. szokás az "átmeneti" funkcióra való változóknak bizonyos neveket adni (pl. A), így ha ezeknek újra adunk valami más értéket, nem gond. Pl. ha csak várakoztatásra kell.:
7854 FOR A=1 to 40000
7855 NEXT A

UI: Ja, hogy programírás KÖZBEN kéne írni papírra a változókat és megjegyzéseket! Jó ötlet. Csak tuti legközelebb elfelejtem. Mondjuk nem sûrûn programozok IS-BASIC-ben. IS-BASIC-en kívül meg mást semmit.
« Last Edit: 2012.March.08. 20:47:32 by szipucsu »
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

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 #207 on: 2012.March.09. 16:11:34 »
Van olyan szabad memóriaterület, ahova POKE utasítással bármit írhatunk? Így ha ennek a területnek a tartalmát átírnánk, azzal tárolni lehet ott különbözõ adatokat.
Csak mert a legtöbb POKE utasítás valamit átállít a gép mûködésében is, rosszabb esetben le is fagyasztja a gépet. Olyan kéne, aminek semmiféle közvetlen hatása nincs és kedvünkre állítgathatjuk az értékét 0 és 255 között.
Olyan kéne, amivel ha basic programban átírom a memória egy részét és a programot lefordítom Zzzippel, akkor is mûködik.
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 #208 on: 2012.March.09. 16:15:57 »
Allocate-s rutinnal foglalni kell egy szegmenst, és akkor azt lehet SPOKE-ézni.
Így van az FDISK.BAS-ban is:
[ Guests cannot view attachments ]
« Last Edit: 2012.March.09. 16:27:12 by Zozosoft »

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 #209 on: 2012.March.09. 16:31:11 »
Arra lenne jó, hogy ebben a Dot collector pályaszerkesztõben ne kelljen 7719 nagyságú tömböt definiálni (ennyi bájtos a file), amiben a bájtokat tárolja. A tömb definiálása is hosszú ideig tart. Jobb lenne valahova a memóriába írni egybõl a cuccot, és onnan olvasni ki.
Ha ALLOCATE 7719-cel lefoglalom a területet, akkor utána SPOKE-kal hova lehet írni, milyen értékeket lehet megadni? Olyasmit tudok elképzelni, hogy SPOKE 255,X+valamennyi,Y ahol X=0 és 7719 között valamelyik bájtja a játékprogramfájlnak, Y pedig az az érték, amit oda beírunk...
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos