Welcome, Guest. Please login or register.


Author Topic: BASIC (Read 154683 times)

Offline MrPrise

  • Administrator
  • EP addict
  • *
  • Posts: 2465
  • Country: hu
    • View Profile
    • Enterprise Forever
Re: BASIC
« Reply #15 on: 2006.August.15. 14:24:20 »
Quote from: "Zozosoft"
mivel a GOTO-k miatt soha nem jut el ide a programvégrehajtása, ezért nincs hibaüzenet.

Az interpreteres programnyelvek szépsége :-D

Offline szipucsu

  • EP addict
  • *
  • Posts: 7336
  • Country: hu
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: BASIC
« Reply #16 on: 2006.August.15. 15:28:04 »
Most próbáltam ki az emulátorral, mit csinál egy önmagában álló END IF. Érdekes módon tényleg nem jelez hibát. A gépkönyvben viszont nem találtam olyat, amirõl írtam, azt valószínûleg csak álmodtam.
Ha a GOTO-val még ki is biztosítjuk, hogy ne érjen oda a program, akkor aztán még tutibb, hogy nem lesz hiba.
A kakaóról nem is beszélve.  :D

Ez olyan, mint az Aquafresh: háromszoros védelem


(Ha már nagyon az idegeitekre mennék a hülyeségeimmel, nyugodtan szóljatok!)

Egyébként GOTO és kakaó ide vagy oda, tényleg érdekes, hogy az önmagában álló END IF miért nem okoz [epline tc=146 bc=0 ttc=0 tbc=1 xs=1 ys=2]*** Invalid end of block.[/epline] -ot, míg az END DEF meg a többiek igen...
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

Online Zozosoft

  • EP addict
  • *
  • Posts: 13070
  • Country: hu
    • View Profile
    • http://enterprise.iko.hu/
Re: BASIC
« Reply #17 on: 2006.August.15. 15:35:53 »
Hmmm, fogtunk egy újabb IS-BASIC bugot? :-)
Az END SELECT is ezt csinálja.

Offline szipucsu

  • EP addict
  • *
  • Posts: 7336
  • Country: hu
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: BASIC
« Reply #18 on: 2006.August.15. 15:39:05 »
Quote from: "Zozosoft"
Hmmm, fogtunk egy újabb IS-BASIC bugot? :-)
Az END SELECT is ezt csinálja.


És ha tegnap éjfél után nem jövök a gép mellé egy bögre kakaóval, ki se derül. Igyatok kakaót, tele van tejjel, az élet, erõ egészség!
köszönet EDC-nek, hogy kakaó mellett futó programot készített! :) Így kideríthetjük a bugokat.
De tényleg, meg kéne nézni, minden EP (a 64-es, a német, az angol) is ezt csinálja-e, meg más gépeken hogy van ez, ha van.
Én láttam már a [epline tc=146 bc=0 ttc=0 tbc=1 xs=1 ys=2]*** No case selected.[/epline] üzenetet, de lehet, hogy az nem akkor volt, mint amirõl most beszélünk.
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 Lacika

  • EP addict
  • *
  • Posts: 2886
  • Country: hu
    • View Profile
    • http://www.ep128.hu
Re: BASIC
« Reply #19 on: 2006.August.15. 20:26:15 »
Quote from: "Zozosoft"
Hmmm, fogtunk egy újabb IS-BASIC bugot? :-)
Az END SELECT is ezt csinálja.


Úgy néz ki, hogy igen!



Az IS-BASIC védelmében el kell mondjam, hogy a "klasszikus" BASIC-ek közül (Tehát pl. nem Visual BASIC-re gondolok), az EGYETLEN, amellyel megoldható a struktúrált programozás, akár egyetlen GOTO nélkül is.
END IF azért kell, mert ha nem használjuk, az IF ... THEN után egyetlen sorba kellene "összesûritenünk" a feltételhez kapcsolódó teendõket.

Offline szipucsu

  • EP addict
  • *
  • Posts: 7336
  • Country: hu
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: BASIC
« Reply #20 on: 2006.August.15. 21:48:40 »
Tuti, hogy az END IF-nek nincs más funkciója az eljárás lezárása mellett? Csak éppen kimaradt a kézikönyvbõl. (Akárcsak a VER$ és a VERNUM változók, melyeket ha kiíratunk PRINT-tel, utána mintha meghülyülne a gép, talán a változók törlõdnek.)
Lacika és a kézikönyv is javasolja az eljárások alkalmazását az ON GOTO helyett, pedig ez utóbbi rövidebb. Talán a program futását is gyorsítja, ha 10 sor helyett egyetlen sor szerepel.

Egyszer úgy jártam, hogy egy basic játékot írogattam, amit teleraktam CALL-DEF utasításokkal. Gyakran lefagyott. A CALL-DEF helyett GOSUB-RETURN-t dobtam be, és ezzel már rendesen mûködött.
Egyébként a CALL (eljárás) helyett úgy emlékszem, használható a PRINT (eljárás) is. Vannak azok a DEF REF valamik, amik függvényt definiálnak (talán nem is kell feltétlenül a REF, már nem emléxem), és az is a PRINT-tel hívható meg, pontosabban íratható ki az értéke. De a nem függvénydefiniáló DEF is meghívható PRINT-tel, így parancs üzemmódból egy PRINT-tel program üzemmódba léphetünk.
Ha pedig egy DEF blokkon belül egy CALL-lal meghívjuk önmagát, mintha lefagyna a gép.
Valahol mintha olvastam volna, hogy ha STOP-pal megszakítjuk a program futását, egyetlen RESET, majd CONTINUE, az is fagyás. De ha progi futása közben STOP nélkül RESET, utána CONTINUE, akkor is fagyi. Meg ha a RESET helyett INFO, talán az is balhé.
Listázta már ki valaki a Submarine Commandert? Vad dolgokat mûvel...

[epline tc=146 bc=0 ttc=0 tbc=1 xs=1 ys=2]PRINT CHR$(127)[/epline]
Ez olyan karaktert ír ki, amit semmilyen billentyûkombinációval nem lehet elõhívni, sem SHIFT-tel, sem ALT-tal. :o
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

Online endi

  • EP addict
  • *
  • Posts: 6755
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • View Profile
    • Honlapom
Re: BASIC
« Reply #21 on: 2006.August.15. 22:24:35 »
az én fagyasztási kedvencem:

graphics (funkcióbillentyûrõl gyorsabb)
look

:)

vagy look #102:
(vagy mennyi is volt a szöveges képernyõ csatornaszáma?)

Ja meg errõl jut eszembe, milyen jók voltat az ún. escape szekvenciák. Pl. írt az ember egy zenét basicban, átirányította a hangot hogy kimentse file-ba és akkor utána a kimentett file-t betöltéskor vissza kellett irányítani a hangcsatornára és lejátszotta a zenét. Ugyanez érvényes volt grafikai parancsokra is.
A diplomás magyar programozó megcsinált egy pacmant egy év alatt, majd lefikázta a világ legjobb játékait. :D

Offline Lacika

  • EP addict
  • *
  • Posts: 2886
  • Country: hu
    • View Profile
    • http://www.ep128.hu
Re: BASIC
« Reply #22 on: 2006.August.15. 22:24:51 »
Én sohasem használtam az ON GOTO, GOSUB parancsokat. az IS-BASIC legnagyobb erénye pontosan az eljárások, és függvények. Nekem sohasem akadt ki program az eljárások, függvények hívásától, arra persze vigyázni kell, ne ugorjunk ki eljáérásból (ha az ember nem használ GOTO, GOSUB parancsokat, ez eleve nem fordulhat elõ). Ha egy eljárás ömmagát hívja, azt rekurziónak hívják. Álltalában fraktálok programozására használt megoldás ez, mely látványos eredményeket produkálhat. Az angol gépekhez adott demokazettán láthatunk erre példát. Arra persze vigyázni kell, hogy a többszörös eljáráshivásból legyen visszatérés, mert különben bekövetkezik az, hogy "végtelen ciklusba kerül a gép", azaz látszólag lefagy. A verem mérete is véges
A rekurzióról a Mikro Magazin egyik számában olvashatunk többet ("Hívja önmagát!" címmel)

Offline Lacika

  • EP addict
  • *
  • Posts: 2886
  • Country: hu
    • View Profile
    • http://www.ep128.hu
Re: BASIC
« Reply #23 on: 2006.August.15. 22:39:57 »
Quote from: "szipucsu"
Egyáltalán létezik más gépek basic-jében pl. az IF, a DEF, mint eljárás? Az END DEF, END IF, END WHEN mintha EP specifikusak lennének. Hiába, az EP ilyet is tud, amit más gép nem.


IF természetesen létezik más BASIC nyelvekben is. Eljárások viszont nincsenek más "nyelvjárásokban", Spectrum-on van kezdetleges függvényhívás (DEF FN) A hibakezelés megint csak az IS-BASIC kiváltsága! Akárcsak a LOGO-ból kölcsönzött teknõc grafika!
END IF sincs más gépeken, ezért ott a THEN mögé kell mindent "bepasszírozni" (ezért olyan gyakori más gépeken a IF ... THEN GOTO xx szerkezet.

Offline szipucsu

  • EP addict
  • *
  • Posts: 7336
  • Country: hu
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: BASIC
« Reply #24 on: 2006.August.15. 23:15:04 »
Quote from: "Lacika"
A hibakezelés megint csak az IS-BASIC kiváltsága!


Ha minden igaz, hibakezelés van ABC80-as basicben is, pl. on error goto x (l. Ismerd meg a basic nyelvjárásait - HT1080Z, ABC80, ZX81, 63.oldal). Legalábbis, ha jól értem, mintha hasonló lenne a WHEN-HANDLER eljáráshoz.
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 gafz

  • EP lover
  • *
  • Posts: 703
  • Country: hu
    • View Profile
    • http://gafz.atw.hu
Re: BASIC
« Reply #25 on: 2006.August.16. 03:00:29 »
Hm... on error goto azt hiszem van HT-n is de talán még C64-en is. Én ezeken kezdtem programozgatni, és elég megrázó volt on error... egyszerûsége helyett a handler... szerkezet.
Enterprise Forever

Offline szipucsu

  • EP addict
  • *
  • Posts: 7336
  • Country: hu
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: BASIC
« Reply #26 on: 2006.August.16. 12:07:03 »
Vajon egy indián hogyan zárná le a feltételes ciklust?
[epline tc=146 bc=0 ttc=0 tbc=1 xs=1 ys=2]END UFF[/epline]
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 szipucsu

  • EP addict
  • *
  • Posts: 7336
  • Country: hu
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: BASIC
« Reply #27 on: 2006.September.14. 18:41:31 »
Találtam két basic játékot, ami talán még nincs fenn a neten.
A Joe's snakes nekem nem is mûködik, de lehet, hogy valamilyen konfigurációval jól mûködik, majd meg kéne nézni az emuval (is). Van valahol egy másik Joe's snakes-em is. Hogy az mûködik-e, azt nem tudom.
Kéne esetleg egy olyan topik, ahova az ilyen új progikat feltöltjük (pl. régészeti leletek címmel)?
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 szipucsu

  • EP addict
  • *
  • Posts: 7336
  • Country: hu
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: BASIC
« Reply #28 on: 2006.September.26. 12:25:48 »
Ravasz kérdésem, hogy pl. az ep128.hu oldalról letölthetõ maga az IS-BASIC. Szerény feltételezésem szerint ez a program arra jó, hogy ha cartridge nélkül hasznájuk a gépet, és betöltjük azt a progit, akkor kb. úgy fog mûködni a gép, mintha benne lenne a cartridge. Jól gondolom?
A másik, hogy nem lesz teljesen olyan így a gép, mintha a cartridge lenne bent, mivel maga a basic így elfoglal némi helyet a gépben ott, ahol nem foglalna, ha a cartridge lenne bent. Ez milyen következményekkel jár? Nem minden program fog emiatt futni? Mely programok nem? (pl. a Zzzippel fordítottak ravaszak lehetnek a memóriafoglalás szempontjából.) Gondolom, vannak programok, melyek pont azt a területet használják, amit maga a cartridge, mint hardver nem foglal el, viszont a szoftver itt terpeszkedik.

Egyébként az ALLOCATE utasítás is érdekes. Értem, mire szolgál, de ha elhagyjuk, végsõ soron akkor is ugyanúgy fut a basic program, nem?
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

Online Zozosoft

  • EP addict
  • *
  • Posts: 13070
  • Country: hu
    • View Profile
    • http://enterprise.iko.hu/
Re: BASIC
« Reply #29 on: 2006.September.26. 16:10:16 »
Quote from: "szipucsu"
Szerény feltételezésem szerint ez a program arra jó, hogy ha cartridge nélkül hasznájuk a gépet, és betöltjük azt a progit, akkor kb. úgy fog mûködni a gép, mintha benne lenne a cartridge. Jól gondolom?

Ami onnan letölthatõ, abban benne van 2.1-es ROM fájl illetve, egy átbütykölt változat, aminek az a lényege, hogy valaki nagyon megörült annak, hogy Asmonban átírhatja a szerzõk nevét a sajátjára :-) és ezt elnevezte 2.2-nek...
Ez a változat tényleg betölthetõ, de ilyet lehetne az eredetibõl is (vagy bármely más max 16K-s ROM fájlból) csinálni. Vagy ha van EPDOS-od, akkor bármilyen ROM fájlt be tudsz tölteni.

Quote from: "szipucsu"
A másik, hogy nem lesz teljesen olyan így a gép, mintha a cartridge lenne bent, mivel maga a basic így elfoglal némi helyet a gépben ott, ahol nem foglalna, ha a cartridge lenne bent. Ez milyen következményekkel jár? Nem minden program fog emiatt futni? Mely programok nem? (pl. a Zzzippel fordítottak ravaszak lehetnek a memóriafoglalás szempontjából.) Gondolom, vannak programok, melyek pont azt a területet használják, amit maga a cartridge, mint hardver nem foglal el, viszont a szoftver itt terpeszkedik.

Ajaj, a zavaros kérdés feltevésbõl úgy érzem nem igazán vagy tisztában az EP memóriakezelésével :-(
Az elsõ szabad RAM szegmensre fog kerülni a program, egy alap 128K-s gép esetén ez az F9.
Basic programok nagy része számára ez tök mindegy. Olyan programok esetén lehet gond, amik német gépen se mentek, csak angolon. Ezekben vannak olyan közvetlen memóriahivatkozások, amik itt is gondot okozhatnak.
Ill ott vannak még a gépikódú programok, ezek kb 99%-a helybõl agyonvágja az F9 szegmenst, mivel nem tartják be az EXOS játékszabályait... így ha olyan mûvelet történne, aminél az EXOS végig kérdezi a rendszerbõvítõket, akkor fagyi...

Quote from: "szipucsu"
Egyébként az ALLOCATE utasítás is érdekes. Értem, mire szolgál, de ha elhagyjuk, végsõ soron akkor is ugyanúgy fut a basic program, nem?

Ezt megint elég zavaros kérdés lett :-)
Ha elhagyjuk az Allocate-t akkor az elsõ Code-val felülírjuk a program elejét, és elveszik az egész...
Próbáld ki!
10 CODE A=HEX$("00")
Ezután RUN, majd LIST...