Welcome, Guest. Please login or register.


Author Topic: Általános BASIC Kérdések (Read 423685 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 #270 on: 2012.March.31. 19:21:56 »
Kell kérni egy EXT "help sample"-t, és ha ismeretlen parancs, akkor kell betölteni.
És még a WHEN-HANDLER blokkokkal is hókuszpókuszolni emiatt? :D
De ez nem jó, mert a Sample help-je olyan hosszú, hogy nem fér ki egy képernyõre, így sokáig is tartana, és még gombot is kéne nyomkodni közben, hogy ha betelt a képernyõ, menjen tovább a HELP. Ha a háttér színére állítjuk a tinta színét, akkor nem lenne feltûnõ az egész, de így ezt nem tudom, hogyan lehetne megcsinálni...
És a karakterkészletet is újra betölti feleslegesen. Arra meg azt találni ki, hogy a karaktereket felépítõ bájtokat valahogy összeadni, és ha megfelelõ összeg jön ki, akkor nem kell betölteni? De ott véletlen egyezés is lehet... Bár a karakterkészlet betöltése floppyval jelentéktelen ideig tart.
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: Általános BASIC Kérdések
« Reply #271 on: 2012.April.01. 18:37:24 »
WoS fórumon van pár topik ami a bacis játékokkal foglalkozik

az egyik legérdekesebb:
(címe: Most impressive game you've ever seen which has been written in speccy BASIC?)

http://www.worldofspectrum.org/forums/showthread.php?t=28282&page=2

szerintem mondjuk EP-re én írtam a basicet legjobban kihasználó játékokat, de még amit én csináltam is sehol sincs szerintem ahhoz képest amit ki lehetne hozni az EP basicból :)
Vigyázat! Szektás vagyok! :)

Online Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: Általános BASIC Kérdések
« Reply #272 on: 2012.April.01. 18:44:04 »
TVC-sek is sok játékot írtak BASIC-ben, ami ugye rokona az IS-BASIC-nek.

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 #273 on: 2012.April.02. 13:18:51 »
Attribútum képernyõre miért nem lehet több színnel is írni?

SET VIDEO MODE 15 ...
OPEN #200:"video:"
SET #200:PALETTE BLUE,255,BLUE,3
DISPLAY #200: ...
...
SET #200:INK 2 (vagy akármennyi)
PRINT #200:"akarmi"
és az 1-es színnel jelenik meg. Pedig kb. 16 színt is tudni kéne, de csak az alap 1-es szín megy...

UI: Ha nem SET PALETTÉzünk, hanem azt írjuk helyette, hogy SET COLOR 0,BLUE :SET COLOR 1,255, akkor a SET INK 2-re berak másik színt is. De attól még a SET PALETTE is mûködhetne.

Nincs egyébként valahol a neten egy "színkód táblázat"? Olyanra gondolok, hogy ott van pl. egy kockában az adott szín, mellette a kódja, és ez mind a 256 színnel, onnan lehetne kipróbálni színeket a készülõ programokhoz.

UI2: Úgy emlékeztem, ha grafikus képernyõre írunk szöveget, akkor a betûk nem felülírják egymást, hanem két betû van "egymáson", tehát ahol 0 bit van a karakterben, az nem írja felül az 1-es bitet. És ezért a szóköznek sincs hatása, ha egy betûre írunk vele. De attribútum képernyõn, úgy látom, ugyanúgy van, mint szöveges képernyõn. Akkor ez az eredeti karakter is megmarad és az új is ráíródik trükk a 2, 4, 16, 256-os grafikus lapokon mûködik, és az attribútum képernyõn nem?

UI3:Közben rájöttem, hogy mindkét színnek a BLUE van megadva. Elõtte szöveges képernyõ volt, késõbb gondoltam, legyen attribútum képernyõ, de akkor már a PALETTE után nem a 3., hanem a 4. szám az, ami szöveges képernyõnél a 3. Ezért nem akart más színnel írni.
Szomorúan tapasztaltam, hogy bár MODE 15 az attribútum mód neve, nem enged 15 színt, hanem csak 7-et, mert a 8-as számú újra a 0-ás lesz. De errõl valahol már volt szó.
Most megint törölném a hozzászólásomat, mert triviális volt a kérdésem. De közkívánatra meghagyom. :)
Az a színkód táblázat jó lenne, ha lenne... talán ilyenrõl is volt már szó, de lehet, hogy az más volt.
« Last Edit: 2012.April.02. 16:29:50 by szipucsu »
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline Lacika

  • EP addict
  • *
  • Posts: 3191
  • Country: hu
    • http://www.ep128.hu
Re: Általános BASIC Kérdések
« Reply #274 on: 2012.April.02. 16:52:12 »
Nincs egyébként valahol a neten egy "színkód táblázat"?

Itt, kicsit lejjebb bent van ez a táblázat, amit még István csinált.
De talán célszerûbb az Util programcsokorban lévõ COLOUR.BAS használata.

Online Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: Általános BASIC Kérdések
« Reply #275 on: 2012.April.02. 16:55:18 »
a 8-as számú újra a 0-ás lesz. De errõl valahol már volt szó.
A 8-15 színeket a BIAS-sal állítod egy kupacban.

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 #276 on: 2012.April.02. 23:53:06 »
Itt, kicsit lejjebb bent van ez a táblázat, amit még István csinált.
De talán célszerûbb az Util programcsokorban lévõ COLOUR.BAS használata.
Erre emlékeztem, ez az, köszi!
A Colour.bas-sal az a gond, hogy emut kell hozzá külön futtatni. Egyszerûbb egy táblázatban megnézni a kiszemelt színt és hozzá a kódot és azt beírni.

A 8-15 színeket a BIAS-sal állítod egy kupacban.
Nekem magas, mi az a BIAS. A gépkönyvbõl rémlik valami. De talán nem is olyan fontos. :D
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Online Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: Általános BASIC Kérdések
« Reply #277 on: 2012.April.02. 23:58:09 »
Nekem magas, mi az a BIAS. A gépkönyvbõl rémlik valami. De talán nem is olyan fontos. :D
Pedig nagyon fontos ha 16 színû módot akarsz használni!!!
Az LPT-ben, azaz BASIC-ben SET PALETTE-vel csak a 0-7 színek adhatóak meg, a maradék 8 szín értékét a BIAS-sal adjuk meg, ez egymás utáni 8 színt határoz meg, értéke 8-ra lesz kerekítve. Tehát ha a BIAS 0, akkor a 8-15 színek értéke:0,1,2,3,4,5,6,7
Ha BIAS mondjuk 64, akkor: 64,65,66,67,68,69,70,71

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 #278 on: 2012.April.04. 12:26:16 »
Ezzel az egyszerû basic programmal az angol számokat lehet gyakorolni 0-tól 9-ig.
A 1-es és a 2-es menüpont elszámol 0-tól 9-ig, utána véletlenszerûen kidob számokat és azokat is elmondja. A 2-es menüpont a számjegy mellé betûvel is kiírja a számot.
A 3-as menüponttal a hallás utáni felismerést gyakorolhatjuk, véletlenszerûen 20 számot elmond a gép, és a hallott számhoz tartozó számbillentyût kell leütni. Ha egy számot elsõre nem értettünk, az ENTER-re újra elmondja.
A 4-es menüpontot választva a gép kiír számjegyeket, amiket betûvel le kell írnunk, ezután el is mondja a számot. Az 5-ös ennek a fordítottja, betûvel kiír számokat, és a hozzájuk tartozó számbillentyût kell leütnünk.
Talán jobb lenne, ha a 0 helyett/mellett a 10-es számot ismerné a program? De akkor azt nem lehetne egyetlen számbillentyûhöz rendelni...

Olyan emu konfiggal mûködik, amin van EXDOS is, és a FILE: az alapértelmezett eszköz, én amúgy exos232uk.rom mellett használtam. Igazi EP-n nem mûködik még, mert a FILE: eszközt használja. Ha az engnumb.bas fájlban átírjuk a file: szöveget a:-ra, talán mûködik igazi gépen is. Az a baj, nincs olyan utasítás, amivel az alapértelmezett eszközrõl COPY-zna a RAMDISK-re, így vagy a file:-t, vagy az a:-t kell megadni, így vagy emuval (EPfileIO.rommal), vagy igazi géppel mûködik csak. Illetve lenne egy megoldás, amivel az alapértelmezett eszközrõl másol a RAMDISK-re (OPEN #1:"filenév" az alapértelmezett eszközt használja, ha nem adunk meg eszközt), de ehhez a basic COPY utasítás kell, ami sajnos percekig tart. Az EXDOS :COPY parancsának pedig muszáj bementi eszközt megadni, nem ismeri fel az alapértelmezett eszközt. Gondolom, itt is gépi kódú részek oldanák meg a problémát a basic COPY utasítása helyett.
Basic programból nem lehet a Sample Playert betölteni másként, csak az EXDOS :LOAD utasításával? Próbáltam a RUN ""-nal betölteni, de nem ment. Pedig ha megoldható lenne, a program nem csak EXDOS mellett, hanem magnós géppel is mûködne. Szerk: Bocsánat, ez nem igaz, mert a RAMDISK-hez mindenképpen kell EXDOS.
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 #279 on: 2012.April.06. 19:09:46 »
Van valami praktikus módja annak, hogy egyik basic program átadjon információt egy másik basic programnak, amit elindít? A változók törlõdnek ilyenkor, tehát valami más megoldás kéne.
Szóval ilyesmire gondolok, csak másképp:

10 PROGRAM "betöltõ loader for másik program"
100 LET A=3
115 IF RND(24)=4 THEN LET A=8
110 RUN "másik program"

100 PROGRAM "másik program"
110 IF A=3 THEN GOTO 230

Lehet "cifrázni", hogy pl. egy nem használt karaktert átdefiniálunk az elsõ programban, a második program pedig SPEEK utasítással megnézi, mire van átdefiniálva az a karakter és akképpen cselekszik. Pl. a 127-es kódú karaktert úgyse használta soha senki az EP eddigi történelme folyamán (mert nincs is olyan billentyûkombináció, amivel elõ lehetne hívni), így annak átdefiniálásával aránylag nagyobb információt is lehet tárolni.
Ez jó, hogy a kérdésemet rögtön meg is válaszoltam, de amúgy van valami más megoldás is?
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline Ferro73

  • EP lover
  • *
  • Posts: 967
  • Country: hu
Re: Általános BASIC Kérdések
« Reply #280 on: 2012.April.06. 19:29:51 »
Ha jól emlékszem van olyasmi, hogy "Edit 1"  ilyenkor a program 0 -> program 1 lesz  és akkor az a program indul el
Ezt a lehetõséget használtam a BASIC programok titkosításának mentesítésére BASIC-ben.
Igaz nem jöttem rá, hogy lehet egyszerre ki menteni a Program 0, Program 1 ... és betölteni egy menetben.
Valamint nem volt olyan lehetõség, hogy Program 1 run 111 PL.

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 #281 on: 2012.April.06. 20:00:36 »
Ha jól emlékszem van olyasmi, hogy "Edit 1"  ilyenkor a program 0 -> program 1 lesz  és akkor az a program indul el
Ez nekem is megfordult a fejemben. De én olyanra gondolok, hogy van egy basic program, aminek van külön egy basic betöltõje is és a betöltõ megcsinál néhány dolgot, amit a fõprogramnak már nem kell. Pl. a betöltõ átdefiniálja a karaktereket, van benne ENVELOPE NUMBER meg ilyesmik, így a fõprogram annyival kisebb helyet fog foglalni a memóriában. És a betöltõben lehetne még bizonyos dolgokat menüben kiválasztani, na ezekre lenne jó, ha emlékezne a fõprogram is. A fõprogram a betöltõbõl RUN "fõprogram" utasítással töltõdik és indul, és ezzel akkor a betöltõt felül is írja a memóriában.
Lehetne még trükközni, hogy a betöltõ a tárolandó adatnak megfelelõen a KEY CLICK-et, KEY DELAY-t, stb. átállítja, a fõprogram meg megnézi ezeknek az értékét ASK utasítással és aszerint ad értéket a változóknak, hogy van-e CLICK és mennyi a DELAY. Sõt, a betöltõ átválthat SHIFT, ALT, CAPS üzemmódba, a fõprogram meg megnézné, milyen üzemmód van. Vicces, de biztos mûködik.
Egyébként ez EDIT és CHAIN utasítás is praktikus, én nem nagyon használtam õket... A Reversi-Dáma-Awarin kívül nem tudok programról, ami ezt használná.
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline Ferro73

  • EP lover
  • *
  • Posts: 967
  • Country: hu
Re: Általános BASIC Kérdések
« Reply #282 on: 2012.April.06. 20:21:08 »

Lehetne még trükközni, hogy a betöltõ a tárolandó adatnak megfelelõen a KEY CLICK-et, KEY DELAY-t, stb. átállítja, a fõprogram meg megnézi ezeknek az értékét ASK utasítással és aszerint ad értéket a változóknak, hogy van-e CLICK és mennyi a DELAY. Sõt, a betöltõ átválthat SHIFT, ALT, CAPS üzemmódba, a fõprogram meg megnézné, milyen üzemmód van. Vicces, de biztos mûködik.
Ezt már akkor felesleges ellenõrizni ennyi erõvel be is állítható.
A Happy letters, worldhang programokra gondolsz azok ilyenek nézd meg sokat tanulhatsz belõlük.

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 #283 on: 2012.April.06. 20:37:53 »
Ezt már akkor felesleges ellenõrizni ennyi erõvel be is állítható.
Szerintem rosszul értetted, amit írtam, de másképp nem tudom elmagyarázni. Pl. a KEY DELAY értéke itt az eredeti funkciója szempontjából lényegtelen, mert miközben tölti a fõprogramot, úgyse nyom le senki billentyût. Arra lenne jó, hogy, mivel ugye a betöltõ program változóértéket nem tud átadni a fõprogramnak, mert a RUN "" törli a változókat, ezért a betöltõ beírna pl. 1-et vagy 2-t KEY DELAY-nek. A fõprogram meg lekérdezné a KEY DELAY értékét, és ha 1, akkor az A változónak 1 értéket adna, ha meg 2, akkor az A változónak 2-t adna. Merthogy ha a betöltõ programba be is írnánk, hogy LET A=1, miután betöltõdött a másik program, az A-nak már nem lenne értéke és hibaüzenet lenne.
Utána vissza is lehet állítani a KEY DELAY értékét normálisra akár.
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Online Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: Általános BASIC Kérdések
« Reply #284 on: 2012.April.06. 20:49:09 »
Igaz nem jöttem rá, hogy lehet egyszerre ki menteni a Program 0, Program 1 ... és betölteni egy menetben.
SAVE ALL