Enterprise Forever

:HUN => Programozás => BASIC => Topic started by: szipucsu on 2006.February.09. 23:33:29

Title: Általános BASIC Kérdések
Post by: szipucsu on 2006.February.09. 23:33:29
Be lehet tölteni a karakterkészletet BASIC-be a következõvel:

100 ALLOCATE 20
110 OPEN #1:""
120 CODE M=HEX$("11,80,B4,01,80,04,3E,01,F7,06,C9")
130 CALL USR(M,0)

Elmenteni hogyan lehet?
Title: Re: Általános BASIC Kérdések
Post by: hsoft on 2006.February.11. 09:14:40
Ugyan igy is lehet csak pár hexa szám más lesz :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2006.February.12. 17:45:44
Quote from: "hsoft"
Ugyan igy is lehet csak pár hexa szám más lesz :)


Halvány gõzöm sincs a gépi kódról meg az assemblyrõl. Az ilyen karakterdefi fájlokat be lehet tõlteni vajon úgy, hogy basicben megnyitunk egy csatornát access input módon, onnan read #n (vagy input vagy get #n, már nem tudom), és spoke utasításban hivatkozunk a beolvasott számokra? (Asszem, a demokazetta karakterdefiniáló programjából ki lehet szedni, hogy mely memóriaterületeken tárolódnak a karakterek alakjai.)
(Érdekes, hogy ha BASIC-ben simán betöltünk egy CHR fájlt, akkor OK-val leáll és nem hibaüzenetet küld - nem mintha túl nagy jelentõsége lenne.)
Title: Re: Általános BASIC Kérdések
Post by: hsoft on 2006.February.13. 13:28:28
Helyesen látod: Egyik módszer az hogy használod a basic karakter definiálló utasítását. A másik, kevésbé elegáns, ha spoke(255,x,y)-al közvetlenül feltõltöd a karakterdefiniciós rendszerterületre. Címét megtudhatod pl. az EXOS leírásából. Az elsõ 128 bájt a karakterek felsõ pixelei, összesen 9 sor van definiálva, tehát 9*128 bájtos területrõl van szó. Harmadik módszerben gépi kódú utasításokkal végzed el ugyanezt.
Viszont most úgy nézem Te inkább menteni szeretnél. Ehhez mindössze le kell mentened a teljes területet, de ha csak egyes karakterre van szükséged akkor valahogy így:

OPEN #1:"név" Access Output
X=karakterkód band 127 (magyarul if X>127 then X=X-128)
For Y=0 to 8
  Print #1:chr$(SPeek(255, CharDef+X+Y*128));
Next Y
Close #1
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2006.February.15. 22:50:45
Köszi a válaszokat!

Meg az is érdekes, hogy ha az autosorszámozás be van kapcsolva, akkor a read if missing után a 616. vagy hasonló sor jön mindig. De mintha az elején ez nem így lett volna. Pár évig is soxor akcióztam auto-val, és írtam be a read if missinget és akkor jó volt. Szerintem idõközben romlott el a gépben ez. Ez azért érdekes, mert valamelyik Enterpressben olvastam, hogy ez több gépen is így van, tehát nem az én gépem romlott el, vagy pedig egyes gépeken eleve rossz ez, másokon meg késõbb romlik el...

Tényleg, az emulátoron még nem próbáltam, hogyan mûk.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2006.August.15. 01:18:05
(http://enterpriseforever.com/userpix/33_biciklipumpa_1.gif)

Nemrég került fel ez az ep128.hu oldalra.
Most azért hozom ezt fel, mert az elõbbi pillanatban hoztam be egy bögre kakaót és a gép mellé tettem, és hírtelen eszembejutott, hogy itt a lehetõség. Nem is tudom, évek során valaha volt-e a gép mellett kakaó. Ezért a kérdésem: Tudja esetleg valaki, hogy PC-n az emulátorral is mûködik bögre kakaó mellett ez a program, vagy csak az eredeti gépen? (Nem tudom, hogy a kakaóérzékelõ emuláció is mûködik-e, nem akarom elrontani a gépet.)
Azt hiszem, sürgõsen Egzo-hoz kéne fordulnom.
PS. Instant kakaóporból készült kakaó is megteszi, vagy csak a boltban kapható dobozos ill. zacskós :?:
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2006.August.15. 09:38:23
Én is nagyon jókat nevettem a Biciklipumpa Teszten.  :D
Nagy csoda az a program, fõleg hogy egyáltalán mûködik:
(http://enterpriseforever.com/userpix/19_biciklipumpa_1.gif)

(magyarázza el valaki, hogy a 910-es sornál miért nem jelez INVALID END OF BLOCK hibát???)
Title: Re: Általános BASIC Kérdések
Post by: MrPrise on 2006.August.15. 09:49:04
Quote from: "Lacika"
(magyarázza el valaki, hogy a 910-es sornál miért nem jelez INVALID END OF BLOCK hibát???)

Nincs benne rejtett sor? Nem ismertem ezt a programot, de nem semmi ;-)
Title: Re: Általános BASIC Kérdések
Post by: gafz on 2006.August.15. 09:52:21
Nem lehet, hogy átugorja mindenképpen azt a 2. end if-et?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2006.August.15. 09:59:03
Quote from: "Lacika"

(magyarázza el valaki, hogy a 910-es sornál miért nem jelez INVALID END OF BLOCK hibát???)

Azért mert ahogy a listából is látszik az ott egy invalid end of block :-)
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2006.August.15. 10:08:45
Quote from: "MrPrise"
Na, de õ pont azt kérdi, hogy miért nem jelez hibát :-D

Talán mert soha nem jut el oda a program? :-) 890-esben van egy GOTO...
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2006.August.15. 13:43:24
Quote from: "Lacika"

(magyarázza el valaki, hogy a 910-es sornál miért nem jelez INVALID END OF BLOCK hibát???)


Szerintem ott van a hiba, hogy azt hitte a gép, hogy van ott egy bögre kakaó. Nem lehet, hogy a gép mellett volt valami, ami nagyon hasonlít egy bögre kakaóhoz? Ha azt elveszed onnan, lehet, hogy már nem fog mûködni.
Ezentúl mindig bögre kakaó mellett fogom a programokat futtatni, mert akkor sosincs

[epline tc=146 bc=0 ttc=0 tbc=1 xs=1 ys=2]*** Invalid end of block.[/epline]
Title: Re: Általános BASIC Kérdések
Post by: gafz on 2006.August.15. 13:44:48
Kakaó nem volt, legfeljebb egy csikkel teli hamutartó... :lol:

[epline tc=146 bc=0 ttc=0 tbc=1 xs=1 ys=2]*** Fatal Error, re-starting system[/epline]
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2006.August.15. 13:56:19
Quote from: "Lacika"

(magyarázza el valaki, hogy a 910-es sornál miért nem jelez INVALID END OF BLOCK hibát???)


[epline tc=146 bc=0 ttc=0 tbc=1 xs=1 ys=2]*** No cocoa mug found.[/epline]


Viccet félretéve, a gépnek szerintem tök mindegy, van-e az END mellett IF vagy nincs. Amikor még gõzöm sem volt, mi az az eljárás meg a ciklus, poénból idõnként odaírtam az IF-et az END mellé. Késõbb rájöttem, hogy ennek más funkciója (is?) van.
Egyébként mintha a gépkönyvben is lennének olyan példaprogramok, melyeknek a végén van egy END IF, utána pár sor !-es megjegyzésekkel, és utána END.

Két eset lehetséges:

1. Az END IF nem csak az IF-es eljárás lezárására hivatott, hanem más funkciója is van (a természetes nyelvben ezt nevezik többjelentésû szónak, míg pl. a ! és a REM rokon értelmûek).

2. Az IS-BASIC-be valami hiba csúszott (pl. kontakthiba  :D ), (vö, az AUTO is meghülyül a READ IF MISSING-nél).

Én az elõbbit tartom valószínûnek, hiszen a gépkönyvben is alkalmazzák az END IF-et IF eljárás nélkül.
Érdemes lenne megnézni más gépek basic nyelvét (pl. Spectrum), ott hogy van ez. 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. :smt006

Kakaót rá!!!
(http://enterpriseforever.com/userpix/33_kakao_2.jpg)
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2006.August.15. 14:08:48
Quote from: "szipucsu"

Én az elõbbit tartom valószínûnek, hiszen a gépkönyvben is alkalmazzák az END IF-et IF eljárás nélkül.

Ha ilyet láttál benne, akkor az nyomdahiba. Mindig is hírhedt volt arról a magyar könyv, hogy tele van hibákkal.
Az END IF az csak IF-hez tartozhat.
Itt az elsõ END IF a 720-as sorban lévõ IF-hez tartozik, a második nem tartozik semmihez (abból is látszik ugyanabban az oszlopban van kilistázva mint az elsõ), de mivel a GOTO-k miatt soha nem jut el ide a programvégrehajtása, ezért nincs hibaüzenet.
Title: Re: Általános BASIC Kérdések
Post by: MrPrise 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
Title: Re: Általános BASIC Kérdések
Post by: szipucsu 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
(http://enterpriseforever.com/userpix/33_bluefreshminty_1.jpg)

(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...
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2006.August.15. 15:35:53
Hmmm, fogtunk egy újabb IS-BASIC bugot? :-)
Az END SELECT is ezt csinálja.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu 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.
Title: Re: Általános BASIC Kérdések
Post by: Lacika 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!

(http://enterpriseforever.com/userpix/19_proba_1.gif)

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.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu 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
Title: Re: Általános BASIC Kérdések
Post by: endi 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.
Title: Re: Általános BASIC Kérdések
Post by: Lacika 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 (http://www.ep128.hu/Ep_Konyv/MikroMagazin.htm#3a) egyik számában olvashatunk többet ("Hívja önmagát!" címmel)
Title: Re: Általános BASIC Kérdések
Post by: Lacika 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.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu 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.
Title: Re: Általános BASIC Kérdések
Post by: gafz 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.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu 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]
Title: Re: Általános BASIC Kérdések
Post by: szipucsu 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)?
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2006.September.26. 12:25:48
Ravasz kérdésem, hogy pl. az ep128.hu (http://www.ep128.hu/Ep_Util/Prg/Is-Basic.rar) 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?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft 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...
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2007.January.06. 23:09:22
Az gondolom közismert, hogy eredetileg az IS-BASIC-ben hibás az EXT utasítás:
[attachimg=1]
A példa esetén egy 25 GOTO 30 utasítással ki lehet kerülni a hibát.

Anno sikerült kijavítanom a hibát a ROM-ban, el is küldtem a leírást az Enterpressbe, de valamiért nem került leközlésre :-( (legalábbis nem találom egyikbe se...)
De most megtaláltam az egyik lemezemen a levelet :-)

Quote
     Tisztelt Szerkesztõség
   
    Biztos önök is sokat bosszankodtak azon, hogy a Basic EXT utasítás után
   mindig GOTO kell ! Itt a megoldás :
    Ha az ASMON-ban megcsináltuk a leírtakat, akkor már csak be kell égetni
   a módosított BASIC-et, vagy az EPDOS ROMLOAD paranccsal betölteni.
   
           A módosításhoz sok sikert kiván:
   
                                 ZOZOSOFT&APUCI
Code: [Select]
-[O] B1 [ENTER] xx [ENTER] xx:A BASIC szegmens
-[C] 4000 [ENTER] 7FFF [ENTER] 8000 [ENTER]
-[C] BA42 [ENTER] BA7F [ENTER] BA3F [ENTER]
-[C] BA5A [ENTER] BA7B [ENTER] BA57 [ENTER]
-[M] BA76 [ENTER] 0D 0A F7 1A DF D7 16 00 C9 [ESC]
-[M] 8095 [ENTER] 3C [ESC]
-[M] 9850 [ENTER] C3 78 FA [ESC]
-[S] 8000 [ENTER] BFFF [ENTER] BASIC.ROM [ENTER]


   10 PROGRAM "extdemo.bas"
  100 FOR I=1 TO 5
  110   READ NEV$
  120   CALL HIV(NEV$)
  130 NEXT
  140 DEF HIV(A$)
  150   TEXT
  160   PRINT "ext ""help "&A$&""""
  170   EXT "help "&A$
  180   WAIT 2
  190 END DEF
  200 DATA "",wp,basic,exdos,isl1985

Ahogy nézem a javított BASIC.ROM annyira elterjedt, hogy ma már csak azt lehet fel lelni a neten :-) így itt egy eredeti ROM fájl is.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2007.January.06. 23:41:52
Részletesen kifejtve a módosítást:
Az eredeti EXT végrehajtó része így néz ki:
D850  EXOS 1AH
D852  RST 18H
D853  RET

Az EXOS hívás maga az EXOS parancs kiadása, az RST 18H az EXOS hiba ellenõrzése funckció a BASIC ROM-ban.
Kimaradt viszont a BASIC verem kitakarítása! Ez okozza a hibát, ill. ez az amit a GOTO megcsinál...
Ezt egy:
RST 10H
DB 16H,0
kóddal érhetjük el.
Viszont hova írjuk be?
A HELP BASIC-re adandó help szövegbõl szedtem le pár szóközt, és az így keletkezett helyre kerül a módosított kód:

FA78  EXOS 1AH
FA7A  RST 18H
FA7B  RST 10H
FA7C  DB 16H
FA7D  DB 00H
FA7E  RET

D850-re pedig JP FA78H

A korábbi ASMON leírás sorról sorra:
1) BASIC ROM belapozása az 1. lapra
2) BASIC ROM átmásolása a 2. lapra
3) HELP szöveg elsõ sorának lerövidítése 3 bájttal (bevezetõ szóközök)
4) második sor lerövidítése
5) a keletkezett helyre beírásra kerül elöször a szöveget lezáró CR/LF, majd a szükséges új kód
6) HELP szöveg hosszának átírása
7) kódra ugró JP elhelyezése
9) javított ROM fájl kimentése (azért 9 mert a 8 után zárójel kombinációból szmájli lesz 8)

Házifeladat ezek alapján az IS-BASIC 2.0-ban kijavítani az EXT hibát! :-)
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2007.January.22. 20:01:25
Házifeladat ezek alapján az IS-BASIC 2.0-ban kijavítani az EXT hibát! :-)
Úgy látom senki nem csinálta meg a házifeladatot :(
Akkor ime a javított 2.0 ROM.
Az EXT végrehajtó része ez esetben D827-en van, a javított kód a HELP szöveg átrendezése után FA22-re került.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2007.May.22. 01:51:37
Nyilván igen nagy marhaság, de a következõ programmal lehet a fagyáson kívül károkat okozni?

10 RANDOMIZE
20 DO
30   POKE RND(65535)+1,RND(256)
40 LOOP

(Az másik kérdés, hogy ilyen zsibbadtság csak nekem jut eszembe...)
Az elsõ RND után kell az a +1 itt? Van nullás cím?

Egyébként soha nem értettem, mi a különbség a POKE és a SPOKE között. Ráadásul a SPOKE után az elsõ szám majdnem mindig 255 volt, látszólag felesleges. Mi van, ha 255 helyett valami mást írunk ilyen esetben?
Amúgy alighanem szójáték lehet a poke-peek mintájára a spoke-speek, talán csak az Enterprise basic-je ismeri.
Számomra, aki nem értek e gépi kódhoz, érdekesség, hogy az OUT is hasonlóan mûködik, mint a poke, hiszen egy új értéket adhatunk valaminek. Lekérdezni már nem tudom, mivel lehet az OUT-os belepiszkálást, talán a print in(n)-nel.
Arra emlékszem, hogy bizonyos BASIC parancsokat is helyettesíteni lehetett az out-tal (set status off, toggle akármik). A set character meg helyettesíthetõ volt spoke-kal, úgy emlékszem. A kedvencem az out 191,12 volt, ez felgyorsította kicsit a gépet, ezt majdnem minden basic programom elejére betettem. Valamilyen spoke-kal el lehetett érni, hogy az egész képernyõn a status sor scroll-ozzon fentrõl lefelé, meg be lehetett kapcsolni a CAPS-et anélkül, hogy billentyût megnyomtunk volna hozzá.
De lehet, hogy az out-ot keverem a set-tel... Talán a set-es ügyködést lehetett az ASK-kal lekérdezni...
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2007.May.22. 08:22:00
A SPOKE /SPEEK utasítások nagyon jól használhatóak az Ep szegmensekre osztott memóriájában való "turkálásra". (Tekintve, hogy a négy lapon nem biztos, hogy mindig ugyanazok a szegmensek vannak belapozva, a POKE utasítással egyáltalán nem biztos, hogy jó helyre írjuk be a kívánt értéket.)

A két utasításról az Enterpress-ben (http://www.ep128.hu/Ep_Konyv/Enterpress_Cikkek.htm#3) olvashatunk részltesebben.
Title: Re: Általános BASIC Kérdések
Post by: MrPrise on 2007.May.22. 08:36:48
Egyébként soha nem értettem, mi a különbség a POKE és a SPOKE között. Ráadásul a SPOKE után az elsõ szám majdnem mindig 255 volt, látszólag felesleges. Mi van, ha 255 helyett valami mást írunk ilyen esetben?
Úgy látom az RTFM már régebben is rádfért volna! :-D
Title: Re: Általános BASIC Kérdések
Post by: Oliver on 2007.May.22. 10:32:37
Ahoj, valaki nem emlékszik rá, mit kell bepötyögni készenléti módban, hogy ne az alapértelmezett zöld betükkel irjon a gép, hanem mondjuk világoskék? Valamelyik könyvben régen olvastam, de már nem emlékszem rá. Köszi.
Title: Re: Általános BASIC Kérdések
Post by: MrPrise on 2007.May.22. 10:49:21
Üdv a fórumon! :-)

Ahoj, valaki nem emlékszik rá, mit kell bepötyögni készenléti módban, hogy ne az alapértelmezett zöld betükkel irjon a gép, hanem mondjuk világoskék? Valamelyik könyvben régen olvastam, de már nem emlékszem rá. Köszi.
Kézikönyv (http://www.ep128.hu/Ep_Konyv/Reference.htm)
A set palette-t keresed szerintem.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2007.May.22. 12:13:20
Ide tartozik még egy, az Enterpress-ben (http://www.ep128.hu/Ep_Konyv/Enterpress_Tippek.htm) ismertetett bug is (keress rá a "Bosszúságaink" címre.)
Title: Re: Általános BASIC Kérdések
Post by: Oliver on 2007.May.22. 13:18:51
Végülis a SET INK megteszi csak nem emlékszem hogy ha a 101 az alapértelmezett csatorna, miért is kell megadnom 102-t. Nem gond, halványan térnek azért vissza az emlékek, most már sejtem azt is miért nem lehet kék a karakter csak piros-zöld... Lehet butaság (10 évet kihagytam) de valami olyasmire emlékszem hogy a 40 karakteres VIDEO MODE 0 esetén csak 2 szin használható...
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2007.May.22. 13:38:04
Végülis a SET INK megteszi csak nem emlékszem hogy ha a 101 az alapértelmezett csatorna, miért is kell megadnom 102-t.
Valóban a 101 az alapértelmezett, de az a grafikus lap. a Szöveges lap, amit a BASIC használ, az a 102-es, ezért kell megadni.
Lehet butaság (10 évet kihagytam) de valami olyasmire emlékszem hogy a 40 karakteres VIDEO MODE 0 esetén csak 2 szin használható...
4 szín használható, a 0-127 kódú karakterek az elsõ 2 szín párosával jelennek meg, a 128-255 karakterek meg a második párossal.
Ezt használja ki az EXOS, így ha SET #102:INK 2, akkor már a második párost fogja használni. Ez alapban fekete alapon piros betû.
80 karakteres módban pedig 4 színpáros használható.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2007.May.22. 15:42:41
4 szín használható, a 0-127 kódú karakterek az elsõ 2 szín párosával jelennek meg, a 128-255 karakterek meg a második párossal.
Ezt használja ki az EXOS, így ha SET #102:INK 2, akkor már a második párost fogja használni. Ez alapban fekete alapon piros betû.
80 karakteres módban pedig 4 színpáros használható.

És akkor akármilyen színt el lehet érni. Ha jól emlékszem, a SET #102:INK 2 után a SET #102:COLOR 2,255-öt kell megadni a fehérhez. A SET #102:PALETTE után 4 szám áll, amik szineket jelölnek, de hogy melyik minek a színét, arra már nem emlékszem... Az egyik a háttér, a másik a betûszín, az biztos.
Azt nem szeretem viszont, hogy képernyõtörlés (TEXT) után visszaáll az alapfelállás, de ha a CLEAR SCREEN-nel törlünk képernyõt, akkor asszem nem...
Ami a spoke-ot és az RTFM-t illeti: a poke-nál még fel tudtam fogni, hogy egy címre elhelyez egy értéket, meg hogy a gép a kettes számrendszer alapján tárolja a dolgokat, de hogy a lap és a szegmens micsoda, addig nem jutottam el anno... Még azt is felfogtam, hogy az ASMON-ban át lehet írni a memória területét, ami lényegében hasonló, mint a BASIC poke, és így az egész memória elõttünk van, szóval még nem tudtam felfogni, miért kell a spoke még ezen kívül, de megpróbálom megemészteni az Enterpress cikkét. :)
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2007.May.22. 15:47:20
Azt nem szeretem viszont, hogy képernyõtörlés (TEXT) után visszaáll az alapfelállás, de ha a CLEAR SCREEN-nel törlünk képernyõt, akkor asszem nem...
Mivel a TEXT az nem képernyõtörlés. Az a szöveges alapállapot beállítása. Bezárja a megnyított videó lapokat, és megnyit egy új alapértelmezett szöveges lapot a 102-es csatornára.
A CLEAR pedig egy létezõ videó lapra küldi ki a képernyõtörlés kódját.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2007.May.22. 22:25:24
Mivel a TEXT az nem képernyõtörlés. Az a szöveges alapállapot beállítása. Bezárja a megnyított videó lapokat, és megnyit egy új alapértelmezett szöveges lapot a 102-es csatornára.
A CLEAR pedig egy létezõ videó lapra küldi ki a képernyõtörlés kódját.
Talán annyi a hátránya a laikus felhasználó (mint pl. én :D ) számára, hogy egy gombnyomás (F6) és letörli a képernyõt, és ez rögzül, meg ki fog ilyen hosszú szöveg begépelésével (clear screen) bíbelõdni. Egyébként már mondták, hogy jó sokat kell gépelni az Enterprise basicben, míg más gépeknél sokkal rövidebbek a kulcsszavak (pl. cls). A SOUND parancs paraméterei is elég terjedelmes szavak után adhatók meg.
Meg ha átdefiniálom az egyik funkcióbillentyût clear screen-e, akkor egy reset után elfelejti a gép. Tényleg, van valami utasítás, amivel le lehet kérdezni, hogy egy funkcióbillentyû éppen mire van definiálva? (Ha pl. nem akarom kipróbálni valamiért.)
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2007.May.23. 08:08:09
Talán annyi a hátránya a laikus felhasználó (mint pl. én :D ) számára, hogy egy gombnyomás (F6) és letörli a képernyõt, és ez rögzül, meg ki fog ilyen hosszú szöveg begépelésével (clear screen) bíbelõdni. Egyébként már mondták, hogy jó sokat kell gépelni az Enterprise basicben, míg más gépeknél sokkal rövidebbek a kulcsszavak (pl. cls). A SOUND parancs paraméterei is elég terjedelmes szavak után adhatók meg.
Meg ha átdefiniálom az egyik funkcióbillentyût clear screen-e, akkor egy reset után elfelejti a gép. Tényleg, van valami utasítás, amivel le lehet kérdezni, hogy egy funkcióbillentyû éppen mire van definiálva? (Ha pl. nem akarom kipróbálni valamiért.)

A funkcióbillentyűkkel kapcsolatos minden igény kielégítésére tökéletesen alkalmas a ZozoTools (http://www.ep128.hu/Ep_Util/ZozoTools.htm) FL parancsa.
Title: Re: Általános BASIC Kérdések
Post by: Mayer Gábor on 2007.May.26. 10:41:52
hogy lehet két sztringet egybe fűzni?
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2007.May.26. 14:34:36
hogy lehet két sztringet egybe fûzni?

Esetleg erre gondolsz? LET A$=B$&C$
Tehát az & (et)-tel.
Egy újabb stringet definiálunk, melynek tartalma a két összefûzendõ sztring összefûzve. De ha nem akarsz újabb sztringet definiálni, lehet így is:
LET A$=A$&B$ vagy LET A$=B$&A$
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2007.August.30. 15:28:02
Nem tudom, feltûnt-e már nektek, milyen érdekesen viselkedik a REM, a ! és az ok.
Ha parancssorban adjuk ki, hogy REM valami épületes szöveg, akkor ok-val nyugtázza ezt a gép, mintha valami parancsot dolgozott volna fel. A felkiáltójelen pedig csak átugrik parancssorban, ha ENTER-t nyomunk. Ugyanígy átugrik a gép az ok-ra is a következõ sorba, mintha nem is lenne ott semmi. Ha minden igaz, akkor ha az ok után beírunk valamit, akárcsak a ! után, akkor is ugyanígy viselkedik.
Ez nyilván azért jó, mert ha a kilistázott programban valamit átírtunk és a lista végére akarunk érni, akkor az úgy a legegyszerûbb, ha sok ENTER-t nyomunk. Ha ilyenkor az ok-hoz érve hibát kapnánk, az zavaró lenne. Egyébként a Commodore basicben nem törõdtek ezzel: az ok-nak a ready felel meg, és ha erre ENTER-t ütünk (vagy lehet, hogy ott return van), akkor azt hiszi a gép, hogy a read utasítással akarunk az y változóba beolvasni valamit a datákból, így általában hibaüzenetet kapunk. Ez a hibaüzenet viszont nekem fel sem tûnt, nem zavart, az Enterprise-nál pedig szerintem elég zavaró lenne, nem tudom, miért érzem így...
Érdekes egyébként, hogy ha program üzemmódban írjuk be, hogy ok, akkor reklamál a gép, hogy ezt a "parancsot" csak parancs üzemmódban lehet kiadni. Közvetlen THEN után pedig nem állhat REM (ugyanabban a sorban), de ! igen, ez is érdekes...

Egyébként nem teljesen értem, miért jó, hogy THEN után nem állhat minden parancs, és blokkokat kell bedobni (END IF-fel a végén).
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2007.August.31. 11:38:27
Érdekes egyébként, hogy ha program üzemmódban írjuk be, hogy ok, akkor reklamál a gép, hogy ezt a "parancsot" csak parancs üzemmódban lehet kiadni.
A Tippek és Trükkök-ben van tárgyalva a téma, hogyan van megadva melyik utasítás lehet programban melyik parancsban, stb
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2007.November.06. 13:38:55
Az gondolom közismert, hogy eredetileg az IS-BASIC-ben hibás az EXT utasítás:
...
A példa esetén egy 25 GOTO 30 utasítással ki lehet kerülni a hibát.

Azt szeretném tudni, hogy ez a bug csak a ciklusokra korlátozódik-e, vagy mindig kell-e az EXT után GOTO.
Azért kérdezem, mert olyan BASIC programot szeretnék írni, ami minden EXOS és IS-BASIC verzióval jól mûködik. A memóriában lenne még a Sample 1.1 (http://www.ep128.hu/Ep_Music.htm) bõvítõ is a BASIC programmal együtt, és a basic programból idõnként lejátszanék egy WAV fájlt (EXT "SAMPLE filename.wav"). Szóval az ilyen EXT utasítás után is mindig kell GOTO, nem csak NEXT elõtt?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2007.November.06. 14:00:17
mindig kell-e az EXT után GOTO.
Mindig ha egy blokk belsejében van (FOR-NEXT, DEF-END DEF, IF-END IF, DO-LOOP, stb).
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2007.November.06. 21:23:56
Köszi! És csak akkor, ha közvetlen a blokklezáró utasítás (LOOP, NEXT, END IF...) elõtt van az EXT, vagy amúgy is?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2007.November.06. 21:34:17
És csak akkor, ha közvetlen a blokklezáró utasítás (LOOP, NEXT, END IF...) elõtt van az EXT, vagy amúgy is?
Amúgy is.
Mivel az EXT nem takarítja ki maga után a Basic vermet, így amikor a blokkzáró utasítás visszatérne a blokk utánra, érvénytelen adatokat olvas a verembõl, így jön az invalid end of block hibaüzenet.
Title: Re: Általános BASIC Kérdések
Post by: Mayer Gábor on 2007.November.06. 21:36:06
az mit jelent hogy nem takarítja ki a vermet? rossz címre mutat az sp? és ez hogy javul meg a goto-tól?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2007.November.06. 21:55:47
rossz címre mutat az sp? és ez hogy javul meg a goto-tól?
Nem a Z80-as veremrõl van szó, hanem a BASIC veremrõl. Részletesen lásd az IS-BASIC ROM címû könyvben. (http://www.ep128.hu/Ep_Konyv/Isbasic.htm#6)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2008.January.23. 21:38:55
Még egy éve a talin említettem fergeteges, karakteres képernyõn futó basic játékprogramomat, amivel még az Enterpress basic játékprogramos pályázatára is beneveztem. Azóta egyfolytában küldöm be ide, de most itt van. Ha más nem is, de négycsatornás sztereó zenéje van. Lehet egyébként, hogy igazi EP-n más volt a zene, mint az emulátorokon, mert valami gyûrûmodulációval is próbáltam feldobni, ha minden igaz.
Még egy Bányász címû basic TVC program adta a játék alapötletét.
Tényleg, Laci mondta akkor, hogy jó lenne TVC-rõl átírni azt a programot. Erre esetleg van valami esély?
Amúgy TVC-n a Létra címû játék volt elég érdekes. Ha minden igaz, a Bányásszal egy kazettán lehetett kapni. Vajon az is basicben íródhatott? Azt nem próbáljuk meg "átírni"? :D
Ha már a TVC-nél tartunk, szerintem ott a Gombócfaló minden ma létezõ kígyós játékot is felülmúl.
Egyébként a Hamikából lestem ki, hogyan lehet megcsinálni, hogy a gép érzékelje, milyen karakter van abban a pozícióban, ahova lépünk. Ezért aztán sajnos nem tudok színpompás pacman játékot írni, hiszen a hamikás módszer csak akkor mûködik, ha egyetlen színt használunk. :D
Ja, és csak véletlen a játék címének egybeesése Endi játékának címével.

Ja, és elnézést: nyelvtanilag helytelenül szerepel a játékban, helyesen így van: The monster has eaten you.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2008.August.14. 23:45:35
Létezik olyan basic függvény, amivel 10-es számrendszerbõl 16-osba lehet alakítani? (A gépkönyvben nem találtam.) (Mondjuk a fordítottja is csöppet nyakatekert, ORD(HEX$(...))
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2008.November.16. 20:16:46
A Gombócfalót TVC basicról írtam át (újraírtam) IS basic-ra, basic ujjgyakorlatként, nem nagy dolog...  :smt024
Ez megvan valahol? Érdekelne. (Mármint az EP-s változat.)

Ha jól emléxem, a TVC-s változatban van néhány poke utasítás, azokat hogyan írtad át EP-re?

Meg ott sokszínû volt a képernyõ. Azon hogyan lehet megcsinálni, hogy felismerje a gombócokat meg akadályokat?
Title: Re: Általános BASIC Kérdések
Post by: Attus on 2008.November.16. 22:52:49
Ez megvan valahol? Érdekelne. (Mármint az EP-s változat.)
Nincs meg nektek?  :shock:
Mindjárt utánanézek, csak átlépek ebből az Arch linuxból UHU-ba
[/quote]
Title: Re: Általános BASIC Kérdések
Post by: Attus on 2008.November.16. 23:16:03
Ez megvan valahol? Érdekelne. (Mármint az EP-s változat.)

Ha jól emléxem, a TVC-s változatban van néhány poke utasítás, azokat hogyan írtad át EP-re?

Meg ott sokszínû volt a képernyõ. Azon hogyan lehet megcsinálni, hogy felismerje a gombócokat meg akadályokat?
Na Winfos..  :ds_icon_frown: Sajnos ACE-ban volt meg ezért ide léptem át, mert a Linuxot nem tanítottam rá.
Itt van, átalakítottam RAR-ba. Ha nincs fenn Lacikánál, akkor majd ráijesztek. Addig is tanulmányozd, hátha te megérted, mert én már tök kijöttem a Basicból.  :smt047
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2008.November.17. 00:58:21
Itt van, átalakítottam RAR-ba. Ha nincs fenn Lacikánál, akkor majd ráijesztek.
Köszi!
A megjegyzés szerint egyetlen délután megcsináltad az egészet?
Az elején miért van OUT 191,12 helyett OUT (181+10),12? Hadd dolgozzon a Z80 egy összeadás erejéig? :D
Érdekes, hogy CALL-DEF eljárásokat tettél bele. Ha jól tudom, TVC-n ilyen nem volt.

Majd lehet, hogy elmélyedek benne.

(Valahol mintha már találkoztam volna ezzel az átirattal, de Lacinál nem találtam. Persze lehet, hogy csak álmodtam...)
Title: Re: Általános BASIC Kérdések
Post by: Attus on 2008.November.17. 13:44:53
Köszi!
A megjegyzés szerint egyetlen délután megcsináltad az egészet?
Azért kicsit fellengzős voltam.  :oops: Tovább tartott.
Quote
Az elején miért van OUT 191,12 helyett OUT (181+10),12? Hadd dolgozzon a Z80 egy összeadás erejéig? :D
Érdekes, hogy CALL-DEF eljárásokat tettél bele. Ha jól tudom, TVC-n ilyen nem volt.
Bocs, de ez nám átirat, hanem "remake"!  ;-)
Quote
(Valahol mintha már találkoztam volna ezzel az átirattal, de Lacinál nem találtam. Persze lehet, hogy csak álmodtam...)
Lacinál én sem látom.  :(
Title: Re: Általános BASIC Kérdések
Post by: nyuzga on 2008.November.17. 19:29:11
Na Winfos..  :ds_icon_frown: Sajnos ACE-ban volt meg ezért ide léptem át, mert a Linuxot nem tanítottam rá.
Itt van, átalakítottam RAR-ba. Ha nincs fenn Lacikánál, akkor majd ráijesztek. Addig is tanulmányozd, hátha te megérted, mert én már tök kijöttem a Basicból. 

Egy kicsit most én is csaltam. (Ne csak má mindig ők!) :razz: :lol:
Gombócfaló HI-SCORE by ATTUS. :)
[attachthumb=#]
Title: Re: Általános BASIC Kérdések
Post by: Attus on 2008.November.17. 19:35:11
Egy kicsit most én is csaltam. (Ne csak má mindig ők!) :razz: :lol:
Akkoriban is bújkált már bennem a huncutság.  :smt098
Hogy tetszik?
Title: Re: Általános BASIC Kérdések
Post by: nyuzga on 2008.November.17. 19:44:43
Akkoriban is bújkált már bennem a huncutság.  :smt098
Hogy tetszik?

Kilistáztam, és mit látok? Nem színészek vagy zenészek neveit, hanem „kiválló” politikusainkét.
No akkor most majd jól megelőzöm őket! :lol:
Title: Re: Általános BASIC Kérdések
Post by: Attus on 2008.November.17. 20:12:33
Kilistáztam, és mit látok? Nem színészek vagy zenészek neveit, hanem „kiválló” politikusainkét.
No akkor most majd jól megelőzöm őket! :lol:

Azokat nem nehéz!  :smt044
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2008.November.17. 20:22:24
Errõl jutott eszembe: anno a Tõzsde címû programot hekkeltem meg úgy, hogy mindig az ENTERPRISE részvények legyenek a legértékesebbek  :ds_icon_cheesygrin:
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2008.November.17. 20:27:12
Éppen vicces kedvem volt névbeíráskor, bár a visszatörlés gombot nem találtam.
[attachimg=1]
Title: Re: Általános BASIC Kérdések
Post by: nyuzga on 2008.November.27. 18:20:21
Hogy tudok az Emulátorból Basic programot TXT-be menteni? :?:
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2008.November.27. 18:23:19
Hogy tudok az Emulátorból Basic programot TXT-be menteni? :?:
open #1:"lista.txt" access output
llist #1
close #1
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2008.November.27. 18:34:41
llist #1
Ha itt egy L-lel írom a LIST-et, az különbözik valamiben a két L-estõl?
Title: Re: Általános BASIC Kérdések
Post by: nyuzga on 2008.November.27. 18:52:48
open #1:"lista.txt" access output
llist #1
close #1

Köszi
Az emuban hol van a kettős kereszt? :?:
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2008.November.27. 19:01:30
Az emuban hol van a kettõs kereszt? :?:
shift+3 (német gépen kereszt, angol gépen fontjel. Az egyik fontos, a másik keresztes. :D )
Title: Re: Általános BASIC Kérdések
Post by: nyuzga on 2008.November.27. 19:07:30
Van egy LOT91K.BAS file legyetek szívesek Txt.be átkonvertálni nekem mert mi tökfejek vagyunk. :lol:
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2008.November.27. 19:30:16
Tessék:
Title: Re: Általános BASIC Kérdések
Post by: nyuzga on 2008.November.27. 19:35:29
Tessék:

Köszönöm.
A haverom évekig szórakozott ezzel programmal. Az a mániája hogy kiszeretné íratni a lottó összes variációját, pedig még lottót sem vett soha. :lol:
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2008.November.27. 21:38:11
shift+3 (német gépen kereszt, angol gépen fontjel. Az egyik fontos, a másik keresztes. :D )
Lehet, nem voltam világos. Szóval ha fontot írsz a csatornaszám elé, az egyenértékû a kereszttel, tehát ha az van a shift+3-ason, akkor azzal fog mûködni.
Egyébként szerintetek van olyan PC-s basic, amibe aránylag könnyû az IS-BASIC-bõl "átírni" egy programot?
Title: Re: Általános BASIC Kérdések
Post by: vizor on 2008.November.27. 22:06:52
Quote
Egyébként szerintetek van olyan PC-s basic, amibe aránylag könnyû az IS-BASIC-bõl "átírni" egy programot?

Ha MSDOS-os idõk lennének, azt mondanám GWBASIC. Az elsõ 386-osomon rögtön azt használtam és elég könnyû volt az IS-BASIC után. Még ajánlanám a Turbo Basic-ot is, könnyû volt az is. Egyszer a melóhelyemen unatkoztam, semmi nem volt a gépeken és Turbo Basicban összedobtam egy egyszerû karakteres lövöldözõs játékot, pusztán a help alapján (ne gondolj valami nagy dologra, "A" betû lõtte a "B" betût  :ds_icon_cheesygrin:).

Ha viszont érted a progi mûködését, akkor akármilyen BASIC-ba berakod, akár Visual Basic-ba is.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2008.November.28. 00:35:28
Ha viszont érted a progi mûködését, akkor akármilyen BASIC-ba berakod, akár Visual Basic-ba is.
Akkor ha írtam egyszer EP-re basic-ben egy programot, akkor azt elméletileg könnyen meg tudnám írni valami PC-s basic-ben is?
Title: Re: Általános BASIC Kérdések
Post by: vizor on 2008.November.28. 00:43:47
Elméletileg igen. Sok utasítás ugyanaz, a FOR ott is FOR, vagy csak kicsit tér el pl. értékadás, ugrások. A speciális dolgok, pl képernyõre írás, fájlkezelés, stb. amit újra kell tanulni. Persze ezzel nagyon leegyszerûsítettem a dolgot...

Amikor régen Turbo Pascalt tanultam a PC-n mániám volt, hogy elõszedtem régi SPV-ket meg EnterPress-eket és átírkáltam a basic programokat  :) Pl. volt az a jellegzetes progi, ami egy kalapszerû ábrát rajzolt legalább egy félóráig. Na azt pascalban pár másodperc alatt generálta a gép én meg nagyon örültem  :ds_icon_cheesygrin:
Title: Re: Általános BASIC Kérdések
Post by: vizor on 2008.November.30. 21:53:35
Quote from: szipucsu
Akkor ha írtam egyszer EP-re basic-ben egy programot, akkor azt elméletileg könnyen meg tudnám írni valami PC-s basic-ben is?

Egy példa:

EP128-as basic program (Tippek és Trükkök könyvbõl):

100 !grafikus kepernyore villogo szoveg
110 GRAPHICS 16
120 FOR X=0 TO 26 !sinusgorbe
130 LET V=45*X+50:LET F=240+240*SIN(X*PI/12)
140 SET INK RND(7)+1:PLOT V,F;
150 NEXT
160 PLOT V,F,
170 LET A$="ENTERPRISE128"
180 FOR X=0 TO 12 !a$ hullamvonalu kiirasa
190 LET F=400+230*SIN(X*PI/6)
200 SET INK RND(7)+1:PLOT 90*X,F,
210 PRINT #101:A$(X+1)
220 NEXT
230 GOTO 180

Ugyanaz a program csak PC-s QBasic-ban (a DOS6.22-ben alapban benne van vagy letölthetõ a fordító):

' grafikus kepernyore villogo szoveg
RANDOMIZE TIMER ' ora alapjan general veletlenszamot
SCREEN 9 ' EGA 640x350x16
' sinusgorbe
PI = 3.14
V1 = 56
F1 = 175
FOR X = 0 TO 25
 V2 = 56 + (20 * X)
 F2 = 175 + (70 * SIN((X * 14) * (PI / 180)))
 LINE (V1, F1)-(V2, F2), INT(RND * 15) + 1
 V1 = V2
 F1 = F2
NEXT
' a string hullamvonalu kiirasa
A$ = "ENTERPRISE128"
DO
FOR X = 1 TO 13
 COLOR INT(RND * 15) + 1
 LOCATE 10 + (5 * SIN((X * 28) * (PI / 180))), 5 + (X * 5)
 PRINT MID$(A$, X, 1)
NEXT
LOOP UNTIL INKEY$ = CHR$(27) ' ESC lenyomasaig csinalja

Szerk: a QBasic simán fut XP alatt
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2008.November.30. 23:25:18
Egy példa:
Nagyon szokatlan, hogy nincs a soroknak száma. Így a GOTO-t sem lehet használni. Persze valamirevaló programozónak ez nem is nagyon kell állítólag. :D
Title: Re: Általános BASIC Kérdések
Post by: MrPrise on 2008.November.30. 23:28:59
Nagyon szokatlan, hogy nincs a soroknak száma. Így a GOTO-t sem lehet használni. Persze valamirevaló programozónak ez nem is nagyon kell állítólag. :D
A sorok számozása csak a nagyon basic (alap) basic-ekben szokásos. Egyébként sorszám nélkül is van goto, csak címkével, hasonlóan az assembly-ben lévő címkékhez.
Title: Re: Általános BASIC Kérdések
Post by: vizor on 2008.November.30. 23:37:13
Quote from: MrPrise
Quote from: szipucsu
Nagyon szokatlan, hogy nincs a soroknak száma. Így a GOTO-t sem lehet használni. Persze valamirevaló programozónak ez nem is nagyon kell állítólag.
A sorok számozása csak a nagyon basic (alap) basic-ekben szokásos. Egyébként sorszám nélkül is van goto, csak címkével, hasonlóan az assembly-ben lévõ címkékhez.

Igen, van benne címkés GOTO:

VALAMI
eleje
DOLOG1
DOLOG2
GOTO eleje

Csak én direkt DO-LOOP-al csináltam szipucsu, hogy szoktasd magad a strukturális programozás gondolatához  :) Ettõl függetlenül használhatod ugyanúgy a GOTO-t, sõt GOSUB is van még a normál függvény és procedure hívások mellett...  :)  Egyik haverom kedvenc mondása volt: " Az igazi programozó nem fél a GOTO-tól..."  :ds_icon_cheesygrin: :ds_icon_cheesygrin: :ds_icon_cheesygrin:
Title: Re: Általános BASIC Kérdések
Post by: nyuzga on 2008.December.01. 00:19:20
Egy példa:

EP128-as basic program (Tippek és Trükkök könyvbõl):

Beraktam a programodat EBBE (http://hp.vector.co.jp/authors/VA008683/english/) de valami baja van a screennel. Bár én hülye vagyok a basichoz. :lol:
Title: Re: Általános BASIC Kérdések
Post by: vizor on 2008.December.01. 00:24:31
Quote from: nyuzga
Beraktam a programodat EBBE de valami baja van a screennel.
Hát ez elég tág fogalom, attól függ, mit raktál mibe  :ds_icon_cheesygrin: Az elsõ lista EP IS-BASIC, emulátorban kipróbálva (EP32). A második QBasic, tele van spec. Microsoft féle cél-utasítással mint pl a Screen. Eddig még nem láttam PC-n két egyforma BASIC-ot amiben lett volna két egyforma grafikus pontkirakó utasítás  :)
Title: Re: Általános BASIC Kérdések
Post by: nyuzga on 2008.December.01. 00:27:09
Hát ez elég tág fogalom, attól függ, mit raktál mibe  :ds_icon_cheesygrin: Az elsõ lista EP IS-BASIC, emulátorban kipróbálva (EP32). A második QBasic, tele van spec. Microsoft féle cél-utasítással mint pl a Screen. Eddig még nem láttam PC-n két egyforma BASIC-ot amiben lett volna két egyforma grafikus pontkirakó utasítás  :)

A Qbasic-be futott szép színes szinuszgörbét láttam
Gondoltam hátha ezzel is fut, de nem. :lol:
Pedig milyen szépen tud rajzolni. :)
[attachthumb=#]
Title: Re: Általános BASIC Kérdések
Post by: vizor on 2008.December.01. 00:48:15
Szépnek szép  :)

Ha hirtelen ilyen ábrát tudtam volna rajzolni az EP-en, akkor ilyen listát csapok össze  :ds_icon_cheesygrin: Errõl a BASIC-ról nem hallottam még, bár nem vagyok BASIC párti, a Delphi-vel jól elvagyok.

Errõl jut eszembe. Ha összehasonlítjuk a különbözõ gépek különbözõ BASIC nyelveit akárhány bites, nekem feltûnik valami. A fejlesztõk igyekeztek a szótárból kikeresni a lehetõ legtöbb féle szinonímát egy parancsra, nehogymár ugyanaz legyen mint a többi. Pl. a grafikus pont kirakása: PLOT, DRAW, PIXEL, PUTPIXEL, DRAWPIXEL, POINT... :) A paraméterezésrõl nem is beszélve. Nem egy univerzális nyelv, az biztos.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2008.December.01. 01:32:31
Valahogy eszembe jutott, hogy egy újságban közölt BASIC programban ha nem kérünk újabb játékot, a gép újraindul. Ezt furcsa módon a SPOKE 255,16380,0 után kiadott TEXT utasítással tette a program. "Apró" szépséghibája, hogy a memóriateszt után nem jelenik meg az ENTERPRISE felirat, hanem fagyi van. Igazi gépen az EXOS... TESTING legvégén megáll és a képernyõ elkezd csíkozódni.
Az emulátorok is ugyanígy viselkednek, szóval tuti a BASIC program írója végzett félmunkát. Pontosabban az emulátoroknál nincs képernyõcsíkozás, csak fagyás, ez érdekes, nem tudom, mi lehet az oka.

Még érdekesebb, hogy amikor Zozó 2.3-as EXOS-át használjuk, akkor a hevenyészett akció után ilyen memóriateszt következik (emulátoron legalábbis):
[attachimg=1]
Zozó, ilyet láttál már? :D

Szerk.: Bocs, közben rájöttem, az EXOS 2.3-ban is lehet az E-vel eredeti memóriatesztet kérni.

Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2008.December.01. 09:07:18
A sorok számozása csak a nagyon basic (alap) basic-ekben szokásos. Egyébként sorszám nélkül is van goto, csak címkével, hasonlóan az assembly-ben lévõ címkékhez.
Maradjunk abban, hogy az igazi BASIC az sorszámos, és interpreteres. A többi az csak amolyan utánzat :-)
Title: Re: Általános BASIC Kérdések
Post by: nyuzga on 2008.December.01. 09:10:34
Ha hirtelen ilyen ábrát tudtam volna rajzolni az EP-en, akkor ilyen listát csapok össze  :ds_icon_cheesygrin: Errõl a BASIC-ról nem hallottam még, bár nem vagyok BASIC párti, a Delphi-vel jól elvagyok.

A DECIMAL BASIC 1mega és ingyenes.
Át tudnád ezt EP-re írni? :)

OPTION ANGLE DEGREES
LET q=2^20
LET fraz=5
LET ng= 3
LET q1 = 250
LET f=(q1/q)
LET cr=5
SET WINDOW -q1-cr,q1+cr,-q1-cr,q1+cr
LET xv=0
LET yv=0
LET ro=q/fraz*ng
LET th=0
LET xv=fraz/ng*f*ro*COS(th)
LET yv=0
FOR i = 1 TO q/fraz*ng
LET n=n+i
LET t=MOD(n,q)
IF t=0 THEN LET t=q
LET th=t*(360/(q) )
LET x=fraz/ng*f*ro*COS(th)
LET y=fraz/ng*f*ro*SIN(th)
SET LINE COLOR MOD(i , fraz)+1
PLOT LINES: xv,yv;x,y
LET xv=x
LET yv=y
NEXT i
END
[attachthumb=#]
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2008.December.01. 09:18:33
Errõl jut eszembe. Ha összehasonlítjuk a különbözõ gépek különbözõ BASIC nyelveit akárhány bites, nekem feltûnik valami. A fejlesztõk igyekeztek a szótárból kikeresni a lehetõ legtöbb féle szinonímát egy parancsra, nehogymár ugyanaz legyen mint a többi.
Éppen ezért a kezdeti burjánzás után szabványosították a nyelvet. Az EP-nél külön ki is volt emelve a tulajdonságoknál, hogy már ezt az "ANSI Standard" BASIC-et "beszéli"!
Aztán gondolom a gépek és lehetõségek fejlõdésével megint el kezdett burjánozni a különbözõ új utasítások tömege :-) , de ahogy nézem ezt utána újabb ANSI szabványokkal igyekeztek rendbe tenni.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2008.December.01. 09:40:53
Egyébként az igazi programozási tudáshoz nem az utasításokat kell tudni, hanem azt, hogy hogyan bontunk le egy feladatot olyan kisebb elemekre amiket már el tud végezni a gép. Aztán már csak meg kell nézni a kézikönyvben, hogy az aktuális programnyelvben, hogy hívják a kérdéses "építõkockát" :-)
Anno pl a Kandón elsõben C-t kellett tanulni. Elsõ órán elmondták, hogy mi lesz majd az évvégi feladat, második órán beadtam készen, pedig addig soha nem programoztam C-ben :-) 5-ös, többet nem is kellett bejárnom :-)
A legtöbb általános programnyelv (BASIC, Pascal, C, stb) ugyanazokra az alapokra épül, csak némelyikben több az alap "építõkocka". Sõt még az assemblyt is idesorolnám, az elv itt is ugyanaz, csak itt egész minimál az alapkészletünk, minden nagyobb elemet már nekünk kell létrehozni.
Title: Re: Általános BASIC Kérdések
Post by: vizor on 2008.December.01. 10:55:37
Igen, ez így van. Életemben tegnapelõtt láttam másodszor QBasic-et, ezt a pici progi átiratot is a help alapján eszkábáltam össze némi próbálkozással  :)
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2008.December.01. 14:06:34
Zozó, ilyet láttál már? :D
Bár ez nem igazán tartozik ehhez a témához, de már van újabb ep128emu 2.0.6 beta verzió is (lásd itt (http://enterpriseforever.com/emulatorok/ep128emu_205-t325.0.html;msg12313#msg12313)). :)
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2008.December.01. 14:15:25
Át tudnád ezt EP-re írni? :)
epgraph.bas - a program IS-BASIC-re átírva, 16 színű módban (lehetne 4 színű is, akkor nagyobb lenne a felbontás, de a színek számát csökkenteni kellene). Mivel nagyon lassan fut, még emulátoron 200 MHz-es Z80-at beállítva és a memória időzítést kikapcsolva is, ezért ez egy kissé "lebutított" változat, amelyben 16-szor kevesebbszer fut le a ciklus.
epgraph2.bas - ugyanaz gyorsítás nélkül, azoknak, akik nagyon türelmesek :)
epgraph.lua - ez csak érdekesség, ep128emu Lua script verzió (a debuggerben lehet futtatni). Még így is viszonylag lassú (nekem a Windowsos emulátorral kb. 9-10 másodperc), de az idő jelentős részét a vonalrajzolás teszi ki. Bár ez a program bonyolultnak tűnhet, ez csak az EP képernyőjére rajzoló rutinok miatt van; az eredeti BASIC programot egyébként minimális változtatásokkal át lehetett írni.
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2008.December.01. 16:37:52
epgraph.lua - ez csak érdekesség, ep128emu Lua script verzió (a debuggerben lehet futtatni). Még így is viszonylag lassú (nekem a Windowsos emulátorral kb. 9-10 másodperc), de az idő jelentős részét a vonalrajzolás teszi ki. Bár ez a program bonyolultnak tűnhet, ez csak az EP képernyőjére rajzoló rutinok miatt van; az eredeti BASIC programot egyébként minimális változtatásokkal át lehetett írni.
Animált változat :) Indítása: "Load from file", "Run", és "Step".
Title: Re: Általános BASIC Kérdések
Post by: nyuzga on 2008.December.01. 16:38:40
Az igen! :cool:
A lua 10 másodperc alatt kirajzolta.
Köszönöm. :)
[attachthumb=#]
Title: Re: Általános BASIC Kérdések
Post by: vizor on 2008.December.01. 16:41:07
EP32-n nem tudom betölteni az egraph.bas-okat.

*** Invalid EXOS function code.

 :?:

Mostanában txt-ben szoktam IS-BASIC kódokat csinálni. Win alatt Notepad-al könnyebb a kódot szerkeszteni és az EP32 be tudja olvasni.
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2008.December.01. 16:44:20
Az igen! :cool:
A lua 10 másodperc alatt kirajzolta.
Ebből a számolás kb. 1 másodperc, a többi a vonalak rajzolása. :)
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2008.December.01. 16:53:46
EP32-n nem tudom betölteni az egraph.bas-okat.
Próbáld ep128emu-val :)
Quote
Mostanában txt-ben szoktam IS-BASIC kódokat csinálni. Win alatt Notepad-al könnyebb a kódot szerkeszteni és az EP32 be tudja olvasni.
A Zozosoft által leírt módon listázott programok:
Title: Re: Általános BASIC Kérdések
Post by: vizor on 2008.December.01. 17:46:59
Bocsánatot kell kérnem !

Elírtam a filenevet, epgraph.bas helyett egraph.bas  :oops: Természetesen az EP32 is beolvassa a bas file-t.

Elfelejtettem, szólhattatok volna, hogy tape rendszerben az EXOS errorcode akár "bad command or filename"-t is jelenthet  :ds_icon_cheesygrin:

Amúgy 1 GHz-es Z80 sebességnél 5 perc alatt még nem alakult ki az ábra. Talán meg kellene néznem azt az új emut  :)
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2008.December.01. 18:00:13
Elfelejtettem, szólhattatok volna, hogy tape rendszerben az EXOS errorcode akár "bad command or filename"-t is jelenthet  :ds_icon_cheesygrin:
Ez EP32 magnó emuláció bug.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2008.December.01. 18:29:03
Bár ez nem igazán tartozik ehhez a témához, de már van újabb ep128emu 2.0.6 beta verzió is (lásd itt (http://enterpriseforever.com/emulatorok/ep128emu_205-t325.0.html;msg12313#msg12313)). :)
Természetesen feltettem azóta. De ezzel sem csíkozódik. (Sose legyen nagyobb problémám. :D )
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2008.December.01. 19:09:27
Amúgy 1 GHz-es Z80 sebességnél 5 perc alatt még nem alakult ki az ábra. Talán meg kellene néznem azt az új emut  :)
A sebesség azzal sem lesz feltétlenül jobb (viszont pontosabb és többet tud :)), de az EP32-ben sem lehet 200 MHz-nél nagyobb Z80 órajelet beállítani. Az ep128emu-ban a Z80 frekvenciát 200 MHz-re állítva, és a memória időzítés emulációját kikapcsolva nekem kb. 85% a sebesség, és így az epgraph2.bas futása több, mint 1 óra után még mindig nem fejeződött be, tehát igazi gépen ez 40-50 óránál is több lehet.
Title: Re: Általános BASIC Kérdések
Post by: Ep128 on 2008.December.01. 23:36:12
Ezen nincs is mit csodálkozni, anno mi az ENTERPRESS újságban leközölt BASIC grafikákat (miután bepötyögtük tesómmal és START -ot nyomtunk) volt, hogy több, mint fél napon át rajzolgatta az (akkor még) 4Mhz -es alap gép. :-) Ebéd elõtt kezdte rajzolni és vacsora utánra lett készen.  :) De hogy örültünk neki, meg csodáltuk hosszú perceken át a sötétkék vonalakból álló ábrát!  ;-)
Title: Re: Általános BASIC Kérdések
Post by: vizor on 2008.December.02. 11:29:31
Quote from: Ep128
Ebéd elõtt kezdte rajzolni és vacsora utánra lett készen.   :) De hogy örültünk neki, meg csodáltuk hosszú perceken át a sötétkék vonalakból álló ábrát!   ;-)
És utánna milyen jó érzés volt kiadni a :VSAVE parancsot kétnyelvû gépen és elmenteni, hogy a :VLOAD-al egy másodperc alatt megjelenjen  :)
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2008.December.03. 20:39:05
És utánna milyen jó érzés volt kiadni a :VSAVE parancsot kétnyelvû gépen és elmenteni, hogy a :VLOAD-al egy másodperc alatt megjelenjen  :)
Jaja!  :)
Nem véletlen, hogy amikor a második gépünket vettük, az Otthon áruházban a fél raktárat kipakoltattuk, hogy olyan német gépet adjanak, aminek fehér pöttyös a cartridge  :ds_icon_cheesygrin:
Nagyon sokáig nem volt tiszta, a sajtóban sem, hogy a német=kétnyelvû. Mindenesetre abból indultunk ki, hogy pont olyan legyen mint az elsõ gépünk, mert az kétnyelvû.
Húúú de meg izzadtunk anno, amikor elõször beírtuk, hogy :UK, hogy Úristen, hogyan lehet ezt visszacsinálni  :lol:
Title: Re: Általános BASIC Kérdések
Post by: vizor on 2008.December.03. 22:18:09
Néha nagy kedvem lenne a mai tudásommal akkori programálmaimat megvalósítani EP-en :)
Csak mostanában eléggé el vagyok foglalva a PIC mikrovezérlõk programozásának tanulásával. Na az az igazi, 35 utasítás, 1 utasítás 1 ciklus  :ds_icon_cheesygrin:
Title: Re: Általános BASIC Kérdések
Post by: Tuby128 on 2008.December.28. 01:24:46
 A múltkor kerestem a neten az ENTERPRESS újság '92-es programozási versenyének gyõztes programját a CYCLOPS-t de sajnos nem találtam. Ha nem emlékezne valaki, akkor megsúgom, hogy "négyzetrácsos táblán kell érméket levenni, azzal a megkötéssel, hogy csak azt veheted le, amelyiken átemeltél egy érmét". Anno apám szépen kimásolta az újságból és felvette kazira, de azok a kazetták már ki tudja merre vannak. Szóval vettem a fáradságot, és begépeltem. Gépelés közben egyszerre tanulmányozni is tudtam (igazából ez volt a fõ cél), és meg kell hogy mondjam, nagyon fondorlatos megoldásokat talált ki a szerzõ.
 Mint ahogy mindig szokott, most is úgy másoltam le, hogy tele volt hibákkal, de hála az ep32 emulátornak, gyorsan kijavítottam õket. És ha már ennyit dolgoztam, gonoltam közszemlére teszem, hogy mások is kipróbálhassák, ha nincs idejük 900-egynéhány sort beptyögtetni. Nekem annak idején a menürendszer kinézete tetszett a legjobban, és ennyi év után is bejön.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2008.December.28. 12:04:01
[attachurl=#]

A következõ Enterpress számokban jelentek meg módosítások a programhoz, amivel állítólag még gyorsabbá is lehet tenni. (Programozói fogások, kifogások és melléfogások címmel, ha jól emléxem (vagy nyafogások?) )
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2009.September.08. 12:51:05
Régen nagyon megtetszett nekem, hogy a Hetedhét Enterprise 2. részében lévõ Hamika példaprogramban megoldották az ütközés figyelését, és ezen felbuzdulva anno írtam néhány játékot basicben, amik most elõkerültek. Az egyik "multiplayer", akárcsak a WoW, persze attól "kissé" elmarad színvonalban.
Azt hiszem, a játékok nincsenek befejezve...  :oops:

Hungry men [attachurl=1] - Multiplayer "játékélménnyel" (külsõ botkormánnyal mûködne, de az emulátoron valamiért csak fel-le ment nekem)

Threefold trouble [attachurl=2]

Xadeni [attachurl=3] (Hát ennek nagyon fantáziadús nevet sikerült adni...)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2009.September.09. 21:51:39
Az normális, ha egy tokenizálatlan (pl. LLIST #X: paranccsal elmentett) programot LOAD-dal vissza tudok tölteni tokenizált formába, de RUN-nal vagy START-tal való betöltésnél ripityomra fagy a gép? (Az emulátorral próbáltam amúgy.)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2009.September.17. 13:16:22
Hungry men - Multiplayer "játékélménnyel" (külsõ botkormánnyal mûködne, de az emulátoron valamiért csak fel-le ment nekem)

Csak nekem nem mûködik ez rendesen emulátoron a külsõ botkormánnyal, vagy másnak se? A játékban lehet a hiba?
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2009.September.17. 19:37:02
Csak nekem nem mûködik ez rendesen emulátoron a külsõ botkormánnyal, vagy másnak se? A játékban lehet a hiba?

Nekem működik.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2009.November.18. 11:13:23
Egy "szakembernek" nincs kedve megnézni az Ep-Plus (http://www.ep128.hu/Ep_Konyv/Ep_Plus.htm) hibáit? Hátha ki lehetne javítani...
Két ismert hiba van benne, az egyik már régen ismert: a JOY_MOD és a MENU összeakadása. Ennek a javítását már leírták az EnterFace-ben lásd a doksi végén a JOY_MENU.BAS.
A másikra tegnap hívták fel a figyelmemet: a beépített assembler rosszul fordítja a ADC A,(HL) -t! 8E helyett 9E-re konvertál ami így összeadás helyett kivon.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2009.December.30. 12:51:29
Van valami alternatíva belsõ joy helyett? Pl. billentyûkombinációk ALT-tal, CTRL-lel.
Tudom, van még a joy.ext, de azon kívül?
Egyszer mintha ALT vagy CTRL + vmelyik funkcióbillentyû helyettesítette volna a fel/le írányt.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2009.December.30. 13:02:28
Nincs. CTRL+M használható Enter helyett (mivel az is CHR$(13))
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2010.February.12. 21:12:22
Nem tudom, másnak is feltûnt-e már, hogy a HOLD gombra nem mindig reagál a gép. Ezt eddig csak BASIC program listázásakor sikerült tetten érnem, valamikor eléggé zavaró. Az emulátorban jelentkezik a probléma, de szerintem igazi EP-n is.

Jó, hogy van az emuban az F10, ez mindig mûködik. Érdemes kipróbálni BASIC-ben, hogy ha hosszabb ideig nyomkodjuk a HOLD-at folyamatosan, elõbb-utóbb figyelmen kívül hagyja a gép.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2010.February.13. 10:11:36
Nem tudom, másnak is feltûnt-e már, hogy a HOLD gombra nem mindig reagál a gép. Ezt eddig csak BASIC program listázásakor sikerült tetten érnem, valamikor eléggé zavaró. Az emulátorban jelentkezik a probléma, de szerintem igazi EP-n is.

Jó, hogy van az emuban az F10, ez mindig mûködik. Érdemes kipróbálni BASIC-ben, hogy ha hosszabb ideig nyomkodjuk a HOLD-at folyamatosan, elõbb-utóbb figyelmen kívül hagyja a gép.

Ez szerintem nem hiba. A HOLD billentyű csak akkor működik, ha az EXOS figyeli. Ezt nem várhatjuk egy spectrum átirattól, és valahogy BASIC-ben is le lehetett tiltani.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2010.February.14. 09:50:06
Még egy észrevétel: alapból a beszúrásos üzemmódban (CTRL+INS) nyíl alakúra vált a kurzor. Egy ideje nekem az EXOS 2.3 van bent  ( :smt023 ) és most vettem észre, hogy beszúrásos üzemmódban nyíl helyett egy függõleges vonal (talán kicsi l betû?) a kurzor. Ha minden igaz, más bõvítõknél is volt valami kavarodás a karakterkészlettel vagy valami hasonló, de lehet, hogy a színekkel is. Így ha pl. írok egy basic programot valamilyen konfigurációra, akkor az nem biztos, hogy minden konfigurációnál ugyanazt fogja produkálni?
Még a Hungry Creature játéknál megemlítettem (lásd Laci honlapján), hogy az emulátorral a színek nem ugyanazok, mint a gépen voltak, nyilván valami bõvítés miatt.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2010.February.14. 10:06:51
Így ha pl. írok egy basic programot valamilyen konfigurációra, akkor az nem biztos, hogy minden konfigurációnál ugyanazt fogja produkálni?

A BASIC program legelején érdemes beállítani, milyen karakterkészlettel akarjuk a programot futtatni. Pl.:

CLEAR FONT
(alap karakterkészlet)

EXT "HFONT"
(EPDOS esetében)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2010.February.14. 11:03:14
EXT "HFONT"
(EPDOS esetében)
Viszont ha HFONT bõvítés nélküli gépen futtatjuk a programot, akkor nem fog megfelelõen mûködni (sõt hibaüzenettel le is áll az EXT "HFONT"-ra). Valami olyan beállítás kéne, amivel mindenféle gépen egyformán fut a program.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2010.April.14. 16:31:19
Karakteres képernyõn lehet valami trükkel kettõnél több színt használni egyszerre?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2010.April.14. 16:42:13
Karakteres képernyõn lehet valami trükkel kettõnél több színt használni egyszerre?
Négyet tudsz használni, pontosabban két párt: 0/1 vagy 2/3 papír/tinta szín. 80 karakteres módban pedig 4 párt.
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2010.April.14. 17:46:08
Lehet négyszínű karakteres módot is használni, és akkor a négy szín egy karakteren belül is használható, igaz, a vízszintes felbontás a felére csökken, és saját karakterkészletet kell tervezni, mert az eredeti olvashatatlan lesz.
Még arra is van lehetőség, hogy kétszer négy szín (a 0.-3. vagy 4.-7. paletta színek) közül lehessen választani karakterenként, de ez már csak POKE utasításokkal oldható meg. Ilyenkor a karakterkészlet első 64 karaktere használja a 0.-3. színeket, a második 64 pedig a 4.-7.-et:

[attachthumb=#]

A 2*4 színű mód elveszik a képernyő görgetésekor, mert az EXOS felülírja az LPT-t.

Ezt akár 256 karakterrel is meg lehetne oldani (az első SPOKE utasításnál a 40 helyére 38-at írva), de az EXOS csak 128 karakternek foglal helyet a memóriában.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2010.April.14. 18:39:46
Köszi! Lehet, hogy majd felhasználom valamire, ha lesz rá elég idõm. :D
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2010.April.15. 00:22:17
Érdekes dolog történt az emulátor használata közben, nem tudom, az emulátor, az EP, netalán a PC az oka.

Lefuttattam egy basic programot, ami a DATA sorokból file-ba ír sok adatot. Kétszer lefuttatva egymás után nem ugyanaz a végeredmény jött ki.
Maximum azt tudom elképzelni, hogy mivel az emulátort maximális sebességre gyorsítottam, talán valamit elszámolt... bár most kétszer is lefuttattam a programot, egyszer lassan, egyszer gyorsítva és mindkétszer ugyanaz az eredmény jött ki, mint a legelsõ alkalommal.
Lehet ilyen?
Title: Re: Általános BASIC Kérdések
Post by: nt75sw on 2010.November.06. 13:12:05
Üdv!

Basic programot lehet lefordítani binárisra?
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2010.November.06. 13:34:21
Basic programot lehet lefordítani binárisra?

Igen, a Zzzip (http://www.ep128.hu/Ep_Util/Prg/Zzzip_12.rar) segítségével. Azonban, amint az itt (http://www.ep128.hu/Ep_Util/Zzzip.htm) olvasható, több korlátozás is van, például csak 16 bites előjeles egész számok használhatók, és a függvényeknek nem lehetnek lokális változói.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2011.July.16. 14:30:25
Eléggé pang a fórum, de én csak kevésbé értelmes dolgokkal tudom feldobni, amik nem az EP képességeinek legjobb kihasználásáról szólnak.
Belebotlottam egy régen készített, nagyon egyszerû basic programomba. Be kell írni egy szöveget, és átírja egy titkos nyelvre. Annyi a lényege, hogy minden betût felcserél egy másik betûre. (Kivéve talán az I betût.) Csak CAPS üzemmódban mûködik és vesszõt nem fogad el, mert ott abbahagyja a "munkát". Valamint egy csöppet lassú, ALT+W-vel érdemes használni emulátorban. Zzzippel is le lehet fordítani ezt a hézagpótló, nagyon fontos programot.

[attachmini=1] Secret language transcriptor

[attachimg=2]
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2011.July.16. 14:49:55
Régen a demokazettán lévõ bombázó játékot is kicsit átírtam. Különlegesség, hogy lehet demó módot is választani, ami azt jelenti, véletlenszerûen potyogtatja a bombát, amikor úgy gondolja. A nehézségi szint választásának lehetõsége is nagyon hézagpótló, és a hangeffektek átírása is elengedhetetlen volt. Ütközésnél elég érdekes dolog történik, nehéz utólag elhinni, hogy ennyire pihent voltam... De, mint látható, még lehetne finomítani rajta, pl. a menü kinézetén, zenéje sincs, stb.

[attachmini=1] Turbo Bomber (vagy mi legyen a címe?)

[attachimg=2]
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2011.July.16. 15:27:25
Ezzel a programmal nagyobb fájlokat lehetne szétszedni 4KB-os fáljokká és összerakni.
Viszont, mint a mellékelt ábra mutatja, nem igazán mûködik megfelelõen. Ez minimális munkával javítható lenne.
Nagyon lassú is, amin gépi kódú részekkel javítani lehetne.
Gyakorlati haszna nincs már.

[attachmini=1] 4KB File Breaker and Assembler

[attachimg=2]
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2011.July.16. 15:48:44
Szintén nagyon komoly: japán hangzású (halandzsa) szavakat generáló program. Minden futtatásnál más szavakat generál. Kéne hozzá felolvasó (beszélõ) rész is.

[attachmini=1] Word Generator of Japanese Sounding

[attachimg=2]
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2011.July.16. 16:44:05
Létrás játék kezdeménye:

[attachmini=1]

[attachimg=2]
Title: Re: Általános BASIC Kérdések
Post by: Ep128 on 2011.July.16. 23:10:55
Ez utóbbit 30-40 "szobássá" fejleszthetnéd... :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2011.July.16. 23:52:45
Ez utóbbit 30-40 "szobássá" fejleszthetnéd... :)
Labirintus, amiben el lehet tévedni? Nem rossz ötlet. Könnyebb lenne, mint mozgó ellenségeket és összegyûjtendõ tárgyakat építeni be. De lehet, azzal együtt kéne 30-40 szoba...
BASIC-be be lehet egyáltalán annyi szobát programozni? Hol tárolná a gép? És ezt az egy szobát is veszett lassan rajzolja ki... Igaz, a Zzzip segítene, ha le lehet fordítani (+ megszakítások és minden tiltása a szobák kirajzolásának idejére).
Ha DATA sorokban tárolódnának a szobák, azt a Zzzip lehet, hogy nem tudná legyûrni mind.
Nem tudom, mit lehetne megvalósítani belõle...
Mondjuk winchesterrõl utántöltõs szobák gyorsan betöltõdnének.
Összegyûjtendõ tárgyaknál azt is tárolni kéne valami változókban, hogy a 40 szobák melyikében mely tárgyat gyûjtöttük már össze, hogy ne jelenjenek meg újra, hiába vannak ott a DATA sorokban a tárgyra vonatkozó adatok.
Nagyon komoly, 2011-ben IS-BASIC játék program írásának problémái!

Ötletek?
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2011.July.17. 08:46:38
Az Endi-féle Miner-ben DATA sorokban vannak apályák. Zzzip-pel mûködik és rengeted pálya elférne így a memóriában.
Title: Re: Általános BASIC Kérdések
Post by: Ep128 on 2011.July.17. 14:06:51
Részemrõl sík hülye vagyok hozzá, csak látom a fantáziát abban, amit eddig összehoztál. :-)
Egy "ilyennel" szívesen játszik az ember. :-) A megtalálandó tárgyak, (esetleges ellenségek) random is lehetnének, hogy sokadszorra játszva se legyen egyszerû a játék. :-) (Valami rutin biztos tudná véletlenszerûen generálni a tereptárgyakat, ellenségeket...)


Labirintus, amiben el lehet tévedni? Nem rossz ötlet. Könnyebb lenne, mint mozgó ellenségeket és összegyûjtendõ tárgyakat építeni be. De lehet, azzal együtt kéne 30-40 szoba...
BASIC-be be lehet egyáltalán annyi szobát programozni? Hol tárolná a gép? És ezt az egy szobát is veszett lassan rajzolja ki... Igaz, a Zzzip segítene, ha le lehet fordítani (+ megszakítások és minden tiltása a szobák kirajzolásának idejére).
Ha DATA sorokban tárolódnának a szobák, azt a Zzzip lehet, hogy nem tudná legyûrni mind.
Nem tudom, mit lehetne megvalósítani belõle...
Mondjuk winchesterrõl utántöltõs szobák gyorsan betöltõdnének.
Összegyûjtendõ tárgyaknál azt is tárolni kéne valami változókban, hogy a 40 szobák melyikében mely tárgyat gyûjtöttük már össze, hogy ne jelenjenek meg újra, hiába vannak ott a DATA sorokban a tárgyra vonatkozó adatok.
Nagyon komoly, 2011-ben IS-BASIC játék program írásának problémái!

Ötletek?
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2011.July.17. 14:26:02
Olyat tuti lehetne, hogy néhány krapek véletlenszerûen mászkálna a pályán össze vissza. És lehetne szörnyike, ami átmegy mindenen és a játékos felé tart, persze vmivel kisebb sebességgel.
Elõször egyképernyõs ügyességi játékká lehetne "fejleszteni", aztán sokszobássá.
Érdekesebb lenne, ha a krapekok "pakolnák" le a felszedendõ cuccot véletlenszerûen és néha olyan cuccot is tennének le, amin mi nem tudunk átmenni, de õk igen, és ha átmennek rajta, akkor eltûnne a cucc és újra tudnánk arra menni. Meg aknákat is tehetnének le, amikre ha rálépünk, kampec.
Leírni persze könnyû, rá kéne szánni az idõt, hogy meg is csináljam. :D
Az a baj, már vagy 10 éve dobtam össze, ami kész van eddig és nem is tudom már, mi micsoda a programlistában. Átnézhetnétek, van-e valami, amit egyszerûbben meg lehetne csinálni, mint ahogy most van.
Pl. a képernyõ kirajzolása sztem azért lassú, mert változókba írja a képernyõ tartalmát és onnan nézi, mi van a játékos "alatt". Ha a képernyõrõl olvasná le, akkor lassabb lenne a játék, de talán Zzzippel fordítva beleférne. De valószínû ezt mindenképpen meg kell változtatni, ha a változó tereptárgyakat bevetjük, mert azokat is figyelni kell.

Valakinek lenne kedve olyan ellenséges krapekot tervezni (karakter átdefiniálásával), ami mindig elõnézetbõl látszódna? Pl. létrán felmászás közben is úgy nézne ki, mint mikor megy, és ez nem lenne zavaró...
Title: Re: Általános BASIC Kérdések
Post by: Ep128 on 2011.July.17. 17:16:11
Épp ideje, hogy István újra aktiválja Magát. :-)
Állítólag olvassa a fórumot, de hónapok óta egy betût nem írt, az alkalom így már adott rá, hogy megtegye. :-)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2011.July.18. 10:40:42
A Hungry Creature játékban véletlenszerûen mozognak a szörnyek, úgy, hogy mennek egy adott irányba, és ha falhoz vagy elágazáshoz érnek, akkor véletlenszerûen újra kitalálja a gép, melyik irányba menjenek tovább. Asszem, a basic "forrás" is megvan, abból ki lehetne nézni, hogyan sikerült ezt megoldani, és be lehetne építeni ebbe a játékba is.
De akár a Hamika megfelelõ részét is át lehetne ide építeni, és akkor kígyót lehetne a pályán irányítani, vagy az mozogna véletlenszerûen, mint ellenség. "Repülõ" ellenség is lehetne, ami mindenen keresztülmegy.
A kevés szín probléma. Ezért is kérdeztem régebben ebben a topikban, lehet-e ezzel valamit kezdeni. Az a baj, ha más színû egy karakter, akkor a karakterfigyelés (pl. ütközéseknél) nem mûködik. Attus a Gombócfalóban valahogy másképp oldotta meg az ütközést, az nekem kicsit magas. (Én GET #102-vel, Attus LOOK #102-vel, azt hiszem.)
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2011.July.18. 12:00:38
Hamikából anno csináltam olyan változatot, amivel a kevésbé ügyes játékosoknak lehetett sikerélményt szerezni.
A kukac kerülte a falakat, és ha kaját érzett a közelben, akkor automatikusan arra fordult.
Mondjuk a sok IF-tõl eléggé lelassult, Zippelni kellett.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2011.July.18. 13:03:02
Hamikából anno csináltam olyan változatot, amivel a kevésbé ügyes játékosoknak lehetett sikerélményt szerezni.
Nem keresed elõ?
Orra is volt a kígyónak, amivel a kaja szagát érzékelte? :D


Tegnap belebotlottam egy Own Programs mappába, most azt nézegetem át. Hamika "továbbfejlesztményt" is találtam: [attachmini=1]
Zzzippel van fordítva. Nem tudom, mennyire kész változat, tesztelni kéne. A BASIC forrást még keresem. A pályaszerkesztõ is elméletileg mûködik, de nem tudom, a szerkesztett pálya tényleg megjelenik-e. Sebességnek kb. 15-öt érdemes beállítani, annál kisebbel elég nehéz. Kb. 15 éve követhettem el ezt. A Dumplings Eater elméletileg gombócfalót akart jelenteni. A fõmenü itt is hagy némi kívánnivalót maga után:

[attachthumb=2]
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2011.July.18. 15:01:30
Nem keresed elõ?
Eddig még nem bukkantam rá :-(
Ez még a kazettás idõkben volt...
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2011.July.18. 16:02:38
Talán Commodore Plus 4-re volt egy nagyon hasonló bombázó játék. Annyira megihletett, hogy még azt is megkérdezi, el akarjuk-e indítani a játékot, ahogy Plus 4-en. (Ezt talán ki lehetne szedni a programból.)
A programlistát nézegetve volt néhány nem elegáns megoldás (pl. program közepén ENVELOPE definíció, amin mindig végigmegy, amikor odaér), de mûködik.

[attachmini=1]

[attachimg=2]
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2011.July.18. 20:17:06
Hogyan lehet az OUT 191,12 (vmi várakozás kikapcsolása) és a POKE 56,201 (megszakítások kikapcsolása) hatását visszaállítani eredeti értékre?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2011.July.18. 21:39:22
Hogyan lehet az OUT 191,12 (vmi várakozás kikapcsolása) és a POKE 56,201 (megszakítások kikapcsolása) hatását visszaállítani eredeti értékre?
out 191,4
poke 56,245
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2011.July.18. 21:42:50
out 191,4
poke 56,245
Köszi! Látom, te is jól megjegyeztél ilyen EP-s számokat. Bezzeg töribõl az évszámok nem mentek ilyen könnyen. :D
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2011.July.19. 00:00:48
Ebben a játékban az elsõ szinten egy ûrhajóból kinézve látjuk a "terepet" és úgy kell kormányozni az ûrhajónkat, hogy az ellenséges ûrhajó a célkereszt közepébe kerüljön és így ki lehessen lõni. Az ûrhajónk kormányzása abban nyilvánul meg, hogy az ellenséges ûrhajó ellentétes irányba mozog azzal, mint amilyen irányba kormányzunk. (Kivéve a fel és le irányt.) Az ellenséges ûrhajó persze gyorsan mozog, így nehéz dolgunk van. Õ is lõ ránk, és tíz találat után végünk. Sietni sem árt, mert az üzemanyag sem végtelen. Arra is figyelni kell, hogy az ellenség ne kerüljön ki a képernyõbõl, mert így eltûnik elõlünk és megszökik. Mi 9 találatot kibírunk, az ellenségnek viszont elég egyetlen találat a megsemmisüléshez.
A második szinten hasonló történik, csak más szemszögbõl, oldalról látjuk saját ûrhajónkat és az ellenséget. Itt egyetlen találattól végünk, az ellenség megsemmisítéséhez viszont 4 találat kell.
Kellemes, hogy a háttérben a csillagok "hunyorognak", viszont a mozgó cuccok letörlik a csillagokat, ha útjukba kerülnek. Az elsõ pályán ha fent kerül ki az ellenség a képbõl, ottmaradnak a nyomai. Szóval nem tökéletes.

[attachmini=1]

[attachimg=2]
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2011.November.16. 13:37:46
Volt egy program, ami véletlenszerûen labirintust rajzolt a karakteres képernyõn, majd megpróbált egy egy karakternyi krapekot átvezetni a labirintuson. Volt, hogy elszúrta a labirintus tervezését a program és nem vezetett út a kijárathoz, és volt, amikor kijutott a krapek. Nem tudja valaki, hol van ez a program? Valamelyik EP-s könyvben lehetett, onnan kellett bepötyögni a basic programot.
Nem tudom, megoldható lenne-e valahogy, hogy csak "járható" labirintust tervezzen a gép, és aztán az irányítást átadja a játékosnak.
Title: Re: Általános BASIC Kérdések
Post by: lgb on 2011.November.16. 17:32:54
Nem tudom, megoldható lenne-e valahogy, hogy csak "járható" labirintust tervezzen a gép, és aztán az irányítást átadja a játékosnak.

Nem biztos, hogy jol emlekszek, de volt valami olyan algoritmus, hogy fuggolegesen veletlenszeru helyre generalsz egy falat (vonalat), majd vizszintesen, es igy tovabb: a trukk az, hogy ahol talalkozik ket fal, ott egy atjarot kell krealni. A sorrend veletlenszerusitese teszi mindig massa a labirintust. Na persze ket falat nem er egymas melle rakni: mindig kell kozotte pontosan egy hely. Valami ilyesmi volt: alitolag ez olyat general, hogy tetszoleges ket pontja kozott mindig van ut, azaz barmelyik reszet kinevezheted a labirintusodnak kezdopontkent es kijaratkent, es a feladat teljesitheto.
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2011.November.18. 18:36:52
Itt egy (elég kezdetleges és lassú :oops:) labirintus program:
  [attachurl=#]
A mozgás a Space billentyűvel gyorsítható. A 2D8h címen állítható, hogy milyen valószínűséggel forduljanak elő olyan falak, amelyek a külső fallal nincsenek összekötve (00h: legnagyobb, 01h, 03h, 07h, 0Fh, 1Fh, 3Fh, 7Fh, FFh: legkisebb).
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2011.November.18. 19:20:28
Itt egy (elég kezdetleges és lassú :oops:) labirintus program:
Ez nagyon tetszik!  :smt041
Csak érdekesség: olyan történt, hogy "beragadt" az emberke és egyetlen fal körül mászkál. [attachmini=#]

Ha ezt ilyen könnyen összehoztad, nem fejleszted tovább valami pacman programmá?
A falrajzoló eljárást nehéz lenne basicben megvalósítani? Mert ha a Hungry Creature játékomba belecsempészném, szerintem szórakoztató játék lenne. Vagy ha csak az itt rajzolt pályákat abba be lehetne tölteni, ha amúgy nagyon lassú lenne.
Most már tényleg összehozhatnánk valami eredeti EP játékot, még ha ilyen gagyi karakteres képernyõst is. :D
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2011.November.18. 19:34:21
Csak érdekesség: olyan történt, hogy "beragadt" az emberke és egyetlen fal körül mászkál.

Valóban :oops: Ez javítható lenne azzal, ha nem véletlenszerű lenne a kezdeti irány.

Quote
A falrajzoló eljárást nehéz lenne basicben megvalósítani?

Nem tudom, érdemes-e BASIC-re átírni, mert az algoritmus nem túl jó, és elég lassú is. Valószínűleg célszerűbb lenne az lgb által leírt rekurzív módszert használni.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2011.November.19. 10:20:47
István, azt meg tudnád csinálni, hogy állítható legyen a labirintus nagysága (szélessége és magassága) karakterekben, és magát a labirintust el lehessen menteni egyszerû szöveges fájlba úgy, hogy a szélén a határoló falak ne legyenek benne a mentett fájlban? Valami ilyesmire gondolok: [attachmini=#] (Nem tudom, a sorok végén az a sortörés mennyire szabályos.) Lehet, felhasználnám valami EP játékhoz.

Az a rekurzív eljárás furcsának tûnik, ahogy belegondolok, de majd próbálkozom vele...
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2011.November.19. 13:05:15
Ez a script állítható méretű labirintust generál szöveges file-ba:
  [attachurl=#]

Az elején lehet beállítani a különböző paramétereket:

Code: Lua
  1. mazeWidth = 43
  2. mazeHeight = 33
Ezek egyértelműek, 5 és 255 közötti páratlan számok adhatók meg. A kimeneti file nem tartalmazza a "keretet", tehát az alapbeállításokkal csak 41x31 méretű lesz.

Code: Lua
  1. innerWallProbability = 0.01
A külső falakkal nem összefüggő falak valószínűsége (0 és 1 között). Ha ez nagy, akkor általában egyszerűbb eljutni a kijáratig a külső falak mentén.

Code: Lua
  1. recursiveAlgorithm = false
Ha true, akkor a rekurzív algoritmus engedélyezett, és az innerWallProbability-nek nincs hatása. Ez eltérő jellegű labirintusokat állít elő.

Code: Lua
  1. outFileName = "/tmp/maze.txt"
A kimeneti file neve. Windows alatt a \ karakterek helyett \\-t kell írni (pl. "C:\\maze.txt").

Code: Lua
  1. math.randomseed(os.time())
Itt az os.time() helyére egész számot írva megismételhetővé válik a labirintus térképe (minden szám mást, de mindig ugyanazt generálja). Alapértelmezés szerint mindig más.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2011.November.19. 14:49:15
Köszi!
Próbálkozom beépíteni valami játékba...
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2011.November.19. 19:05:09
István scriptje által tervezett labirintusokból be lehet tölteni ebbe a játékba és játszani is lehet vele. Sajnos a játékot régen úgy csináltam meg, hogy a pálya szélessége páros számú karakterbõl áll, így amit a script generál, abból "ízlés szerint" ki kell törölni minden sorban egy-egy karaktert, pl. a Word nevû PC-s szövegszerkesztõvel. (Másik megoldás, ha a szélességet kettõvel kisebbre állítjuk a scriptben, akkor meg egy-egy karaktert minden sorba be kell külön szúrni.) Nekem úgy tûnik, rekurzív algoritmussal jönnek ki játszhatóbb pályák. A script, a játékhoz nagyjából testre szabva: [attachmini=1]

A menüben betöltés után a 2-es gombbal át kell váltani DESIGNED levels-re, így a lemezrõl tölti be a pályákat. Elsõként a LEVEL_1 nevût tölti be, erre érdemes átnevezni a labirintust, amit ki akarunk próbálni. A csomagba tettem még 3 pályát, ami a labirintuskészítõ scripttel készült, lehet próbálkozni. :D (Szerintem nagy odafigyelést igényel, mert el is lehet tévedni, és a szörnyek is jönnek.)
[attachmini=2]

[attachimg=3]

A kész pályákat lehet tovább szerkeszteni a játékba beépített pályaszerkesztõvel vagy a Worddel, hátha könnyebb és jobb lesz.
Szerintem túl nehéz a játék és néha unalmas, mert messze kerülhetnek a szörnyek. Nem tudom, mit lehetne csinálni vele, hogy érdekesebb legyen.
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2011.November.19. 20:45:41
Kissé továbbfejlesztett verziók:
  [attachurl=#] - a "beragadást" javítottam, és a labirintus generálása is gyorsult. A korábban 2D8h címen található paraméter 309h címre került
  [attachurl=#] - a rekurzív kettéosztásos algoritmust használja
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2011.November.21. 17:23:59
Azt meg lehet csinálni valahogy a DISPLAY utasítással, hogy egy szöveges lap (vagy akár videólap) vízszintesen ne a képernyõ közepére kerüljön, hanem "arrébb" legyen? És így akár több videólap kerülhetne egymás mellé.
És nem tudom, a kurzort lehet-e teljesen likvidálni egy szöveges lapról. Persze a cursor colour és cursor character utasításokkal igen, de akkor csak látszólag nincs ott.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2011.November.21. 18:01:28
Azt meg lehet csinálni valahogy a DISPLAY utasítással, hogy egy szöveges lap (vagy akár videólap) vízszintesen ne a képernyõ közepére kerüljön, hanem "arrébb" legyen? És így akár több videólap kerülhetne egymás mellé.
Teljességgel lehetetlen  :(
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2011.November.21. 20:13:58
És így akár több videólap kerülhetne egymás mellé.
Ezt csak a Windows nevû BASIC bõvítéssel lehet megcsinálni, és csak TEXT 80-ban.

Quote
És nem tudom, a kurzort lehet-e teljesen likvidálni egy szöveges lapról. Persze a cursor colour és cursor character utasításokkal igen, de akkor csak látszólag nincs ott.
PRINT CHR$(27);"O";
PRINT CHR$(27);"o";

Most vagy én vagyok béna, vagy tényleg elfelejtettek erre BASIC utasítást írni?
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2011.November.21. 21:52:15
Végülis a 0-ás (vagy 102-es? nekem a kettõ kicsit összefolyik) csatornán sincs kurzor, ha programból használjuk a print utasítást. De lehet, hogy annak más az oka.
De mintha anno láttam volna olyat, hogy lapon nem volt kurzor, csak szöveg. De már nem biztos.

Az volt poén egyszer, hogy megnyitottam egy 0-ás video: csatornát, majd több display utasítással e képernyõ különbözõ részein több "példányban" is megjelenítettem, és akkor kb. 3 kurzor volt és lehetett velük írni.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2011.November.21. 22:07:01
A 0-ás az EDITOR ami a 102-es VIDEO-t használja. És kapcsolgatja rajta a kurzort, ezért nem látod.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2011.December.27. 18:47:26
A két megoldás közül melyik a jó vagy jobb?

Code: [Select]
100 DEF AKÁRMI
        ...
250   CALL BÁRMI
        ...
300 END DEF !(AKÁRMI)
310 DEF BÁRMI
         ...
350 END DEF !(BÁRMI)

vagy:
Code: [Select]
100 DEF AKÁRMI
...
250   CALL BÁRMI
...
310   DEF BÁRMI
            ...
350   END DEF !(BÁRMI)
400 END DEF !(AKÁRMI)

Szóval, egy DEF eljáráson belül kell létrehozni egy másik DEF eljárást, ha azt az elsõ DEF eljáráson belülrõl hívjuk meg, vagy akkor is kívülre kell helyezni a meghívott eljárást?
Remélem, érthetõen sikerült megfogalmaznom. :D
(Triviális lehet a válasz, de így a 20. század után már régen botlottam ilyen "problémába".)
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2011.December.27. 18:58:58
Mindkettõt ugyanúgy kezeli. De elméletileg a szép különálló DEF blokkok a szépek.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2011.December.28. 15:12:12
Köszi a választ!
Kicsit érdekesen mûködnek ezek a DEF blokkok. Ha meghívok egy DEF blokkot és azon belül egy új változót definiálok, akkor a DEF blokkból visszatérve a gép elfelejti, hogy definiáltam ezt a változót és Variable not initialised lesz. Viszont, ha a program legelején definiálom tetszõleges értékkel a változót (pl. LET A$=""), akkor már nem jön elõ a hiba.
A gépkönyvben próbáltam utánanézni ennek a DEF-es és változós ügynek (mert vannak külsõ és belsõ változók), de túl bonyolult volt nekem. Ha belsõ változóról van szó, akkor azt a DEF utasításban is meg kell adni elvileg (pl. DEF akármi(x,y) vagy ilyesmi).
Szóval ez így fura kicsit...

[attachimg=#]
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2011.December.28. 16:03:32
Kicsit érdekesen mûködnek ezek a DEF blokkok.

Nincs ebben semmi "érdekes", nagykönyv szerint így kell mûködnie strukturált programozási nyelvben. Adatok elszigetelésének elve: azon változók, melyek eljáráson belül deklarálsz, lokális változók. Lásd Gépkönyv (http://ep128.hu/Ep_Konyv/Users_Manual.htm#25) ide vonatkozó fejezetét ("LOKÁLIS ÉS G LOBÁLIS VÁLTOZÓK").
Title: Re: Általános BASIC Kérdések
Post by: Povi on 2011.December.28. 16:04:22
ha a DEF blokkon belül hozol létre (deklarálsz) egy változót, akkor az lokális lesz, vagyis csak addig él, amíg ki nem lépsz a DEF-ből. Ezért áll le a program "ismeretlen változó" hibaüzenettel.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2011.December.28. 16:04:53
Viszont, ha a program legelején definiálom tetszõleges értékkel a változót (pl. LET A$=""), akkor már nem jön elõ a hiba.

Amit a fõprogramban deklarálsz, az globális változó.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2011.December.28. 16:33:10
Köszi!
Mi egyébként a gyakorlati értelme, hogy END DEF után elfelejti a változót a gép?
Szerintem célszerûbb a GOSUB-RETURN használata, mert akkor nem kell arra is figyelni, hogy egy változót nem a blokkon belül deklarálok-e véletlenül.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2011.December.28. 16:52:59
Mi egyébként a gyakorlati értelme, hogy END DEF után elfelejti a változót a gép?

Az, hogy az IS-BASIC egy tökéletesen strukturált programozási nyelv. Egy nagyob program, márt több programrészbõl áll, melyeket nem is feltétlenül egy ember készít. Sokkal egyszerûbb (és kevesebb hibalehetõség), ha minden programmodul csak a saját változóit használhatja és csak a "kész" adatokat adja vissza az õt meghívó másik programrésznek.
Aki idegenkedik az eljárásoktól, az használhatja a GUSUB / RETURN-t, (vagy minden változót deklarálon a fõprogramban, pl. a program elején) és speciel hajmerevedést kapok, amikor ilyet látok... :oops:
Title: Re: Általános BASIC Kérdések
Post by: endi on 2011.December.28. 17:13:02
az is-basic nagy segítség volt nekem amikor pascal-ra áttértem
kb 2 nap után már folyékonyan írtam a strukturált pascal programokat :)

amúgy az objektum orientált programozás se egy nagy ördöngõsség, sõt, én túl nagy találmánynak se tartom, ezek mind a logikus, strukturált, értelmes programozásbõl következnek szinte maguktól
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2011.December.28. 17:17:03
Egy ravasz kérdés:
Lehetséges, hogy a SPEEK(255,16372)+SPEEK(255,16373)*256-1152 értéke ne 46208 legyen?
Azért kérdezem, mert a demokazettán a karakterdefiniáló programban többször is ez szerepel ahelyett, hogy egyszerûen csak 46208 lenne ott. Arra a memóriaterületre vonatkozik, ahol a karakterek alakját tárolja a gép, ez pedig akkor is 46208, ha bonyolultan számoljuk ki. Vagy lehet valami "turpisság" a dologban?
Szóval az érdekelne, hogy a fenti SPEEK akármi helyett szerepelhetne-e egyszerûen csak 46208. Ha átírom a programban, a program ugyanúgy mûködik, ezért nem értem, mi értelme volt ilyen bonyolultan adni meg.
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2011.December.28. 17:35:37
Szóval az érdekelne, hogy a fenti SPEEK akármi helyett szerepelhetne-e egyszerûen csak 46208. Ha átírom a programban, a program ugyanúgy mûködik, ezért nem értem, mi értelme volt ilyen bonyolultan adni meg.

Ez a karakterkészlet kezdőcíme (B480h), ami EXOS 2.0 esetén más. Próbáld ki EP64 konfigurációval, azzal nem 46208 lesz.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2011.December.28. 21:49:53
Van olyan OUT utasítás, amivel ki lehet kapcsolni a SHIFT, CAPS, ALT üzemmódot anélkül, hogy a lock gombot megnyomnánk. És OUT utasításokkal be is lehet kapcsolni ezeket. Nem tudjátok, hogyan lehet OUT-tal kikapcsolni, milyen értékeket kell hozzá megadni?

UI: Lehet, hogy nem OUT, hanem SET.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2011.December.28. 22:39:54
UI: Lehet, hogy nem OUT, hanem SET.

POKE lesz az az utasítás... :ds_icon_cheesygrin: Zozo talán tudja fejbõl... Az EP Plus-ban errre már van külön utasítás (LOCK OFF / CAPS / ALT / SHIFT)
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2011.December.28. 22:49:26
POKE lesz az az utasítás...
Nem POKE, hanem SET! 6-os EXOS változó. (http://www.ep128.hu/Ep_Konyv/Exos.htm#176)
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2011.December.28. 22:58:16
Kösz! Ezt nem is tudtam...
A Referencia kézikönyvben erre a változóra sok szót nem "pazaroltak"... Mindjárt ki is egészítem!
Ugyanitt a 13-as változóra írjak valamit?
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2011.December.28. 23:15:46
Nem POKE, hanem SET! 6-os EXOS változó. (http://www.ep128.hu/Ep_Konyv/Exos.htm#176)
Köszi!
Azon gondolkoztam, össze kéne írni valahol az ilyen "érdekes" basic utasításokat. Pl. még amivel a status sorba lehet irkálni, a status sort alulra tenni (valami SPOKE), meg az OUT 191,12 és társaik... Lehet, a wikin elkezdem ezeket összeszedni.
Ja, meg azt se találtam, hogy az egyes karakterkódok mit jelentenek, pl. az insert, delete billentyûknek mi a kódja, majd ezeket is össze lehetne gyûjteni.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2011.December.28. 23:41:20
Ja, meg azt se találtam, hogy az egyes karakterkódok mit jelentenek, pl. az insert, delete billentyûknek mi a kódja, majd ezeket is össze lehetne gyûjteni.
Az elõbbi linken lejebb mész egy lappal...  :lol:
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2011.December.28. 23:52:25
Karácsonyra nem sikerült kész lennem vele, csak most. Biztos nem fogja használni már 2012-ben senki, talán én sem, de érdekes volt megírni. Biztos lehetne még tökéletesíteni rajta, pl. a színeken változtatni, stb.

Character Definer 2012
A program a demokazettán található Character Definer továbbfejlesztett változata. Míg az eredeti programban csak adott karaktereket szerkeszthetünk át, itt bármelyik karaktert átszerkeszthetjük, az átszerkesztett karakterkészletet elmenthetjük, karakterkészleteket betölthetünk, vagy az átdefiniált karaktereket tartalmazó definíciókat önálló basic programként elmenthetjük. Mivel a mûveletek az összes karaktert érinthetik, a program nem tartalmaz saját karakterdefiníciókat, így a karakterek szerkesztésére alkalmas rács is másképp jelenik meg.
A program hangeffekteket is használ, amivel üdítõbbé (esetleg idegesítõvé?) teszi a munkát, felhasználói programok között ez üdítõ színfolt. De ha üdítõt viszünk a gép mellé és azzal véletlenül leöntjük gépünket, akkor a gépen is lesz egy üdítõ színfolt. A programban egy "szintetizátor" is el van rejtve.
A N=NEXT és R=RECALL mûveletnél nem input utasítással kéri be a karakter kódját, hanem a képernyõ tetején külön ablakban megjelenik az összes karakter, amibõl kiválaszthatjuk a nekünk megfelelõt. (A "hagyományõrzés" miatt a karakterszerkesztõ mezõ mellett is megtalálható néhány karakter, a képernyõ közepe táján, ahogy az eredeti programban.) A kurzort a botkormánnyal irányíthatjuk, space-szel választhatjuk ki a karaktert. A képernyõ közepe táján az ASCII: felirat alatt kijelzi az aktuális karakter kódját, amin a kurzor éppen áll.
A program rögtön azzal kezdõdik, hogy ki kell választanunk azt a karaktert, amit át kívánunk szerkeszteni. Miután a karaktert kiválasztottuk, bal oldalon lent a CURRENT ASCII felirat alatt megjelenik a karakter kódja és maga a karakter. Az N (Next) gombbal kiválaszthatjuk a következõ átszerkesztendõ karaktert. Az átszerkesztett karakterek természetesen a fenti ablakban is megváltoztatják alakjukat.
Az R (Recall) egy meglévõ karakter alakját hívja le, akárcsak az eredeti programban. Viszont itt nem a karakter kódját kell megadni, hanem a fenti ablakból választhatjuk ki a karaktert. Jobb oldalon lent a LAST RECALLED felirat alatt kijelzi a legutoljára lehívott karakter kódját és magát a karaktert.
A demokazettáról megszokott mûveletek mellett egy új mûvelet is megtalálható, amikrõl a jobb oldali felirat is tájékoztat: F=FILE MENU - belépés a file menübe. Itt karakterkészletet menthetünk, tölthetünk, vagy basic programként elmenthetjük az átrajzolt karakterek definícióit. A basic program mentése tokenizálatlan formában történik, ezt az IS-BASIC-be minden probléma nélkül betölthetjük, vagy saját programunkkal összemerge-elhetjük, vagy (akár PC-s) szövegszerkesztõben is megnézhetjük. Azok a karakterdefiníciók kerülnek mentésre, amiket a D (Define) gombbal átdefiniáltunk.
A képernyõ tetején az összes karaktert tartalmazó ablak alatti világoskék mezõben a felirat tájékoztat az aktuális mûveletrõl: átdefiniálandó karakter kiválasztása, lehívandó karakter kiválasztása, kiválasztott karakter szerkesztése, file menüben választás.

A programot ki lehet listázni és el lehet szörnyedni azon, hogyan oldottam meg.
A program nem csinál nagy ügyet a file kezelésbõl, hiba esetén leáll, és nem ellenõrzi, hogy a mentendõ fájl létezik-e már, felülírja. Továbbá, kicsit lassú az egész, ami különösen a karakterkészlet betöltésekor figyelhetõ meg. Zzzip biztos jót tenne a programnak, de akkor meg kezelhetetlenül gyors lenne.
Érdekes lenne megvalósítani, hogy basic programokban megkeresse a karakterdefiníciókat, és azok szerint definiálná át a karaktereket.
Egyes játékok a karakterkészletet külön fájlban tárolják, érdemes lenne ezek betöltésével is próbálkozni. A lényeg, hogy 1152 bájt hosszúnak kell lennie a fájlnak. A Sorcery régebbi (gyári) változatát megnéztem, ott sajnos egyik fájl sem 1152 bájt.


Néhány fura megoldást alkalmaztak az eredeti programban:
- Az alapértelmezett, 0-ás csatornát használja kiírásra, ami kicsit lassabb, mint a 102-es csatorna lett volna.
- A H=HORIZONTAL, V=VERTICAL nem mûködik helyesen. Feltételezhetõleg az lett volna a funkciójuk, hogy megfordítsák a karaktert függõleges ill. vízszintes tengelye körül. Inkább tükrözés ez, mint forgatás. (De lehet, hogy direkt van ez így?) Nem javítottam, akinek van kedve, kijavíthatja. Az I=INVERT helyesen mûködik.
- Kurzor mozgatásának figyelése (ne lépjen ki a szerkesztõterületrõl) hosszadalmasan van megoldva.

[attachurl=1]

[attachimg=2]
Title: Re: Általános BASIC Kérdések
Post by: lgb on 2011.December.29. 00:28:00
A program hangeffekteket is használ, amivel üdítõbbé (esetleg idegesítõvé?) teszi a munkát, felhasználói programok között ez üdítõ színfolt. De ha üdítõt viszünk a gép mellé és azzal véletlenül leöntjük gépünket, akkor a gépen is lesz egy üdítõ színfolt.

Ez nem annyira vicces, a kislanyom a ceges notebook-ot epp a multkor locsolta meg udito szinfolttal, egeszen pontosan 2 decivel. Mikozben az mukodott. Igaz nem sokaig ...
Title: Re: Általános BASIC Kérdések
Post by: Povi on 2011.December.29. 11:05:17
Továbbá, kicsit lassú az egész, ami különösen a karakterkészlet betöltésekor figyelhetõ meg.
Gyorsítás:
a program elejére üsd be ezt a 3 sort:
Code: [Select]
    1 ALLOCATE 9
    2 CODE TOLT=HEX$("3E,01,01,80,04")
    3 CODE =HEX$("EB,F7,06,C9")
a 2670-es sort cseréld ki erre:
Code: [Select]
2670   CALL USR(TOLT,FONT)
a 2680-2700-as sorokat töröld ki :-)

a töltés mostantól villámgyors lesz!

magyarázat a kódhoz:
Code: [Select]
3E 01    = LD   A,1     ;az 1-es csatornáról fogunk olvasni
01 80 04 = LD   BC,1152 ;1152 byte-ot szeretnénk betölteni (BC=Byte Count)
EB       = EX   DE,HL   ;a HL és a DE regiszterek értékeinek cseréje
                        ;a DE (DEstination) címre szeretnénk tölteni az 1152 byte-ot
                        ;a TOLT rutin hívásakor a FONT paramétert adtuk meg: CALL USR(TOLT,FONT)
                        ;a FONT változó értéke a HL-be kerül
                        ;ezért kell kicserélni a két regiszter értékét :-)
F7 06    = EXOS 6       ;olvasás a csatornáról
C9       = RET          ;visszatérés a rutinból
Title: Re: Általános BASIC Kérdések
Post by: Povi on 2011.December.29. 11:36:56
a mentő rutint ezek után te is meg tudod csinálni, annyi a különbség, hogy EXOS 6 helyett EXOS 8 kell, minden más változatlan a kódban
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2011.December.29. 12:59:04
a mentõ rutint ezek után te is meg tudod csinálni, annyi a különbség, hogy EXOS 6 helyett EXOS 8 kell, minden más változatlan a kódban
Ez azt jelenti, hogy az utolsó elõtti szám a C9 elõtt nem 06, hanem 08 lesz? A gépi kódhoz abszolút nem értek.
Köszi a segítséget!
Lehet, inkább zzzippelni kéne az egészet és a szerkesztéssel kapcsolatos részeket lelassítani valahogy egy kicsit (pl. FOR-NEXT ciklusokkal), és a szerkesztés is gyorsabb lenne. És akkor talán nem is kell ezeket a HEX-es részeket betenni. Vagy jó így a sebesség, maradjon a HEX-es töltésgyorsítás?
Még a POKE 56,201-et is be lehetne tenni töltés/mentés elõtt, utána meg 245-re visszaállítani.
Akkor nem érdemes zzzipes változatot elõállítani?
Title: Re: Általános BASIC Kérdések
Post by: Povi on 2011.December.29. 13:13:12
Ez azt jelenti, hogy az utolsó elõtti szám a C9 elõtt nem 06, hanem 08 lesz? A gépi kódhoz abszolút nem értek.
igen, mert minden más paraméter változatlan:
az 1-es csatornán van megnyitva a fájl írása
ugyanúgy 1152 byte-ot szeretnénk írni,
és a DE most azt a címet jelenti, ahonnét menteni akarunk, de ez szintén a karakterkészlet kezdőcíme kell, hogy legyen
ennél gyorsabb nem lesz ZZZIP-pel sem, főleg, hogy akkor a ciklusok megmaradnának, és az hiába gyorsulna fel, de attól még bájtonként olvasnád és írnád  z állományt :-)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2011.December.29. 13:27:28
ennél gyorsabb nem lesz ZZZIP-pel sem, fõleg, hogy akkor a ciklusok megmaradnának, és az hiába gyorsulna fel, de attól még bájtonként olvasnád és írnád  z állományt :-)
A Zzzippel gyorsítást a program többi része (kurzor mozgatása, karakter kirajzolása) miatt vetettem fel. Jó az akkor így, ahogy van?

Na, megcsináltam a hex-es file mûveleteket. Hoppá, egy "kicsit" tényleg gyorsabb lett!  :smt041 [attachurl=1]

Ha találtok még benne javítani valót, szóljatok!
Title: Re: Általános BASIC Kérdések
Post by: Povi on 2011.December.29. 13:44:55
Jó az akkor így, ahogy van?
igen
Title: Re: Általános BASIC Kérdések
Post by: Povi on 2011.December.29. 13:55:06
a 100-as sor végén a TEXT helyett TEXT 40-et írnék...
a program listázásakor átváltottam 80 karakteres módba, aztán úgy maradt...  :mrgreen:

kéne még valami funkció a kilépésre (pl. ESC bill. megnyomása), a programból nem túl elegánsan, a STOP gomb megnyomásával lehet jelenleg kilépni...

a ZZZIP-pel még megpróbálkoznék, biztos gyorsítana a többi dolgon, főleg, mert rengeteg ciklus van, főleg azok lassítják a BASIC-et...
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2011.December.29. 14:25:28
a mentõ rutint ezek után te is meg tudod csinálni, annyi a különbség, hogy EXOS 6 helyett EXOS 8 kell, minden más változatlan a kódban
Az Allocate utáni méretet is növelni kell!
Title: Re: Általános BASIC Kérdések
Post by: Povi on 2011.December.29. 15:40:08
Az Allocate utáni méretet is növelni kell!
Úgy gondoltam, ez egyértelmű... :-)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2011.December.29. 18:03:06
a 100-as sor végén a TEXT helyett TEXT 40-et írnék...
TEXT 40 napirenden.
Kilépésre nem jó a dupla reset? :D
Majd akkor Zzzipbe is belegyömöszölöm. De megeszi a Zzzip az ilyen ALLOCATE-HEX-es programokat?
Engem a fájlkezelés zavar még, hogy hibaüzenettel leállhat. WHEN blokk betervezve. Mondjuk floppys hibaüzenetek akkor is tönkretennék szeirntem a képernyõt.
Title: Re: Általános BASIC Kérdések
Post by: Povi on 2011.December.29. 18:06:19
De megeszi a Zzzip az ilyen ALLOCATE-HEX-es programokat?
Simán...
Title: Re: Általános BASIC Kérdések
Post by: szipucsu 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.
Title: Re: Általános BASIC Kérdések
Post by: Ep128 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! :-)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu 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.
[attachmini=#]

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.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu 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?
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2012.March.06. 16:15:49
Úgy látszik, késve, de itt egy egyszerű példa:

[attach=#]
Title: Re: Általános BASIC Kérdések
Post by: szipucsu 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?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft 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.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu 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.
Title: Re: Általános BASIC Kérdések
Post by: Tuby128 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.

Title: Re: Általános BASIC Kérdések
Post by: Zozosoft 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 :-)
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft 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 :-)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu 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.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu 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.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft 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:
[attachimg=1]
Title: Re: Általános BASIC Kérdések
Post by: szipucsu 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...
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.March.09. 16:34:16
Erre jó ez az allocate-s dolog. További pár bájtos rutinokkal a mentés betöltés is gyorsan meg van.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.March.10. 08:17:03
Allocate-s rutinnal foglalni kell egy szegmenst, és akkor azt lehet SPOKE-ézni.

Ha jól gondolom, ezután SPOKE/SPEEK WS,X,Y paranccsal szabadon garázdálkodhatunk a kiutalt szegmensen?
Ez tetszik!
És akár többször is egymás után meghívhatjuk pl.? WS1, WS2 változókra?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.March.10. 08:51:46
Ha jól gondolom, ezután SPOKE/SPEEK WS,X,Y paranccsal szabadon garázdálkodhatunk a kiutalt szegmensen?
Igen.

Quote
És akár többször is egymás után meghívhatjuk pl.? WS1, WS2 változókra?
Igen.
Title: Re: Általános BASIC Kérdések
Post by: Tuby128 on 2012.March.10. 14:00:05
Private Enterprise folyóirat
Issue 1. (1985)

8. oldal (részlet)

IS-BASIC hibák:
1. RETRY nem megengedett parancs IF után (ezt nem is említi a kézikönyv)
2. A standard 40 karakteres képernyõ nem mûködik megfelelõen PRINT AT paranccsal. A PRINT AT 3,39 parancs kiadása esetén a szöveg 4,2-re kerül. Ez nem történik meg felhasználó által generált videolap esetén csak az editor videolapnál.
3. A COS függvény nem mûködik megfelelõen, mert a COS(PI/2) eredménye 1E-11 lesz. (Tuby128 megjegyzése: lehet hogy nem volt kiadva az OPTION ANGLE DEGREE parancs? - csak tippelek)
4. A TIMER hibás. Kb. 25%-os idõbeli eltérés tapasztalható.
5. A LOOK parancs kizárólag grafikus képernyõnél mûködik, noha szöveges képernyõnél is mûködnie kellene, ahol az ASCII karaktert kellene visszaadnia az aktuális cursor pozíciónál.
6. Allocate -n kitörli az aktuális programot.
7. Annak ellenére, hogy létre lehet hozni egy 255 soros képernyõt, mégis csak 223 sort lehet scrollozni.
8. VAL (STR$(A(N,M))(X:Y)) nem mûködik

Dave Race, Oxford.
http://enterpriseforever.com/dlattach.html;topic=203.0;attach=4656
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.March.10. 16:12:37
5. A LOOK parancs kizárólag grafikus képernyõnél mûködik, noha szöveges képernyõnél is mûködnie kellene, ahol az ASCII karaktert kellene
De erre ott van a GET.

Nekem magas kicsit ez a SPOKE-os, ALLOCATE-es megoldás, amit Zozo írt. Akkor a következõ programrészt pl. hogyan kellene átírni?
Code: [Select]
190 STRING *1 A$(1 TO 7719)
240 OPEN #1:"DOTCOLL.COM" ACCESS INPUT
260 FOR A=1 TO 7719
270   GET #1:A$(A)
280 NEXT
290 CLOSE #1

Én ilyesmire tippelek:
Code: [Select]
190 ALLOCATE 7719 ! A program legelsõ sorába lehetõleg
240 OPEN #1:"DOTCOLL.COM" ACCESS INPUT
260 FOR A=1 TO 7719
265   GET #1:A$
270   SPOKE 255,A,ORD(A$)
280 NEXT
290 CLOSE #1

Ez tényleg ilyen egyszerû, vagy ennél azért bonyolultabb a gyakorlatban?
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.March.10. 16:29:43
Ezek után ha megszakad a program és kíváncsi vagy az értékre, akkor:
START 2000
Na, ez mondjuk véletlenül pont nem jó, mert a START (és a RUN is) törli a változókat. De az alapötlet jó.
Helyette DEF blokkba lehetne tenni a változókiíró részt és azt CALL-lal meghívni, az nem törli a változókat, pl.

1990 DEF VALTOZOKIIRAS
2000   PRINT A, B, N, X, Y, CURX, CURY, A$, NEV$, KIIR$
2010 END DEF

CALL VALTOZOKIIRAS
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.March.10. 16:37:45
Ez tényleg ilyen egyszerû, vagy ennél azért bonyolultabb a gyakorlatban?

Ennél egy csipetnyivel bonyolultabb:

Code: [Select]
  100 PROGRAM "Proba2.bas"
  110 ALLOCATE 9
  120 CODE GETSEGMENT=HEX$("F7,18,67,69,c9")
  130 CODE FREESEGMENT=HEX$("4D,F7,19,C9")
  140 TEXT 40
  150 LET WS=USR(GETSEGMENT,0)
  170 OPEN #1:"dotcoll.com"
  180 FOR I=1 TO 7719
  185   GET #1:A$
  190   SPOKE WS,I,ORD(A$)
  200 NEXT
  205 CLOSE #1
  210 FOR I=1 TO 7719
  220   PRINT SPEEK(WS,I);
  230 NEXT
  999 CALL USR(FREESEGMENT,WS)

De pont a LOAD / SAVE-re mondta Zozotools, hogy gépi kódú rutinnal kellene megoldani. (Ez így ugyanis lassabb, mint az eredeti.)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.March.10. 19:31:44
Jaaa, akkor azért kellett az a getsegment, freesegment, amit Zozo is írt, na azt nem értettem. Mondjuk így se sokkal bonyolultabb. A legvégén azt a CALL USR(FREESEGMENT,WS)-t mikor kell kiadni? Amikor a program futása befejezõdik? Mert azt itt nem szokott, resetelni szoktam.
De lehet, ezt nem is lenne fontos megcsinálni, nem lenne tõle gyorsabb? (Max. az elején a STRING utasítás tart sokáig, azt ki lehetne kerülni.)

Érdemes lenne ezt is, meg a töltés-mentést is megcsinálni HEX$ módon?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.March.10. 21:53:31
De pont a LOAD / SAVE-re mondta Zozotools
Õ kicsoda?  :oops:
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.March.10. 22:05:27
De pont a LOAD / SAVE-re mondta Zozotools
Még beszélni is tud a Zozotools? A beszédre milyen utasítással lehet rábírni?
Laci elírta, biztos gyerekvisítás mellett nehéz a basic programozással is foglalkozni. :D
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.March.11. 08:52:07
A legvégén azt a CALL USR(FREESEGMENT,WS)-t mikor kell kiadni? Amikor a program futása befejezõdik?
Igen.
Quote
Mert azt itt nem szokott, resetelni szoktam.
Kilépés menüpont, mondjuk STOP-ra?  :oops: (Lehet When Exception)
Quote
Érdemes lenne ezt is, meg a töltés-mentést is megcsinálni HEX$ módon?
Szerintem ez a legegyszerûbb, leggyorsabb megoldás. Esetleg lehetne még az EPDOS SS,SL parancsokat is használni.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.March.11. 12:19:48
Esetleg lehetne még az EPDOS SS,SL parancsokat is használni.

Ennyire felesleges cifrázni, ZZZIP-pel fordítva elfogadható a sebesség.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.March.11. 12:20:14
Õ kicsoda?  :oops:
Nyomdahiba...  :ds_icon_cheesygrin:
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.March.11. 12:21:33
Igen.Kilépés menüpont, mondjuk STOP-ra?

Nekem az rémlik, hogy ZZZIP-pel fordítva nem mûködik a hibakezelés. Rosszul emlékszem?
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.March.11. 12:47:30
Nekem az rémlik, hogy ZZZIP-pel fordítva nem mûködik a hibakezelés. Rosszul emlékszem?
Nekem úgy rémlik, mûködik vele.

Az EPDOS SS, SL parancsok mit csinálnak?
Nálam alapból nincs EPDOS az emuban.  :oops: Ezért nem is szeretem pl. az olyan programokat, amik az EPDOS karakterkészletét használják, mert pl. ha annyira kell, be is tölthetné külön fájlból ezt a karakterkészletet.

De azt a HEX-es mentést-töltést bele lehetne tenni. Megírnátok, az hogyan van? Én a gépi kódhoz semmit nem értek. Tehát amit írt lentebb Laci, hogy a FREESEGMENT-re betölti a cuccot, na az a betöltés, hogy HEX módon legyen megoldva, ne pedig GET utasítással kapja ki a fájlból a bájtokat. (Ez ugye gyorsítana a dolgon?) De lehet, elõbb ki kéne próbálni, mûködik-e rendesen Zzzippel ez az ALLOCATE-es megoldás, mert néha balhét okozott. Igaz, azzal már úgyis olyan gyors, hogy nem kell talán zzzippelni sem.
A töltés valahogy így nézne ki (Povi régebbi hozzászólása alapján), de néhány számot nem tudok benne, így a 7719-et nem tudom, hogyan, hova kell beírni, meg hogy a beolvasott cuccokat hova tegye:

CODE TOLT=HEX$("3E,01,????")
CODE =HEX$("????,06,C9")

CODE MENT=HEX$("3E,01,????")
CODE =HEX$("????,08,C9")

Persze elõbb több bájtot kell allocate-ezni.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.March.11. 12:51:21
Kilépés menüpont, mondjuk STOP-ra?
Végülis jó ötlet! Amúgy is, a basic program OUT 191,12-t használ, ami gyorsítja a gépet, és ha ezután betöltjük a Dot collectort, az is gyorsabb lesz. STOP-ra ezt is visszaállíthatná, kiléphetne és tölthetné automatikusan azt, amit éppen elmentettünk, azzal a file névvel.
Title: Re: Általános BASIC Kérdések
Post by: Tuby128 on 2012.March.11. 19:31:16
Mit csinál az OUT 191,12 parancs?

Nem is ez a kérdés, mert idõközben kinéztem az EXOS referencia könyvbõl. A kérdésem: Mennyi az alapértéke a 191-es IO portnak?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.March.11. 20:09:39
Mennyi az alapértéke a 191-es IO portnak?
4
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.March.12. 09:18:16
De azt a HEX-es mentést-töltést bele lehetne tenni. Megírnátok, az hogyan van?
Felraksz egy olyan verziót, amibe már csak ezt kell beleírni?
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.March.12. 14:12:40
Felraksz egy olyan verziót, amibe már csak ezt kell beleírni?
A töltõ-mentõ részek így néznének ki az eddigiek alapján, ahogy Laci leírta. Kicsit kiegészítettem. A 185-ös meg a 220-as sort kellene majd lecserélni, meg hozzáírni néhány krixkraxot CODE és CALL utasítások után, ha jól értem.
Meg a program többi részében is majd át kell írni SPOKE, SPEEK-re néhány utasítást, amiket eddig másképp oldottam meg, azt majd megcsinálom.
Így jó lesz, vagy a végleges verziót csináljam meg elõször inkább?
(A gyakorlatban még nem próbáltam ki a GETSEGMENT-féle megoldást, de hiszek nektek, biztos mûködik. :D )

Code: [Select]
  100 PROGRAM "Proba2.bas"
  110 ALLOCATE x
  120 CODE GETSEGMENT=HEX$("F7,18,67,69,c9")
  130 CODE FREESEGMENT=HEX$("4D,F7,19,C9")
  140 TEXT 40
  145 INPUT PROMPT "Filename:":FN$
  150 LET WS=USR(GETSEGMENT,0)

  155 ! Töltés
  170 OPEN #1:FN$ ACCESS INPUT
  180 FOR I=1 TO 7719
  185   GET #1:A$
  190   SPOKE WS,I,ORD(A$)
  200 NEXT
  205 CLOSE #1

  207 ! Mentés
  208 INPUT PROMPT "Filename:":FN$
  209 OPEN #1:FN$ ACCESS OUTPUT
  210 FOR I=1 TO 7719
  220   PRINT #1:CHR$(SPEEK(WS,I));
  230 NEXT
  240 CLOSE #1

  999 CALL USR(FREESEGMENT,WS)
 1000 RUN FN$
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.March.13. 14:08:50
Jééé, az IS-BASIC betölt TXT fájlt is! Lehet, hogy valahol le volt ez írva, de nekem új  :oops:
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.March.13. 14:14:36
Valahol már volt róla szó, hogy ha sikerül OCR-ezni egy programlistát, rögtön lehet betölteni.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.March.13. 14:18:55
Valahol már volt róla szó, hogy ha sikerül OCR-ezni egy programlistát, rögtön lehet betölteni.
De hivatalosan írták ezt valamelyik könyvben?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.March.13. 14:47:15
Ha minden igaz ez kell bele:
Code: [Select]
  135 CODE LOAD=HEX$("DB,B3,F5,7D,D3,B3,3E,01,11,01,C0,01,27,1E,F7,06,6F,26,00,F1,D3,B3,C9")
  136 CODE SAVE=HEX$("DB,B3,F5,7D,D3,B3,3E,01,11,01,C0,01,27,1E,F7,08,6F,26,00,F1,D3,B3,C9")
Híváskor paraméterben meg kell adni a szegmens számot (WS). Visszatéréskor ha az értéke nagyobb mint 0, akkor hiba volt.
A Getsegmentnél, ha nagyobb mint 255, akkor hiba volt (ez lehet megosztott szegmens lefoglalásakor is), ekkor a felsõbájt (azaz az érték/256) a hibakód.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.March.13. 15:36:47
De hivatalosan írták ezt valamelyik könyvben?
Valahol olvastam, de lehet, hogy itt a fórumon, hogy az IS-BASIC tokenizálatlan cuccot is megeszik, tehát olyan, mintha akkor gépelnéd be a sorokat.

A HEX$-ok utáni krixkraxokat köszi, majd kipróbálom! Remélem, jól értem, hogy akkor a getsegment, freesegment, load, save nevû akármiket is meg kell adni HEX$-os krixkraxok elõtt. (Szóval lesz CODE LOAD=HEX$("krixkraxok"), CODE SAVE=HEX$("krixkraxok"), CODE GETSEGMENT=HEX$("krixkraxok"), CODE FREESEGMENT=HEX$("krixkraxok".)

Híváskor paraméterben meg kell adni a szegmens számot (WS). Visszatéréskor ha az értéke nagyobb mint 0, akkor hiba volt.
A Getsegmentnél, ha nagyobb mint 255, akkor hiba volt (ez lehet megosztott szegmens lefoglalásakor is), ekkor a felsõbájt (azaz az érték/256) a hibakód.
Ebbõl kb. annyit értettem, mint a krixkraxokból. :D De remélem, mûködni fog.

Code: [Select]
LET WS=USR(GETSEGMENT,0)Ezt a program eleje felé kell egyszer kiadni, utána SPOKE és SPEEK-kel lehet bûvészkedni vele?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.March.13. 16:03:23
Meg kell számolni, mennyi krixkarx van összesen, és annyit írni az Allocate után.

Code: [Select]
LET WS=USR(GETSEGMENT,0)Ezt a program eleje felé kell egyszer kiadni, utána SPOKE és SPEEK-kel lehet bûvészkedni vele?
Igen, amíg vissza nem adjuk, addig a miénk.
Egy IF kell, hogyha 255 nagyobb a kapott WS, akkor hiba.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.March.13. 21:10:36
Jééé, az IS-BASIC betölt TXT fájlt is!
De MERGE-dzsel nem lehet betölteni, érdekes, meg VERIFY-ra sem mûködik, Invalid file format. De LOAD-ra, START-ra, RUN ""-ra mûködik.
A kovetkezo nem hivatalos IS-BASIC verzioban meg lehetne csinalni ezt MERGE-re, VERIFY-ra is, hogy a felhasznalo ne legyen MERGEs.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2012.March.13. 21:27:59
egyértelmû, hogy pc-n kell írni a programot, notepad++ :)

az EP Plus-t próbáld meg szerintem! http://ep128.hu/Ep_Konyv/Ep_Plus.htm
meg lehet benne tanulni könnyen a z80 programozást, nagyon jól összehozták a basicet és az asm használatot benne
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.March.13. 21:30:48
Egy IF kell, hogyha 255 nagyobb a kapott WS, akkor hiba.
Elsõre a WS értéke 249 volt.
De ahogy újra meg újra lefuttatom a HEX-ekbõl álló programot, mindig eggyel nagyobb az értéke, és idõvel meghaladja a 255-öt is, hirtelen 32767 lett. Aztán idétlenkedtem még vele, és "meghülyült" a gép. :D De lehet, ennek nincs jelentõsége, mert elsõ futtatáskor biztos jó volt. Azért itt egy snapshot fájl a meghülyülés utáni állapotról, a SAVE parancsra azt írja ki, insufficient memory. (A 106-os sorban eredetileg GETSEGMENT volt, késõbb írtam át FREESEGMENT-re.)
Valószínû, egyszer szabad csak egyszerre a programot lefuttatni, vagy minden futtatás végén FREESEGMENT-ezni is kéne.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.March.14. 19:58:48
Valószínû, egyszer szabad csak egyszerre a programot lefuttatni, vagy minden futtatás végén FREESEGMENT-ezni is kéne.

Nem mintha a kérdés nagy szakértõje lennék, de a snapshot-ban elfogyott a memória (F8-al kérj INFO-t). Mindíg amikor elindítod a programot, újabb szegmenst foglalt le, és sokat próbálkoztál vele, anélkül, hogy felszabadítottad volna.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.March.14. 20:46:50
Nem mintha a kérdés nagy szakértõje lennék, de a snapshot-ban elfogyott a memória (F8-al kérj INFO-t). Mindíg amikor elindítod a programot, újabb szegmenst foglalt le, és sokat próbálkoztál vele, anélkül, hogy felszabadítottad volna.
így van, ezért van a Freesegment. A szám azért lett 255-nél nagyobb, mert  felsõbájtban a hibakódot adja vissza, ami alap esetben (ha sikerült a foglalás) 0.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.March.16. 13:41:21
Ha minden igaz ez kell bele:
Code: [Select]
  135 CODE LOAD=HEX$("DB,B3,F5,7D,D3,B3,3E,01,11,01,C0,01,27,1E,F7,06,6F,26,00,F1,D3,B3,C9")
  136 CODE SAVE=HEX$("DB,B3,F5,7D,D3,B3,3E,01,11,01,C0,01,27,1E,F7,08,6F,26,00,F1,D3,B3,C9")
Híváskor paraméterben meg kell adni a szegmens számot (WS). Visszatéréskor ha az értéke nagyobb mint 0, akkor hiba volt.

Ezzel akkor hogyan kell magát a betöltést megoldani?
Eredetileg ilyesmi lett volna:

Code: [Select]
  180 FOR I=1 TO 7719
  185   GET #1:A$
  190   SPOKE WS,I,ORD(A$)
  200 NEXT

Ezek közül mely sorok helyett kell azt írni be, hogy CALL USR(LOAD,0)? Próbáltam úgy is, hogy csak a SPOKE helyett írom be, meg úgy is, hogy a GET és a SPOKE helyett írom be, meg úgy is, hoyg az egész helyett írom be, de egyikkel sem akart mûködni. Vagy én szúrtam el valamit.
Ja, és ha I helyett A-t írnék változónak a ciklusban, úgy is mûködne?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.March.16. 14:04:43
Ezek közül mely sorok helyett kell azt írni be, hogy CALL USR(LOAD,0)?
Az egész helyett. És LOAD,WS
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.March.16. 14:08:46
Még egy észrevétel:
Ha kiadom elõbb a POKE 56,201 utasítást, akkor a következõ sorok hatástalanok:

Code: [Select]
170 POKE 56,201
570 IF SPEEK(WS,1317)=8 THEN SET BORDER 6
580 IF SPEEK(WS,1317)=0 THEN SET BORDER 8

Ha nincs ott a 170-es sor, akkor viszont mûködik. Biztos ennek is nyilvánvaló oka van, ami nekem magas. És ha pl. az 590-es sorban kiadom, hogy POKE 56,245, akkor hirtelen megjön a hatása az elõzõ soroknak.

Lehet akkor úgy olvasgatni SPEEK utasítással címekrõl egymás után sokat, hogy a POKE 56,201 be van kapcsolva, és kicsit késõbb jön POKE 56,245? SPEEK utasítással olvasná ki a karakterek kódjait, és ezek a karakterek kerülnek a képernyõre, szóval kb. 400 darab SPEEK utasítás után jönne egy POKE 56,245, és akkor hirtelen megjelenne gondolom az összes kiolvasott karakter a képernyõn.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.March.16. 15:16:20
A videó változók értékét a videó megszakítási rutin írja be a Nickbe (Border, Status, Bias), így ha le van tiltva a megszakítás, akkor nem jutnak érvényre.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.March.16. 15:26:03
A videó változók értékét a videó megszakítási rutin írja be a Nickbe
Akkor nem is a SPEEK miatt volt ez, hanem a BORDER és a POKE 56 "nem szeretik egymást". Mindig tanul az ember.
Köszi a helpet!
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.March.21. 22:32:32
Korábban volt szó errõl a címátírásos dologról.

SPOKE WS,I,ORD(A$)

Az I értéke 1 és hány között lehet, mennyi a határ? Mert akkor ezzel a módszerrel "fel lehetne venni" és vissza lehetne játszani pl. egy Hamika játszmát is, minden lépésben figyelné a gép, megváltozik-e a kígyó iránya, és ha igen, merre, és ezt letárolná az I szegmensen, és így csodálatos játékunkat vissza is lehetne játszani úgy, hogy felvételnél minden egyes lépésben ír a következõ szegmensre egy értéket, attól függõen, hogy megváltozik-e a kígyó iránya, és ha igen, merre, és visszajátszásnál minden egyes lépésben SPEEK-kel lekérdezi a szegmens értékét, és annak megfelelõen változtatja vagy nem változtatja a kígyó irányát. Gondoltam már ilyesmire valami nagy string definiálásával is szegmensezés helyett, csak ott nem lehet túl nagy értékeket megadni.
Vagy ami még érdekesebb lenne, a Holdraszállás (http://www.ep128.hu/Ep_Games/Leiras/Basic_Program_Pack.htm) játékban is lehetne replay. De pl. a Bomber játékban is. Vagy akár Reversi-Dáma-Awari játszmákat is vissza lehetne játszani. Az átírt memóriaterületet fájlba el lehetne menteni, és a játékba vissza lehetne tölteni, így akár több replay-t is megnézhetnénk egymás után.
Olyat is lehetne, hogy egy pacman játékhoz az ellenség mozgását tárolná külön fájlban, és egy adott szint indulásakor betöltené az adatokat, ami alapján a szörny mozog. Persze úgy lenne izgalmas, ha több variáció is lenne, és a sok közül véletlenszerûen választana ki egyet a gép.
7719-nél csak nagyobb lehet az I maximális értéke, de már ennyivel is sok mindent meg lehetne csinálni.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.March.21. 22:47:02
Az I értéke 1 és hány között lehet
0-16383
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.March.22. 07:58:48
Szipucsu DotCollector pályaszerkesztõje kapcsán kaphatnánk útmutatót a FILE bõvítés BASIC programból való használatához? Könnyen le lehet kezelni, ha nincs bõvítés, marad a hagyományos névbeírós megoldás.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.March.26. 14:42:59
Szipucsu DotCollector pályaszerkesztõje kapcsán kaphatnánk útmutatót a FILE bõvítés BASIC programból való használatához?
Ezt nem értem, pontosan mire is gondolsz. :D
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.March.26. 14:48:38
Ezt nem értem, pontosan mire is gondolsz. :D

Hogyan lehet BASIC programból használni a FILE bõvítést?
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.March.26. 14:52:14
Hogyan lehet BASIC programból használni a FILE bõvítést?
TAPE: vagy DISK: helyett FILE:-t kell beírni. Vagy ennél bonyolultabb?  :oops:
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.March.26. 15:16:53
TAPE: vagy DISK: helyett FILE:-t kell beírni. Vagy ennél bonyolultabb?  :oops:
Szerintem Laci nem a "FILE:"-re gondol, hanem a ":FILE"-re  :oops:
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.March.26. 15:24:59
:FILE
Hú, de ismerõs, de ez hol is van?
És ennek mi köze a Dot Collector pályaszerkesztõjéhez? :D
Ennek se file, se farka...
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2012.March.26. 16:39:21
[attach=#]
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.March.26. 17:03:34
Szerintem Laci nem a "FILE:"-re gondol, hanem a ":FILE"-re  :oops:

Igaza van Zozo-nak, nem az  eszközre, hanem a rendszerbõvítõre gondolok.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.March.26. 17:04:36
(Attachment Link)

 :bow:
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.March.26. 21:33:20
Arra van valami utasítás, hogy a PRINT ne a 0-ás, hanem a 102-es csatornára írjon alapértelmezésként?
Van valami SET DEFAULT CHANNEL, de hogy az mit csinál pontosan, arra nem jöttem rá, pedig elolvastam a gépkönyvben is.  :oops:
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.March.26. 21:43:26
Arra van valami utasítás, hogy a PRINT ne a 0-ás, hanem a 102-es csatornára írjon alapértelmezésként?
Nincs.

Quote
Van valami SET DEFAULT CHANNEL, de hogy az mit csinál pontosan, arra nem jöttem rá, pedig elolvastam a gépkönyvben is.  :oops:
Azt adja meg, hogyha a 255-ös csatornára írsz, az melyik csatornára menjen. Ezt a 255-ös csatornát kell használnia pl a rendszerbõvítõknek.
Ha átállítod pl 101-re, akkor utána a HELP, vagy DIR, stb a grafikus lapra fog írni (csak elõtte plotolj fel a bal felsõ sarokba, hogy látszódjon :-) ).
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.March.26. 22:06:15
Ha átállítod pl 101-re, akkor utána a HELP, vagy DIR, stb a grafikus lapra fog írni (csak elõtte plotolj fel a bal felsõ sarokba, hogy látszódjon :-) ).
Köszi! Tényleg mûködik! Amit leírtál, az mondjuk a gépkönyvbõl meg az Ismerkedés az Enterprise-szal könyvbõl sem derül ki. Példának beírják, hogy SET DEFAULT CHANNEL akármennyi, ebbõl nem derül ki semmi, legalább egy HELP-et kiadhatnának utána a példában.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.March.29. 21:19:25
A nemrég a Régészeti leletek topikba betett Hajtóvadászatot kicsit továbbfejlesztettem, a hibákat is kijavítottam. A digi hangokat mindig floppyról tölti be lejátszás elõtt, de szerintem így is élvezhetõ, próbáltam igazi gépen is. Lehet EPfileio.rommal is játszani, de akkor is kell, hogy legyen EXDOS is az emulátorban, máshogy nem indul el. A toplistát mindig elmenti. Magnós géppel használhatatlan. Winchesteres géppel bizonyára még élvezhetõbb, mint floppyval.
Meg lehetne csinálni, hogy a digi hangok is a memóriában legyenek, ne floppyzzon állandóan? Az egész cucc mérete összesen 128 KB alatt van. De lehet, csak én vagyok naív, hogy azt gondolom, a 128 kilót úgy pakolhatja tele az ember a saját cókmókjaival, ahogy akarja... A Sample player 12 KB körül van, ebbõl kb. 10 KB egy beépített hangminta, ami nem kerül lejátszásra. Ha ezt ki lehetne szedni belõle, kisebb lenne az egész mérete.

Jó így, vagy még lehetne rajta tökéletesíteni?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.March.29. 21:58:47
A sorbarendezõs kérdések hova tüntek innen?
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.March.29. 22:09:23
A sorbarendezõs kérdések hova tüntek innen?
Töröltem, mert nagyon triviális kérdések voltak. A toplista sorba rendezéshez kellett, valami nagyon alap dolgot elnéztem és nem akart mûködni. Az összes kérdésre igen volt a válasz egyébként.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.March.29. 22:15:17
Az összes kérdésre igen volt a válasz egyébként.
NUMERIC-re is?  :oops:
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.March.29. 22:26:09
NUMERIC-re is?  :oops:
Na, azt a sort kivettem a programból, és ugyanúgy mûködött. Tényleg nem tudom, minek tették bele.
Na jó, akkor még egyszer berakom, a program a Felhasználói kézikönyvbõl (http://www.ep128.hu/Ep_Konyv/Users_Manual.htm#11) van.

Szóval a 150-es sor felesleges, mégis beletették.
És a 260-as sorban is lehetne a 10 helyett inkább VEG. De kicsit késõbb levon a VEG értékébõl mindig 1-et (350-es sor), ez nem tudom, befolyásolja-e a ciklust, ami éppen "folyamatban van".
És ha csökkenõ sorrendbe akarjuk a számokat rendezni, akkor a 290-es sorban > helyett < jel kell, és a MAX értékének valami nagy számot kell megadni.
Akkor inkább ne törölgessem a hozzászólásaimat akkor se, ha olyat kérdeznék, amire egyértelmû a válasz, csak én nem jöttem rá? Látom, megtévesztõ voltam.  :oops:

Code: [Select]
100 PROGRAM "Rendez.bas"
110 ! Ez a program 10 szamot
120 ! rendez nagysag szerint sorba
130 ! ----------------------------
140 NUMERIC TOMB(1 TO 10)
150 NUMERIC VALT,SZAM,MAX
160 CLEAR SCREEN
170 PRINT AT 10,10:"SZAMRENDEZES"
180 FOR N=1 TO 10
190 PRINT AT 14,10:"Az ";N;"-ik szam";
200 INPUT PROMPT ":":TOMB(N)
210 PRINT AT 14,25:" "
220 NEXT N
230 CLEAR SCREEN
240 PRINT AT 20,20:"Rendezek..."
250 LET VEG=10
260 FOR X=1 TO 10
270 LET MAX=0
280 FOR Y=1 TO VEG
290 IF TOMB(Y)>MAX THEN LET MAX=TOMB(Y)
300 IF TOMB(Y)=MAX THEN LET SZAM=Y
310 NEXT Y
320 LET VALT=TOMB(VEG)
330 LET TOMB(VEG)=MAX
340 LET TOMB(SZAM)=VALT
350 LET VEG=VEG-1
360 NEXT X
370 FOR X=1 TO 10
380 PRINT TOMB(X)
390 NEXT X
400 END

Egyébként ezt a sorbarendezést stringekkel is meg lehet csinálni. Az arra jó, hogy játékokhoz toplistát csináljunk. Csak a toplistánál meg pont nem növekvõ, hanem csökkenõ sorrendbe kell rendezni, tehát a nagyobb számok (jobb eredmények) vannak elõl. Én meg belebonyolódtam, mert már egyszer megfordítottam a dolgot és azt hittem, nem fordítottam meg, és mikor újra meg akartam fordítani, pont fordítva mûködött, mint akartam és nem értettem. :D
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.March.30. 12:53:01
Na, azt a sort kivettem a programból, és ugyanúgy mûködött. Tényleg nem tudom, minek tették bele.
Na jó, akkor még egyszer berakom, a program a Felhasználói kézikönyvbõl (http://www.ep128.hu/Ep_Konyv/Users_Manual.htm#11) van.

Szóval a 150-es sor felesleges, mégis beletették.
Nem felesleges, hanem a strukturált programozás része! Komolyabb program nyelvekben kötelezõ is elõre definiálni a változókat.
Így egy helyen át tudott tekinteni, milyen változókat is használsz. Esetleg REM-be oda is lehet írni melyik mire való.
Ez egy komolyabb programnál lesz igazán lényeges, elõfordulhat, hogy felülírsz egy már használt változó értékét. Ha tartod magad a rendhez, és minden használtat beírsz a program elejére, könnyen észreveszed, hogy az újonnan kitalált változóneved már használva van. Ha ugyan arra a névre másodszor adod ki a NUMERIC-et, akkor szólni is fog a gép, hogy már használt.
A sima LET A=1 féle Commodore-os stílusnál nem kapsz hibaüzenetet, csak simán felülírod az elõzõ értéket.

És végül pedig apróság, nem biztos, hogy mérhetõ, érezhetõ, de elvileg sok változóval dolgozó nagyobb programnál okozhat kis akadást, amikor újabb változót hozol létre, mert bele kell szúrnia a változó listába. Ha elején meg van mind, akkor egy várakozással le van tudva mind, közben nem lehet akadás emiatt.
 
Quote
Akkor inkább ne törölgessem a hozzászólásaimat akkor se, ha olyat kérdeznék, amire egyértelmû a válasz, csak én nem jöttem rá?
Szerintem ne, írd be inkább amire rájöttél, esetleg más is tanulhat belõle.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.March.31. 16:10:39
Ha ezt kiadjuk, egy resetre is úgy viselkedik a gép, mintha dupla resetet nyomtunk volna. (Hogy melyik a hideg, melyik a meleg, azt mindig összekeverem.)

Code: [Select]
SPOKE 255,49144,0
SPOKE 255,49145,0

EXOS 2.1-nél van hatása, EXOS 2.32-vel nem mûködik.
Van olyan utasítás, amivel minden EXOS változatnál be lehet állítani a csak dupla reset lehetõségét?

(Ezt a SPOKE-ot talán egy ENTERPRESS-ben olvastam, vagy valami újságban, régebben.)
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.March.31. 16:34:38
EXOS 2.1-nél van hatása, EXOS 2.32-vel nem mûködik.
Direkt lett így megoldva, hogy a trükkös programoknál se legyen felesleges reset  :twisted:
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.March.31. 16:53:51
Direkt lett így megoldva, hogy a trükkös programoknál se legyen felesleges reset  :twisted:
Igazából arra lenne jó, hogy a továbbfejlesztett Hajtóvadászat programban ne lehessen azt csinálni, hogy egy resetet nyomunk és innen újraindítjuk a játékot. Mert minden egyes újraindításnál újra betölti a Wav Sample Playert, és ha ezt sokáig csináljuk, elfogy a memória. Ezért lenne jó, ha csak dupla reset mûködne.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.March.31. 17:23:44
Kell kérni egy EXT "help sample"-t, és ha ismeretlen parancs, akkor kell betölteni.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu 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.
Title: Re: Általános BASIC Kérdések
Post by: endi 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 :)
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.April.01. 18:44:04
TVC-sek is sok játékot írtak BASIC-ben, ami ugye rokona az IS-BASIC-nek.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu 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.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.April.02. 16:52:12
Nincs egyébként valahol a neten egy "színkód táblázat"?

Itt (http://ep128.hu/Ep_Konyv/Sp-Ep_konvertalas.htm#m), kicsit lejjebb bent van ez (http://ep128.hu/Ep_Konyv/Pic/BIAS.PNG) a táblázat, amit még István csinált.
De talán célszerûbb az Util programcsokorban (http://ep128.hu/Ep_Util/Util.htm) lévõ COLOUR.BAS használata.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft 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.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.April.02. 23:53:06
Itt (http://ep128.hu/Ep_Konyv/Sp-Ep_konvertalas.htm#m), kicsit lejjebb bent van ez (http://ep128.hu/Ep_Konyv/Pic/BIAS.PNG) a táblázat, amit még István csinált.
De talán célszerûbb az Util programcsokorban (http://ep128.hu/Ep_Util/Util.htm) 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
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft 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
Title: Re: Általános BASIC Kérdések
Post by: szipucsu 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.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu 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?
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 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.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu 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á.
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 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.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu 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.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft 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
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2012.April.06. 20:56:22
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.

Igy már értem, a rendszer változókat használod átmeneti tárnak.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.April.06. 21:12:24
Igy már értem, a rendszer változókat használod átmeneti tárnak.
Igen. :) Tömören, szépen így lehet megfogalmazni.
Csak már nem emlékeztem, hogy ezeket rendszerváltozóknak hívják.
A rendszerváltozók helyett más átmeneti tárat mit lehetne kitalálni?

Apropó, Wordhang: ha már említetted, megnéztem. Az akaszto.bas fájlt betöltöttem, kilistáztam, a végén az volt, hogy RUN "TAPE:AKASZTO1". Na, gondoltam, kiszedem a TAPE: szöveget, mert lemezes géppel nem mûködik. Kiszedtem és el akartam menteni újra akaszto.bas néven (SAVE "AKASZTO.BAS"), de nem engedte. Más néven engedte. Ez meg mitõl lehet? FILE: eszközt használok amúgy az emuban.
Itt egy snapshot is: [attachurl=1]

És itt a TAPE: szövegtõl mentes betöltõ, így bármirõl betölti a programot. Laci, szerintem cseréld ki a fájlt erre! [attachurl=2]
Amúgy meg fura, hogy a magyarosított verzió betöltõképe ugyanúgy angol, mint az eredetié, azt miért nem magyarosították...
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2012.April.06. 21:18:37
Akkor használd a SPOKE, SPEEK x,32   
MEM   20H  "TAR:",A változó, B változó, C változó, D változó, .....
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.April.06. 22:12:53
Akkor használd a SPOKE, SPEEK x,32   
MEM   20H  "TAR:",A változó, B változó, C változó, D változó,
Ez nekem magas így, nem értek a gépi kódhoz.  :oops:
Erre gondolsz? SPOKE X,32,"változó értéke" a betöltõben,
a másik, betöltött programban pedig SPEEK(X,32), és erre visszakapjuk a "változó értékét"? És X akármennyi lehet 1 és 255 között?

Szóval "változóátvitel" így:

10 PROGRAM "betöltõ.bas"
20 INPUT A,B
30 SPOKE 1,32,A
40 SPOKE 2,32,B
50 RUN "fõprogram.bas"

10 PROGRAM "fõprogram.bas"
20 LET A=SPEEK(1,32): LET B=SPEEK(2,32)

Jól értem?
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2012.April.06. 23:40:44
30 SPOKE 1,32,A
40 SPOKE 2,32,B

Az EXOS ROM nem írható :) Próbálj helyette valamilyen "nem használt" RAM területre írni, pl. SPOKE 255, 11392, x (és a 11392 utáni byte-ok), ami az EXOS verem általában nem használt részén van.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.April.07. 06:58:52
És itt a TAPE: szövegtõl mentes betöltõ, így bármirõl betölti a programot. Laci, szerintem cseréld ki a fájlt erre! .

Kösz, kicseréltem.
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2012.April.07. 07:39:15
30 SPOKE 1,32,A
40 SPOKE 2,32,B

Igen,
30 SPOKE(254,16,A)
40 SPOKE(254,17,B)

pl:
10 PROGRAM "betolto.bas"
20 INPUT A,B
22 SPOKE(254,16,127):REM AZONOSITO 1.
24 SPOKE(254,17,127):REM AZONOSITO 2.
30 SPOKE(254,18,A)
40 SPOKE(254,19,B)
50 RUN "foprogram.bas"

10 PROGRAM "foprogram.bas"
15 IF SPEEK(254,16)=127 AND SPEEK(254,17)=127 THEN GOTO 20 :REM azonosito ellenorzese
18 STOP:REM ALLJ HA NINCS VALTOZO
20 LET A=SPEEK(1,32): LET B=SPEEK(2,32)

Így a fõprogram nemfog hibás értéket adni ha nem volt futtatva a betolto.bas.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.April.07. 09:25:55
Na az ilyen összevissza pókolgatás az amit nem szabad csinálni!  :oops:
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.April.07. 10:36:05
Bonyolult, maradok ilyesminél:

1 PROGRAM "betöltõ.bas"
10 INPUT A
20 INPUT B
30 SET CHARACTER 127,A,B
40 RUN "fõprogram.bas"

1 PROGRAM "fõprogram.bas"
10 A=SPEEK(255, na itt lesz az a szám, ahol a 127-es kódú karakter elsõ sorát tárolja)
20 B=SPEEK(255, na itt lesz az a szám, ahol a 127-es kódú karakter második sorát tárolja, majd utána kell járni, melyik területen tárolódik ez)
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2012.April.07. 10:42:43
ja-ja csak nem fix az a szám erre figyelj majd.
Én is estem ebbe a hibába csak én a #102 lap direkt írásánál.

Bár én nem értem minek kell az átvitel egyik basic-böl a másikba.
A program 0.-ban kb. 48Kbájt hely van.
Oda szinte mindent belehet rakni. Character Defin.... is elfér.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.April.07. 10:46:00
na itt lesz az a szám, ahol a 127-es kódú karakter elsõ sorát tárolja
Ami más EXOS 2.0-n, és 2.1-en  :oops:
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.April.07. 10:58:58
Ami más EXOS 2.0-n, és 2.1-en  :oops:
Ezzel a karaktertervezõ program nézegetésekor is szembesültem, nagy örömmel ki is töröltem belõle egy SPEEK utasítást és az értékével helyettesítettem a változót, aztán mondtátok, hogy az úgy nem lesz jó. Szóval akkor elvileg így nézne ki:

[attachimg=#]

Ami EXOS bent van, azzal mûködik. Remélem, a többivel is.

Bár én nem értem minek kell az átvitel egyik basic-böl a másikba.
Logikus a kérdés. Majd késõbb elmagyarázom, ha minden jól megy. :D
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2012.April.07. 11:22:18
TRN, CHEAT, SETUP  paraméterek BASIC programhoz?
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.April.07. 17:37:45
A rendszerváltozókról (SET utasítás után két szám) van valahol leírás, hogy mi mit csinál? Van köztük olyan, aminek az értékét szabadon lehet állítgatni, különösebb hatása nincs? És max. mennyit lehet SET után megadni? SET X,Y, ahol X és Y is < 256 ?
Itt (http://wiki.enterpriseforever.com/index.php/IS-BASIC_tr%C3%BCkk%C3%B6k) elkezdtem néhányat összeírni.

UI: Kipróbáltam, a legkisebb megadható SET 0,0 (ettõl a billentyûzet be is hal :D ), a legnagyobb megadható SET 99,255

Na, és melyik hatása törlõdik egy resetre? A SET 0,0 hatása resetre megszûnik, mert a billentyûzet újraéled, a SET STATUS OFF hatása is megszûnik resetre, míg a CAPS, SHIFT üzemmódok megmaradnak.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.April.07. 17:46:45
Az EXOS ROM nem írható :) Próbálj helyette valamilyen "nem használt" RAM területre írni, pl. SPOKE 255, 11392, x (és a 11392 utáni byte-ok), ami az EXOS verem általában nem használt részén van.
Az mit jelent, hogy általában nem használt részen van? Mikor lehet, hogy mégis használt ez a terület?
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2012.April.07. 18:48:26
Az mit jelent, hogy általában nem használt részen van? Mikor lehet, hogy mégis használt ez a terület?
pl.: programot váltasz :WP :EXDOS :ASMON de változhat ha használod a TEXT vagy GRAPHICS utasításokat nem biztos, hogy pont az a terület de elõferdül ezért nehéz így szabad területet találni.
Mivel a BASIC a 128k aljától telíti a rammot mig az EXOS a memória tetejétõl lefele telíti.   
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.April.07. 19:47:18
nehéz így szabad területet találni.
Akkor még a "fontos" megoldás a legjobb, amit írtam. A KEY DELAY hibája lehet, hogy töltési hiba esetén a kurzor rohanni fog, meg resetre elveszik a beállított értéke. A karakterdefiníciók reset után is megmaradnak. A SET 0-99 közötti területbõl szóba jöhet valami?
Ettõl függetlenül azon gondolkozom, változónevek helyett milyen lenne SPOKE és SPEEK utasításokat használni basic programokban, mondjuk a karakterkészlet azon részén, amit a program nem használ. Kényelmetlenebb, az biztos. :D
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2012.April.07. 20:36:21
Esetleg egy másik tutibb lehetõség? Persze ha nem TAPE: hanem DISK:

OPEN #1:"disk:SET.VAR" ACCESS OUTPUT
PRINT #1:CHAR$(A),CHAR$(B),CHAR$(C),
CLOSE #1

másik progi

OPEN #1:"DISK:SET.VAR"
GET #1:A$,B$,C$
CLOSE #1
LET A=...(A$)       REM    A FÜGVÉNY NEM JUT ESZEMBE        ORD,ORG...

Valami ilyesmi lemezen csak van hely esetleg egy ramdiszk 1 és akkor nem kell a lemezt irást engedélyezni.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.April.10. 20:56:30
Továbbfejlesztettem a Hajtóvadászatot.
Sajnos 360 KB-os lemezre így nem fér rá, hogy igazi EP-vel lehessen használni. Én az emulátoron EPfileIO.rommal és EXDOS 1.0-val használtam, kell mindenképpen mindkettõ. Magnós EP-vel nem mûködik.
Ehhez kellett, hogy az egyik BASIC program változót átadjon egy másik BASIC programnak, amit betölt. A Sample mindig újra betöltõdne, ha reset után újraindítjuk a programot. Ez ellen találtam ki a betöltõt, az tölti be a Sample Playert, majd a fõprogramot. Ha reset után valaki újra elindítaná a fõprogramot, akkor már nem kell újra nyelvet választani, mert ezt is a betöltõ csinálja meg, és ennek kell átadnia a változót a fõprogramnak, megjegyezni, hogy milyen nyelvet állítottunk be. Ezt végül Ferro73 javaslata alapján oldottam meg, így volt a legcélszerûbb talán, tehát egy VAR file-t generál a betöltõ, amit a fõprogram beolvas majd. De nyelvet játék közben is lehet váltani az F1-F4 gombokkal, hogy érdekesebb legyen.

Szöveges képernyõ helyett attribútum képernyõt lõttem be, így több szín lehet. Próbáltam minél több színt használni. Ezek a színátmenetek jók így? Tud valaki jobbat? Grafikában, színekben nem vagyok túl jó.

[attachimg=2]
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.April.10. 21:16:35
Sajnos 360 KB-os lemezre így nem fér rá, hogy igazi EP-vel lehessen használni.
Igazi EP-n 720-as lemezt használunk :-) de inkább 800-ast (azt az XP is bírja). (Amúgy a 360-as is lehet 400-as)
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2012.April.10. 21:46:24

Szöveges képernyõ helyett attribútum képernyõt lõttem be, így több szín lehet. Próbáltam minél több színt használni. Ezek a színátmenetek jók így? Tud valaki jobbat? Grafikában, színekben nem vagyok túl jó.

(Attachment Link)

A kép most egy Graphics..... képernyõ?
Mert ha ezt három külön "video:" csatornával oldanád meg, úgy is egymás alatt van.Több szint, különbözõ Karaktereket csinálhatsz ha ügyes vagy még egy betû kiírásával is bármit kiírhatsz.
Kicsit több a program de megéri.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.April.11. 13:11:18
Igazi EP-n 720-as lemezt használunk :-) de inkább 800-ast (azt az XP is bírja). (Amúgy a 360-as is lehet 400-as)
Akkor a nagyobb méretû lemezre is lehet valami trükkel akár 400 KB-ot is írni?
(Nagyobb méretû, azt hiszem, az 5,25-ös, kisebb méretû a 3,5-ös? Már régen használtam ezeket az elnevezéseket.)
És hogyan lehet 360-nál nagyobbra formázni? Ha jól emlékszem, a Zozotoolsban van ilyen lehetõség, meg valami FAFO-ról hallottam még, de az EP-s idõkben ezek nem voltak meg nekem.

A kép most egy Graphics..... képernyõ?
Nem, ez három különbözõ videólap. A felsõ kettõt már a félkész programba is betették, a legalsót én csináltam. Csak a középsõ szöveges képernyõs, a felsõ és alsó attribute (VIDEO MODE 15) videólap.
Jól értem, hogy ilyen attribute videólapnál csak az elsõ 7 színt lehet szabadon meghatározni (pl. SET PALETTE vagy SET COLOR utasítással)? Amit Zozo írt nemrég a BIAS-ról, azt nem használtam ki, így is éppen ki van használva a 2 videólapnál a 7 szín, ennél több színt egy ilyen programba nem is lenne értelme tenni, nem?
A középsõ videólapnál is lehetne bármilyen más a háttér és a tinta színe is. Csak gondoltam, ilyen tengeri csatánál a kékes szín a jó, és ha pl. zöld lenne, az a színkavalkád már túl sok lenne a szemnek, szerintem. Remélem, Endi idetéved és ír valamit, hogyan lehetne minél több színt használni úgy, hogy ne tûnjön túl soknak, mégis szép legyen, mert õ ért a grafikához.
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2012.April.11. 16:33:00
Akkor a nagyobb méretû lemezre is lehet valami trükkel akár 400 KB-ot is írni?
Igen pl:
10 open #1:"DISK:VALAMI" ACCES OUTPUT
20 for x=1 to 400*1024
30 PRINT #1:"A",
40 NEXT X
50 CLOSE #1

és a VALAMI fájl 400k lesz

Jól értem, hogy ilyen attribute videólapnál csak az elsõ 7 színt lehet szabadon meghatározni (pl. SET PALETTE vagy SET COLOR utasítással)? Amit Zozo írt nemrég a BIAS-ról, azt nem használtam ki, így is éppen ki van használva a 2 videólapnál a 7 szín, ennél több színt egy ilyen programba nem is lenne értelme tenni, nem?
igen  a 16 színbõl az alsó 8 szín válaszható, SET PALETTE 1,2,3,4,5,6,7,8
A SET COLOR X   a választott paletta száma x= 0 - 15
Van egy kis trükk ha külön videó csatornát használsz és SET #1 PALETTE 1,2,3,4,5,6,7,8:SET #2 PALETTE 8,7,6,5,4,3,2,1
akkor a két videó csatorna színe más lesz így akár soronként más és más lehet lehetnek az alap színek.
 
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.April.11. 20:30:07
és a VALAMI fájl 400k lesz
Õ nem a fájlra gondolt, hanem a lemezre  :oops:
Ezt bõvebben kifejtettem itt. (http://enterpriseforever.com/programozas/exdos-t283.0.html;msg26304#msg26304)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.May.01. 12:54:34
Laci azt mondta, az új karaktertervezõben nem mûködik jól a töltés, mentés. Szerintem meg mûködik.
Itt van a legújabb verzió újra, az összes fájllal. Szerintetek jól mûködik? Ha nem, akkor mi lehet vele?
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.May.03. 19:52:50
Laci, ezt nem teszed ki a BASIC programcsokorba?

[attachimg=2]

Összesen két színt használ, pedig az attribútum képernyõn 15 szín is lehetne. Nem tudom, hogyan lehetne a színeket feldobni, mi milyen színû lehetne, hogy még rendesen látsszon is.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.May.03. 21:01:47
Laci, ezt nem teszed ki a BASIC programcsokorba?

Láttam már ezt a programot, de olyan lassú a pöttyök kirajzolása, hogy heveny hajmerevedést kaptam... Az EP-s sokkal jobb.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.May.04. 21:37:35
Láttam már ezt a programot, de olyan lassú a pöttyök kirajzolása, hogy heveny hajmerevedést kaptam... Az EP-s sokkal jobb.
Szerintem teljesen jó, pár játszmát le is nyomtam vele most, anno meg sokat játszottunk vele.
Van egy régebbi, lassabb változat is, na az tényleg felejtõs.
De ha nagyon nem tetszik, nem muszáj kirakni. :D

Az EP-sel az a gond (ami a Basic programcsokorban van), hogy megkérdezi, hány golyót osszon szét. Tegnap találomra beírtam kb. 2 milliót, azóta is osztja, még 10-szeres emulátor sebességgel is. Majd bele kéne írni, hogy pl. 1000-nél többet ne fogadjon el. Majd megnézhetem a programot, de nem tudom, bárki is játszik-e vele és van-e értelme.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.May.04. 21:44:25
A Reversi-Dáma-Awari csomagban lévõ a jó.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.May.17. 19:19:47
Laci azt mondta, az új karaktertervezõben nem mûködik jól a töltés, mentés. Szerintem meg mûködik.
Itt van a legújabb verzió újra, az összes fájllal. Szerintetek jól mûködik? Ha nem, akkor mi lehet vele?
Na, erre varrjatok gombot! Laci konfigurációjával nem mûködik a töltés, ha ott van a WHEN blokk, három karakternél hosszabb elõtagú fájlneveket nem eszik meg. Ha nincs ott a WHEN blokk, akkor meg betölt hosszabb nevû fájlt is (a 2710. és 2760. sor elejérõl ha kitöröljük a ! jelet, akkor már nem fog mûködni):
[attachimg=1]
Itt van hozzá a snapshot is, ramdisken van maga a program is és a betölthetõ karakterkészlet fájlok is:  [attachurl=2]
A snapshotban elvileg a következõ romok vannak:
[attachurl=3] (EPD17L11.rom, KLZT18.rom, meg valami .cfg fájl)
EPDOS és mindenféle van a gépben, eléggé tele van mindennel, ez lesz a gond, mert egyszerû EXOS és BASIC konfiggal WHEN blokkokkal is mûködik.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.July.07. 22:17:50
Azt gondolom mindenki tudja, hogy a 0-ás BASIC program max. 42K lehet, a többi pedig max 32k.
Az viszont nekem új, hogy ezen kívül semmilyen korlátozás nincs a láncolt program méretére! Memóriabõvítõs gépen tehát fantasztikus távlatok nyílnak... Eddig egy 160K-s BASIC programmal próbáltam ki. Ez tetszik!  :ds_icon_cheesygrin:
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.August.05. 12:26:11
A hang nem változik, pont ezért állítgatja a 191-es portot.
De, szerintem tuti, hogy változik. Ha megjelenik az OK, akkor kicsit amúgy is begyorsul a lejátszás, és ha még OUT 191,12-vel gyorsítva van, ez még inkább érezhetõ. Majd ha ráérek, töltök fel snapshotot vagy mp3-at ilyenrõl.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.August.05. 13:42:45
De, szerintem tuti, hogy változik. Ha megjelenik az OK, akkor kicsit amúgy is begyorsul a lejátszás, és ha még OUT 191,12-vel gyorsítva van, ez még inkább érezhetõ. Majd ha ráérek, töltök fel snapshotot vagy mp3-at ilyenrõl.

Várjál, 7.12MHz-b biztos változik a hang, a DAVE-et csak a 6 MHz-re készítették fel.
6 MHz- nem változhat (?) Zozo?
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.August.05. 21:59:41
De, szerintem tuti, hogy változik. Ha megjelenik az OK, akkor kicsit amúgy is begyorsul a lejátszás, és ha még OUT 191,12-vel gyorsítva van, ez még inkább érezhetõ. Majd ha ráérek, töltök fel snapshotot vagy mp3-at ilyenrõl.
Lehet, hogy elbeszéltünk egymás mellett, és én másra gondoltam. Nem értek ezekhez az EXOS-os dolgokhoz.
Itt egy "hangminta", az elsõ lejátszásnál nem volt OUT 191,12, a második lejátszásnál volt. Mindkét lejátszás végén begyorsul a lejátszás az utolsó taktusokra, az OUT 191,12-es lejátszásnál még elõbb kezdõdik a begyorsulás és talán a gyorsulás mértéke is nagyobb, ezt nem tudom.
Snapshot is mellékelve, ahol (nálam legalábbis) reprodukálható a jelenség.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.August.05. 22:32:50
Mindkét lejátszás végén begyorsul a lejátszás az utolsó taktusokra
Ez jelzi, hogy alapvetõen a programban van a hiba, amire a ZZZIP nyilván csak rátesz egy lapáttal  :oops:
Az EXOS SOUND-ja 50Hz-es megszakítással van idõzítve, így ha jól van etetve, nem szabadna ilyennek elõfordulni!
Kéne látni az eredeti programot, hogy kitaláljuk, mi lehet a gond. Eleve miért kell ezt a nem túl bonyolultnak hangzó dolgot Zzzippelni?
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.August.05. 22:46:13
Én is épp ezt próbáltam ki. A SOUND hangja ugyanaz 4 és 6 MHz-n is.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.August.05. 22:59:46
Kéne látni az eredeti programot
Valami pofonegyszerû. RESTORE, DO, READ IF MISSING EXIT DO X,Y,Z, SOUND PITCH X,DURATION Z (meg ilyesmik), LOOP, DATA hangok.
Kb. így néz ki, de ha fontos, elõkereshetem.
Zzzip nélkül már 2-es tempóval is akadozik, úgy emlékszem, mert sokcsatornás, envelope is van benne, meg a hangerõt is változtatja, és basic-ben ez már akadozást okoz.
De basic programoknál is gyakran tapasztaltam ezt, amikor restore, data, stb. megoldással szólt a zene.

UI: Így néz ki a basic program eleje:

Code: [Select]
    1 INPUT PROMPT "Tempo:":T
  100 CLEAR SOUND
  110 ENVELOPE NUMBER 1;0,63,63,1;0,-5,-10,1;0,-53,-23,3;0,10,-40,60
  111 ENVELOPE NUMBER 2;0,63,63,1;0,-63,-63,5
  112 ENVELOPE NUMBER 3;0,63,63,1;-10,-63,-63,10
  120 RESTORE
  130 DO
  140   READ IF MISSING EXIT DO:G,H,J
  150   LET G=G+24:LET H=H/T
  160   SOUND PITCH G,DURATION H,ENVELOPE 1,SYNC 3
  170   SOUND PITCH G-36,DURATION H,ENVELOPE 1,SYNC 3,SOURCE 2,STYLE 0
  180   SOUND SOURCE 3,SYNC 3,ENVELOPE 2,DURATION H,LEFT J,RIGHT J
  185   SOUND SOURCE 1,ENVELOPE 3,SYNC 3,PITCH 30,DURATION H,LEFT J,RIGHT J
  190   LET J=0
  200 LOOP
  210 DATA 127,200,0
  220 DATA 32,20,0,37,10,255,37,20,0,36,20,0,37,10,127,37,20,0,41,20,0,37,10,255,37,20,0,36,20,0,37,30,127
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.August.06. 11:51:12
Zzzip nélkül már 2-es tempóval is akadozik, úgy emlékszem, mert sokcsatornás, envelope is van benne, meg a hangerõt is változtatja, és basic-ben ez már akadozást okoz.
Itt akkor az a baj, hogy a BASIC nem tudja elég gyorsan etetni a SOUND eszközt, és így a BASIC lassúság is beépül a "kottába", ami nem éppen ideális megoldás.
Áthidaló megoldás lehet esetleg a végére egy csomó "csendhangot" rakni, hogy annak kiküldözgetése lassítson a zene adatok kiküldése után is.

A jobb megoldás az valami célzott gyorsítás, esetleg némi CODE-val.
Felraksz egy teljes programot, amivel lehet próbálkozni?
Title: Re: Általános BASIC Kérdések
Post by: endi on 2012.August.06. 12:19:18
na most én hogyan csináltam hogy a dizzy lord zenéje nem rimushibás? azaz a basic lassúsága nem zavart be.
ugyanis az a zene egy basic zeneszerkesztõ programmal van csinálva és a dizzy lordban escape szekvenciákkal van lejátszva

nem emlékszem hogy volt :) pedig a zeneszerkesztõt is én csináltam :)
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.August.06. 12:30:18
Becsukod a 103-as csatornát, és megnyitod fájlnak, akkor elég egyszerûen össze lehet gyûjteni az escape szekvenciákat.  :)

Lehet az is az egyik kipróbálandó gyorsítási ötlet, hogy a bonyolult SOUND utasítások helyett PRINT #103-al írni escape szekvenciákat, a megfelelõ helyen belerakva a paramétereket.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2012.August.06. 12:41:29
persze, így lett kimentve és lejátszva a DL gépi kódjából

de akkor rá is jöttem. lehet hogy az escape lejátszó mivel ügye rendszer szintû, nem lassú mint a basic!
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.August.06. 23:22:22
Felraksz egy teljes programot, amivel lehet próbálkozni?
Itt (http://enterpriseforever.com/sound/zeneprogramozas-t3.0.html;msg24607#msg24607) a music.bas lenne az.

Ha jól emlékszem egyébként, egy- és kétszólamú zenéknél nem volt ilyen gyorsulás, tehát ahol kevesebb paramétert kellett DATA sorokban megadni.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.August.27. 10:35:42
Mostanában fraktálok rajzolásával múlatom az idõmet, sutyiban kiegészítettem ezt (http://ep128.hu/Ep_Konyv/Szamitastechnika_Kozepfokon.rar). Érez kedvet valaki bõvíteni a fraktál-kollekciót?
Konkrétan pl. Sierpinski-háromszögekre érdekelne elegáns, teknõc grafikás megoldás. A csomagban arra csak egy gagyi, Turbo Pascal-os megoldás van átültetve. Vagy egy "jó kis" Gosper-görbe is pofás.  :cool:
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.September.04. 00:58:53
Abszolút hiánypótló program (http://www.ep128.hu/SZAMOK.BAS)...
 :ds_icon_cheesygrin:
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.September.04. 13:05:22
Abszolút hiánypótló program (http://www.ep128.hu/SZAMOK.BAS)...
 :ds_icon_cheesygrin:
Ügyes!
Ezt magadtól csináltad, vagy átírtad valahonnan?
Próbálgattam mindenféle számokkal, jól mûködik.

Nem lett volna egyszerûbb a "tíz" és "húsz" szót is a DATA sorokba tenni, mint ott külön CASE ágban megnézegetni, hogy az-e? Bár nem néztem át a program mûködését, lehet, hogy valami ezt indokolja.

Itt (http://hu.wikipedia.org/wiki/T%C3%ADz_hatv%C3%A1nyai) nem szerepel a decilliárd, de biztos létezik attól még olyan is.
Amúgy tudtátok, hogy a googol nagyon nagy számot jelent (10 a 100-adikon), és a google is innen kapta a nevét?
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.September.04. 14:30:27
Még nem látom át a program mûködését. Más nyelvre ezt hogyan lehetne megcsinálni? Angolban és sok más nyelvben is külön nevük van a 10 és 20 közötti számoknak, és egyéb apróbb eltérések is vannak. Pl. az, hogy kétezerig egybe írjuk a számokat, csak magyar sajátosság.
Laci, azt tudtad, hogy az English is Fun, French is Fun, German is Fun programokban van olyan rész, hogy beírsz egy kétjegyû számot és kiírja betûkkel? Gondolom, azt nem használtad fel.

A SAY programmal lenne még jó egybeépíteni: beírsz egy tetszõleges számjegyet, a gép pedig kiolvassa. De ha a SAY-t vissza lehetne fejteni, akár bele is lehetne építeni, hogy így olvassa fel a számjegyeket.

UI: "Kérek egy tetszõleges számot:" Ennek a végére felkiáltójel kéne, nem kettõspont. :)
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.September.04. 14:58:02
Ügyes!
Ezt magadtól csináltad, vagy átírtad valahonnan?

Saját. Három napig rajzolgattam, hogy lehet a legkevesebb kivétellel megcsinálni, ez lett belõle.
Nem azért, de amit találtam a neten, meg Ep-re is volt RLS-féle BASIC program, de azok sokkal bonyolultabbak voltak.
A Számítástechnika középfokon c. könyvben "haladó" gyakorló feladatként kérik (megoldás nincs benne, piszkálta a csõrömet), majd azt ki fogom egészíteni vele.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.September.04. 14:59:37
Nem lett volna egyszerûbb a "tíz" és "húsz" szót is a DATA sorokba tenni, mint ott külön CASE ágban megnézegetni, hogy az-e? Bár nem néztem át a program mûködését, lehet, hogy valami ezt indokolja.

Amennyire néztem, nem hiszen a "tíz" és a "tizen..." illetve a "húsz" és a huszon" eltérõek. De nagyon több kivételkezelés nincs is a programban (még a "nulla") és ez is csak azért mert a kivétel a nyelvünkben van  :)
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.September.04. 15:01:20
Laci, azt tudtad, hogy az English is Fun, French is Fun, German is Fun programokban van olyan rész, hogy beírsz egy kétjegyû számot és kiírja betûkkel? Gondolom, azt nem használtad fel.

Erre látod, nem is emlékeztem. Nem használtam fel, három karakterig (legalábbis magyarul) egyébként sokkal egyszerûbb a megoldás.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.September.04. 15:04:56
Itt (http://hu.wikipedia.org/wiki/T%C3%ADz_hatv%C3%A1nyai) nem szerepel a decilliárd, de biztos létezik attól még olyan is.

Én is itt próbálkoztam elõször. Ezt szerintem csak elrontották. Nem csak ez hiányzik egyébként: figyeld a hatványkitevõket! szextillió után "hézagos" a lista.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.September.04. 15:09:01
A SAY programmal lenne még jó egybeépíteni: beírsz egy tetszõleges számjegyet, a gép pedig kiolvassa. De ha a SAY-t vissza lehetne fejteni, akár bele is lehetne építeni, hogy így olvassa fel a számjegyeket.

Az elsõ körben nagyon egyszerû, csak az aprócska KIIR eljárást kell módosítani. Utána persze próbálgatással a számokat is át kell írni a DATA sorokban, hogy valamennyire érthetõ legyen a végeredmény.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.September.25. 08:04:17
(Újabb) vadonatúj Ep-s játék (?) került a BASIC programcsokorba (http://www.ep128.hu/Ep_Games/Prg/Basic_Program_Pack.rar (http://www.ep128.hu/Ep_Games/Prg/Basic_Program_Pack.rar)), a - kevésbé fantáziadús - címe: Kvíz.
Ezzel be is nevezek a "legnagyobb BASIC program" c. versenyre. Addig lett nyomorítva, hogy az ep128emu-ban lévő HDD-s konfigurációban működjön. Apropó, a Wikin-n javítani kellene, hogy egy sorba egy utasítás írható. Érdemes megnézni a programlistát (sajnos a mérete miatt az NLIST3-at így sem lehetett ráereszteni, de azért nem ér puskázni  :evil:)... A helyes megfogalmazás: jellemzően a blokkszervező utasításokat kell külön sorba írni.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.September.28. 13:30:01
a Wikin-n javítani kellene, hogy egy sorba egy utasítás írható. Érdemes megnézni a programlistát (sajnos a mérete miatt az NLIST3-at így sem lehetett ráereszteni, de azért nem ér puskázni  :evil:)... A helyes megfogalmazás: jellemzően a blokkszervező utasításokat kell külön sorba írni.
A Wikin hol van ez, hol kell javítani?

A puskázás elleni védelmet úgy lehetne megoldani, ha file-ból töltené a kérdéseket (témakörönként), és a file-okban kódolva lennének a kérdések. Ezt talán úgy lenne a legegyszerűbb megoldani, ha a kérdés-válasz minden karakterének kódjához hozzáadunk pl. 1 bájtot, így eléggé olvashatatlan lenne, a program pedig levonná ezt a bájtot betöltéskor. Persze rafinált emberek ezt is könnyen feltörnék. Így persze már nem nevezhetnél a versenyen.

A titkosító módszerrel lehetne titkosírás megfejtést "gyakoroltató" programot is írni. Lenne a DATA sorokban rengeteg mondat, és mindig véletlenszerűen feleltetne meg egyes betűknek más betűket a program. De lehet, nem is kéne messzire menni ebben, az is elég lenne, ha véletlenszerűen rendelne más karakterdefiníciókat a betűkhöz a program. De már biztos sok ilyen programot csináltak ráérő emberek, csak nem EP-ra.
A titkosírás megfejtést lehetne kombinálni egyéb feladatokkal, pl. a Hamika minden egyes pályája után jönne ilyen rejtvény. :D Vagy labirintus programban botlanánk mindig ilyen okoskodó lényekbe, akik csak így engednek tovább.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.September.28. 13:38:28
A Wikin hol van ez, hol kell javítani?

Itt: http://hu.wikipedia.org/wiki/Enterprise_128 (http://hu.wikipedia.org/wiki/Enterprise_128).
"Az Enterprise basic sajátossága a többi, hasonló kategóriájú gép basic-jével szemben az áttekinthetőség. Ezért az utasítások paraméterei között nem hagyható el a szóköz, s egy programsorba általában nem írhatunk egynél több utasítást. Ez utóbbi miatt az IS-BASIC kifinomult eljáráskezeléssel rendelkezik."

Ráadásul az ok és okozat is fel van cserélve... Az IS-BASIC teljes körűen támogatja a strukturált programozást ("a kifinomult eljáráskezelés" ennek csak egyik ismérve) EZÉRT nem írhatóak a blokkszervező utasítások más utasítással egy sorba.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2012.September.28. 14:14:56
szipucsu, néhány orksoft játékban pontosan így van "titkosítva" a szöveg :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.September.28. 15:01:44
egy programsorba általában nem írhatunk egynél több utasítást.
Szerintem így sem helytelen: "általában".
Rég nem léptem már be abba a Wikibe. Ha valaki jobban meg tudja fogalmazni, átfogalmazhatja. Sőt, ott lehetne alaposan bővíteni, szerkeszteni a szöveget.
Title: Re: Általános BASIC Kérdések
Post by: Tuby128 on 2012.October.25. 18:02:25
Egy dolgot nem értek. Ez már inkább az "ugyan miért iktatnánk ki a német bővítést" kérdésköre.
 Ha Sulp-nak az a problémája, hogy német a billentyüzetkiosztás, akkor használhatja a ":uk" parancsot, és egy csapásra megoldódik. Azzal viszont, hogy kiiktatja a német bővítést, egy csomag hasznos dologtól válik meg úgymint :VLOAD vagy :VSAVE. Úgyértem ha már úgyis 4 szegmens van kiutalva a bővítőnek, miért baj az, hogy legalább a még egyben hasznos kód van?

 Ha már itt tartunk engem meg az zavar az angol gépen, hogy a csatornajel egy font jel, noha az mindig is '#' volt ;)
100 OPEN #101:"VIDEO:"   ! Nahát mi mindenre emlékszem még :)
110 DISPLAY #101:AT 1 FROM 1 TO 20
115 SET #101: INK 3  ! Vajon itt kell csatorna megadás a tinta színének változtatásához?
120 PLOT #101:100,100;1000,100

 (Hosszú éves C és Pascal programozás után olyan furcsa, hogy nem kell a sor végére pontosvessző:) )
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.October.25. 19:15:43
Quote
115 SET #101: INK 3  ! Vajon itt kell csatorna megadás a tinta színének változtatásához?
120 PLOT #101:100,100;1000,100
Nem kell. Minden parancsnak van alapértelmezése, melyik csatornára dolgozik. A Referencia kézikönyv említi is az alapértelmezett csatornákat. A grafikus utasításoknak, függvényeknek a 101-es csatorna az alapértelmezése.
Title: Re: Általános BASIC Kérdések
Post by: Tuby128 on 2012.October.25. 19:52:34
És ha nem 101-es csatorna, hanem mondjuk 2-es?
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.October.25. 20:23:15
Quote
És ha nem 101-es csatorna, hanem mondjuk 2-es?
Akkor már természetesen ki kell írni a csatornára hivatkozást.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.November.02. 16:33:01
Érdekes bugot találtam. Rögtön a basic bejelentkezése után is jelentkezik a bug. Ha meghívunk CALL-lal egy eljárást, amiből csak annyi van, hogy DEF eljárás, akkor furcsa dolog történik. Ha a DEF után van még legalább egy sor, akkor nem lesz furcsa, bár a DEF utáni sort írja ki hibásnak, pedig talán nem abban van a hiba, hanem a DEF sorban, hogy nincs lezárva END DEF-fel.
Ha előtte nem hívjuk meg CALL-lal, akkor sem jelentkezik a bug az egysoros, lezáratlan blokknál.

Nem lehet, hogy ez összefügg azzal, hogy a puszta END IF (IF nélkül) nem okoz megszakítást, ahogy azt korábban észrevettük, a "kakaó mellett futó" program kapcsán?

[attachimg=1]

[attachimg=2]

[attachimg=3]

[attachimg=4]
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.December.03. 10:36:19
Érdekelne, van-e valakinek valami ötlete, hogyan lehetne még érdekesebbé tenni ezt az "animációt".
Turbós gépen egy kicsit talán jobb.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.December.03. 18:04:20
Egy sorozat összes lehetséges permutációjára a Rosetta Code (http://rosettacode.org/wiki/Permutations#Pascal)-on szégyenletes megoldások vannak... :evil: Van kicsit egyszerűbb (http://www.ep128.hu/Ep_Konyv/Szamitastechnika_Kozepfokon.htm#7_3) megoldás is... (ld.: T10. Permutáció rekurcióval)

Egy megfigyelés annak, aki esetleg rekurzióval szeretne foglalkozni.
Ha egy eljárás önmagát hívja, és FOR-NEXT ciklust használunk benne, legalább a CIKLUSVÁLTOZÓT deklaráljuk először. Ellenkező esetben hibát ugyan nem kapunk, de a program nagyon nem azt fogja csinálni, amit szeretnénk...
Title: Re: Általános BASIC Kérdések
Post by: Tuby128 on 2012.December.03. 18:18:55
Légy szíves mutass példát arra, hogy mire gondolsz. Néhány programsor és komment. Köszönöm!
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.December.03. 18:23:07
Quote from: szipucsu
Érdekelne, van-e valakinek valami ötlete, hogyan lehetne még érdekesebbé tenni ezt az "animációt".

A 130. 140. sor fölöslegesnek tűnik.
BASIC-ből igazából erre nagyon már nem lehet nagyon sokat rakni. Esetleg a LINE STYLE méginkább a LINE MODE ad még lehetőséget a variálásra.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.December.03. 18:30:14
Quote from: Tuby128
Légy szíves mutass példát arra, hogy mire gondolsz. Néhány programsor és komment. Köszönöm!
Az innen (http://www.ep128.hu/Ep_Konyv/Szamitastechnika_Kozepfokon.rar) letölthető példaprogramok közül a PERMUT.BAS-t érdemes kipróbálni. Maga az eljárás a fenti linken megtekinthető.
A megoldás semmi  extra, rekurzívan cserélgetjük az elemeket. Ha elfogynak a felcserélendő elemek (330-as sor), kész a sorozat, amit kiírunk: 340-370 sor.
Ami a lényeg: A 320-as sorban deklaráljuk a ciklusváltozót, ezt kell kitörölni és úgy is lefuttatni a programot. Mintha a nem deklarált ciklusváltozó belepiszkítana a BASIC verembe(?)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.December.03. 21:02:15
Quote from: Lacika
A 130. 140. sor fölöslegesnek tűnik.
A GRAPHICS, majd a CLOSE #101? Azért van benne, mert ha nem először futtattam a programot, mindig Channel already open hiba volt, és ezzel ezt jól ki lehetett kerülni.
Title: Re: Általános BASIC Kérdések
Post by: Tuby128 on 2012.December.03. 21:36:00
Szipucsu, hogyan jöttél rá erre a megoldásra? Próbálgatással? Ne érts félre örülök, hogy foglalkozol vele, és érdekenek a részletek.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.December.03. 21:36:47
Quote from: szipucsu
A GRAPHICS, majd a CLOSE #101? Azért van benne, mert ha nem először futtattam a programot, mindig Channel already open hiba volt, és ezzel ezt jól ki lehetett kerülni.
Ez azért van, mert vagy programhibával állt le, vagy STOP-pal leállítottad és nyitva maradt a csatorna. Ha a program illedelmesen bezárja maga után a megnyitott videolapokat, nincs ilyen hiba.
Title: Re: Általános BASIC Kérdések
Post by: Tuby128 on 2012.December.03. 21:41:07
Az F5 (TEXT) mindig segít videólapokat bezárni.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.December.03. 23:16:42
Mármint milyen megoldásra érted, hogy hogy jöttem rá?
Igen, a csatorna nyitva maradt, mert szerkesztgettem a programot, mindig leállítottam STOP-pal, aztán listáztam, újra elindítottam, stb. Egyszerűbb volt így megoldani, mint TEXT-et nyomogatni :D Persze megszakításkezelővel azt is meg lehetne csinálni, hogy STOP-ra TEXT legyen és így legyen vége a programnak.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.December.04. 13:55:58
Quote from: Tuby128
Szipucsu, hogyan jöttél rá erre a megoldásra? Próbálgatással? Ne érts félre örülök, hogy foglalkozol vele, és érdekenek a részletek.
Ja, hogy a GRAPHICS - CLOSE #101 megoldásra hogy jöttem rá? Hát, láttam, hogy Channel already open van néha, de nem mindig. Ha csak beírom, hogy CLOSE #101, akkor meg akkor lenne hiba, ha éppen nincs nyitva. És hogy még ezt is kiküszöböljem, betettem elé a GRAPHICS utasítást. Természetesen egy szál TEXT egyszerűbb lett volna, de hát programíráskor bonyolultabban gondolkozik az ember, én legalábbis. De a kész programból majd ki lehet törölni minden felesleges ideiglenes cuccot.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.December.04. 19:58:43
Rosetta Code (http://rosettacode.org/wiki/Animate_a_pendulum)-os feladat.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.December.04. 20:49:02
Quote from: Lacika
Rosetta Code (http://rosettacode.org/wiki/Animate_a_pendulum)-os feladat.
Jó lett!
Látom, tanultál a bénázásomból és a STOP-ra bezárja a program a videólapokat. :D

Más 8 bites gépeken ezt gondolom, BASIC-ben nem igazán lehet megcsinálni, mert tudtommal csak az EP-n lehet sok videólapot megnyitni és váltogatni azokat.
Amúgy a szinusz függvényt használja a mozgáshoz?
A szinuszt és más függvényeket is fel lehetne még használni abban a programban is, amit én tettem be lentebb, látványos dolgokat lehetne vele művelni.
Title: Re: Általános BASIC Kérdések
Post by: Tuby128 on 2012.December.04. 20:49:44
Annyira szeretném látni a kódjaitokat.  Nekem nincs emulátorom, de a kód nagyon érdekelne. Nem lehetne, hogy a .bas mellett .txt formátumban is becsatolnátok? Kérlek!
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.December.04. 21:01:55
Quote from: Tuby128
Nem lehetne, hogy a .bas mellett .txt formátumban is becsatolnátok? Kérlek!
Természetesen megoldható, csak kérni kell! :)
A múltkori, permutációt végző programot is berakom.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.December.04. 21:04:50
Quote from: Tuby128
Nem lehetne, hogy a .bas mellett .txt formátumban is becsatolnátok? Kérlek!
Talán meg lehetne csinálni, hogy on-line átalakítsa az oldal a .bas fájlt txt fájllá és így egyből meg lehetne nézni. :D Egy lebutított, web felületen futó emulátorral, ami a basic programot "detokenizálja", és kódként olvasható lenne a lista a hozzászólás alatt.
Title: Re: Általános BASIC Kérdések
Post by: Tuby128 on 2012.December.04. 21:21:35
Aki a Pendulomot írta, annak üzenem, hogy C-ben kellene programoznia, ott pont úgy van, hogy függvényeket hívogatunk meg. (ezt nevezzük struktúrált programozásnak)

Ezért ötöst adnék, ha osztályoznom kellene! Nagyon ügyes!
  560       LET Q=QUIT
  570       IF Q THEN EXIT FOR
...
  670 DEF QUIT
  680   LET QUIT=0
  690   LET KEY$=INKEY$
  700   IF KEY$
  710 END DEF
Title: Re: Általános BASIC Kérdések
Post by: Tuby128 on 2012.December.04. 21:31:50
Most a PERMUT.BAS:

Van itt ez a függvény:

  470 DEF FACT(X)
  480   FOR Y=2 TO X-1
  490     LET X=X*Y
  500   NEXT
  510   LET FACT=X
  530 END DEF

Lehet, hogy működik, de szerintem nem szerencsés, hogy ugyanazt az X változót mint bejövő paramétert használja, mert ha a FOR kiértékelése többször megtörténik, akkor mivel X a cikluson belül változik, a feltétel is változik. Úgy volna tiszta, ha gyűjtőnek egy új változót használnál fel.

Tehát:
  470 DEF FACT(X)
  475 LET Z=X  ! bevezetünk egy új valtozót
  480   FOR Y=2 TO X-1 ! Itt az "X-1"-et minden ciklusban ki kellene értékelnie
  490     LET Z=Z*Y
  500   NEXT
  510   LET FACT=Z
  530 END DEF

Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.December.04. 21:47:43
Quote from: Tuby128
Lehet, hogy működik, de szerintem nem szerencsés, hogy ugyanazt az X változót mint bejövő paramétert használja,
Ez működik. Ezt a Felhasználói kézikönyvből vettem, és pont a lokális változókra példa. Annyit módosítottam rajta, hogy nem futtatom le mégegyszer a ciklust, csak, hogy 1-el is megszorozza a függvény addigi értékét. A függvény a saját lokális X változóját használja, sőt ha rekurziót alkalmazunk, minden hívásnak saját változói vannak (ez a rekurzív fraktál rajzolásnál elengedhetetlen).
GOSUB-bal elég "ütős" megoldásokat láttam fraktálokra... :twisted:
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.December.04. 21:50:28
Quote from: Tuby128
Aki a Pendulomot írta, annak üzenem, hogy C-ben kellene programoznia, ott pont úgy van, hogy függvényeket hívogatunk meg. (ezt nevezzük struktúrált programozásnak)
Minden programom így néz ki. Itt alább a főprogram a 350-es sorig tart. A gimiben egyébként Turbo PAscal-ban programoztunk, ott kezdődött ez a mánia. Az IS-BASIC szerintem egy rugalmasabb TURBO PASCAL, csak a típusdeklaráció hiányzik belőle.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.December.04. 21:52:06
Quote from: Tuby128
Ezért ötöst adnék, ha osztályoznom kellene! Nagyon ügyes!
Köszönöm... :oops:
A rajzoló rutin egyébként a BBC Basic-es példa alapján készült.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.December.04. 22:10:31
Quote from: Lacika
Az IS-BASIC szerintem egy rugalmasabb TURBO PASCAL, csak a típusdeklaráció hiányzik belőle.
Meg a hülye pontosvesszők :-)
Title: Re: Általános BASIC Kérdések
Post by: Tuby128 on 2012.December.04. 22:13:39
Akkor még egy pillanatra térjnk ide vissza:

  470 DEF FACT(X)
  480   FOR Y=2 TO X-1
  490     LET X=X*Y
  500   NEXT
  510   LET FACT=X
  530 END DEF

A 470-es sorban definiáljuk először X-et. Ezután 480-ban kiértékelek egy relációt, és belépek a ciklusba. 490-ben módosítom X-et. 500-ban visszaugrok a 480-as kiértékelésre. A BASIC-nek ilyenkor el kellene végeznie újra "X-1"-es kiértékelést a módosított X-szel. Ezt nem teszi meg.

Másik szemlélet is hibás:
 Ha azt állítjuk, hogy 490-ben egy lokális változót hoztunk létre, ami csak a FOR ciklus alatt érvényes, akkor a NEXT után X vissza kellene, hogy kapja a FOR előtti értékét.

 Ezzel azt akarom mondani, hogy így nem oké.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.December.04. 22:26:41
Quote from: Tuby128
A 470-es sorban definiáljuk először X-et. Ezután 480-ban kiértékelek egy relációt, és belépek a ciklusba. 490-ben módosítom X-et. 500-ban visszaugrok a 480-as kiértékelésre. A BASIC-nek ilyenkor el kellene végeznie újra "X-1"-es kiértékelést a módosított X-szel. Ezt nem teszi meg.
Van ráció abban  amit mondasz... :smt017
A példa bizony így van a felhasználói kézikönyvben, ellenőriztem. A megoldás az lehet, hogy a FOR-NEXT sor kiértékelése csak egyszer történik meg, után az interpreter már csak a ciklusváltozó értékét módosítgatja. Ezt átírom.
Title: Re: Általános BASIC Kérdések
Post by: Tuby128 on 2012.December.04. 22:34:17
Akkor ezek szerint a BASIC a hibás, ami azt jelenti, hogy nem lehet cikluson belül változtatni, hogy a ciklus mikor érjen véget. (Lehet, hogy így akarták elkerülni, hogy a programozó véletlenül végtelenített ciklusba kerüljön?)
Title: Re: Általános BASIC Kérdések
Post by: lgb on 2012.December.04. 22:35:04
Quote from: szipucsu
Talán meg lehetne csinálni, hogy on-line átalakítsa az oldal a .bas fájlt txt fájllá és így egyből meg lehetne nézni. :D Egy lebutított, web felületen futó emulátorral, ami a basic programot "detokenizálja", és kódként olvasható lenne a lista a hozzászólás alatt.

Pont ilyet irtam python-ban amivel kapcsolatos kerdeseimmel a tisztelt forumot is zaklattam :) Azonban nem volt sok erdeklodes, egy ido utan meg beleuntam es felbehagytam :(
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.December.04. 22:42:52
Quote from: lgb
Pont ilyet irtam python-ban amivel kapcsolatos kerdeseimmel a tisztelt forumot is zaklattam :) Azonban nem volt sok erdeklodes, egy ido utan meg beleuntam es felbehagytam :(
Én azóta is várom, mikor lesz kész verzió kiadva! :oops:
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.December.04. 22:45:41
Quote from: Tuby128
Akkor ezek szerint a BASIC a hibás, ami azt jelenti, hogy nem lehet cikluson belül változtatni, hogy a ciklus mikor érjen véget.
Az EXIT FOR erre tökéletes.
De a ciklusváltozó értékét is lehet a cikluson belül módosítani.
Title: Re: Általános BASIC Kérdések
Post by: Tuby128 on 2012.December.04. 22:56:00
Ez az IS-BASIC olyan, hogy mindent lehet mindenütt módosítani. Ez jó, mert amikor 8 éves voltam legalább könnyebben ment a megtanulása.
 Egy gyerek borzasztó hamar megún dolgokat, ha nincs eredménye a munkájának. Ha lesz fiam akkor az IS-BASIC lesz az első nyelv amit meg fog tanulni.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.December.04. 22:57:38
Quote from: Tuby128
Ha lesz fiam akkor az IS-BASIC lesz az első nyelv amit meg fog tanulni.
Én azért a magyart javasolnám előbb. :D
Title: Re: Általános BASIC Kérdések
Post by: Tuby128 on 2012.December.04. 23:04:58
Sokat gondolkodtam azon, hogy vajon mikor írtam az első programomat. 6 évesen (első osztályos korom) előtt vagy után. Elsőben tanítják az írást olvasást én én úgy emlékszem nem volt előképzettségem.
 Mintha már egy for-ciklusos programot meg tudtam volna írni korábban is (azzal hogy kimásoltam a TIPPEK és TRÜKKÖK c. könyvből). De ebben nem vagyok egészen biztos.
 Szerintem a kazettákat is a borítójuk színéről és a betűk mintájából tudtam, hogy mi lehet rajtuk és úgy töltöttem be őket. A Sorcery az jó volt, mert azt előre kellett csak tekerni, pont az első volt a kazin.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.December.04. 23:22:18
Quote from: Tuby128
Akkor ezek szerint a BASIC a hibás,
Kipróbáltam! A Commodora BASIC-ben is működik ez a megoldás és Turbo PAscal-ban is!
A FOR-NEXT sor csak egyszer kerül kiértékelésre.
Title: Re: Általános BASIC Kérdések
Post by: Tuby128 on 2012.December.04. 23:32:13
Én itt a PC-n próbáltam ki egy C programkódot:

int i;  // olyan mint a NUMERIC I
int x=10; // LET X=10
for(i=0; i<x; i=i+1) 
// FOR I=0 ...  // Feltétel, addig marad a cikluban amíg igaz I<X // növekmény mint STEP +1
   {
   printf("%d\n",i);  // PRINT I
   x=x+1;  //LET X=X+1
   }  // NEXT

Ennek az lett az eredménye, hogy sosem ért véget a ciklusom mert X értéke mindig együtt növekedett I-vel, amit minden kiértékeléskor figyelembe is vett.
Title: Re: Általános BASIC Kérdések
Post by: Tuby128 on 2012.December.04. 23:36:09
Az lesz itt a titok nyitja, hogy még Basic-ben és Pascal-ban azt adod meg, hogy mettől meddig menjen, addig C-ben azt, hogy mi a feltétel. A feltételt muszáj mindig kiértékelni, azt viszont, hogy pontosan meddig menjen, elég csak egyszer.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.December.05. 07:24:24
Amúgy a szinusz függvényt használja a mozgáshoz?

Körív mentén mozog a sárga labda, így azt szinte szükségszerűen használni kell.
Még meg lehetne nézni hogyan lehetne ezt megvalósítani teknőcgrafikával, bár nem hiszem, hogy itt egyszerűsődne attól a megoldás. (Ha csak a vonalat rajzolnánk meg, akkor egyszerűbb lenne, de így nem).
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.December.05. 07:28:03
Más 8 bites gépeken ezt gondolom, BASIC-ben nem igazán lehet megcsinálni, mert tudtommal csak az EP-n lehet sok videólapot megnyitni és váltogatni azokat.

Tudtommal nem lehet megoldani.
A Spectrum Világokban volt példa maximum 4 fázisú animációra, de ott csak a rajzolás ment BASIC-ből, a "mozgatást" gépi kódú program végezte.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.December.05. 07:29:13
Ennek az lett az eredménye, hogy sosem ért véget a ciklusom mert X értéke mindig együtt növekedett I-vel, amit minden kiértékeléskor figyelembe is vett.

Azt megállapíthatjuk: a C-nek más a filozófiája, mint a Turbo Pascal-nak, és a BASIC nyelvjárásoknak, úgy általában.
Title: Re: Általános BASIC Kérdések
Post by: lgb on 2012.December.05. 10:11:41
Quote from: Lacika
Azt megállapíthatjuk: a C-nek más a filozófiája, mint a Turbo Pascal-nak, és a BASIC nyelvjárásoknak, úgy általában.

Ez bizta. Sot elegge "keplekeny" is, pl  szamtalan modon irhato:

for(i=0; i<x; i=i+1)

for(i=0; i<x; i++)

C-ben szeretjuk a rovidebb irasmodot.

for(i=0,egyebvar=2;i<x;i++)

Tobb minden is bezsufolhato oda :)

i=0 ; for(;i<x;i++)

Akar hianyozhat is vmi, es megcsinalod pl elotte.

for(i=0;i<x;) {
  ....
  i++;
}

vagy mashol csinaljuk az i noveleset ...

i=0;
for(;i<x;) {
 i++;
}

esetleg mast is mashol csinalunk :)


stb stb, sot meg ez is valid:

for(;;) {....}

csak ez epp vegtelen ciklus, bar nyilvan break-el "kilephetsz" belole.
Title: Re: Általános BASIC Kérdések
Post by: lgb on 2012.December.05. 10:17:02
Quote from: Zozosoft
Én azóta is várom, mikor lesz kész verzió kiadva! :oops:

Kesz verzio?! Soha. Alap: egy software sosem keszul el, max rafogjak, hogy kesz :) Nade komolytalanra forditva a szot: ha tenyleg erdekel, kipakolom vhova a jelenlegi allapotot. Mert az a baj, hogy nincs annyi EP-s tapasztalatom feltetlen, hogy lassam, valahol valamit rosszul csinal, ami egy-ket basic programot megetettem vele, az nekem "ranezesre" jonak tunik, de ettol meg boven lehet benne hiba ... Ami jelenleg viszont tuti hianyzik: kene konvertalni az Ep-n hasznalhato karakterkeszleteket UTF8-ra, es ezt allithatora kene, mert ugye EP-n tobb charset is volt divatban foleg ha "extra" karaktereket is hasznalt az ember mint mondjuk egy ekezetes betu, vagy hasonlo ...
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.December.05. 10:19:45
Ez bizta. Sot elegge "keplekeny" is, pl  szamtalan modon irhato:

Az i++ - úgy tudom - hamarabb lefut, mint az i=i+1
Az ilyen gyorsműveleteket +/-1 hiányolom is a fullextrás IS BASIC-ből, pedig ezek gyakran használt műveletek.
Title: Re: Általános BASIC Kérdések
Post by: lgb on 2012.December.05. 10:43:43
Quote from: Lacika
Az i++ - úgy tudom - hamarabb lefut, mint az i=i+1
Az ilyen gyorsműveleteket +/-1 hiányolom is a fullextrás IS BASIC-ből, pedig ezek gyakran használt műveletek.

Hat, C esetben nehez "hamarabb futasrol" beszelni mert ugye nem interpretalt, hanem forditoval mux. Az i++ elvileg tomorebb megfogalmazas mint az i=i+1, amde van olyan gyanum, hogy normalis compiler amugy is optimalizalja es tok uazt a kodot fogja forditani erre a ket esetre, csak a forditon mulik. Ja, es meg az i+=1 alakorol nem is beszeltunk :) Most gcc-vel megneztem, ez a harom tok uazt az asm kodot adja forditas utan, tehat a fordito tenyleg van annyira okos, hogy optimalizaljon.

Amugy is egy fordito eseten igaz: ha letezne "tokeletes" fordito (ilyen persze nincs) akkor mind1, hogy irod meg uazt, az eredmeny optimalis kod lesz :) Na persze ennyire jo fordito nem letezik, de azert ilyen egyszeru esetre mint egy integer valtozo novelese, azert csak kitalalja, hogy mire optimalis forditani assembly szinten, fuggetlenul attol, hogy a fenti alakok kozul melyiket hasznalod.

Ezert nem fair IS-BASIC-kel vagy hasonloval osszevetni, mert ott az ugye futas kozben ertelmezett (interpretalt) nyelv, ahol viszont ez futasidoben szamit, hogy melyik a gyorsabb megoldas (meg ha lenne is mondjuk ilyesmi mint a fenti formak ott is).
Title: Re: Általános BASIC Kérdések
Post by: MrPrise on 2012.December.05. 10:45:41
Pár gyöngyszem, tömör (és olvashatatlan) C kód kategóriában: http://www.ioccc.org/winners.html (http://www.ioccc.org/winners.html)
http://www.ioccc.org/2000/anderson.c (http://www.ioccc.org/2000/anderson.c)
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.December.05. 17:18:11
Visszatérve még az animációra! Újabb megfigyelés: ha telepakoltuk a memóriát egy csomó videólappal (konkrét esetben 24 videólappal), akkor a bezárással sokkal hamarabb végez az EXOS, ha FORDÍTOTT sorrendben zárjuk be, mint ahogy megnyitottuk! (Talán az EXOS minden csatornazárás után rendbe rakja a memóriát?)
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.December.05. 17:43:50
Quote from: Lacika
(Talán az EXOS minden csatornazárás után rendbe rakja a memóriát?)
Nem talán, hanem biztos!
Ezért van az eszközkezelőknél a puffer mozgatás funkció, amivel közli az EXOS az adott csatorna kezelőjével a mozgatást, és az megjegyezheti az új címeket. Ha éppen kijelzett videó lapot érint a mozgatás, akkor ilyen esetben látható egy kis villanás is a képen, amikor változik az LPT.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.December.06. 13:21:01
Úgy emlékszem, nem lehet túl sok nagy méretű, 256 színű videólapot létrehozni, kevés hozzá a memória. Ha az emulátorban a memória méretét megnöveljük, akkor több is létrehozható? És így hosszabb animációk is készíthetők lennének a videólapok váltogatásával (DISPLAY #x).
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.December.06. 14:15:04
Szerintem a helyfoglalás szempontjából mindegy a színmélység, hisz a felbontás fordítottan arányos a színek számával. Memóriaigényt csak a lores üzemmóddal lehet csökkenteni.
A videolapok a 64K videomemóriában tárolódnak, így mindegy mennyi memória van a gépben, nem lesz több hely a videolapoknak. Azt hiszem... Jól tudom Zozo?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.December.06. 14:19:31
Quote from: Lacika
A videolapok a 64K videomemóriában tárolódnak, így mindegy mennyi memória van a gépben, nem lesz több hely a videolapoknak. Azt hiszem... Jól tudom Zozo?
Igen, pontosabban 128K-tól felfelé mindegy. EP64-en még a nullás lap, a BASIC program, minden, foglalja a helyet a videó memóriában.

Egy eset van még, a vinyós gép, ott az IDE ROM, ha 128-nál több RAM van, akkor saját szegmenst foglal, nem a rendszerszegmensben kér helyet.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.December.07. 21:10:42
Érdekes, hogy ha SOUND SOURCE paraméternek 3-nál nagyobb számot adunk meg, azt is elfogadja, de természetesen így is csak 3 hangcsatorna +1 zajcsatorna használható. 3-tól felfele újra elölről megy a számozás.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.December.07. 23:18:43
Quote from: szipucsu
Érdekes, hogy ha SOUND SOURCE paraméternek 3-nál nagyobb számot adunk meg, azt is elfogadja, de természetesen így is csak 3 hangcsatorna +1 zajcsatorna használható. 3-tól felfele újra elölről megy a számozás.
Mindennél így csinál az EXOS, hogy a nem használt biteket nem veszi figyelembe.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.December.15. 09:45:47
Abszolút "hiánypótló" program... :ds_icon_cheesygrin:
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.December.15. 12:50:25
Quote from: Lacika
Abszolút "hiánypótló" program... :ds_icon_cheesygrin:
Jól működik!
Jók ezek a hiánypótló és citrompótló programok!
Érdekes, nekem eszembe se jutott volna, hogy ilyen programot is lehetne írni.

Engem mindig zavartak a basic programokban azok a CASE ágak. Rendkívül rövid sorok, és nagyon sok sort elfogyasztanak. Bár ha belefér a programba és nem lassítja, akkor mindegy.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.December.15. 13:47:49
Quote from: szipucsu
Érdekes, nekem eszembe se jutott volna, hogy ilyen programot is lehetne írni.
Én már igen, de így legalább nem nekem kell megírni :-D
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.December.15. 14:29:21
Quote from: szipucsu
Engem mindig zavartak a basic programokban azok a CASE ágak.
Pedig nagyon fontosak!
Nagy különbség a "sima" egymás utáni IF sorokhoz képest, hogy csak az egyik ág értékelődik ki, így gyorsabb is a programfutás (tehát még véletlenül sem lassítja) és sok algoritmust így sokkal egyszerűbb megírni (ugyanis, ha a valamely kiértékelendő változót módosítjuk az egyik IF ágban, akaratlanul is ráfutna a programvégrehajtás egy később IF ágra, mely már az új értéknek felel meg).
Példa: összefuttatás tétele:


NUMERIC A(1 TO N+1)
 NUMERIC B(1 TO M+1)
 NUMERIC C(0 TO N+M)
 ...
 LET I=1:LET J=1:LET K=0
 LET A(N+1)=INF:LET B(M+1)=INF
 DO WHILE I<(N+1) OR J<(M+1)
   LET K=K+1
   SELECT CASE A(I)
   CASE IS<B(J)
     LET C(K)=A(I):LET I=I+1
   CASE IS>B(J)
     LET C(K)=B(J):LET J=J+1
   CASE ELSE
     LET C(K)=A(I):LET I=I+1:LET J=J+1
   END SELECT
 LOOP
 LET C(0)=K ! C(0)-ba a vektor elemeinek száma
Title: Re: Általános BASIC Kérdések
Post by: Pgyuri on 2012.December.15. 14:36:56
Üdv,

"Egysoros"-ba sajnos nem fog beférni, de a feladatot teljesíti.  Érdekesség a római számokhoz kapcsolódva, hogy mutatós karórákon a 4-et nem a megfelelő IV jelöléssel, hanem IIII-el jelölik. Most vagy az első órásmester volt tudatlan vagy talán a fejjel lefelé írt római négyes valamiért nem volt megfelelő, ki tudja :)

Pgyuri
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.December.15. 14:37:28
Quote from: Zozosoft
Én már igen, de így legalább nem nekem kell megírni :-D
Ha van további tipp, ne tartsd magadban!
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.December.15. 14:41:34
Quote from: Pgyuri
Üdv,
Érdekesség a római számokhoz kapcsolódva, hogy mutatós karórákon a 4-et nem a megfelelő IV jelöléssel, hanem IIII-el jelölik. Most vagy az első órásmester volt tudatlan vagy talán a fejjel lefelé írt római négyes valamiért nem volt megfelelő, ki tudja
Ez egyébként érdekes, mert a mai órákon is így szerepel a négy (IIII). Sőt régen használták a 8-ra a IIX alakot, a Wikin pedig említik az IC (99) alakot. Gondolom az órákon a hagyomány miatt maradt így a négyes.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.December.15. 14:48:35
Quote from: Pgyuri
mutatós karórákon a 4-et nem a megfelelő IV jelöléssel, hanem IIII-el jelölik. Most vagy az első órásmester volt tudatlan vagy talán a fejjel lefelé írt római négyes valamiért nem volt megfelelő, ki tudja :)
Valahol azt olvastam, hogy a IIII is megfelel a római 4-nek, csak ritkábban használják.
Title: Re: Általános BASIC Kérdések
Post by: Pgyuri on 2012.December.15. 17:24:40
Quote from: ... Wikin pedig említik az IC (99) alakot....
Szerintem római számmal a 99-et IC-ként kell írni vagyis ez teljesen normálisnak tűnik. L-el és X-el nem lehetne leírni szabályosan.

Ahogy Obelix mondja: "Hülyék ezek a rómaiak!"  :)

Azért tanítsd meg a programodnak a régies 4-est.

Pgyuri
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.December.15. 17:35:22
Quote from: szipucsu
Valahol azt olvastam, hogy a IIII is megfelel a római 4-nek, csak ritkábban használják.
Nekünk úgy tanították, hogy az a régebbi verzió.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2012.December.15. 18:28:24
Quote from: Zozosoft
Nekünk úgy tanították, hogy az a régebbi verzió.
A program az "aktuális szabványoknak" megfelelően dolgozik, ahogy a böngészős átváltók.
A wiki ezt írja: "Az idők folyamán egyes számértékek jelölése eltérő lehetett. Így találhatunk 4 értékben IIII-t és IV-t is, hasonlóan 8 értékben VIII-t és IIX-et is – még furcsább eset a 99 jelölésére az XCIX helyett az IC –, előfordult, hogy ugyanabban a dokumentumban ugyanazokat a számértékeket más-más formában jegyezték le."
Title: Re: Általános BASIC Kérdések
Post by: Pgyuri on 2012.December.15. 19:50:59
Üdv,

No, megbutam negyedikes matematikából :)  Tényleg XCIX-ként kell írni, kicsit összekevertem magam. Szép baleset :)

Pgyuri
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.December.16. 00:03:15
Milyen durva lenne, ha a hexadecimális számokat római számokkal próbálnák leírni! :D Akkor talán X lenne a 16, IX a 15... Viszont akkor a V a 8 kéne, hogy legyen.
Végülis tetszőleges számrendszerbeli számokat is leírhatnánk római számokkal, ha a legnagyobb számjegy utáni szám lenne az X, annak a fele meg a V.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.December.31. 16:28:16
Van valami pofonegyszerű módszer, ami ellenőrzi, van-e EXDOS a gépben? És pl. az EXD változó értékét 0-ra állítja, ha nincs, és 1-re, ha van. Megoldható persze WHEN-HANDLER módszerrel is, ha kiadunk egy EXDOS parancsot (pl. :DIR vagy :VOL) és EXDOS híján hibaüzenetet ad, de egyszerűbb módszer létezik?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.December.31. 16:30:49
EXOS változó lekérdezéssel is lehet, de azt is WHEN blokkba kell rakni.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.December.31. 17:08:02
Quote from: Zozosoft
EXOS változó lekérdezéssel is lehet, de azt is WHEN blokkba kell rakni.
Ezt hogyan kell pontosabban? Én csak a VER$ és a VERNUM változóról hallottam.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2012.December.31. 17:27:12
ASK 64 A
Ha van EXDOS, akkor A-ban a szegmensszáma lesz, ha nincs, akkor ismeretlen EXOS változó hiba lesz, ezért kell a WHEN blokk.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2012.December.31. 19:18:18
Hogy a program címében szereplő évszámhoz hűek legyünk még az utolsó pillanatban, itt vagy egy elvileg minden konfigurációval jól működő verzió: [attach=1]
Persze lehetne még finomítani rajta, pl. directoryból választani betölthető karakterkészletet, és magnós gépnél betölthesse az első adódó fájlt, de az még a "jövő" zenéje.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2013.January.01. 12:39:39
Laci mindenképpen EP-s kitüntetést érdemelne, mert rögtön EP-s programozással kezdte az újévet, megcsinálta, hogy a karakterdefiniáló program felismerje, ha FILE bővítés (Zozotools) van a gépben, és font betöltésekor onnan lehet választani: [attach=1]
Arra jöttünk rá, hogy ha Zozotools van a gépben, az picit "megkavarja" a basic lelkivilágát, és ha WHEN utáni sorban OPEN utasítás áll, akkor nem tudja normálisan végrehajtani az OPEN-t, ezért is nem tudta betölteni ebben a konfigurációban a karakterkészleteket. Ha a WHEN és az OPEN közé beteszünk egy GOTO-t (mint ami még a basic 2.1-es EXT bug kiküszöböléséhez hasonló módszer), akkor rendesen működik. Laci szerint tehát a basic verem kuszálódott össze WHEN hatására, ez a probléma alap konfigurációval nem jelentkezett.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2013.January.07. 13:47:26
Most találtam egy kb. 20 éves programomat, ami szavakat tárol és kérdez ki. Bug az van benne pár, de használható. Sok olasz lecke szószedetét is be lehet tölteni, meg egy spanyol és egy svéd szószedetet is.
(SWB a Super Word Book rövidítése lenne.)
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2013.January.12. 15:12:30
Azt egyébként tudtátok, hogy a strukturált programozás valamennyi eleme szintaktikailag TELJES mértékben megegyezik az IS-BASIC-ben és a VISUAL BASIC-ben? (beleértve az IF THEN ELSE, SELECT CASE, FOR-NEXT DO-LOOP szerkezetet. Igaz, Visual BASIC-ben a DO-LOOP mellett még pluszban van WHILE WEND, WITH END WITH szerkezet, ami igazából ugyanaz, mint a DO WHILE / LOOP WHILE, DO UNTIL / LOOP UNTIL)
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2013.January.23. 19:02:42
Újabb "abszolút hiánypótló" program. (Rosetta Code-os feladat.)
Bár ennek talán még lett is volna értelme, ha 25 évvel korábban készül el...
Rögtön két változat van, a másodikban az ünnepnapok is benne vannak (ez persze a sok IF-től eléggé lassú). A Pünkösd még nincs benne.
Még nincs egyébként kész: a nyomtatás nem működik, úgy tűnik a VDUMP hozzá sem szagol a szöveges képernyőhöz. Ide txt-ben kimentést kellene berakni, ezt valami gépi kódú rutinnal lehetne megvalósítani.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2013.January.23. 21:20:16
Quote from: Lacika
ezt valami gépi kódú rutinnal lehetne megvalósítani.
Megy az BASIC-ből is, pl ilyesmi:
10 for i=1 to 80
20 for j=1 to 24
30 print #102,at i,j:;
40 get #102:a$
50 lprint a$;
60 next j
70 lprint
80 next i

Lprint helyett lehet fájlba is.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2013.January.24. 13:08:31
Quote from: Zozosoft
40 get #102:a$
Ezzel csak azokat a karaktereket tudja lekérdezni, mint amik file nevekben is előfordulhatnak, tehát az ékezetes, ALT-os billentyűkombinációra definiált karaktereket nem.
Amúgy biztos van valami SPEEK vagy PEEK érték, amin a karakteres képernyő tartalma van, nem? Vagy rosszul sejtem? Csak benne vannak már valahol ezek a memóriában is, ahonnan ki lehetne olvasni.

Lehetne még esetleg a nem az adott hónaphoz tartozó napokat is odaírni az adott hónaphoz (ahol kimaradnak a helyek elseje előtt), csak halványabb színnel. 80 karakteres módban talán van több szín is.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2013.January.24. 13:22:25
Ezzel csak azokat a karaktereket tudja lekérdezni, mint amik file nevekben is előfordulhatnak, tehát az ékezetes, ALT-os billentyűkombinációra definiált karaktereket nem.

Köszönöm, már épp akartam kérdezni, de így már érthető miért azt a zagyvaságot kaptam, amit - amikor ezt kipróbáltam.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2013.January.24. 13:24:12
80 karakteres módban talán van több szín is.

Csak két színpár van text 80-ban.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2013.January.24. 13:30:52
Jééé, tényleg, de érthető miért, peek-el is ugyanide jutnánk.
A karakterkészleteknél kitárgyaltuk, hogy 128 karakteres Nick módot használ az EXOS, azonban az ASCII-ban 32-től kezdődnek a nyomtatható karakterek. Így kihasználatlan lenne a 128-as karakterkészlet 0-31 kódú karakterei.
Ezért ezeket az EXOS-on keresztül 128-159 kódokkal érhetjük el, azonban a videó memóriába már konvertálva az eredeti kódokon kerülnek. És ezt is kapjuk vissza, amikor olvasunk a videó lapról.

A megoldás az, hogy LOOK-al olvasni numerikus változóba, és ha a kód 32-nél kisebb, akkor hozzá kell adni 128-at. Utána mehet a Print CHR$-el.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2013.January.24. 13:34:40
Quote from: Lacika
Csak két színpár van text 80-ban.
Akkor számold meg, hogy pl az FDISK (http://ep128.hu/Ep_Util/FDISK.htm) mennyit használ :-)
Amúgy meg Application Notes 25. (http://enterprise.iko.hu/technical/Enterprise-AppNote-25.pdf), 2. oldal :-D
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2013.January.24. 21:34:13
Quote from: Zozosoft
A megoldás az, hogy LOOK-al olvasni numerikus változóba, és ha a kód 32-nél kisebb, akkor hozzá kell adni 128-at. Utána mehet a Print CHR$-el.
Ezt hogyan kell? Erre kíváncsi lennék! És LOOK-ból hogyan tudjuk meg, milyen kódú karakter van az adott pozícióban? És ha pont olyan részt olvas ki a look egy karakterből, ahol éppen üres pixel van?

De tényleg nincs olyan memóriacím érték, ami egy adott pozícióban lévő adott karakter kódját tárolja?

A képernyő nyomtatása helyett esetleg még azt lehetne kipróbálni, hogy nem csak a képernyőre írja ki a naptárat, hanem menet közben valami string változókba is, és a végén ezeket a string-eket lehetne a nyomtatóra küldeni. Tehát nem csak PRINT ... "január", hanem LET XYZ$=XYZ$&"január", meg ilyesmi.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2013.January.24. 21:46:09
Quote from: szipucsu
Ezt hogyan kell? Erre kíváncsi lennék! És LOOK-ból hogyan tudjuk meg, milyen kódú karakter van az adott pozícióban? És ha pont olyan részt olvas ki a look egy karakterből, ahol éppen üres pixel van?
Elfelejtették beleírni a BASIC kézikönyvbe, hogy szöveges módban a karakterkódot adja vissza.
De az EXOS leírásból (http://www.ep128.hu/Ep_Konyv/Exos.htm#119) ki lehetett találni.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2013.January.24. 22:27:37
A 26254 és a 27215 közötti címeken valahogy a képernyőn lévő karakterek kódjait tárolja a gép. Ez lekérdezhető a SPEEK 255,26254, írható a SPOKE 255,26254,akármennyi utasításokkal. Bár nem úgy működik látszólag, ahogy elképzeltem. :D

A nyomtatáshoz amúgy talán a legjobban használható valami ilyesmi:
OPEN #1:"PRINTER:"
COPY FROM #102 TO #1
CLOSE #1
Gondolom, működik, bár még sose próbáltam élesben.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2013.January.24. 22:44:20
Szerintem a LOOK csak grafikus képernyőn működik, ahogy a Felhasználói kézikönyv írja...
INVALID ESCAPE SEQUENCE üzenetet ad.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2013.January.24. 22:49:53
Quote from: szipucsu
A nyomtatáshoz amúgy talán a legjobban használható valami ilyesmi:
OPEN #1:"PRINTER:"
COPY FROM #102 TO #1
CLOSE #1
Gondolom, működik, bár még sose próbáltam élesben.
Zozo, ezt kipróbálod, műküdik-e. Nem hiszem, mert akkor file-ba is működnie kellene...
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2013.January.24. 23:20:18
Quote from: Zozosoft
Akkor számold meg, hogy pl az FDISK (http://ep128.hu/Ep_Util/FDISK.htm) mennyit használ :-)
Amúgy meg Application Notes 25. (http://enterprise.iko.hu/technical/Enterprise-AppNote-25.pdf), 2. oldal :-D
És tényleg... Mik derülnek ki 25 év után....
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2013.January.25. 07:53:50
Quote from: Lacika
Szerintem a LOOK csak grafikus képernyőn működik, ahogy a Felhasználói kézikönyv írja...
INVALID ESCAPE SEQUENCE üzenetet ad.
Igen valami el van benne rontva... :evil:
A kurzor pozicionálást elé egy PRINT #102, AT X,Y:; utasítással kell megoldani, aztán LOOK #102:V (azaz a példában a GET utasítást lecserélni).
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2013.January.25. 09:18:55
Zozo!

Ezt a DDUMP-ot ki tudod próbálni nyomtatásra?
A MENTES eljárásba csak bele kellene rakni a DDPRINT-et, hogy az mit csinál. AZ a baj, hogy ez szerintem a KÉPERNYŐ tartalmát nyomtatja ki, a képből kilógó többi sort nem. Nekünk az 1-es csatorna tartalmát kellene kinyomtatnunk.
Furcsa, hogy egy ilyen "banális" feladattal, mint egy szöveges csatorna kinyomtatása, csöcsre futunk...
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2013.January.25. 09:23:32
A kurzor pozicionálást elé egy PRINT #102, AT X,Y:; utasítással kell megoldani, aztán LOOK #102:V (azaz a példában a GET utasítást lecserélni).

Ez így működni fog? Ki van próbálva? Ez szimpatikus megoldásnak tűnne...
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2013.January.25. 09:51:50
Quote from: Lacika
Ez így működni fog? Ki van próbálva? Ez szimpatikus megoldásnak tűnne...
Ki, különben nem javasoltam volna :oops:
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2013.January.25. 16:54:13
Quote from: Zozosoft
Ki, különben nem javasoltam volna :oops:
Működik, de ha ALT-tal lenyomott billentyűvel írunk abba a sorba, azt nem tudja elolvasni...

A szöveges képernyő fájlba mentése tutira megoldható a COPY paranccsal, mert régen egyszer csináltam ilyet. Csak akkor a sor végét tényleg sor végének vette, akkor is, ha a következő sor valójában az előző sor folytatása volt, csak nem fért ki ki egy sorba.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2013.January.25. 16:59:00
Működik, de ha ALT-tal lenyomott billentyűvel írunk abba a sorba, azt nem tudja elolvasni...
Azt irtam korábban, hogy ha az érték 32-nél kisebb, akkor hozzá kell adni 128-at.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2013.January.25. 18:12:50
Quote from: szipucsu
Működik, de ha ALT-tal lenyomott billentyűvel írunk abba a sorba, azt nem tudja elolvasni...
Már működik, úgy, ahogy Zozo mondta! Tökéletes txt-t csinál, aztán azt mindenki abból nyomtatja ki, amiből akarja. Még a Pünkösdöt megnézem.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2013.January.25. 19:37:48
Egyelőre nincs Pünkösd, majd esetleg lesz az is benne...
ZZZIP-elni persze nem lehet. Kár.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2013.January.25. 21:25:29
Quote from: Zozosoft
Azt irtam korábban, hogy ha az érték 32-nél kisebb, akkor hozzá kell adni 128-at.
Ja, hogy amikor PRINT-tel kiíratjuk?
De GET-tel már nem működik ugyanez, csak lukkal?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2013.January.25. 21:42:52
Quote from: szipucsu
De GET-tel már nem működik ugyanez, csak lukkal?
Azzal is működhet, csak azzal string változóba lehet beolvasni a karaktert, amit vissza kéne alakítani karakterkóddá az ellenőrzéshez és esetleges +128 művelethez.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2013.February.08. 13:18:44
vicces dolgot találtam :)
azt akartam beírni hogy listázzon egy függvényt, de úgy hogy onnan folytassa is
tehát:
list fuggv-

erre kilistázta de a végén kiírta hogy not understood :)
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2013.February.14. 23:46:46
Az egy dolog, hogy az IS-BASIC lassú, de legalább az tud számolni... Hát ezt érdemes kipróbálni, pár gépen!

10 FOR A=3.1 TO 8.9 STEP 0.1
20 IF A=INT(A) THEN 50
30 PRINT A
35 NEXT A
40 PRINT "NEM TUDOK SZAMOLNI"
50 END

Vicc, de az EP-n és a TVC-n kívül valamennyi BASIC csöcsre fut (sima összeadás...). Még a félprofesszionális C128 is! A Spectrumon azét csodálkozom, bíztam benne.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2013.February.14. 23:53:48
hát én eleve elcsodálkoztam amikor pár napja megláttam hogy mennyi tizedesjegyet kezel a basic
én azt hittem 1-2 számjegy lesz :)
annak idején nem is emlékszem hogy foglalkoztam volna ilyesmivel :)
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2013.February.15. 00:01:45
Az IS-BASIC BCD formátumban tárolja a számokat, ezért tud pontosan számolni tizedekkel. Bináris lebegőpontos formátumban a 0.1 nem ábrázolható pontosan, 0.099999... lesz helyette, és így természetesen 3.9999... nem lesz egyenlő 4-el.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2013.February.15. 00:31:24
Quote from: IstvanV
Az IS-BASIC BCD formátumban tárolja a számokat, ezért tud pontosan számolni tizedekkel. Bináris lebegőpontos formátumban a 0.1 nem ábrázolható pontosan, 0.099999... lesz helyette, és így természetesen 3.9999... nem lesz egyenlő 4-el.
Pont erről írt most Bruce, hogy ő is szerette volna a gyorsabb lebegőpontosabb verziót választani, de az Enterprise cég ragaszkodott a pontosabb verzióhoz.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2013.February.15. 00:35:49
szerencsére a zzzip egész számolást csinál, ezért gyorsabb :)
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2013.February.15. 07:59:04
Quote from: Zozosoft
Pont erről írt most Bruce, hogy ő is szerette volna a gyorsabb lebegőpontosabb verziót választani, de az Enterprise cég ragaszkodott a pontosabb verzióhoz.
Pont ezen apropóból néztem meg. Szerintem jól döntött az Enterprise.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2013.February.15. 08:00:57
Quote from: Lacika
Pont ezen apropóból néztem meg. Szerintem jól döntött az Enterprise.
Igen, én is azt írtam neki, hogy nem baj, ha számolásra is tudom a számítógépet használni :-)
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2013.February.15. 08:19:36
Quote from: endi
szerencsére a zzzip egész számolást csinál, ezért gyorsabb :)
Azért egy real fordítónak is lenne létjogosultsága. Spectrum-on van ilyen, és 3,5-4-szeres gyorsulást azokkal is el lehet érni. És azért az is jelentős gyorsulás. A Sinclair Spectrum Játék és Program 2. c. könyvben van összehasonlító teszt.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2013.February.15. 08:52:25
Quote from: Lacika
Azért egy real fordítónak is lenne létjogosultsága.
Igen az jól jönne!
Title: Re: Általános BASIC Kérdések
Post by: lgb on 2013.February.16. 00:21:24
Quote from: IstvanV
Az IS-BASIC BCD formátumban tárolja a számokat, ezért tud pontosan számolni tizedekkel. Bináris lebegőpontos formátumban a 0.1 nem ábrázolható pontosan, 0.099999... lesz helyette, és így természetesen 3.9999... nem lesz egyenlő 4-el.

Meg is lepodtem a szamabrazolason, amikor a bas->text converteremet elkezdtem :)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2013.February.19. 17:03:38
és íme a magic ball készülő basic verziója XD
az egyetlen probléma vele hogy 400%-os emulátor sebességen is lassú a pálya scroll :)
Title: Re: Általános BASIC Kérdések
Post by: PiotrSoft on 2013.February.19. 18:49:56
endi!

Le a kalappal.

De valld be, kiraktak az állásodból, vagy a feleséged csomagolt neked össze, esetleg mind kettő egyszerre, hogy ennyi időd van?

:)

De ügyes, sose tudtam EP-n grafikával manipulálni.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2013.February.19. 19:08:42
nem, ez nekem a pihenés! :D
amúgy hamar megvan, napi 10-20 perc EP basic és mindjárt jobban érzem magam!

amúgy van egy sokkal jobb ötletem magic ball basic megvalósítására! gyorsabb és pixelenkénti, persze nem teljesen magic ball de hasonló

az a baj ehhez már lusta vagyok, de ha valakit érdekel leírom az ötletet
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2013.February.19. 21:13:57
Quote from: endi
az egyetlen probléma vele hogy 400%-os emulátor sebességen is lassú a pálya scroll :)
1000%-os sebességű emulátoron egész tűrhető. :D
Kilistáztam, azt hittem, lesz vagy 2-3000 sor, erre piti 500 sor körüli.
Title: Re: Általános BASIC Kérdések
Post by: PiotrSoft on 2013.February.19. 22:51:35
Viszont Zozo már feni a kardját, hogy beledőljön.

Annyira szereti a poke,spoke,peek,speek kontextusokat. 

Ha megnézi a listát, elmond egy imát endi lelkéért, hogy ne a C=64 poklába kerüljön!
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2013.February.19. 22:55:20
Quote from: PiotrSoft
Viszont Zozo már feni a kardját, hogy beledőljön.
Igaz :twisted:
Azt a fix 47376-ot kéne elfelejteni, és helyettesíteni lekérdezett LPT változóval, ahogy a másik programba beleírtam.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2013.March.03. 14:12:35
A régi miner játékomban találtam egy trükköt, hogy az emberke irányítás ne lassítsa le a játékot:

100 for x=1 to 20
110 j=joy(0)
120 if j<>0 then exit for
130 next x

Ezután a j értékét kell használni a mozgatáshoz.
Meg persze játékonként belőni a ciklus hosszát.
Béna trükk, de műxik. :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2013.March.03. 14:29:41
Quote from: endi
100 for x=1 to 20
110 j=joy(0)
120 if j<>0 then exit for
130 next x
A FOR cikluson belülre kerül még más is, a játéktól függően? Vagy utána jön a többi része (pl. szörnymozgatás, egyebek)?
Title: Re: Általános BASIC Kérdések
Post by: PiotrSoft on 2013.March.03. 17:22:20
Quote
Béna trükk, de műxik. (http://enterpriseforever.com/Smileys/phpbb/smiley.gif)




endi!

Ezt nevezik programozásnak!

Sok ilyen "béna trükkel" kell operálni nap mint nap!

Bizony okos lépés, benntartatni a ciklusban egy időre, hogy ne kelljen mindig újra s újra figyelni a függvényt.

Ez a béna trükköd jelenleg is megállja a helyét. :smt041
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2013.March.12. 20:01:04
Összehasonlító sebességteszt a BASIC és a FORTH között: Prímszámteszt.
A FORTH programot 1000 PRIMTEST utasítással indítsuk.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2013.March.12. 21:18:28
Quote from: Lacika
Összehasonlító sebességteszt a BASIC és a FORTH között: Prímszámteszt.
Van egy "kis" különbség :smt038
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2013.March.29. 10:40:32
Az Assembly topicban emlegetett képernyőnél nagyobb videólapra egy picike példa.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2013.March.30. 11:11:50
Az feltűnt már valakinek, hogy a CLEAR FONT utasításnak TEXT 80-as módban nincs rögtön érezhető hatása a 80 karakteres videólapon?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2013.March.30. 11:16:01
Quote from: szipucsu
Az feltűnt már valakinek, hogy a CLEAR FONT utasításnak TEXT 80-as módban nincs rögtön érezhető hatása a 80 karakteres videólapon?
Ez egyértelmű, mivel a TEXT 80 grafikus lapon van.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2013.April.05. 22:19:02
Quote from: szipucsu
Az feltűnt már valakinek, hogy a CLEAR FONT utasításnak TEXT 80-as módban nincs rögtön érezhető hatása a 80 karakteres videólapon?
Mókás amikor a kurzorral végigszaladsz egy soron.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2013.July.22. 10:18:30
Laci naptárprogramjának továbbfejlesztéséhez egy ötlet:
Mennyi idő van pontosan két dátum között? (http://www.easysurf.cc/ndate3.htm)
Ügyes a program, mert ha pl. február 31-et adunk meg, hibát jelez, hogy ilyen dátum nincs.
Ezt IS-BASIC-re is meg lehetne csinálni.
Pl. tudjuk, hogy valaki mikor született, és ebből kiszámolná a gép, hogy pl. 2004. február 25-én pontosan hány éves volt.

Vagy, alapból tárolná az EP klub tagjainak születési dátumát. Talikon csak be kéne írni az aktuális dátumot, és napra pontosan kiírná az összes jelenlévő életkorát. :D

Laci, nincs kedved megcsinálni?
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2013.July.30. 00:04:24
A BASIC verem méretét valahogy meg lehet növelni, hogy ez működjön?
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2013.July.30. 20:32:43
Zozo, ezt a hibát meg lehetne nézni a BASIC-ben? Elvileg ha beteli a verem, 5100-as hibaüzenetet kapnánk (Insufficient stack space) gyakorlatban viszont lefagy a BASIC. A készítők gondoltak erre az esetre a hibaüzenet meglétéből ítélve, valószínűleg csak a hibaellenőrzésben lehet valami "elgépelve".
Title: Re: Általános BASIC Kérdések
Post by: endi on 2013.July.30. 21:13:27
hm én valahogy előhoztam már ezt az üzenetet, írtam is itt a fórumon róla, de már nem emlékszem hogy is volt

amúgy olyan is van hogy kirajzolunk összevissza vonalakat és ha elég bonyolult akkor a fill csak részben fillezi be :)
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2013.July.31. 22:07:48
Quote from: endi
hm én valahogy előhoztam már ezt az üzenetet, írtam is itt a fórumon róla, de már nem emlékszem hogy is volt

amúgy olyan is van hogy kirajzolunk összevissza vonalakat és ha elég bonyolult akkor a fill csak részben fillezi be :)
Úgy néz ki, hogy nem a verem túlcsorulása miatt fagy le. "Manuális veremkezeléssel, paraméterátadás nélküli eiljáráshívással is lefagy a 38. szint után. Úgy tűnik, a blokkszervezésben a maximális mélység a 38. szint az IS-BASIC-ben. Ez szerencsére csak elméleti határ, ép ésszel ilyen mélységet még rekurzív hívással sem lehet nagyon elérni. Ez a rekurzív útvonalkeresés az extrém kivétel. A rekurzív quicksort (mivel minden lépésben felezi a rendezendő számok halmazát) tehát 2^38 db elemből álló halmazig működőképes marad, ami bőven túlmutat a várható igényeken és a memória kapacitásán...
Viszont életemben először használnom kellett a GOSUB ... RETURN utasításokat...

Valakinek van tippje labirintus generátor algoritmusra, amivel szöveges képernyőre lehet labirintust rajzolni?
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2013.July.31. 22:22:43
Quote from: Lacika
Valakinek van tippje labirintus generátor algoritmusra, amivel szöveges képernyőre lehet labirintust rajzolni?
István régebben csinált ilyesmit, itt. (http://enterpriseforever.com/programozas/basic/msg24217/#msg24217)
Későbbi hozzászólásban van egy Lua script, ami kiírja szöveges fájlba a libaruntust, ami aztán berakható BASIC programba is.
Valamelyik EP-s könyvben volt ilyen basic program, ami labirintust generál és kivezeti belőle az emberkét. Szerintem nem a Hetedhét EP volt az, hanem valami mást... nem emlékszem a címére.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2013.July.31. 22:34:14
Quote from: szipucsu
Valamelyik EP-s könyvben volt ilyen basic program, ami labirintust generál és kivezeti belőle az emberkét. Szerintem nem a Hetedhét EP volt az, hanem valami mást... nem emlékszem a címére.
Az a Tippek Trükkök (http://www.ep128.hu/Ep_Konyv/Tippek.htm)-ben van (Ariadne.bas), de az elég gagyi, többnyire nem átjárható labirintust generál.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2013.August.10. 19:37:06
Ezen az oldalon (http://www.theoldcomputer.com/roms/index.php?folder=Enterprise/128) volt egy basic program, eddig még nem láttam.
Kicsit kezdetleges, de át lehet menni különböző szobákba. Valakinek van ötlete, mi lehet a játék célja?
Title: Re: Általános BASIC Kérdések
Post by: endi on 2013.August.10. 19:57:35
graphics
run 3190

és kirajzol egy új pályát :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2013.August.10. 20:04:56
Quote from: endi
graphics
run 3190

és kirajzol egy új pályát :)
A jelszó ARTAX, de utána hibaüzenet, mert a közepén indítottuk a játékot. :D
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2013.September.12. 10:29:41
Quote from: szipucsu
Régebben próbáltam basic-ből elmenteni pontonként a grafikus képernyő tartalmát, de eszméletlen nagy file lett volna tömörítés nélkül.
Itt gondolom két hibát csinálhattál:
- a BASIC (EXOS) virtuális koordináta rendszere szerint vetted a pontokat, így egy-egy valódi pixel sokszor el lett tárolva.
- ha numerikus változóban mentetted el az durván sokszor több helyett foglal mint amennyit valójában foglal a pixel a videó memóriában.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2013.September.12. 10:43:22
Quote from: Zozosoft
Itt gondolom két hibát csinálhattál:
Az lehetséges, mert nem annyira értek hozzá, csak valami ilyet próbáltam:

1 OPEN #1:"DISK:KEPERNYO" ACCESS OUTPUT
10 FOR A=1 TO valamennyi
20   FOR B=1 TO nemtudommennyi
30     LOOK AT A,B:C
40     PRINT #1:STR&(C)
50   NEXT B
60 NEXT A
100 CLOSE #1

Fejből írtam, szóval lehet, hogy nem stimmel valami, de a lényege kb. ez. A lényeg, hogy valamennyi*nemtudommenyi bájt kerülne a lemezre, ami rá se férne. Ez legjobb esetben is párszázszor párszár, sőt 1280*960, ha jól sejtem, ami 115200 bájt, ami jó esetben is kb. 115 KB, ha jól számolom, ami nem kevés. De úgy emlékszem, nem is vártam ki, hogy basic-ben elmentse az egészet.
Van ennél jobb módja, hogy basic-ből elmentsük a grafikus képernyő tartalmát? Úgy értem, hogy gépi kódú, HEX$-es részek nélkül.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2013.September.12. 11:03:18
A FOR A után 2 színmódban STEP 2 kell, 4 színnél STEP 4, 16 színnél STEP 8, 256 színnél STEP 16. (LORES esetén az adott érték kétszerese)
A FOR B után STEP 4.
Így már csak a tényleges pixelek lesznek leolvasva.

Ez STR&(C) ugye CHR$(C) akar lenni?
Ez így már jobb, így csak 1 bájt 1 pont, de ez még mindig pazarló, 2 színben elég lenne 1 bit, 4 színben 2, 16 színben 4, 256 színnél jó.
Szóval itt olyasmi kéne, hogy összegyűjtjük az értékeket, 2 színben 8-et, 4 színben 4-et, 16 színben 2-t. Az elöző értéket 2-el, 4-el, 16-al szorozva. Így akkor már a fájlban is annyi helyett foglal mint a videó memóriában.

De mindez baromi lassú lenne :-)
Nem véletlenül adták ki hamar a HEX-es megoldást (http://enterprise.iko.hu/technical/Enterprise-AppNote-15.pdf) :-)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2013.September.12. 11:30:08
Ehhez még annyi érdekességet, hogy az attr mód amúgy tömörítés is egyben. Nagy túlzással szólva a jpg elődje, abban is van ilyesmi.

Ugyanis az emberi szem kevésbé érzékeny a színeknél a felbontásra, míg a fényerőre igen. Ezért érdemes a szín infókat kisebb felbontásban tárolni. 
Tehát igenis elmondható hogy a specy grafikája tömörített, méghozzá veszteséges tömörítés, persze virtuálisan (vagy hogy is fejezzem ki magam).

Nem véletlen hogy EP-n is az attr mód adja ki a legjobb eredményt ha fotókat konvertálunk, főleg ha a memória foglalást is beleszámítjuk.

Amúgy persze a palettás grafikai mód is egyfajta tömörítés. Sőt, ezt is a mai napig használják pl a textúra tömörítésben. Sőt, valós idejű kicsomagolás van! És ami még durvább, hogy ez nem hogy lassítja, hanem gyorsítja a kirajzolást, ugyanis jóval kisebb memória sávszélességet foglal, persze megfelelő gpu egységek kellenek hozzá amik számolnak.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2013.September.12. 11:41:28
Quote from: Zozosoft
Ez STR&(C) ugye CHR$(C) akar lenni?
Igen! :D Jó neked, már látásból felismered az ilyet. Én ilyenkor szoktam futtatni a programot, látom, nem azt csinálja, amit kéne, és utána írom át.

Quote
2 színben elég lenne 1 bit, 4 színben 2, 16 színben 4, 256 színnél jó.
Szóval itt olyasmi kéne, hogy összegyűjtjük az értékeket, 2 színben 8-et, 4 színben 4-et, 16 színben 2-t. Az elöző értéket 2-el, 4-el, 16-al szorozva. Így akkor már a fájlban is annyi helyett foglal mint a videó memóriában.
Tehát, végülis olyasmi kéne, ahogy a karakterek pixeleit tárolja a gép soronként egyetlen bájtban? És pl. 2 hatványaival lehetne bűvészkedni. Mármint most a 2 színmódra gondolok. Viszont, ha nem pont 2 hatványa a pontok száma egy sorban (vagy oszlop van itt előbb, már nem tudom), akkor a végénél is valamit trükközni kell, tehát a FOR-ok végén át kell írni a számokat 2 hatványára, és ami így lemarad, azzal csinálni valamit. Jól sejtem?
Természetesen nem akarom ezt már megcsinálni utólag, csak maga az elv érdekelne.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2013.September.12. 11:58:59
A függőleges számlálót kéne kívülre tenni (a példádban FOR B), a vízszintes számlálót pedig pixeles helyett karakteresre venni, TEXT 80 karakterekben számolva HIRES-ben, TEXT 40-ben LORES-ben.
És ezen belül még egy ciklus ami a karakternyi pixeleket szedi össze, ez menne 8,4,2,1 kört színmódtól függően, ebbe lenne a szorozgatás.
A végén lehetne kiírni a bájtnyi adatot, ezután jönne a másik két ciklus NEXT-je.
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2013.September.12. 12:10:12
Az nem lehetne megoldás, hogy a program kiolvassa az LPT-ből a video adatok címét, és aztán egyszerűen byte-onként olvassa a képet SPEEK használatával ?
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2013.September.12. 12:44:52
Tényleg, SPEEK-kel célszerűbb lenne, gyorsabb is, mint két FOR ciklussal! És gondolom, egymás után jönnek a pixel adatok a memóriában, nem kell sorváltásoknál (vagy oszlopváltásoknál) csinálni semmit. És ott is lehetne nem bájtonként, hanem pl. bitenként, ahogy Zozo írta.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2013.October.28. 00:28:36
egy kis basic :)
vonalak egymásra, additív módon (fogjuk rá), és így középen világosabb
újraindítva látható elejétől fogva
Title: Re: Általános BASIC Kérdések
Post by: endi on 2013.October.28. 23:36:18
szaggatott vonalakkal még jobb
amúgy col 16 módban is jó, bias 255-el
Title: Re: Általános BASIC Kérdések
Post by: endi on 2013.October.29. 00:14:41
mi lenne a képlete egy olyan számnak, ami minél nagyobb annál fényesebb színt ad EP-n?
mindig is lusta voltam ilyeneket kitalálni, bár régen rá voltam kényszerülve
de most csak beírom a fórumba, és... :)
(persze a képletet úgy értem, hogy 0-255-ig, azaz ne kelljen az rgb basic függvényt használni)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2013.October.29. 23:49:36
azért tök jó ez a line mode 1, szinte additív színkeverés
íme az újabb művészi alkotásom :)
Title: Re: Általános BASIC Kérdések
Post by: geco on 2013.October.29. 23:54:13
Ez nagyon jó, alt+w-vel :D
Title: Re: Általános BASIC Kérdések
Post by: endi on 2013.October.30. 00:08:54
Most lehet, hogy hülyeség, amit mondok, de lehet hogy azért ilyen az rgb bit kiosztás hogy OR-al additív jellegű lehessen az egymásra rajzolás?
Vagy egy minden bit kosztással ilyen lenne?

Ami érdekes, hogy 16 szín módban a default palettával is additív.
Title: Re: Általános BASIC Kérdések
Post by: geco on 2013.October.30. 00:18:09
Bitkiosztástól függetlenül így OR-olódna sztem, ha jól emléxem, akkor azért ilyen a bitkiosztás, hogy 1 bitmozgató utasítással lehessen egy pixellt odébb mozgatni.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2013.November.01. 17:03:12
egy kis basic effekt, sok demómban használtam olyat hogy basicból rajzoltattam ilyeneket, kimentettem a képeket és felhasználtam a demóban
Title: Re: Általános BASIC Kérdések
Post by: endi on 2013.November.01. 17:08:12
na ez jobb, mert felfele sűrűsödik, így térbelibb hatása van
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2013.November.01. 17:13:57
Hogy tudtok bírtok ilyeneket kitalálni?
Title: Re: Általános BASIC Kérdések
Post by: endi on 2013.November.01. 17:25:47
na itt egy új, az új ORKSOFT DEMÓÓÓ!!!! :D
Title: Re: Általános BASIC Kérdések
Post by: endi on 2013.November.01. 18:37:48
worm1, worm2
Title: Re: Általános BASIC Kérdések
Post by: Ep128 on 2013.November.01. 22:35:53
Quote from: endi
na itt egy új, az új ORKSOFT DEMÓÓÓ!!!! :D
Endi ezt "normál" módon is rakosgasd ki, mert van aki eredeti EP -t használ és nem Emu -t! ;-)
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2013.November.01. 23:25:35
Kis "optikai tuning".
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2013.November.01. 23:29:44
A BOLYGO eljárást valakinek nincs kedve "átírni" radiánba? A TP változatba gondoltam üres várakoztató ciklusok helyett... Már a gimiben sem állt rá az agyam a radiánra. :smt012
Title: Re: Általános BASIC Kérdések
Post by: endi on 2013.November.01. 23:52:36
Quote from: Lacika
Kis "optikai tuning".
a bias színekkel még a piros "lávára" is lehet rajzolni, még látványosabb lesz, nulla proci időt használva
Title: Re: Általános BASIC Kérdések
Post by: endi on 2013.November.02. 00:05:32
na itt van 3 demó rész amiben basic-el rajzolt dolgokat használtam
1: paletta rotálás, távolodó csillagok
2: a középső parallax scrollos rasztercsík
3: a buborékok
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2013.November.02. 00:12:37
De honnan tudod azt előre, hogy odaszórsz egy rakás pixel szmötyit, aminek ha villogtatod a színét, az tök jól fog kinézni?
Title: Re: Általános BASIC Kérdések
Post by: endi on 2013.November.02. 00:19:37
Quote from: Zozosoft
De honnan tudod azt előre, hogy odaszórsz egy rakás pixel szmötyit, aminek ha villogtatod a színét, az tök jól fog kinézni?
jaj hát tök egyszerű, szerintem ránézésre látható hogy vannak kirajzolva
sőt, sokkal jobbakat is lehetett volna, csak hát annak idején az igazi EP-n ügye ki kellett várni míg megrajzolja és jó lassú volt :)
főleg hogy én gondolkodás helyett kísérletezni szoktam inkább míg kijön valami jó eredmény
aki jobb matekos az pl szinuszkoszinusz izékkel meg hasonlókkal sokkal jobbat tudna, főleg ma egy gyors emulátorban :)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2013.November.02. 00:33:29
itt egy új additív robbanás
most az rgb függvényt használtam
előbb szép pirosan egymásra adódnak a piros színek, aztán belejön a zöld, majd a kék
emulátort max sebességre kell kapcsolni hogy élvezhető legyen
Title: Re: Általános BASIC Kérdések
Post by: endi on 2013.November.02. 13:32:59
na ez most béna, de a lényeget mutatja amit akartam, hogy ilyen sakktáblásat is lehet
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2013.November.02. 18:06:12
Quote from: endi
a bias színekkel még a piros "lávára" is lehet rajzolni, még látványosabb lesz, nulla proci időt használva
És hogy töltöm ki a zárt alakzatokat? Nekem egyik line style-ban sem sikerült az alatta lévő "láva" miatt.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2013.November.02. 18:23:36
Quote from: Lacika
És hogy töltöm ki a zárt alakzatokat? Nekem egyik line style-ban sem sikerült az alatta lévő "láva" miatt.
hát olyat rajzolj amihez nem kell fill
vagy írj rá karaktereket...
Title: Re: Általános BASIC Kérdések
Post by: endi on 2013.November.03. 15:29:06
itt egy új robbanás, szerintem állat :)
Title: Re: Általános BASIC Kérdések
Post by: geco on 2013.November.03. 20:44:19
jó lett :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2013.December.08. 01:45:17
Az a baj, nem lehet akármekkora véletlen számot generálni:

[attachimg=1]

Márpedig nekem ilyen nagy kéne.
Hogyan lehetne valami elegáns eljárást vagy hasonlót írni, amivel "akármekkora" véletlen szám generálható? Tudom, a véletlen számok összeadása és véletlenszerű szorzása véletlen számokkal is csodákra képes, de ezt nem tudom, hogyan lehetne megcsinálni... Pedig biztos egyszerű, de a matekos dolgok nem az erősségeim.
Valami olyan programrész kéne, amihez csak meg kell adni, max. mekkora lehet a szám, és mindig ahhoz igazodva generál véletlen számot.
Title: Re: Általános BASIC Kérdések
Post by: geco on 2013.December.08. 08:42:46
Az nem jó, hogy 0-9-ig generálsz számokat, és mindig annyit, amekkora számot akarsz, és a végén szépen összefűzöd őket egy sztringbe, vagy mindegyiket a megfelelő helyiértékkel megszorzod, és összeadod?

Valahogy így:
Code: [Select]
osszeg=0
for i=1 to szamjegyek
  osszeg=osszeg+rnd(9)*10^i
next i

Ha ez nem megy túlcsordulás miatt, akkor marad a sztringes, összefűzéses megoldás.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2013.December.08. 09:22:48
Vagy nézzünk bele a felhasználói kézikönyvbe :-)
Quote
RND
 Egy 0 és 1 közötti véletlenszámot állít elő, de az 1-et nem éri el soha. Az értéktartományt szorzással tudjuk növelni, pl. az INT(RND*100) egy 0 és 99 közti egész számot ad.
Title: Re: Általános BASIC Kérdések
Post by: GUS on 2013.December.08. 10:51:18
Még gyerekkoromban az Ep memóriáját túrva(egyszerű print chr$(peek(x))), bukkantam két szóra. Nevezetesen a PRIORITY és a PROTECT. Most eszembe jutott, gyorsan össze is ütöttem egy kis programot és még mindig ott vannak. :-) De mit jelentenek? Mire valók? Annyit kiderítettem hirtelen, hogy egyik sem utasítás. A protectet nem sikerült kivallatnom, a priority viszont valami gépi feltétel lehet, mert működik vele a toggle és a set. Az ask viszont nem. Szóval mik lennének ezek, mi lehet a céljuk? Miért nincsenek a könyvekben?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2013.December.08. 11:27:55
Quote from: GUS
a priority viszont valami gépi feltétel lehet, mert működik vele a toggle és a set.
38-as EXOS változót állítja, azaz a SPRITE prioritást. Ennek megfelelően csak EXOS 2.1-től van.
PROTECT logikusan a 34-es EXOS változót állítaná, nem tudom miért nem működik...
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2013.December.08. 12:18:38
Két nagyon hézagpótló program. Az egyik eszperantóul, a másik törökül írja ki betűkkel a számjegyekkel beírt számokat, maximum 7 számjegyig.
Probléma, hogy sor végén néha a furcsa karaktereknél választja el a szavakat. Erre nincs valami megoldás? 80-as szöveges képernyőt nem akarnék hozzá. A betűkön és számokon kívül nincsenek még olyan karakterek, amiket betűként kezel, és ha nem fér ki a szó egy sorba, akkor az egész szót új sorban kezdi? Ezek az ALT-tal elérhető jelek nem bejövősek ilyen célra.
Title: Re: Általános BASIC Kérdések
Post by: GUS on 2013.December.08. 14:15:23
Aha. Kösz. De ez csak olaj volt a tűzre... :-) Újabb kérdések merültek fel. Most akkor van sprite kezelés beépítve? Az Exos könyvben meg valami külső sprite szín van. Mi az, hogy külső? Valami másik eszközről?

A protectet meg ezenkívül sem értettem soha. Ha betöltesz egy ilyennel jelzett állományt, mondjuk basicbe, akkor nem működik utána a save? Vagy egyik csatornáról a másikra nem engedi? 
Vagy ez olyan mint a kazetták esetében?
Arra gondolok, hogy ott ha kitörtük a kis ablakot, akkor nem lehetett felülírni, persze ez könnyen kikapcsolható volt. (Persze ki is próbálhatnám... De akkor mi benne a publikus? :-) )
Nos, itt is valami hasonlóról van szó?
Meg aztán vajon miért nincsenek egyik basicről szóló könyvben sem?
Valami félbe maradt dolog lehet?
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2013.December.08. 15:10:12
Quote from: szipucsu
Az a baj, nem lehet akármekkora véletlen számot generálni:
Márpedig nekem ilyen nagy kéne.
SZAM=INT(RND*999999+1)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2013.December.08. 15:58:32
A véletlenszám már stimmel, köszi mindenkinek!

Végül azt találtam ki az ALT-os karaktereknél történő elválasztás ellen, hogy nagybetűket használok, azokat definiálom át, mert azok itt úgyse kellenek. De még pl. a q, w, x betű sem kell most, azokat is át lehetett volna definiálni, csak az kevés lett volna. Tényleg nincs valami "szobatiszta" megoldás az ilyen ALT-os karakterek elválasztása ellen? Hiszen a német gépeken ezeket még használják is...

A PROTECT nem tudom, mit csinál, de még a Beach Head úgy volt meg eredetileg, hogy mezei másolóprogrammal nem lehetett másolni. Nem a Mirror World-höz hasonló módszerrel volt megcsinálva a töltés, rendesen 4KB-onként voltak "szünetek" töltés közben, de a filenév betöltésekor/mentésekor megjelent valami hibaüzenet, hogy nem másolhat.
Title: Re: Általános BASIC Kérdések
Post by: Povi on 2013.December.08. 17:05:46
az alt-os karakteres elválasztós dologhoz az EDITOR: eszközt kéne átírni...
Title: Re: Általános BASIC Kérdések
Post by: lgb on 2013.December.08. 17:54:34
Quote from: GUS
Aha. Kösz. De ez csak olaj volt a tűzre... :-) Újabb kérdések merültek fel. Most akkor van sprite kezelés beépítve? Az Exos könyvben meg valami külső sprite szín van. Mi az, hogy külső? Valami másik eszközről?

Csak tippre; a Nick EC (external colour) bemenetei, amihez elvileg terveztek volna valami "kulso sprite" cussot is kesobb. Amugy ilyet lehetne most is az EC bemenetekre kotni, ha valaki csinalna egyet 1x :-D
Title: Re: Általános BASIC Kérdések
Post by: GUS on 2013.December.08. 18:19:26
Ezek az EC bemenetek esetleg a hőn áhított hardveres sprite kezelés csatolását tennék lehetővé?
Érdekes lenne megkérdezni Tanner urat, tud-e valamit erről a két szóról (protect, priority). Hátha voltak tervek, de valamiért elmaradtak.
Mert a Basicben benne vannak, könyvekben nincs. Ime egy újabb rejtély.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2013.December.08. 18:33:06
Quote from: Povi
az alt-os karakteres elválasztós dologhoz az EDITOR: eszközt kéne átírni...
Ami már megtörtént a német bővítésben. Lacika szeretné nagyon az EXOS 2.4-be is :oops:
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2013.December.08. 18:33:40
Quote from: lgb
Csak tippre; a Nick EC (external colour) bemenetei, amihez elvileg terveztek volna valami "kulso sprite" cussot is kesobb. Amugy ilyet lehetne most is az EC bemenetekre kotni, ha valaki csinalna egyet 1x :-D
Így van!
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2013.December.08. 19:23:40
Quote from: Zozosoft
PROTECT logikusan a 34-es EXOS változót állítaná, nem tudom miért nem működik...
Meg van! :ds_icon_cheesygrin:
SET TAPE PROTECT n
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2013.December.08. 19:39:28
Quote from: szipucsu
A PROTECT nem tudom, mit csinál
Egy flaget állít a magnós fejlécben, és ha ilyet talál a TAPE: akkor nem lehet egyszerre megnyitva két magnós csatorna írásra és olvasásra. Mondjuk a mi időnkben már rengeteg másolóprogram volt ami a memóriába töltött be, és így nem használt két csatornát egyszerre.
Title: Re: Általános BASIC Kérdések
Post by: GUS on 2013.December.08. 19:54:20
Protect: Igen. Egyik megoldásként, én is valami ilyesmire gondoltam. Gratula.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2014.January.16. 21:18:53
IS-BASIC-be nem csak Turbo Pascal-ból lehet "tükörfordításban" átírni programot, de Logo-ból is. Néhány példa a neten talált programból.
Title: Re: Általános BASIC Kérdések
Post by: Tuby128 on 2014.March.04. 08:24:10
Hogyan lehet egy billentyűt beolvasni Basicben? Mondjuk van egy menü ahol 1-4-ig lehet válogatni, és az adott gomb lenyomására menne tovább?
Itt nem a szövegbevitelt szeretném használni, amit enterrel kell nyugtázni.
Title: Re: Általános BASIC Kérdések
Post by: geco on 2014.March.04. 09:54:47
Ha jól emléxem:

10 GET A$
20 IF A$="1" then ...
30 IF A$="2" then ...
40 IF A$="3" then ...
50 IF A$="4" then ...
60 GOTO 10
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.March.04. 12:10:31
Quote from: geco
Ha jól emléxem:
Jól emlékszel!
Érdekes, most jöttem rá, hogy a GET A$ egyenértékű azzal, hogy LET A$=INKEY$.
Title: Re: Általános BASIC Kérdések
Post by: geco on 2014.March.04. 13:22:11
Quote from: szipucsu
Jól emlékszel!
Érdekes, most jöttem rá, hogy a GET A$ egyenértékű azzal, hogy LET A$=INKEY$.
Ez a megoldás nem lassabb?
Úgy emlékszem, hogy az INKEY$ használata nagyságrendekkel lassabb volt EP-n, mint a GET A$-é.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.March.04. 14:46:05
Quote from: geco
Ez a megoldás nem lassabb?
Az előbb kipróbáltam mindkettőt, egyforma sebességűeknek tűnnek.
Ha sok IF A$... van egymás után, az belassíthatja, akkor érdemesebb kicsit máshogy megcsinálni, de ezt úgyis mindenki tudja szerintem. :D
Title: Re: Általános BASIC Kérdések
Post by: geco on 2014.March.04. 15:09:39
mondjuk én másképp használtam az inkey$-t, valami ilyesmi rémlik:

IF INKEY$="x" then, és ez tűnt alssúnak.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.March.04. 21:56:10
Quote from: geco
mondjuk én másképp használtam az inkey$-t, valami ilyesmi rémlik:

IF INKEY$="x" then, és ez tűnt alssúnak.
Szerintem ez csak akkor figyeli a leütött billentyűt, amikor pont abban a sorban van. Ha több sor kerül be, akkor van, hogy hiába nyomjuk, nem csinál semmit.
Ezért a legjobb figyelni, leütnek-e billentyűt, és ha leütnek, akkor betenni az A$-ba a leütött gomb karakterét és után dönteni el, mit csináljanak fele az IF-ek.
De ezeket biztos mindenki tudja amúgy is. :D
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.April.11. 14:19:48
Azon gondolkoztam, hogy basic-ből megoldható lenne-e egy Armageddon jellegű játék, akár Zzzippel felgyorsítva.
A "kurzor" csúnyán letörölne mindent, ami az útjába kerül. Vagy eleve is úgy kéne megcsinálni, hogy ne vonalat húzzanak a torpedók maguk után, hanem csak az aktuális pozíciójuk látszódna. Esetleg lehetne két vonalból álló torpedó a pont helyett, de sok torpedó esetén nagyon lelassítaná a programot. Vagy a Zzzipnek az nem számít? Ha pedig ki akarna menni a képből, akkor visszapattanna.
Ha ettől eltekintünk, talán a lövést lenne macerás megcsinálni. A legjobb lenne, ha minden megállna a lövés idejére, de úgy meg túl könnyű lenne.
Vagy a lövés helyének koordinátáit kéne megadni gépeléssel, miközben a torpedók jönnének, és ha +/- 50 pixelponton belül lenne a torpedó, akkor siker.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2014.April.11. 14:48:02
Nekem rémlik, hogy a zippel használhatóak között van hasonló.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.April.11. 20:48:22
Quote from: Zozosoft
Nekem rémlik, hogy a zippel használhatóak között van hasonló.
Most végignéztem a BASIC programcsokrot, de nem találtam ilyet.
Ez a játék úgy lenne érdekes igazán, ha ketten játszanák egyszerre. Két részre lenne osztva a képernyő, és fentről egymásnak dobálnák be a játékosok a torpedókat, miközben igyekeznek egymást torpedóit hatástalanítani. Ilyet még nem csináltak?
Title: Re: Általános BASIC Kérdések
Post by: lgb on 2014.April.12. 11:20:34
Van valahol az IS-BASIC-rol korrekt specifikacio? Ugy ertem: nem a "tanuljunk BASIC-et" szeru leiras, hanem ahol definicio szerint le van irva minden szepen egymas utan, az osszes BASIC kulcsszo definicioja, a kifejezesekre a precedencia szabalyok, stb, tehat ami alapjan akar valaki irhatna egy IS-BASIC interpretert nullarol az eredeti helyett.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.April.12. 13:33:36
Quote from: lgb
definicio szerint le van irva minden szepen egymas utan, az osszes BASIC kulcsszo definicioja, a kifejezesekre a precedencia szabalyok
Nem tudom, ilyenre gondolsz-e, de a Felhasználói kézikönyv második felében van ilyesmi. Az Ismerkedés az EP számítógéppel című könyvben is van ilyesmi, de lehet, hogy te valami másra gondolsz.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.July.05. 19:41:42
Hogyan lehet a status sor tartalmát felülírni basic-ből? Milyen SPOKE területre kell írni?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2014.July.05. 22:54:56
Quote from: szipucsu
Hogyan lehet a status sor tartalmát felülírni basic-ből? Milyen SPOKE területre kell írni?
BFF6-7h (49142-3) címről olvasható ki a kezdete.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.July.06. 12:46:11
Quote from: Zozosoft
BFF6-7h (49142-3) címről olvasható ki a kezdete.
Ez így nekem kínai. Ha pl. az IS-BASIC I-jét akarjuk átírni valami más betűre, akkor SPOKE x,y,z-ből mennyi lenne az x,y,z?
Title: Re: Általános BASIC Kérdések
Post by: Z80System on 2014.July.06. 12:58:58
Felteszem azt akarja mondani Zozo, csak nem eleg reszletesen mondja, hogy a status sor memoriajanak kezdocime nem fix, hanem le van tarolva az altala megadott cimre.

Vagyis eloszor ki kell olvasni a memoriabol az altala megadott cimrol, hogy hol van a status sor memoriajanak a cime, az lesz a status sor elso karakterenek cime, ha oda irsz atirod az elso karakteret a status sornak.

Ehhez hozza kell adni annyit, amennyi karakterrel az I arrebb van, ha az I -t akarod atirni, nem pedig az elso karaktert.

De valszeg nem lesz a dologban nagy oromod, hacsak nem megszakitasban irod at, mert a rendszer ugyis frissiti a status sort sztm mindig, es el fogja rontani a te felulirasodat ... valszeg ...
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.July.06. 13:08:29
Hogyhogy nem fix? Géptípusonként (angol, német), konfigurációnként eltérhet?
Tudom, ha pl. basic programból kiadjuk az utasítást és a program véget ér, akkor visszaáll a korábbi status. De amíg fut a program, addig a status is marad.
Zozo (49142-3)-t írt. Elsőre kivonásnak néztem ezt. :D Kb. ennyit értek ehhez. De próbálgattam programból a SPOKE 255,49412,akármennyi utasításokat, és 49412-nél nagyobb számokkal is próbáltam, de nem működött nekem, biztos nem jól értettem.
Title: Re: Általános BASIC Kérdések
Post by: Z80System on 2014.July.06. 13:20:47
Quote
Hogyhogy nem fix? Géptípusonként (angol, német), konfigurációnként eltérhet?
Igen, vagy akár még mástól is, nem csak géptípustól, simán attól is hogy milyen hardverek vannak épp rácsatlakoztatva a gépre, vagy romok, vagy akármik. Ha van cím változója, akkor bármit beállíthat az EXOS, és onnantól az lesz a status sor címe.

Quote
Tudom, ha pl. basic programból kiadjuk az utasítást és a program véget ér, akkor visszaáll a korábbi status. De amíg fut a program, addig a status is marad.
Úgy legyen, de ha program futása közben is lefrissül, akkor ne legyél nagyon meglepve ... :)


Quote
Zozo (49142-3)-t írt. Elsőre kivonásnak néztem ezt. (http://enterpriseforever.com/Smileys/phpbb/ds_icon_biggrin.gif) Kb. ennyit értek ehhez. De próbálgattam programból a SPOKE 255,49412,akármennyi utasításokat, és 49412-nél nagyobb számokkal is próbáltam, de nem működött nekem, biztos nem jól értettem.

Szerintem ő nem kivonást akart, hanem a címek ugye 2 bájtosak 16 bites címzésnél, és megadta mindkét bájtot.

Neked azt szerintem úgy kell felhasználnod, hogy KIOLVASOL a memóriából 49143 -ról, azt megszorzod 256-tal, majd hozzáadod a 49142 -ről kiolvasott bájtot, és ez lesz az első status karakter címe.

Tehát remélve, hogy a status sor címe mindíg a rendszer szegmensen marad, és másik szegmensre azért nem tolja át az EXOS, valami ilyesmit kéne csinálj:

SPOKE 255, ( PEEK(49143)* 256+ PEEK(49142)+ ahányadik_status_karaktert_írni_akarod ), akármennyi

Csak én meg nem tudom a memóriából kiolvasó függvény nevét ... :)

Az általad írt SPOKE formátumból talán:
SPEEK(255, 49143)

SPEEK(255, 49142)


de nem biztos ...
Title: Re: Általános BASIC Kérdések
Post by: Z80System on 2014.July.06. 13:25:54
A 65536 -ok 256 -ra változtak ... bocsesz ... régen volt már a 8 bit ... :)
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2014.July.06. 13:44:02
Z80System jól írja a lényeget.
Mivel BASIC alatt a rendszerszegmens van a 2. lapon, így használható a sima POKE PEEK is, a címet az említett ST_POINTER változóból kell kiolvasni, mivel EXOS 2.0 és 2.1+ esetén máshol van.
Az első pár karaktert a billentyűzetkezelő írja felül megszakításban (CAPS és társai), a végét meg az editor. A közepét meg a BASIC parancsmódban, vagyis program alatt használható.
Title: Re: Általános BASIC Kérdések
Post by: Z80System on 2014.July.06. 13:56:10
Hááát ... nekem nem ment ... :)
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2014.July.06. 13:57:42
Quote from: Z80System
Hááát ... nekem nem ment ... :)
Parancssorból nem is fog, mert egyből felülírja a BASIC :-)
Title: Re: Általános BASIC Kérdések
Post by: Z80System on 2014.July.06. 13:59:53
Quote
Z80System jól írja a lényeget.
Te tényleg csak a lényeget ... :)

"SPEEK(255, 49143)"

Hogy akarnék már 49ezret kiolvasni egy szegmensről ... :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.July.06. 16:24:51
Nekem ez nagyon kínai. :D

Ebbe a programba mit kéne beleírni, hogy felülírja a status sort a DATA sorokban megadott betűkkel, lehetőleg mindenféle konfigurációban?


Code: [Select]
100 RESTORE
110 FOR A=1 TO kb. 30
120   READ A$
130   SPOKE valamennyi,valamennyi+A,ORD(A$)
140 NEXT A
150 DATA E,Z," ",A," ",S,Z,O,V,E,G," ",K,E,R,U,L," ",A," ",S,T,A,T,U,S," ",S,O,R,B,A

Title: Re: Általános BASIC Kérdések
Post by: Z80System on 2014.July.06. 16:29:08
hat ami ott van a mellekelt kepen.
amelyikre irtam hogy nem muxik.
zozo szerint az muxik, de csak egy program futasaig.
a poke sorban.
Title: Re: Általános BASIC Kérdések
Post by: geco on 2014.July.08. 12:53:11
Műxik, itt a példa :)
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2014.July.08. 13:04:46
És ha a karakterkódhoz +128-at adunk, akkor piros lesz.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.July.08. 18:21:02
Ez nagyon király, köszi mindenkinek!
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2014.August.06. 09:47:18
A BASIC-ban nem lehetne megkeresni azt a rutint, ami ellenőrzi a SET VIDEO X változóban megadott értéket és a maximális 42-őt átírni 44-re?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2014.August.06. 09:53:34
Quote from: Lacika
A BASIC-ban nem lehetne megkeresni azt a rutint, ami ellenőrzi a SET VIDEO X változóban megadott értéket és a maximális 42-őt átírni 44-re?
Szerintem az a VIDEO: eszközben lesz.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2014.August.06. 10:24:14
0-ás szegmens D385h :-)
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2014.August.06. 10:32:12
Quote from: Zozosoft
0-ás szegmens D385h :-)
Exos 2.4 mikor is jelenik meg? :oops:
Title: Re: Általános BASIC Kérdések
Post by: endi on 2014.August.16. 22:56:39
Érdekes, nincs GRAPHICS: alfórum? :)
Na mindegy, ide írom.
Milyen karakter generálók vannak EP-re? Már nem emlékszem. Illetve valszeg én sajátot használtam.
Olyan kéne ami kiírja a kódokat amit basicbe be lehetne írni, szóval nem akarok kimentéses-betöltéses karaktereket.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2014.August.16. 23:11:48
Quote from: endi
Érdekes, nincs GRAPHICS: alfórum? :)
Na mindegy, ide írom.
Milyen karakter generálók vannak EP-re? Már nem emlékszem. Illetve valszeg én sajátot használtam.
Olyan kéne ami kiírja a kódokat amit basicbe be lehetne írni, szóval nem akarok kimentéses-betöltéses karaktereket.
Az Util programcsokorban (http://ep128.hu/Ep_Util/Prg/Util.rar) Szipucsu CHR2012 című programja ilyen.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2014.August.17. 11:55:38
Quote from: Lacika
Az Util programcsokorban (http://ep128.hu/Ep_Util/Prg/Util.rar) Szipucsu CHR2012 című programja ilyen.
aha tök jó! teljesen igényes progi!

edit: kivéve a hangokat :) úgy értem azok nem valók ilyen programba :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.August.17. 12:13:23
Quote from: endi
edit: kivéve a hangokat :) úgy értem azok nem valók ilyen programba :)
Ebben bizony igazad lehet. Csak hát mindig kell valami újítással próbálkozni.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2014.August.19. 00:17:09
na itt a módosított szipucsu féle font editáló első verziója.
a lényeg hogy olyan graphics 16 print utasítással írható karaktereket akartam definiálni amik xor művelettel (line mode 3) egymásra írva új színt generálnak. azaz 2x kell kiírni és 3 színünk lesz, plusz a fekete. basic sprite! :)

aki nem emlékezne, a miner játékom így lett felturbózva:
http://ep.lgb.hu/jsep/demo/?snapshot=http://deadcyborg.com/miner2013_final_zzzip.ep128s&autostart=yes
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.August.19. 20:44:23
Quote from: endi
na itt a módosított szipucsu féle font editáló első verziója.
Nem gondoltam volna, hogy valaki még használni is fogja ezt a programot.
Biztos nagyon jó, de nem értem a működését. Pl. hogyan lehet 2-3 színű karaktereket definiálni a grafikus képernyőre? Hiszen csak egy szín állítható be definiálásnál, ahogy korábban is.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2014.August.19. 21:11:58
a line mode 3 xor művelet. tehát ha pl 1es színnel kiírok egy karaktert, majd 2-es színnel ráírok egy másikat, akkor 3 szín jön létre (plusz a fekete)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2014.August.19. 23:17:09
amúgy az még nem biztos hogy használni is fogom. de lehet.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2014.August.23. 19:38:51
ezt még ki akartam próbálni, persze tudtam hogy nem lesz jó
a lényeg hogy a pálya elemeket nem printtel írom ki, hanem vonal, fill stb.
persze nyilvánvaló volt hogy lassú lesz :) még így is hogy pár vonal csak
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.August.23. 20:06:37
Quote from: endi
http://ep.lgb.hu/jsep/demo/?snapshot=http://deadcyborg.com/miner2013_final_zzzip.ep128s&autostart=yes
Na, most az első szintet a webes emuval is megcsináltam.
Érdemesebb lenne olyat kihozni ebből a játék-alapból, hogy nincs annyiféle ellenség, nincs gravitáció, és pacman módjára össze kell szedni a pontokat a labirintusban. Lehetne néhány véletlenszerűen mozgó ellenfél. Talán így gyorsabb is lenne.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2014.August.23. 21:33:51
Quote from: szipucsu
Na, most az első szintet a webes emuval is megcsináltam.
Érdemesebb lenne olyat kihozni ebből a játék-alapból, hogy nincs annyiféle ellenség, nincs gravitáció, és pacman módjára össze kell szedni a pontokat a labirintusban. Lehetne néhány véletlenszerűen mozgó ellenfél. Talán így gyorsabb is lenne.
hajrá! csináld meg, alakítsd át, csinálj új pályákat.
ha jó lesz, csinálok hozzá új grafikát!
Title: Re: Általános BASIC Kérdések
Post by: endi on 2014.August.23. 22:04:19
itt a final basic, szóval ami nem zzzzippelt
Title: Re: Általános BASIC Kérdések
Post by: endi on 2014.August.23. 22:20:43
ja és amúgy ez azért lett lassú, mert a zene is benne van, és nincs letiltva a megszakítás
az eredeti miner a gyorsabb, de itt más volt a cél :)
szerintem ki kéne a zenét is szedni, maradhatna 1-2 ellenség
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.August.23. 23:54:36
Quote from: endi
hajrá! csináld meg, alakítsd át, csinálj új pályákat.
ha jó lesz, csinálok hozzá új grafikát!
Ezt én nem hiszem, hogy átírnám, időm sincs rá nagyon, és te tudod, hogyan működik.
De a grafika is maradhatna akár.

Jó ez is, csak lehetne erre az alapra pacmant is építeni. És talán mást is, kreativitás kérdése. :D
Title: Re: Általános BASIC Kérdések
Post by: Z80System on 2014.August.24. 18:56:35
Lehet a BASIC -ben 50Hz -es videomegszakítást kezelni ? Tehát hogy másodpercenként 50X, VSYNC -hez igazodva fusson le egy BASIC program ?
Title: Re: Általános BASIC Kérdések
Post by: Z80System on 2014.September.11. 23:31:42
Az mitől lehet, hogy ha parancssorban kiadom a:

run "pck.ext"

sort akkor szépen betöltődik a pck.ext,

ha meg programból akarom:

10 run "pck.ext"
run

akkor meg insufficient memóriára panaszkodik, és a bővítések is ezerszer listázódnak utána a :HELP -nél ?
Title: Re: Általános BASIC Kérdések
Post by: Z80System on 2014.September.12. 00:22:05
Annyit tudok még közelíteni, hogy olyan, mintha mikor lefutna programból a run "pck.ext" sor, akkor újraindul valamiért a basic program elölről ... és így loop -ba kerül.
Title: Re: Általános BASIC Kérdések
Post by: Z80System on 2014.September.12. 00:25:55
Ha nem tudjuk miért indul újra a basic program, akkor ki tudnám ezt küszöbölni úgy, hogy a programot azzal kezdeném, hogy ellenőrzöm van -e már :file -om, és ha van, akkor nem tölteném a pck.ext -et.

Csak azt nem tudom, hogy tudnám megszerezni basic sztringbe a :help file parancs kimenetét ?
Title: Re: Általános BASIC Kérdések
Post by: Z80System on 2014.September.12. 01:24:40
Megoldottam inkább exception kezeléssel ...
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.September.13. 13:31:04
Quote from: Z80System
Annyit tudok még közelíteni, hogy olyan, mintha mikor lefutna programból a run "pck.ext" sor, akkor újraindul valamiért a basic program elölről ... és így loop -ba kerül.
Nem indul újra a program. Én is szembesültem vele régebben, ha jól emlékszem. Mivel a betöltő futtatása basic-ből látszólag nem csinál semmit, ezzel valószínű a basic program nem elégszik meg, és futtatni akarja. Úgy érzékeli talán, mintha nem töltötte volna be. Ez szerintem egy bug lesz a basic-ben.
Próbáld betölteni az EXT "LOAD""akármi.ext""" utasítással a programból!
Title: Re: Általános BASIC Kérdések
Post by: Z80System on 2014.September.13. 13:37:38
Hát az én konfigomon BASIC RUN -nal újraindul a BASIC program, kipróbáltan.

Az EXDOS LOAD -os módszernél nem indul újra, csak valamiért a :FILE hívása a BASIC programból nem működik.

Úgyhogy maradtam az újraindulós, BASIC RUN -os módszernél.

Az eredményt az SD kártyás topikban találod.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.September.13. 17:06:06
Quote from: Z80System
Hát az én konfigomon BASIC RUN -nal újraindul a BASIC program, kipróbáltan.
Ha azt írod valahova a programban, hogy RUN, arra tényleg újraindul.
Ha meg idézőjelben megadod a betöltendő program címét, akkor azt betölti és elindítja.
A bővítőkkel ilyen fura a helyzet valamiért. Nyilván át akarná adni a vezérlést a betöltött programnak, de nem tudja, mert az "nem csinál semmit" (csak egy "ok" üzenet), ezzel lehet a gond.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.September.13. 17:39:03
Most nézem, az angol fórumon is feltetted ugyanezt a kérdést, ott Zozoval angolul ki is tárgyaltátok, én meg ezt láttam meg először és itt válaszoltam, ugyanazt, mint Zozo... Az ilyeneket nem lehetne kivédeni valahogy?
Title: Re: Általános BASIC Kérdések
Post by: Z80System on 2014.September.13. 18:23:54
Quote
Most nézem, az angol fórumon is feltetted ugyanezt a kérdést, ott Zozoval angolul ki is tárgyaltátok, én meg ezt láttam meg először és itt válaszoltam, ugyanazt, mint Zozo... Az ilyeneket nem lehetne kivédeni valahogy?

Dehogynem, nem kell türelmetlennek lenni, és két helyen tárgyalni ugyanazt.

Tömegesen általában nem csinálják, csak kiemelt esetekben. Nekem ez az volt, mert az SD kari browser nélkül félkarú óriás volt. Vagy inkább gyújtógyertya nélküli ferrari. Vagy rakéta. Vagy fluxuskondenzátor. Vagy ...
Title: Re: Általános BASIC Kérdések
Post by: lgb on 2014.October.02. 00:56:24
Ha mar BASIC, hallott vki a BBC basic-rol? Ugye az Acorn cucca, 6502-es gepeire, _de_ volt belole Z80-as verzio is, CP/M ala! Latszolag nekem IS-DOS alatt el is indul. Mondjuk eleg alien, pl EDIT parancs kell a sor szerkeszteshez stb, bar az is igaz, hogy a CP/M verzio nyilvan elegge "terminal feeling". Ami erdekes benne, hogy bele lehet irni asm reszletet (marminthogy nem hex kodkent stb, hanem ahogy egy assembler-nek is irna az ember ...) kozvetlenul, es el tudja erni a basic-es valtozokat stb. Ez szerintem nem rossz otlet, bar en is csak olvastam rola, gyakorlatban sose probaltam.
Title: Re: Általános BASIC Kérdések
Post by: Povi on 2014.October.02. 09:24:11
Quote from: lgb
Ha mar BASIC, hallott vki a BBC basic-rol? Ugye az Acorn cucca, 6502-es gepeire, _de_ volt belole Z80-as verzio is, CP/M ala! Latszolag nekem IS-DOS alatt el is indul. Mondjuk eleg alien, pl EDIT parancs kell a sor szerkeszteshez stb, bar az is igaz, hogy a CP/M verzio nyilvan elegge "terminal feeling". Ami erdekes benne, hogy bele lehet irni asm reszletet (marminthogy nem hex kodkent stb, hanem ahogy egy assembler-nek is irna az ember ...) kozvetlenul, es el tudja erni a basic-es valtozokat stb. Ez szerintem nem rossz otlet, bar en is csak olvastam rola, gyakorlatban sose probaltam.
Én csak olyan szinten hallottam róla, hogy nézegettem sok-sok DIY Z80 computer projektet, és kb. mindenkinek az volt a cél, hogy a BBC BASIC fusson rajta.
Itt van egy elég érdekes projekt:
http://www.benryves.com/?module=projects&product=z80computer
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2014.October.02. 09:24:27
Megelőzöm Endit :-)
EP-n erre ott a Basic Plus.
Title: Re: Általános BASIC Kérdések
Post by: lgb on 2014.October.02. 09:37:59
Quote from: Zozosoft
Megelőzöm Endit :-)
EP-n erre ott a Basic Plus.

Na arrol meg nem hallottam :) Meg egy urban legend meg az Acorn/BBC basic-rol: allitolag amikor fejlesztettek az elso ARM procit (Sophie Wilson vagy ki, aki erdekes modon amugy akkor meg ferfi volt, most mar nem .... bar ez nem a targyhoz tartozik illetve joga is van hozza, szoval bocsi az offtopic-ert, csak eppen azert nem talaltam rola semmit neten mert az eredeti neven kerestem - csupan ezert emlitettem), BBC basic-ben irtak szimulaciot hozza az Acorn-nal.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2014.October.02. 09:45:28
Quote from: lgb
Na arrol meg nem hallottam :)
Enterprise Plus (http://ep128.hu/Ep_Konyv/Ep_Plus.htm)
Title: Re: Általános BASIC Kérdések
Post by: geco on 2014.October.02. 10:19:00
Quote from: lgb
Ha mar BASIC, hallott vki a BBC basic-rol? Ugye az Acorn cucca, 6502-es gepeire, _de_ volt belole Z80-as verzio is, CP/M ala! Latszolag nekem IS-DOS alatt el is indul. Mondjuk eleg alien, pl EDIT parancs kell a sor szerkeszteshez stb, bar az is igaz, hogy a CP/M verzio nyilvan elegge "terminal feeling". Ami erdekes benne, hogy bele lehet irni asm reszletet (marminthogy nem hex kodkent stb, hanem ahogy egy assembler-nek is irna az ember ...) kozvetlenul, es el tudja erni a basic-es valtozokat stb. Ez szerintem nem rossz otlet, bar en is csak olvastam rola, gyakorlatban sose probaltam.
Hallani hallottam a BBC-ről, még emulátorát is indítottam, a basic-jét nem használtam sose, az EDIT-en nincs semmi meglepő, Speccyn is EDIT funkcióval lehet sort módosítani, CPC-n meg EDIT paranccsal :)
Title: Re: Általános BASIC Kérdések
Post by: lgb on 2014.October.02. 11:26:16
Quote from: geco
Hallani hallottam a BBC-ről, még emulátorát is indítottam, a basic-jét nem használtam sose, az EDIT-en nincs semmi meglepő, Speccyn is EDIT funkcióval lehet sort módosítani, CPC-n meg EDIT paranccsal :)

Tudom, hogy nincs meglepo semmi az EDIT-ben :) Az un "on screen editor" mar fejlett feature, nem mindenhol van :) Viszont amiert irtam: nem tudom, hogy BBC basic az eredeti gepen amire keszult is igy mux, vagy arrol van szo, hogy a CP/M verzioban mivel nem szokas kozvetlen kepernyot kezelni (csak terminal I/O-n at) nem lenne ezt konnyu megcsinalni, ezert lehet, csak a CP/M verzioban van igy. De az is lehet, hogy az eredeti BBC basicben is :)
Title: Re: Általános BASIC Kérdések
Post by: Z80System on 2014.October.02. 12:48:04
Quote
Tudom, hogy nincs meglepo semmi az EDIT-ben (http://enterpriseforever.com/Smileys/phpbb/smiley.gif) Az un "on screen editor" mar fejlett feature, 
Ha úgy nézzük az EP -n is van edit parancs, nem ?

Olyan edit parancs van EP -n, aminek van egy paramétere (a sor száma), és egyszerűségből el is hagyták az "edit" token -t ... :)
Title: Re: Általános BASIC Kérdések
Post by: lgb on 2014.October.02. 12:54:37
Quote from: Z80System
Ha úgy nézzük az EP -n is van edit parancs, nem ?

Olyan edit parancs van EP -n, aminek van egy paramétere (a sor száma), és egyszerűségből el is hagyták az "edit" token -t ... :)

Na igen, de azert van kulonbseg: a C64-re es EP-re jellemzo on-screen editor lehetove teszi, hogy mondjuk egy sorral feljebb menjel, es mondjuk egy karakter editalasa utan ujra entert-t nyomj ra. Tehat nem is az EDIT/stb a kerdes, hanem, hogy terminal szeruen (nem tudsz "felfele" menni, az aktualis sorba irhatsz, se tobb se kevesebb) valo mukodes, vagy az on-screen editalas lehetosege. Mondjuk nem tudom hogyan kene nevezni, onhatalmulag elneveztem on-screen editalasnak :) Ha csak azt nezzuk, hogy sorszam es kesz, attol meg lehetne olyan, hogy ujra be kell gepelned, vagy barmi mas modszer, de nem mehetsz vissza, hogy ott javitsd a kurzorral felfele.
Title: Re: Általános BASIC Kérdések
Post by: Z80System on 2014.October.02. 12:58:18
Hát úgy hívják hogy sor alapú editor meg teljes képernyős editor, nem ? :)

Azt meg nyilván megcsinálták a sor alapúakban is, hogy a sorokat porgetni lehessen az edit sorban, tehát lehet egy karaktert is editálni remélhetőleg.

innentől kezdve már csak az a kérdes, hogy mikor szkrollozol, akkor egy sort szkrollozol, vagy egy képernyőt ... :)
Title: Re: Általános BASIC Kérdések
Post by: lgb on 2014.October.02. 15:27:02
Quote from: Z80System
Hát úgy hívják hogy sor alapú editor meg teljes képernyős editor, nem ? :)

Azt meg nyilván megcsinálták a sor alapúakban is, hogy a sorokat porgetni lehessen az edit sorban, tehát lehet egy karaktert is editálni remélhetőleg.

innentől kezdve már csak az a kérdes, hogy mikor szkrollozol, akkor egy sort szkrollozol, vagy egy képernyőt ... :)

Szerintem akkor sem ugyanaz. "fullscreenben" odamesz, editalod enter, nem kell elotte jelezned, hogy EDIT stb. En filozofiai kulonbseget latok, de ezen mar ne vesszunk ossze :D
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2014.October.02. 15:47:23
Quote from: Z80System
Hát úgy hívják hogy sor alapú editor meg teljes képernyős editor, nem ? :)
Az EXOS-é meg sok képernyős!
Title: Re: Általános BASIC Kérdések
Post by: lgb on 2014.October.02. 20:31:30
Quote from: Zozosoft
Az EXOS-é meg sok képernyős!

Na egen, en elegge meglepodtem, amikor rajottem milyen szepen oldottak meg: nem a BASIC-ben (IS-BASIC) van benne a cucc (maga az editor funkcionalitas leleke) hanem van EXOS-ban ilyen feature, amit barki hasznalhat sajat programjaban is! Ez azert eleg szep es modularis elgondolas!
Title: Re: Általános BASIC Kérdések
Post by: Z80System on 2014.October.02. 20:33:27
Egen ... csak egy iciripicirit lenne gyorsabb a scroll -ja ....
Title: Re: Általános BASIC Kérdések
Post by: Povi on 2014.October.02. 20:53:00
Quote from: Z80System
Egen ... csak egy iciripicirit lenne gyorsabb a scroll -ja ....
Ez tipikusan annak a példája, hogy 8 bites viszonylatban létrehoztak egy baromi jó és előremutató (1984-ben) dolgot (oprendszert), csak a 4MHz kicsit kevés hozzá... :-) Főleg a 80 karakteres képernyőn látszik, hogy milyen lassú akárcsak a karakterírás! Más 8 bites gépen meg csak beírsz egy bájtot a video RAM megfelelő helyére, és meg is jelent a betű. Itt meg a video RAM címe se állandó, legalábbis ha az EXOS-szal nyitsz VIDEO: csatornát.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2014.October.02. 21:00:33
Szerintem jó az a scroll, figyelemmel lehet kisérni a dolgokat, és elkapni azt amit keresünk.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.October.24. 12:18:16
Hogyan lehet a 102-es videólapot 3 karakterrel lejjebb rakni? Mert pl. felette pár sorban egy másik videólapot szeretnék megnyitni.
Próbálkoztam:

Code: [Select]
100 CLOSE #102
110 OPEN #102:"VIDEO:"
120 DISPLAY #102:AT 4

Így elvileg a 4-es sortól kéne megnyitnia, de a DISPLAY utasításhoz érve Editor video channel error lesz.

Beírtam még:

Code: [Select]
105 CLOSE #0
De így meg Invalid display parameters volt. Próbáltam még megadni a DISPLAY után pontosabban:

Code: [Select]
120 DISPLAY #102:FROM 1 TO 24 AT 4
De ez sem segített.

Elvileg az AT 4-gyel is mennie kéne, mert a többi paraméter alapértelmezés, és szerintem a VIDEO X, VIDEO Y, VIDEO MODE is  alapértelmezés szerinti.

Mi nem jó?
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.October.24. 12:30:15
Na, közben rájöttem, mégis meg kell adni a VIDEO X, VIDEO Y, VIDEO MODE paramétereket, mert nem az alapértelmezettek a szöveges, 40 karakteres videólaphoz.
Viszont az a probléma, hogy most meg ott van a kurzor, ha kell, ha nem. Próbáltam a CURSOR COLOUR és CURSOR CHARACTER paraméterekkel hatástalanítani, de így meg felvillan az a hely, ahol van egy pillanatig. Hogyan lehet visszaállítani az eredeti állapotot a 102-es videólapon, ahogy eredetileg nyoma sincs a kurzornak, ha programból írunk rá, de 3 karakterrel lejjebb legyen, mint szokott?
Rájöttem, a CLOSE #0 nem is kell, anélkül is ugyanúgy működik, de a CLOSE #102 természetesen kell az elején.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.October.24. 12:37:43
Közben erre is rájöttem. Először be kell zárni a 0-ás és a 102-es csatornát is, majd megnyitni újra a 0-ás csatornát is az editornak, és kurzor elvtársnak lőttek.
Elbeszélgetek itt magammal. :D

UI: Azért írtam 3 üzenetet egymás után, mert a következő üzenetem lesz a 4000., így majd ünnepelhetek.

UI2: Akkor ha még egy videólapot nyitok, szövegeset, akkor azt nem lehet már teljesen kurzormentesre megcsinálni, mert az már nincs kapcsolatban a 0-ás editor csatornával? Kár... Vagy mégis megoldható valahogy?
Title: Re: Általános BASIC Kérdések
Post by: endi on 2014.October.24. 12:56:05
esetleg:
set cursor character 32

de van set cursor off is
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2014.October.24. 14:24:42
UI2: Akkor ha még egy videólapot nyitok, szövegeset, akkor azt nem lehet már teljesen kurzormentesre megcsinálni, mert az már nincs kapcsolatban a 0-ás editor csatornával? Kár... Vagy mégis megoldható valahogy?

Erre ugyan nem lett BASIC utasítás, de az EXOS-ban van rá escape-szekvencia:
ESC O - kurzorkijelzés bekapcsolása,
ESC o - kurzorkijelzés kikapcsolása

Vagyis, ha x-dik csatornára nem szeretnél kurzort, a csatorna megnyitása után:
PRINT #x:CHR$(27);"o"
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2014.October.25. 16:17:54
de van set cursor off is

Tényleg, ezt elfogadja, de látszólag nem csinál semmit. Bug lenne? Gondolom a megfelelő escape szekvenciákat írná ki a csatornára.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.October.25. 17:29:05
Tényleg, ezt elfogadja, de látszólag nem csinál semmit. Bug lenne? Gondolom a megfelelő escape szekvenciákat írná ki a csatornára.
Szerintem ON és OFF paramétert szinte minden SET utasítás után meg lehet adni, csak nincs mindig értelme. Úgy működhet, mintha az ON értéke 0 lenne, az OFF pedig nem tudom, mennyi.
SET STATUS után is megadhatunk számokat is, ugyanúgy elfogadja, csak nem mindig van értelme.
A SET KEY RATE ON/OFF, SET KEY DELAY ON/OFF, SET TAPE LEVEL ON/OFF is működik, de minek?
A SET TAPE SOUND után is lehet értéket megadni.
A SET INK ON azért mégsem működik legalább. :D
Még a SET BORDER ON/OFF is működik, bár pont fordítva, mint kéne.
Nem csodálkozom, hogy a SET CURSOR ON/OFF-t is elfogadja a gép.
SET KEY CLICK, SET SPEAKER, SET REM1/REM2 után is megadható érték is.
Mókás, hogy a SET STATUS 42-re más jelenik meg a status sorban, mint tudjuk. Lehet, hogy a többi ON/OFF paraméterrel változtatható rendszerváltozókban is elrejtettek nekünk húsvéti tojásokat?

Működik a TOGGLE BORDER, TOGGLE KEY DELAY, TOGGLE KEY RATE is

Mókás még, hogy a színneveknek is számok felelnek meg. A SET INK BLUE még oké, de a SET KEY DELAY BLUE és a SET KEY RATE RED is értelmes a basic számára. A SET STATUS BLACK pedig megjeleníti a status sort.

A SET BORDER BLUE+RED pont a kék és piros keverékszínének állítja be a keretet. De nem minden színt lehet így összeadni, mert 255-nél nagyobb érték jöhet ki.

4000. hozzászólásnak elég érdekeset sikerült írnom kivételesen.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2014.October.25. 19:45:47
na jó de a set cursor x az mit jelentene amúgy?
szerintem itt csak az on és off értelmes (már ha műxik, jól rémlik nekem is hogy annak idején én is szívtam vele)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.October.25. 23:43:04
na jó de a set cursor x az mit jelentene amúgy?
Jó kérdés! A gépkönyvben a SET CURSOR ON/OFF nincs is benne.
Van SET CURSOR CHARACTER és SET CURSOR COLOUR, de amit te írsz, arról nem hallottam még.
Emulátorban kipróbáltam, elfogadja a SET CURSOR ON/OFF-t, de más paramétert tényleg nem, és látszólag nem csinál semmit a videólapon.
Még a TOGGLE CURSOR-t sem fogadja el.

A CHR$(27);"o" tényleg eltűnteni a kurzort.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.October.25. 23:46:21
Ha fájlba listázunk ki egy programot, azt PC-n a jegyzettömbbel szerkesztjük, majd visszatöltjük EP-be, akkor az megfelelően fog mindig működni? Nem kerülhetnek bele olyan karakterek, amiket az EP nem ismer, de a PC igen, és emiatt nem romolhat el a program működése? Teljesen megbízható ez a módszer?
Leginkább az ALT-tal elérhető karakterekre gondolok. PC-n nyilván másképp jelennek meg, de PC-s módosítás és mentés után ez sem zavarhat be?
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2014.October.26. 09:00:35
Ha fájlba listázunk ki egy programot, azt PC-n a jegyzettömbbel szerkesztjük, majd visszatöltjük EP-be, akkor az megfelelően fog mindig működni?

Teljesen biztonságos. Ha hiba került a programlistába, a gép az első hibáig végzi el a betöltést, tehát rögtön látni is  a hiba helyét.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2014.October.26. 11:36:21
Hogyan lehet a 102-es videólapot 3 karakterrel lejjebb rakni? Mert pl. felette pár sorban egy másik videólapot szeretnék megnyitni.
Próbálkoztam:

Code: [Select]
100 CLOSE #102
110 OPEN #102:"VIDEO:"
120 DISPLAY #102:AT 4

És ehhez minek zárod be a 102-est?


Code: [Select]
120 DISPLAY #102:AT 4 FROM 1 TO 24És kész.
Ha zavar, hogy fent megmaradt az első 3 sor, akkor pedig:

Code: [Select]
110 DISPLAY #102:AT 1 FROM 0 TO 24
120 DISPLAY #102:AT 4 FROM 1 TO 24
Az első DISPLAY leveszi.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.October.26. 16:44:42
És ehhez minek zárod be a 102-est?
Gondoltam, bezárom, ami van, és nyitok helyette egy másikat. De amit írsz, az is jó!
Title: Re: Általános BASIC Kérdések
Post by: endi on 2014.October.27. 19:51:48
ja ez a set cursor off olyasmi lehet hogy elfogadja az értelmező a félig kiírt dolgokat is
azaz ha van set cursor character x akkor a character szó kiírása nélkül is elfogadja
persze kérdés mit csinál?
talán van defaultja a set cursor...-nek?
ahogy nézem pl set cursor color is van
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.October.30. 00:36:42
Az envelope storage 20 fázist tesz lehetővé.
Ha a SET SOUND BUFFER-ben beállítunk valami nagy számot (pl. 70), akkor a 20-on felüli 50 az mi elől fogja elfoglalni a helyet?
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.November.05. 21:22:11
A POKE és PEEK helyettesíthető valami mással?
Ha nagy szám van utánuk, pl. PEEK(49140), azt a Zzzip nem tudja elfogadni, mert túl nagy neki... Erre csak az a megoldás, hogy zzzippelni kívánt programokba ne poke-oljunk?
Title: Re: Általános BASIC Kérdések
Post by: Z80System on 2014.November.05. 21:25:11
Assembly rutin ? Helyettesítenéd a poke/peek -et 2 assembly rutinnal,
azok tudnak a basic -nek/től adatot átadni/fogadni ...
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2014.November.05. 21:28:01
SPOKE/SPEEK, abban csak 16383 a max ami kell.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2014.November.05. 21:30:58
A POKE és PEEK helyettesíthető valami mással?
Ha nagy szám van utánuk, pl. PEEK(49140), azt a Zzzip nem tudja elfogadni, mert túl nagy neki... Erre csak az a megoldás, hogy zzzippelni kívánt programokba ne poke-oljunk?

hát én ezt úgy szoktam megoldani hogy pl
x: 20000
x:x+30000

és műxik :)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2014.November.05. 21:51:12
amúgy a poke-os játékokat brutál felgyorsítja a zzzip
sajnos erre annak idején későn jöttem rá, meg akkor már asmban nyomtam
volt egy félig kész játékom poke-os text módos platformer, sajna elveszett
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.November.05. 22:26:07
SPOKE/SPEEK, abban csak 16383 a max ami kell.
Akkora számot még meg tud enni a Zzzip?
És egy adott POKE-t hogyan lehet helyettesíteni egy SPOKE-kal? Hogyan kell "átváltani"?
Egyébként Endinek volt egy programjában az a POKE, ami megrázza a képernyőt, az LPT-vel csinál valamit ütközéskor, az tetszik nagyon.
Vagy assembly rutin? Az az allocate, USR, HEX-féle módszer? Na, ahhoz nem értek. Csak annyit tudok, hogy C9=RET, ezzel kimerültek az ismereteim.
Title: Re: Általános BASIC Kérdések
Post by: Povi on 2014.November.06. 09:20:31
nem próbáltam, de lehet, hogy negatív számot kéne megadni POKE-nál, ha 32767-nál nagyobb értéket akarnánk megadni. Vagyis: -1 = 65535, -2 = 65534 stb.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2014.November.06. 09:45:37
És egy adott POKE-t hogyan lehet helyettesíteni egy SPOKE-kal? Hogyan kell "átváltani"?
Ha jól sejtem a rendszerszegmenst akarod tönkretenni :ds_icon_cheesygrin:
Akkor 32768-at kell kivonni, és SPOKE(255,cím,adat)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2014.November.06. 09:55:10
nem próbáltam, de lehet, hogy negatív számot kéne megadni POKE-nál, ha 32767-nál nagyobb értéket akarnánk megadni. Vagyis: -1 = 65535, -2 = 65534 stb.

mint írtam, a megoldás az hogy össze kell adni két 32k-nál kisebb számot, és műxik :)
nyilván a zzzip a poke lefordításánál átadja a számot, az 1 bit előjel pedig ilyenkor nem előjel
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.November.06. 12:16:11
Ha jól sejtem a rendszerszegmenst akarod tönkretenni :ds_icon_cheesygrin:
Akkor 32768-at kell kivonni, és SPOKE(255,cím,adat)
Ugyan, mosom kezeimet, nem akarok én tönkretenni semmit! :D
De miből kell kivonni 32768-at?

Volt Endinek ez a cuki kis programrésze, ami jól megrázza a képernyőt:

(Segítség, hogyan lehet ide szúrni be a képet a szövegbe?)

Ezt hogyan kellene SPOKE-kal átírni?
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.November.06. 12:21:52
Na jó, nem leszek lusta, berakom szövegként is. Ebben már mindenféle művelet van, sok címen sok értéket kell összeadni. Ebből hogyan lehet SPOKE?

Code: [Select]
  100 LET SHA=PEEK(49140)+PEEK(49141)*256
  110 FOR SHAX=0 TO 200
  120   POKE SHA,244+RND(6)
  130 NEXT SHAX
  140 POKE SHA,247
Title: Re: Általános BASIC Kérdések
Post by: endi on 2014.November.06. 12:48:26
ha megnézel más programomat, ami zzzip kompatibilissé lett téve, ott az ilyet úgy oldottam meg amit írtam, hogy összeadok két 32k-nál kisebb számot
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.November.06. 13:30:42
ha megnézel más programomat, ami zzzip kompatibilissé lett téve, ott az ilyet úgy oldottam meg amit írtam, hogy összeadok két 32k-nál kisebb számot
Igen, olvastam, nem rossz ötlet, de kicsit jobban nézne ki, egyszerűbben, egyetlen SPOKE-kal. De aztán lehet, végül az összeadós módszert választom.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.November.06. 13:36:18
Jó, közben felfogtam, hogy miből kell mit kivonni, kicsit nehéz eset vagyok. :ds_icon_cheesygrin:
Király, akkor most már két módszer is van a megoldásra. :smt041
Title: Re: Általános BASIC Kérdések
Post by: endi on 2014.November.18. 21:44:20
Közben egy kis program.
Mindig is akartam ilyet csinálni, úgyhogy most végre kipróbáltam. De folytatni nem fogom, mert az ötlet nem túl jó.
A lényeg, hogy alul a figura paletta állítással mozog. Azaz 8 színnel ki van rajzolva és váltom a palettát.
Fent meg display-al van egy magas kép scrollozva.
Az lett volna az ötlet, hogy így talán gyorsabb mozgást lehet elérni mint rajzolással. De hát ez így gagyi, nem lehet többszínű a figura (bár jó nagy lehetne), csak 8 pozíciója lehet stb...
De azért egy próbát megért. :)

Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.November.18. 22:40:53
Közben egy kis program.
Az elvet nem értem. Ha 8 színnel van kirajzolva a figura, hogyhogy csak egyszínű lehet?
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2014.November.19. 09:32:47
Az elvet nem értem. Ha 8 színnel van kirajzolva a figura, hogyhogy csak egyszínű lehet?

A nyolc pozícióhoz nyolc palettaszín tartozik, amiből hét háttérszínre van állítva, a maradék egy a figura aktuális pozíciója.
Title: Re: Általános BASIC Kérdések
Post by: Z80System on 2014.November.20. 11:52:26
Hogyan lehet elérni hogy a standard editor (pld. basic editor) buffere nagyobb legyen ... pld. 10 képernyő visszafele, vagy ilyesmi ?

És azt, hogy a status sornak is átváltozzon a palettája ?

És egy (pld. 102) csatornának hogy lehet a palettáját lekérdezni ?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2014.November.20. 12:27:47
Hogyan lehet elérni hogy a standard editor (pld. basic editor) buffere nagyobb legyen ... pld. 10 képernyő visszafele, vagy ilyesmi ?
10 CLOSE #0
20 SET 31,254
30 OPEN #0:"EDITOR:"

De így az FEh szegmens is foglalt lesz.

Quote
És azt, hogy a status sornak is átváltozzon a palettája ?
POKE :-)

Quote
És egy (pld. 102) csatornának hogy lehet a palettáját lekérdezni ?
PEEK :-D
Title: Re: Általános BASIC Kérdések
Post by: endi on 2014.November.20. 12:43:14
kéne írni egy jó kis függvénykönyvtárat ilyen lpt módosításra, lekérdezésre basicben :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.November.20. 13:17:37
Ezt érdemes lenne folytatni. (http://wiki.enterpriseforever.com/index.php/IS-BASIC_tr%C3%BCkk%C3%B6k) Egy helyen lehetne minden, ami pl. basic programozáshoz kell. Karakterek és kódjaik, színek és kódjaik, JOY függvény értékei, néhány fontosabb POKE, PEEK, SET, OUT, hogy mit csinálnak, escape szekvenciák, stb.

Tényleg, a szín megváltoztatására van lehetőség escape szekvenciával pl. 102-es csatornán a PRINT utasításban? Tehát úgy, hogy ne SET INK-elni kelljen minden PRINT utasítás előtt, hanem még a PRINT-elt szöveg elé beírni a kódokat.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2014.November.20. 13:46:27
Tényleg, a szín megváltoztatására van lehetőség escape szekvenciával pl. 102-es csatornán a PRINT utasításban? Tehát úgy, hogy ne SET INK-elni kelljen minden PRINT utasítás előtt, hanem még a PRINT-elt szöveg elé beírni a kódokat.

igen, mindent át lehet vinni esc szekvenciákra, ami tök hasznos amúgy
abban viszont nem vagyok biztos hogy sokkal gyorsabb lesz, főleg ha zzzip fordítást is beleszámoljuk
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.November.20. 15:37:17
igen, mindent át lehet vinni esc szekvenciákra, ami tök hasznos amúgy
És nincs/nem lesz valami gyűjtemény ezekből? Laci nemrég elárulta, hogyan lehet a kurzort kilőni, arról se olvastam még előtte soha sehol.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2014.November.20. 15:48:04
És nincs/nem lesz valami gyűjtemény ezekből? Laci nemrég elárulta, hogyan lehet a kurzort kilőni, arról se olvastam még előtte soha sehol.
EXOS könyv hasznos olvasmány :-) (http://ep128.hu/Ep_Konyv/Exos.htm)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2014.November.20. 16:08:04
EXOS könyv hasznos olvasmány :-) (http://ep128.hu/Ep_Konyv/Exos.htm)

sokszor ESC helyett CTRL-t írnak, az mi?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2014.November.20. 16:16:48
sokszor ESC helyett CTRL-t írnak, az mi?
Egy gomb a billentyűzeten :-D
Ha azzal együtt nyomod az adott betűt, akkor kapod a mellette hexaban megadott kódot.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.November.20. 16:35:32
EXOS könyv hasznos olvasmány :-) (http://ep128.hu/Ep_Konyv/Exos.htm)
Ez bonyolult, elméleti. Konkrét példák nincsenek benne, legalábbis ahogy "belelapoztam", nem találtam.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2014.November.20. 20:44:05
Egy gomb a billentyűzeten :-D
Ha azzal együtt nyomod az adott betűt, akkor kapod a mellette hexaban megadott kódot.

na de ezt nem értem... az esc+karakter az ok, az esc kódja 27 vagy mennyi plusz a karakter
de ctrl?? ez azt jelenti hogy 1 kód, esc nem kell elé?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2014.November.20. 22:12:23
ez azt jelenti hogy 1 kód, esc nem kell elé?
Igen. Gyakorlatilag CTRL A-tól Z-ig, az a CHR$(1)-CHR$(26)
Pl a CTRL M az a CHR$(13), azaz Enter. Ami jól jön akkor, ha annyit programoztál, hogy tönkre ment az Enter alatt a fólia :-) (Nekem volt ilyen.)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2014.November.20. 22:30:13
aha értem, köszi
Title: Re: Általános BASIC Kérdések
Post by: Povi on 2014.November.21. 09:15:07
Ezt érdemes lenne folytatni. (http://wiki.enterpriseforever.com/index.php/IS-BASIC_tr%C3%BCkk%C3%B6k) Egy helyen lehetne minden, ami pl. basic programozáshoz kell. Karakterek és kódjaik, színek és kódjaik, JOY függvény értékei, néhány fontosabb POKE, PEEK, SET, OUT, hogy mit csinálnak, escape szekvenciák, stb.

Tényleg, a szín megváltoztatására van lehetőség escape szekvenciával pl. 102-es csatornán a PRINT utasításban? Tehát úgy, hogy ne SET INK-elni kelljen minden PRINT utasítás előtt, hanem még a PRINT-elt szöveg elé beírni a kódokat.

Nem rossz lista, bár a "SET cuccok" listának sok értelmét nem látom, olvashatatlanná válik a kód, ha SET 26,0-t ír az ember a SET STAUS ON helyett. Pont az IS-BASIC egyik nagyszerűsége veszik el.

Ha valami eszembe jut, én is írok bele.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.November.21. 10:57:30
olvashatatlanná válik a kód, ha SET 26,0-t ír az ember a SET STAUS ON helyett.
Mármint milyen kód válik olvashatatlanná? Eddig nem vettem észre hibát.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2014.November.21. 11:07:38
Mármint milyen kód válik olvashatatlanná? Eddig nem vettem észre hibát.
A program kód.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.November.21. 14:38:41
A program kód.
Ez hogyan mutatkozik meg? Most kipróbáltam, betöltöttem egy basic programot, beírtam az elejére, hogy SET 26,0, elindítottam, később megállítottam, de ugyanúgy ki tudom listázni.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2014.November.21. 14:45:50
Ez hogyan mutatkozik meg? Most kipróbáltam, betöltöttem egy basic programot, beírtam az elejére, hogy SET 26,0, elindítottam, később megállítottam, de ugyanúgy ki tudom listázni.
Ki listázni ki tudod, de nehezebb olvasni, mert elő kell venni a gép könyvet, hogy tudjad, hogy az STATUS ON.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.November.21. 15:00:06
Ki listázni ki tudod, de nehezebb olvasni, mert elő kell venni a gép könyvet, hogy tudjad, hogy az STATUS ON.
Most már értem. Úgy értettem, hogy elrontja a listázást és olvashatatlan lesz a programlista, ha ezt használjuk.
Végülis annyira nem probléma. Ha ír az ember egy programot, akkor az elejére beteszi a beállításokat, utána el is felejtheti. De tényleg jobban mutat a STATUS ON.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.November.23. 12:57:22
Érdekességek, bugok a demokazettán lévő Bomber játékkal kapcsolatban:

- Nincs az elején RANDOMIZE, így mindig ugyanúgy rajzolja ki a házakat.
- 0-ás képernyőn fut, 102-es képernyőn gyorsabb lehetett volna, bár a sebesség így is megfelelő.
- Ha sok bombát dobálunk le egymás után úgy, hogy nem talál, akkor megtelik a hangbuffer és hosszú másodpercekre megáll a játék. Ez a legalsó sorokban próbálható ki, amikor már nincs több ház. Ha egy bomba leér teljesen, a zuhanás hangjának el kéne hallgatnia, de nem hallgat el.
- "Játszható" EXT 1 botkormánnyal is.
- A KEY CLICK-et nem kapcsolja ki az elején a program. Ez akkor rossz, ha nem sorban töltjük be a programokat a demokazettáról, hanem önmagában csak ezt.
- Ha egy közvetlenül alattunk lévő házra ejtünk bombát, a ház leomlása közben a repülő eleje eltűnik hosszabb időre is.
- Ha hosszabb ideig omlik egy ház, a repülő hangja elhallgat.
- Simán meg lehetett volna csinálni, hogy két szín legyen a képernyőn.

És, a másik topikban felvetődött, hogy akár attribútum képernyőre is meg lehetne csinálni, így jó sok szín lehetne.

Meg lehetne csinálni akár a CHR&BOMB kibővített változatát, ahol az átdefiniált karaktereket el is lehetne menteni, és a Bomber is színes lenne. :D
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2014.December.03. 18:43:06
Az Altair BASIC-ben írt gyufajátékot "jobb helyeken" így írják meg:

  100 PROGRAM "Gyufa.bas"
  110 RANDOMIZE
  120 CLEAR SCREEN
  130 LET X=21
  140 PRINT "   **** GYUFAJATEK ***":PRINT
  150 PRINT X;"gyufaszallal jatszunnk."
  160 PRINT "Felvaltva 1-3 szalat vehetunk el."
  170 PRINT "Aki az utolso szalat huzza, veszit!":PRINT
  180 DO
  190   LET L=MOD((X-1),4)
  200   IF L=0 THEN LET L=MIN(RND(3)+1,X)
  210   LET X=X-L:LET G=-1
  220   PRINT L;"szalat huztam. Maradt";X:PRINT
  230   IF X>0 THEN
  240     PRINT "A huzasod:";
  250     DO
  260       LET K=VAL(INKEY$)
  270     LOOP UNTIL K>0 AND K<4
  280     PRINT K
  290     LET X=X-K:LET G=0
  300     IF X<0 THEN
  310       PRINT "Nincs mar ennyi szal!"
  320       LET X=0
  330     END IF
  340     PRINT TAB(19);"Maradt";X:PRINT
  350   END IF
  360 LOOP WHILE X>0
  370 IF G THEN
  380   PRINT "Vesztettem..."
  390 ELSE
  400   PRINT "Az utolso szalat vetted el. Vesztettel!"
  410 END IF

Nem véletlenül kezd a gép a programban: mindig az veszít, aki kezd, tehát illik mindig nyerni...
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.December.09. 20:18:42
GRAPHICS HIRES 16 után hogyan lehet tényleg 16 színt használni? Ha 7-nél nagyobbat adok meg SET INK-nél, akkor nem jó szín jelenik meg, vagy semmi. Próbáltam kiadni előtte a SET BIAS valamennyit, de akkor is ugyanaz a 7 szín jelenik meg 7 fölött is, mint 7 alatt. Biztos nagyon egyszerű a válasz, csak én nem jövök rá...
Title: Re: Általános BASIC Kérdések
Post by: endi on 2014.December.09. 21:06:55
GRAPHICS HIRES 16 után hogyan lehet tényleg 16 színt használni? Ha 7-nél nagyobbat adok meg SET INK-nél, akkor nem jó szín jelenik meg, vagy semmi. Próbáltam kiadni előtte a SET BIAS valamennyit, de akkor is ugyanaz a 7 szín jelenik meg 7 fölött is, mint 7 alatt. Biztos nagyon egyszerű a válasz, csak én nem jövök rá...

a biasnál adtál meg rossz számot
1-7: bias "1"
8-15: bias "2"
ha így érthető
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.December.10. 14:26:47
a biasnál adtál meg rossz számot
1-7: bias "1"
8-15: bias "2"
ha így érthető

Nem volt világos. Szóval színkódot kell megadni utána. Azt hittem, hogy az adott 8-as csoport sorszámát.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2014.December.10. 14:37:22
a biasnál adtál meg rossz számot
1-7: bias "1"
8-15: bias "2"
ha így érthető
Ez nem BASIC-ben van így, hanem NICK közvetlen port írásnál.

BASIC-ben 0-255-ig lehet megadni, amit aztán majd leoszt az EXOS a NICK-nek.
Tehát BIAS 0-7 esetén 0,1,2,3,4,5,6,7 lesz 8-15 színek.
8-15 esetén 8,9,10,11,12,13,14,15, stb

Úgyis lehet mondani, hogy ami színt megadsz, az azt tartalmazó 8 színes csoport lesz.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.December.10. 19:47:03
BASIC-ben 0-255-ig lehet megadni, amit aztán majd leoszt az EXOS a NICK-nek.
Tehát BIAS 0-7 esetén 0,1,2,3,4,5,6,7 lesz 8-15 színek.
8-15 esetén 8,9,10,11,12,13,14,15, stb

Szóval az egyszerűség kedvéért SET BIAS 0 lehet az első színcsoport, SET BIAS 8 a második, utána jön SET BIAS 16, 24, 32, 40, 48, 56...
Szóval ha valaki basic-ben akar kísérletezgetni, milyen színek lennének jók, gondol egy számot 10 és 256 között és beírja a SET BIAS után. :D
Bár szerintem egyszerűbb lenne, ha SET BIAS 1,2,3,4,5,6...-ként lehetne megadni a színcsoportokat, nem tudom, ki hogy van ezzel.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2014.December.19. 19:38:27
hm milyen tök jó basic demókat lehetett volna írni...
úgy értem jobbakat mint amiket csináltak :)
elkezdtem egyet, persze sehogy se áll, aki akarja folytassa :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.December.19. 21:46:33
aki akarja folytassa :)
Kegyetlen értelmes lett...
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2014.December.30. 16:45:18
Fogadjunk, hogy ezt a Spectrum játékot (https://www.youtube.com/watch?v=6qE37ppX9Zo) basicben írták. Átírni nem, de újraírni érdemes lenne EP-re, mondjuk jövő karácsonyra. Szép színesre meg lehetne csinálni, mert a játéktér nagy részén nem kell figyelni ütközésekre és semmire. Endinek gondolom, már vannak is ötletei. :D
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.February.02. 20:33:55
Pl. brutális nagy élmény volt, amikor 1x évesen rájöttem hogy miért kell a randomize függvény, és hogy az a "külső világból" kell hogy vegyen egy információt (time, azaz a bekapcsolás óta eltellt idő a RUN pillanatában, amit ügye én hoztam létre), hogy "belül" - hajjaj - "randomnak" tűnhessen. :)
Valójában mit csinál pontosabban a RANDOMIZE? Azt értem, hogy valódi véletlenszámok lesznek akkor, de pontosabban mi történik a gépben, ha kiadjuk? A program indításának pillanatában a bekapcsolás óta eltelt időből számítja ki a véletlenszámot? És ha csak parancs üzemmódban adjuk ki, hogy RANDOMIZE és utána PRINT RND(X), akkor is működik, nem?
Felesleges programon belül többször kiadni, hogy RANDOMIZE. Ha mégis kiadjuk, nem befolyásolja mégsem a következő RND függvényt, mert nem indítottuk újra a programot?
Title: Re: Általános BASIC Kérdések
Post by: Povi on 2015.February.03. 21:20:32
Valójában mit csinál pontosabban a RANDOMIZE? Azt értem, hogy valódi véletlenszámok lesznek akkor, de pontosabban mi történik a gépben, ha kiadjuk? A program indításának pillanatában a bekapcsolás óta eltelt időből számítja ki a véletlenszámot? És ha csak parancs üzemmódban adjuk ki, hogy RANDOMIZE és utána PRINT RND(X), akkor is működik, nem?
Felesleges programon belül többször kiadni, hogy RANDOMIZE. Ha mégis kiadjuk, nem befolyásolja mégsem a következő RND függvényt, mert nem indítottuk újra a programot?

Az IS-BASIC-ben az RND függvény így működik (Részlet a Tippek és trükkök könyvből):
"Az egy és két byte hosszon tárolt két elővéletlen számból állítja elő az RND értékét. Az RND 65 535 különféle értéket vehet fel, de periodikus ismétlődés csak 524 287 érték után következik be. Az RND kiszámítása (X+32 768)/65 536 - összefüggéssel történik. A képletbe X értékét a 246-247H memóriarekesz tartalma szolgáltatja. A memóriarekesz tartalma az előző tartalomtól és a 211H címen tárolt értéktől függ."

A RANDOMIZE parancs arra van, hogy az RND függvénynek kezdőértéket adjon, a bekapcsolástól eltelt idő alapján.

Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.03. 22:01:38
tehát lényegében a random kezdőértékét a randomize utasítással TE adod meg, hiszen te indítod el a programot egy adott időben a bekapcsolás után

ha mindig tök pontosan ugyanannyi idő tellne el a gép indítása és a randomize függvényt tartalmazó sor elérése között, akkor mindig ugyanazok a random számok jönnének
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.04. 22:33:46
gondoltam írok valami hasonló "engint" mint a régi basic játékaimban volt, pl a mega pacman-ban

scrollos, ez a lényege!

egyelőre a scroll van meg
lehet paraméterezni mekkora legyen a játéktér, mekkora rész látszódjon, elvileg intelligensen lekezel majd mindent, ha megírom és nem lesz bugos :)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.04. 22:37:11
itt egy jobb, nem kell várni a kirajzolásra (persze emun végtelen sebességgel hamar megvan)
ja ami extra hogy a karakter col16-os nagy ugrásokkal mozog, de a scroll karakteresen követi (egy fokkal finomabb)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.05. 00:02:42
képzeljétek rajzoltam egy kört basic-ből :D
úgy értem sin meg cos függvényekkel
életemben sose rajzoltam még így, mert mindig is hülye voltam a matekhoz
viszont mélyen a szívemben :) sejtettem hogy megy és sikerült is! :)
ez nagyon vicces :)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.05. 00:11:51
itt az első eredmény :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.February.05. 12:59:55
egyelőre a scroll van meg
Ez nagyon poén, tovább kéne fejleszteni pacman játékká, például úgy, hogy egymás alatt lennének a Dot collector pályái, és át lehetne mászkálni egyikből a másikba, közben a szörnyek is ott lófrálnának véletlenszerűen. Vagy akár kígyós játék is lehetne.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.05. 16:53:23
Ez nagyon poén, tovább kéne fejleszteni pacman játékká, például úgy, hogy egymás alatt lennének a Dot collector pályái, és át lehetne mászkálni egyikből a másikba, közben a szörnyek is ott lófrálnának véletlenszerűen. Vagy akár kígyós játék is lehetne.

egy általános "engint" akarok csinálni belőle, amivel bárki tud majd egyszerűbb játékokat csinálni
Title: Re: Általános BASIC Kérdések
Post by: geco on 2015.February.05. 18:10:33
egy általános "engint" akarok csinálni belőle, amivel bárki tud majd egyszerűbb játékokat csinálni
Jó, és a sebessége is egész jó, zzzipelve meg sztem tökéletes is lenne a sebessége.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.05. 22:38:18
na már nem lehet belemenni a falba
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.February.06. 20:59:23
na már nem lehet belemenni a falba
Durva, hogy ilyet is meg lehet csinálni...
Szóval ez egy nagy videólap, aminek mindig másik részét látjuk? És a PRINT AT utasítással elérhetjük az alsóbb részeit is, amik nem látszanak?
Oldalirányba ilyen mozgást már gondolom, nem lehetne megcsinálni.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.06. 21:06:34
szipucsu, ez kb ugyanaz lesz mint a megapacman c. játékomban, az is sima basic:
http://www.ep128.hu/Ep_Games/Leiras/Mega_Pac_Man.htm

igen, sajnos oldalirányú scrollt így nem lehet
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.February.08. 11:17:36
na már nem lehet belemenni a falba
Ez a változat véglegesnek tekinthető, mint engine?

Volt valami eljárás, ami labirintust generál. Azt kéne ebbe beletenni, és el kéne jutni mondjuk a bal felső sarokból a jobb alsóba. Más kérdés, hogy a labirintus kirajzolása nem 1 másodpercig tartana.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.February.08. 11:19:40
na már nem lehet belemenni a falba
Látom, minden sorban mások a színek. Szerintem érdemes lenne színátmenetesre megcsinálni. Akár úgy, hogy pl. a teteje lenne a legsötétebb, az alja a legvilágosabb, vagy akár úgy, hogy menet közben hol halványodna, hol sötétedne felváltva. Utóbbi lenne a látványosabb.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.08. 11:41:59
dehogy végleges, semmi se végleges benne, hiszen csak most kezdtem el :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.February.08. 12:40:51
dehogy végleges, semmi se végleges benne, hiszen csak most kezdtem el :)
Eléggé használhatónak tűnik, azért kérdeztem.
Még mindig nem fér a fejembe, hogyhogy basicben ilyet meg lehet csinálni.
Volt egy basic program, egy labirintus, ahol a normál karakteres képernyőn lehetett mászkálni a falak között, de oldalirányba és függőlegesen is volt scroll. Ez nincs meg senkinek? 4 percet kellett várni az elején, hogy kirajzolja a pályát. Nekem kazettán megvan valahol, csak nem tudom átvenni.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.08. 12:51:40
ha használhatónak tűnik, akkor használd :)
de szerintem várj még, bővíteni fogom tök jó dolgokkal

hm az a program érdekelne amiről írsz, mindenképp mentsd le valahogy pc-re
nem jut eszembe melyik lehet az!
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.February.08. 14:53:24
hm az a program érdekelne amiről írsz, mindenképp mentsd le valahogy pc-re
A betöltőjét betöltötte a gép, de a többit nem. Itt van vesztességmentes tömörítéssel (flac) a csipogás a betöltéshez. Már fogalmam sincs, hogyan lehet ebből kinyerni PC-n az adatokat, volt valami Tapir meg valami más is, de nagyon régen nem használtam már.
44KHz-n vettem fel, sztereó hanggal. Mivel túl nagy lenne a fájl feltöltéshez, kivágtam belőle a bal csatornát és csak azt töltöm fel, hátha...
Nagyon kíváncsi lennék én is. Jó lenne, ha valaki ki tudná nyerni belőle a programot.
Cuki kis mély háttérzaj is van hozzá, talán az nem gond.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.08. 14:58:49
hát ehhez én se értek, de remélem valaki...
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2015.February.08. 16:20:51
Az ep128emu csomagban található tapeedit program két file-t lát rajta (labirintus-2 és labirint.prg), egyik sem CRC hibás.

[attachurl=1]
[attachurl=2]
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.February.08. 16:55:37
Az ep128emu csomagban található tapeedit program két file-t lát rajta (labirintus-2 és labirint.prg), egyik sem CRC hibás.
Köszi! Rémlett nekem is, hogy az EP128Emuban is van valami ilyen, de nem tudtam már, hogy hol.
Sajnos ez nem az a program. :( De még keresgélek akkor, valamelyik kazettán meg kell lennie.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.08. 16:58:53
mondjuk ezt se ismertem :)
mondjuk nem is egy nagy szám.
úgy lett volna jó ha több videólapra kirajzolja a lehetséget nézeteket és úgy marha gyorsan lehetne mozogni
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.08. 18:26:09
csináltam pixeles scrollt bele :)
a trükk az hogy a felső sor magasságát állítom, ezáltal lejjebb vagy feljebb tolva pixelenként az alatta lévő sorokat
a display utasítás aztán ezt törli, és egyben az új pozícióba állítja a megjelenített képet
sajnos ügyebár nem túl szép, alul és felül is bugos...
de basic, és pixeles :)
na meg persze nem folyamatos pixeles sajnos, hanem csak a 9 soros ugrásokat végzi el pixelesen
Title: Re: Általános BASIC Kérdések
Post by: geco on 2015.February.08. 18:45:36
és tök gyors, és ha az alsó sor magasságát is állítanád?
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.08. 19:01:28
és tök gyors, és ha az alsó sor magasságát is állítanád?

ja majd próbálom, egyelőre valamiért nem jött össze
azon is fél órát szenvedtem, mire rájöttem hogy a display utasítás a status sor lpt-jét nem állítja helyre, ugyanis eredetileg azt változtattam, és akkor nem lett volna fent az a bug... csakhogy nem állítja helyre, úgyhogy fél órán át nem jöttem rá hogy nem a kódban van a bug :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.February.08. 19:03:22
mondjuk ezt se ismertem :)
mondjuk nem is egy nagy szám.
úgy lett volna jó ha több videólapra kirajzolja a lehetséget nézeteket és úgy marha gyorsan lehetne mozogni
Végülis meg lehetne akár ezt is csinálni. Ha van elég videómemória.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.February.08. 19:07:43
csináltam pixeles scrollt bele :)
Ez azért már elég jó!
Nekem úgy tűnik, de lehet, hogy rosszul érzékelem, hogy csak felfele menésnél van scroll, lefele menésnél nem mindig, vagyis egy idő után nincs.

Nem tudom, menet közben mennyire lehetne a pályát variálni. Olyan programot is lehetne csinálni belőle, hogy alulról halad felfelé mondjuk egy béka (mert pont békaugrásos érzetet kelt a mozgás), és kerülgetni kell az akadályokat. De nem csak ekkora pályán, hanem jóval hosszabb pályán, csak ehhez mindig át kéne rajzolni a következő sort.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.08. 22:52:57
semmi lényegi fejlődés, elszórakoztam a grafikával :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.February.08. 23:24:34
semmi lényegi fejlődés, elszórakoztam a grafikával :)
Ez is jó, meg kell őrizni ezt is és az ezelőttit is, meg az azelőttit is. Talán szintenként változna a grafika.
Azok a pont nagyságú tárgyak mondjuk nem túl jók, túl picik ahhoz, hogy elállják az utat. Azt hittem, fel lehet venni őket.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.09. 00:41:46
csináltam egy zzzip tesztet, elég gyors :)
viszont néhol bugos a pálya, furcsa
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.09. 00:52:22
hm ahogy nézem a pixel scroll eltűnt belőle a zzzippelés során
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.February.09. 13:11:55
hm ahogy nézem a pixel scroll eltűnt belőle a zzzippelés során
Vagy csak a sebesség miatt nem tűnik már fel, de szerintem azért más így. Már a basic programban sem lehetett mindig érzékelni.

Furcsa, hogy bugos a pálya. Nem használsz esetleg lokális változót, amit a Zzzip nem szeret? Nekem a DEF(BE,FINE) gyanús.
Ha a pixeles scrollt kiveszed, akkor is bugos lesz zzzippelés után? Hátha amiatt kerül bele.

Még a basic változatban érzékeltem, hogy ha lefele mész a pályán, akkor nem olyan jó a scroll. Nem abból a pozícióból scrollozik a képernyő, ahol éppen van, hanem kicsit előtte lejjebb ugrik. Ha fölfelé megyünk, akkor ez nem jön elő.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.February.09. 13:47:44
Na, megtaláltam egy kazettán végre a labirintus programot, amiről írtam. Rosszul emlékeztem, nincs oldalirányú scroll benne, csak függőleges. Endiéhez képest eléggé egyszerű, de a maga nemében eléggé különleges basic program! Eddig még nem láttam sem az ep128.hu, sem más oldalon.
Indulás után egyből 4 perc türelmet kér, ekkor generálja a labirintust. Ha jól láttam, véletlenszerűen mindig más labirintust generál. A snapshotban, amit betettem, már csak 5 másodperc van hátra a 4 percből, hogy senkinek ne kelljen várnia.

Ezt tovább lehetne fejleszteni, mondjuk úgy, hogy nem induláskor generálja a labirintust, hanem előre már egy rakat labirintust generálunk, elmentjük, és véletlenszerűen ezek közül tölt be induláskor. Meg egy kis zzzippelés is jól jönne. Igaz, akkor már inkább Endi programját kéne továbbfejleszteni, de miért ne fejlesszük ezt is? :D

Endi, a labirintust generáló eljárást át tudnád ebből rakni a te programodba? A bal felső sarokból kéne eljutni a jobb alsóba.

Ez a tapeedit az EP128emu csomagban nagyon jó! Kétszer CRC erroroztam igazi magnóval és géppel, ez meg egyből megette a wav fájlt.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.February.09. 15:46:10
Kicsit belepiszkáltam a programba, most már nem kell 4 percet várni az elején, csak 1 percet. Az out 191,12 és a poke 56,201 csodákra képes. :D

Hát még ha Zzzippel lefordítanánk, még gyorsabb lenne, gondolom. A Zzzippel fordításhoz viszont pár apró dolgot módosítani kéne, mert akad benne 2 hely, ahol nem egész számokat kezel.
Az egyik:
Code: [Select]
610 IF RND>.5 THENA szakikat kérdezem: Ezt mivel lehetne helyettesíteni, aminek pontosan ugyanez lenne a hatása? IF RND(10)>5 THEN egyenértékű lenne vele?

A másik, a páros számok felismerése. Páros számra van szüksége valahol a programnak, és ezt a páros számot is RND-ből állítja elő. Először megvizsgálja, páros-e, úgy, hogy elosztja kettővel, és ha az INT függvénnyel megvizsgálva nem páros, újra generál, amíg páros nem lesz. Páros szám generálásához hogyan lehetne kikerülni az INT függvényt?
Code: [Select]
620 LET Q=RND(39)
630 IF Q/2<>INT(Q/2) THEN GOTO 620
Ha jól értem, itt 0 és 38 közötti véletlenszerű páros számot kell generálni. Ha jól számolom, ugyanaz, mint ez:

620 LET Q=RND(20)*2

Jól számolom? Mert ez lehet 0 is és max. 19 is, és ha ezt megszorozzuk 2-vel pont ugyanaz jön ki, mint az előbb.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.09. 16:00:19
de miért ezt a béna programot foltozgatod?
szerintem annyit nem ér :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.February.09. 16:03:35
de miért ezt a béna programot foltozgatod?
szerintem annyit nem ér :)
Szórakozásból. Miért ne? Úgyse használja senki, de milyen poén, hogy ilyen is van, eddig nem volt. Kísérletezés, sikerélmény. Megörültem, hogy előkerült a szekrény mélyéről és most kicsit elvagyok vele. Értelme nem sok van, az nem baj.
Majd ha a tied kész lesz, azzal is lehet szórakozni.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.February.09. 23:35:17
INT függvény nélkül hogyan lehetne megvizsgálni, hogy egy szám páros-e? A Zzzipnél az INT-nek nincs hatása, így lefordított programnál nem működne.
Code: [Select]
840 IF YY/2=INT(YY/2) THENEhelyett mit lehetne beírni?

Favágó módszer:
Code: [Select]
831 LET YY$=STR$(YY)
832 LET LENYY=LEN(YY$)
833 LET LY$=YY$(LENYY:LENYY)
840 IF LY$="0" OR LY$="2" OR LY$="4" OR LY$="6" OR LY$="8" THEN

Gondolom, ez működne, de nincs valami más módszer? Mert ha ez sokszor lefut egymás után, jelentősen megnöveli a futásidőt.
Title: Re: Általános BASIC Kérdések
Post by: lgb on 2015.February.10. 02:07:40
INT függvény nélkül hogyan lehetne megvizsgálni, hogy egy szám páros-e? A Zzzipnél az INT-nek nincs hatása,

IS-BASIC-rol fogsincs, meg Zzzip-rol sem, de ugy altalaban barmilyen programnyelven en ugy csinalnek pl ilyet, hogy binaris "es" az 1-el, ha az eredmeny 1, akkor ugye paratlan, kulonben meg paros (mert ugye ha kettes szamrendszerben nezzuk, akkor 0-ra vegzodik minden paros szam, es 1-re a parosak, mas lehetoseg meg incs). Sajnos, nem jottem ra most igy hirtelen, hogy IS-BASIC-ben ezt hogy kell csinalni :( Commodore BAISC-ben a "print 12 and 1" es a "print 13 and 1" rendre 0 es 1 erteket ad, IS-BASIC-ben viszont mindig 1-et. Gyanitom, hogy IS-BASIC-ben ez logikai "es", az itt a baj.

Amugy a vicc az egeszben, hogy ez a paros/paratlan kb a vilag legegyszerubb dolga, megis mennyi problemat vet fel. hat hiaba, BASIC, asm-ban egyszeru lenne :)
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2015.February.10. 09:19:17
IS-BASIC-rol fogsincs, meg Zzzip-rol sem, de ugy altalaban barmilyen programnyelven en ugy csinalnek pl ilyet, hogy binaris "es" az 1-el, ha az eredmeny 1, akkor ugye paratlan, kulonben meg paros (mert ugye ha kettes szamrendszerben nezzuk, akkor 0-ra vegzodik minden paros szam, es 1-re a parosak, mas lehetoseg meg incs). Sajnos, nem jottem ra most igy hirtelen, hogy IS-BASIC-ben ezt hogy kell csinalni :( Commodore BAISC-ben a "print 12 and 1" es a "print 13 and 1" rendre 0 es 1 erteket ad, IS-BASIC-ben viszont mindig 1-et. Gyanitom, hogy IS-BASIC-ben ez logikai "es", az itt a baj.

print 12 band 1
Title: Re: Általános BASIC Kérdések
Post by: lgb on 2015.February.10. 09:23:29
print 12 band 1

Aha! Koszi. Btw, valaki, van vmi kimerito jellegu IS-BASIC leiras? Operatorok, struktura stb, nem oktato jelleggel, hogy tanuljunk BASIC-ben, hanem programozoknak szolo referencia. Az IS-BASIC nekem eddig nagyon kimaradt ...
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2015.February.10. 09:45:16
Aha! Koszi. Btw, valaki, van vmi kimerito jellegu IS-BASIC leiras? Operatorok, struktura stb, nem oktato jelleggel, hogy tanuljunk BASIC-ben, hanem programozoknak szolo referencia. Az IS-BASIC nekem eddig nagyon kimaradt ...

Jobb ötletem nincs, mint a Referencia Kézikönyv (http://ep128.hu/Ep_Konyv/Reference.htm), bár erre a "kimerítő" jelző azért túlzás. Sajnos néhány helyen pontatlan (volt eredetileg) és hiányos. Én már javítgattam, kiegészítettem. De ha van még észrevétel, beleírhatom.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.10. 10:09:33
sőt, van BOR is :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.February.10. 10:41:52
sőt, van BOR is :)
A SÖR jobb.

Értem amúgy, mire gondoltok a bináris 0-1 dologgal, de ezt hogyan lehetne megcsinálni BASIC-ben páros szám "detektáláshoz"? Tudja valaki?
Mit kéne a következővel csinálni?
Code: [Select]
840 IF YY/2=INT(YY/2) THENMár gondolkodtam sok mindenen, pl. megszorozzuk kettővel, aztán elosztjuk néggyel. biztos van valami olyan egyszerű műveletsorozat, amire mindig tipikusan eltérő eredmény jön ki páros és páratlan számoknál.
Az a baj, ez az utolsó számjegy detektálása kettes számrendszerben is majdnem annyira "bonyolult", mint az említett favágó módszerem. Ott is az utolsó számjegyet nézi meg, csak ott 0, 2, 4, 6, 8 lehet csak, kettes számrendszerben meg csak 0. Ha a 2, 4, 6, 8 számokat kihagyjuk, nem egyszerűsíti le számottevően a dolgot...


Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.10. 10:52:03
hát if x band 1 (mivel az utolsó bit jelzi hogy páros-e ügyebár)

mondjuk az az érdekes hogy most rájöttem hogy én az or és and műveleteket nem értem a basic-ben :) mármint a tizedesjegyes számábrázolásban

de a legszomorúbb hogy én annak idején nem is tudtam hogy van ez a band és bor :( (joy-nál használtam csak, de nem is gondoltam rá hogy máshol is lehet, vagy hogy mi az igazából...)
Title: Re: Általános BASIC Kérdések
Post by: lgb on 2015.February.10. 11:02:37
Az a baj, ez az utolsó számjegy detektálása kettes számrendszerben is majdnem annyira "bonyolult", mint az említett favágó módszerem. Ott is az utolsó számjegyet nézi meg, csak ott 0, 2, 4, 6, 8 lehet csak, kettes számrendszerben meg csak 0. Ha a 2, 4, 6, 8 számokat kihagyjuk, nem egyszerűsíti le számottevően a dolgot...

Miert ne egyszerusitene le? Kettes szamrendszerben megkapjuk az utolso szamjegyet, ha egy binaris AND muveletet vegzunk a kerdeses szam es az 1 kozott. Az eredmeny az utolso szamjegy lesz pont. Nekem csak az nem volt vilagos, hogy IS-BASIC-ben erre milyen operator valo, ezek szerint a BAND :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.February.10. 11:11:01
Kettes szamrendszerben megkapjuk az utolso szamjegyet, ha egy binaris AND muveletet vegzunk a kerdeses szam es az 1 kozott.
Jaaa, kezdem már érteni. Annyira új nekem is ez, hogy nem tudtam elvonatkoztatni.

De akkor ezt hogyan kéne átírni?
840 IF YY/2=INT(YY/2) THEN

Simán így?
840 IF YY BAND 1 THEN

Ennyi lenne csak?

Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2015.February.10. 11:22:46

De akkor ezt hogyan kéne átírni?
840 IF YY/2=INT(YY/2) THEN

Kár cifrázni...:oops:

840 IF REM(YY,2)=0 THEN

De a BAND is jó.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.February.10. 11:39:24
840 IF REM(YY,2)=0 THEN
De a BAND is jó.
Ez már a bőség zavara, már választani is lehet két módszer közül. :D
Melyik műveletet végzi el gyorsabban a gép, lehet ezt tudni? Ha egy cikluson belül jó sokszor elvégzi, akkor lehet jelentősége.

Szerk.: Nekem elsőre a BANDás módszer nem működött, vagy legalábbis pont fordítva működhet, és a páratlant "detektálja".
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.10. 11:40:17
mi az a REM? :D
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2015.February.10. 11:45:46
Ez már a bőség zavara, már választani is lehet két módszer közül. :D
Melyik műveletet végzi el gyorsabban a gép, lehet ezt tudni? Ha egy cikluson belül jó sokszor elvégzi, akkor lehet jelentősége.

Értelemszerűen messze a leglassabb az INT-es (két osztással). Ennek ellenére sok BASIC-ben csak ez a megoldás létezik...
A REM / MOD és a BAND-os megoldás között nagy különbség nem lehet, de talán a bináris összehasonlítás gyorsabb valamiel.

ODD függvény Pascal-mintára:

DEF ODD(X)=NOT((X BAND 1)-1)

Ha nem kell a "jólnevelt jelző":

DEF ODD(X)=X BAND 1
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2015.February.10. 11:46:57
mi az a REM? :D
Remainder azaz maradék.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2015.February.10. 11:47:32
mi az a REM? :D

A Referencia kézikönyv szerint:

"REM(x,y)
Az x és y osztásának maradéka.
REM(-1,3)=-1. L.: MOD(x.,y)."

:oops:
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.February.10. 11:54:03
mi az a REM? :D

1. Egy zenekar neve
2. Rapid Eye Movement, azaz gyors szemmozgásos fázik, az alvás egyik szakasza
3. REMember, azaz emlékeztető.

Amúgy mindkét módszer jó! :smt041

Code: [Select]
  10 PROGRAM "paros1.bas"
  100 INPUT A
  110 IF REM(A,2)=0 THEN PRINT "paros":GOTO 100
  120 IF REM(A,2)<>0 THEN PRINT "paratlan":GOTO 100

Code: [Select]
  10 PROGRAM "paros2.bas"
  100 INPUT A
  110 IF NOT(A BAND 1) THEN PRINT "paros":GOTO 100
  120 IF A BAND 1 THEN PRINT "paratlan":GOTO 100

Akkor maradok a BANDás módszernél, de még kipróbálom előbb, a Zzzip megeszi-e. Szerk.: A Zzzip megeszi mindkettőt.
Végülis a REM is egy BANDa (zenekar). :D
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.February.10. 11:57:05
A Referencia kézikönyv szerint:

"REM(x,y)
Az x és y osztásának maradéka.
REM(-1,3)=-1. L.: MOD(x.,y)."

Mondjuk elég bénán magyarázza a referencia kézikönyv. Igaz, nem is tankönyv, de ebből én nem érteném meg. Elsőre hozhatna valami pozitív egész számmal példákat (többet is), utána elvont matematikusok kedvéért jöhetne a negatív előjelű példa is.
Az akkori EP tulajdonosok átlagéletkora elég alacsony lehetett, főleg kb. 13 éves fejjel még úgy se tudtam mit kezdeni ilyen magyarázatokkal.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2015.February.10. 12:02:05
Mondjuk elég bénán magyarázza a referencia kézikönyv. Igaz, nem is tankönyv, de ebből én nem érteném meg. Elsőre hozhatna valami pozitív egész számmal példákat (többet is), utána elvont matematikusok kedvéért jöhetne a negatív előjelű példa is.
Az akkori EP tulajdonosok átlagéletkora elég alacsony lehetett, főleg kb. 13 éves fejjel még úgy se tudtam mit kezdeni ilyen magyarázatokkal.

A Hetedhéten Túl (http://ep128.hu/Ep_Konyv/Hetedheten_tul_EP.htm) könyvben van ezekről a függvényekről szó.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.10. 12:04:11
elvont matematika szerintem épp hogy a nem egész számok meg ilyesmi csilivili izék
a bináris, az egész szám, 8 bites, 16 bites stb, na az a valódi valóság, a konkrét valóság :)
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2015.February.10. 12:12:22
főleg kb. 13 éves fejjel még úgy se tudtam mit kezdeni ilyen magyarázatokkal.
Szerintem az osztást, maradékot meg ilyeneket akkor már pár éve tanultad általánosban :-)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.February.10. 12:35:25
Szerintem az osztást, maradékot meg ilyeneket akkor már pár éve tanultad általánosban :-)
Lehet, de ránézek ilyen -1 és 3 számokra, azok nem néznek ki jól, nekem legalábbis. :D
Lehetett volna 4 és 2, meg 5 és 10, ott örültem volna, hogy nullát ad, és utána lehettek volna még más számok.

Na, kicsit pofoztam ezen a primitív labirintusos játékon, zzzippeltem is, de olyan egetverően nem lett gyors, mint gondoltam. A Hungry Creature játékomban is gyors ennyire, de ott még 4 szörny is mozog a pályán. Szóval valami ritka lassú módszerrel csinálhatták meg ezt a játékot, de azért érdekes.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.February.10. 19:34:54
Picit még toldozgattam a programot. Nem a 102-es, hanem a 0-ás csatornára írta az időt játék közben, ez is lassította.
Ez most zzzippelés nélkül is egész jó sebességűnek tűnik.
Laci, ha ki akarod rakni a BASIC programcsokorba, akkor még rakok bele valami zenét, amikor kijutunk a labirintusból. Ha nem akarod kirakni, akkor hagyom. Érdemes lenne kirakni, mert bár 1 percet kell várni az elején, mégis eléggé egyedi ez a program.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.10. 20:26:41
hú, tök ötlet jutott eszembe, bár ez már nem basic
olyan labirintus játék ahol speckó lpt van, mintha a pálya egy csőre lenne ráfeszítve, azaz lpt-vel megcsinálni hogy az alsó és felső lpt sorok egyre vékonyabbak
látványos lenne ahogy fel-le megyünk és forog a cső
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.10. 20:30:49
mondjuk lehet hogy kéne csinálni egy lpt módosítót ami basic-ben is műxik
persze használhatatlan lenne vele egy csomó exos funkció
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.February.10. 23:06:48
Az RND függvénynek 0 és 1 között kellene valami értéket adnia. Itt most 1-nél nagyobb értéket adott fura módon, de biztos szokás szerint csak én értem félre a dolgot.

[attachimg=1]
Title: Re: Általános BASIC Kérdések
Post by: lgb on 2015.February.10. 23:15:30
Az RND függvénynek 0 és 1 között kellene valami értéket adnia. Itt most 1-nél nagyobb értéket adott fura módon, de biztos szokás szerint csak én értem félre a dolgot.

(Attachment Link)

A demozott szam nem nagyobb 1-nel, vagy en nem ertem ...
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.10. 23:19:18
futtassátok többször
tényleg érdekes :D
Title: Re: Általános BASIC Kérdések
Post by: lgb on 2015.February.10. 23:50:28
futtassátok többször
tényleg érdekes :D

Marmint miert erdekes? Itt sem latok 1-nel nagyobb szamot. Vagy mas miatt erdekes?
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.11. 00:00:45
Marmint miert erdekes? Itt sem latok 1-nel nagyobb szamot. Vagy mas miatt erdekes?

hát én nem tudtam hogy az is-basic így is tud számot ábrázolni :) tudom ez ilyen "tíz a minusz x-en" dolog.
de mindig is utáltam a nem egész számokat, bár lett volna többféle szám formátuma...
bár a zzzip az szerencsére egész számokat csinált mindenből
de a megváltás az asm volt :)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.11. 00:01:57
mondjuk az is kérdéses számomra hogy milyen gyakorlati haszna van ilyen pontos számábrázolásnak basic-ben...

a tanuláson kívül... persze az is komoly dolog
Title: Re: Általános BASIC Kérdések
Post by: lgb on 2015.February.11. 00:19:21
Szerintem amugy a BASIC rakfeneje atlag 8 bites gepeken a tullihegett szamabrazolas. Ugye FPU nincs :) es mindenre kvazi nem egesz aritmetika van. Ami allat lassu. Igazabol egesz jo kis BASIC interpretert lehetne irni, ahol a normal szamtipus az integer, es max ha kulon kered, akkor lesz lebegopontos/miegymas. Eleve, legtobb programban nem is feltetlen hasznalna az ember mar eleve lebegopontos szamokat, neha mega sima byte range is eleg lenne :) De pl hiaba van A% es hasonlo integer tipus sok BASIC-ben, ha mondjuk meg ciklusvaltozonak sem engedi hasznalni (legalabbis emelekeim szerint Commodore - ize MS - basic eseten igy van). Ok, van Integer BASIC meg TinyBASIC hasonlok, lehet a Zzzip-es dolog is hasonlo (sose probaltam EP-n, csak itt a forumon hallom toletek), hogy alapvetoen integeres dolgokat hasznalo cuccot fordit. Csak ugye az IS-BASIC meg amugy egesz szuper kis BASIC lenne, mar csak vmi gyorsitott verzio kene :D
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.11. 00:35:22
hát ja, a zzzip a gyorsított is-basic :)
mondjuk az kérdés, hogy a számolás gyorsítása mennyiben lett volna elég...
szerintem azért elég komoly basic játékokat lehetett ep-n csinálni, talán még zzzip nélkül is (határesetek)...
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.11. 01:25:34
sőt belegondolva, kíváncsi lennék milyen játékokat hoztak ki az EP korabeli más gépek basic-jéből
google sajnos nem sok ilyesmit dob ki
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2015.February.11. 09:45:06
mondjuk az is kérdéses számomra hogy milyen gyakorlati haszna van ilyen pontos számábrázolásnak basic-ben...

a tanuláson kívül... persze az is komoly dolog

Még a Turbo Pascal 3 (!) sem tud real típussal normálisan számolni(!) Az IS-Basic számítási pontosságát csak az tudja értékelni, aki már szívott olyan feladattal, ahol real típussal kell számolni (pl. mert az integer ábrázolási tartománya túl kicsi.)

Ez pl. a korabeli számítógépeken csak IS-BASIC-ben megvalósítható - persze Ep-n felesleges - (TVC Basic nem strukturált, amúgy az is pontosan számol).

http://prog.hu/tudastar/68602/Hatvanyozas+Turbo+Pascalban.html
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2015.February.11. 09:46:17
futtassátok többször
tényleg érdekes :D

Én sem látok egy darab negatív számot se... :oops:
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2015.February.11. 09:49:27
Pl. az FDISK-et is azért lehetett megírni IS-BASIC-ben, mert simán tud 32 bites számokkal számolni.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2015.February.11. 09:51:36
Furcsa, hogy az IS-BASIC számítási pontosságát csak az tudja értékelni, aki szívott már korabeli bármelyik más gép, nyelv számítási pontosságával (pontatlanságával). Ep-seknek alapból természetes ez a pontosság...
Nézzük, mit mond erről a Pascal-os szakirodalom:

"Nagyon vigyáznunk kell valósok egyenlőségének vizsgálatával. Ha ugyanis a vizsgálatban szereplő valamelyik operandus értéke számítás eredménye, a számítási pontatlanságok és kerekítések miatt a két valós szám értéke gyakorlatilag sohasem egyenlő.
...
Két valós érték ezért gyakorlatilag csak akkor lehet egyenlő, ha egyik a másiktól, vagy mindketten valamilyen közös őstől, például ugyanolyan alakú konstanstól kapták értéküket."


Mit szólnátok, ha az Ep is így működne?
Pl. ha a

DO
...
LOOP UNTIL A=B

ciklust nem szabadna alkalmazni emiatt?
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.11. 09:52:42
jó de milyen haszna van ennek a tanuláson kívül? :)
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2015.February.11. 09:55:51
jó de milyen haszna van ennek a tanuláson kívül? :)

Konkrétan pl. Turbo Pascal 3-ban, az Öröknaptár programon ugyanazzal az alogirtmussal nem megvalósítható.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2015.February.11. 09:58:28
Picit még toldozgattam a programot. Nem a 102-es, hanem a 0-ás csatornára írta az időt játék közben, ez is lassította.
Ez most zzzippelés nélkül is egész jó sebességűnek tűnik.
Laci, ha ki akarod rakni a BASIC programcsokorba, akkor még rakok bele valami zenét, amikor kijutunk a labirintusból. Ha nem akarod kirakni, akkor hagyom. Érdemes lenne kirakni, mert bár 1 percet kell várni az elején, mégis eléggé egyedi ez a program.

Megnézem majd. Tegnap ahogy néztem az eredeti programot, nagyon csúnya (és lassú...) megoldások is voltak benne. Ja és a legfelső sorba nem lehet fellépni, gondolom, ha ott kellene valahol továbbmenni, nem bejárható a labirintus.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2015.February.11. 10:17:23
jó de milyen haszna van ennek a tanuláson kívül? :)
Lehet használni a Enterprise-t SZÁMÍTÓgépnek.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.11. 10:23:17
Lehet használni a Enterprise-t SZÁMÍTÓgépnek.

na de ez az, hogy konkrétan mire?
ok, öröknaptár... meg ilyesmi kisebb dolgok, de konkrétan valami komolyabb munkára?

de ismétlem: a tanulás is nagyon komoly dolog, és az EP kiváló volt erre (sőt, volt nélkül!)
Title: Re: Általános BASIC Kérdések
Post by: geco on 2015.February.11. 10:39:28
Végülis a Basic tanulásra van, meg sebességet nem igénylő dolgok megvalósítására, ebben az IS-BASIC tökéletes, az, hogy nem lehet pl gyors játékot írni (összehasonlítva a Speccy, és az Amstrad Basic-cel) benne, az már másodlagos, arra ott a gépi kód, sztem amit a Basicnek tudnia kell, azt az IS-Basic tudja.
Amúgy ha jól rémlik, akkor a Soundtracker szerkesztője is Basic, gépi kódú betétekkel, és itt van Zozó FDISK-je, ha nem lenne ilyen pontos a számolás, akkor ezt lehetetlen lett volna Basic-ben.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2015.February.11. 10:47:32
na de ez az, hogy konkrétan mire?
ok, öröknaptár... meg ilyesmi kisebb dolgok, de konkrétan valami komolyabb munkára?

Nem egészen világos "konkrétan" mire akarsz használni egy 30 éves számítógépet, 2015-ben? :oops:
De mást is mondok: ma (2015-ben) a mai csoda teljesítményű számítógépeken, a felhasználók hány százaléka készít "komolyabb" programokat? Ilyen alapon a mai számítógépeket sem használjuk többre, mint pl. a C64-et (a software-park miatt hozom példának): játék- esetleg demó-, alkalmazói programok futtatása.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.11. 11:51:10
Nem egészen világos "konkrétan" mire akarsz használni egy 30 éves számítógépet, 2015-ben? :oops:
De mást is mondok: ma (2015-ben) a mai csoda teljesítményű számítógépeken, a felhasználók hány százaléka készít "komolyabb" programokat? Ilyen alapon a mai számítógépeket sem használjuk többre, mint pl. a C64-et (a software-park miatt hozom példának): játék- esetleg demó-, alkalmazói programok futtatása.

ok, végül is c64-et is használták pl nyilvántartó programokhoz meg ilyesmikhez is ha jól tudom, bár nem tudom ezek basic programok voltak-e
Title: Re: Általános BASIC Kérdések
Post by: geco on 2015.February.11. 13:23:37
ok, végül is c64-et is használták pl nyilvántartó programokhoz meg ilyesmikhez is ha jól tudom, bár nem tudom ezek basic programok voltak-e
Ha Basic, akkor csak poke utasítás volt benne :D
Title: Re: Általános BASIC Kérdések
Post by: Povi on 2015.February.11. 13:24:08
ok, végül is c64-et is használták pl nyilvántartó programokhoz meg ilyesmikhez is ha jól tudom, bár nem tudom ezek basic programok voltak-e
Az én C64-ben eredetileg az ELGI-ben (geofizikai intézet) szolgált, a hozzá kapott két zacskónyi lemezen pedig mélyfúrás nyilvántartó progik voltak BASIC-ben :-)
Title: Re: Általános BASIC Kérdések
Post by: Povi on 2015.February.11. 13:25:42
Sőt, mondok jobbat. Az EP-t sok helyen használták PC helyett (mert olcsóbb volt), és a CP/M miatt az EP-n írt turbo pascal programokat gond nélkül le lehetett fordítani PC-n is. (persze most a 3-as verzióról beszélünk)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.11. 14:19:04
Ha Basic, akkor csak poke utasítás volt benne :D

és vajon volt hozzá olyan mint a zzzip?
mert akkor a sok poke elég brutál sebesség növekedést hozhatott!
áh, kevés az EP-s nosztalgiázni való, c64-re fanyalodik az ember :D
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.11. 19:21:35
itt egy új, kicsit fejlődött
úgy döntöttem ilyen keskeny pálya lesz, lehet hogy kijön belőle valami újfajta gameplay, meg gyorsabban rajzolja ki

Title: Re: Általános BASIC Kérdések
Post by: SlashNet on 2015.February.11. 19:41:56
http://bob-bishop.awardspace.com/Maze/index.html
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.February.11. 20:20:25
itt egy új, kicsit fejlődött
úgy döntöttem ilyen keskeny pálya lesz, lehet hogy kijön belőle valami újfajta gameplay, meg gyorsabban rajzolja ki
Nem rossz!
Amúgy még az előzőnél akartam kérdezni, nem lehetne-e szélesebb a pálya. :D
A kirajzoláson kívül van máshol is jelentősége, hogy keskeny pályának célszerű lennie?
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.11. 20:23:48
Nem rossz!
Amúgy még az előzőnél akartam kérdezni, nem lehetne-e szélesebb a pálya. :D
A kirajzoláson kívül van máshol is jelentősége, hogy keskeny pályának célszerű lennie?

nem tudom, csak egy teszt. lehet hogy kijön belőle valami újfajta gameplay :)
mobilon divatosak az ilyesmik
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.February.11. 20:25:13
Megnézem majd. Tegnap ahogy néztem az eredeti programot, nagyon csúnya (és lassú...) megoldások is voltak benne. Ja és a legfelső sorba nem lehet fellépni, gondolom, ha ott kellene valahol továbbmenni, nem bejárható a labirintus.
Nem tudom, miért nem lehet a felső sorba menni. Lehet, csak rosszul adták meg a koordinátát? Vagy valami balhé lenne, ha odalépnénk?
Végülis a sebessége egész elfogadható, de nem lenne baj, ha gyorsabb lenne.
Én nem mélyedtem el benne, nem értem a működését, de furcsa, miért mindig a PLOT utasítást használja a PRINT AT helyett a kiírás pozíciójának megadására.
Érdemes lenne javítgatni, mert utána mást is ki lehetne hozni belőle.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.11. 20:25:33
ja meg persze több memória... ha teljesen széles akkor nem lehet olyan magas mert nem fér el a memóriában
bár amúgy ilyen keskeny esetén már más a gond, mert lehetne jóval hosszabb is, viszont csak 255 karakter magas lehet egy videólap
persze mindegy, mert olyan magasat kirajzolni már úgyis túl sok idő
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.February.11. 21:39:32
persze mindegy, mert olyan magasat kirajzolni már úgyis túl sok idő
A kirajzolást nem lehet másképp megoldani? Pl. előre kirajzolni, a csatorna tartalmát meg amit kell elmenteni egy fájlba, és onnan csak visszatölteni. Vagy, hogy merészebb legyek, a memóriaállapotot elmenteni és betölteni.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.12. 01:21:09
szerintetek lehetne olyat, hogy fogom az első lpt sort (a status sor alatt) és kihúzom teljes képernyőre, és az alatta lévő sorba pedig beállítom azokat a dolgokat amik az lpt végét jelentik?
így tudnék csinálni teljesen jó pixeles scrollt ennek a basic játéknak :) hiszen csak az egy lpt sorban kellene állítani a videómemória címét a scrollhoz
csak má nem tudom hogy is voltak ezek az lpt-vel
Title: Re: Általános BASIC Kérdések
Post by: lgb on 2015.February.12. 01:41:27
szerintetek lehetne olyat, hogy fogom az első lpt sort (a status sor alatt) és kihúzom teljes képernyőre, és az alatta lévő sorba pedig beállítom azokat a dolgokat amik az lpt végét jelentik?

Persze, csak normalis videosignalt nem fog igy adni, mert hianyzik a blanking, vsync meg ilyen aprosagok :) Nyilvan at lehet irni, de azert csak ovatosan.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.12. 10:01:06
Persze, csak normalis videosignalt nem fog igy adni, mert hianyzik a blanking, vsync meg ilyen aprosagok :) Nyilvan at lehet irni, de azert csak ovatosan.

hát arra gondolok hogy jó is legyen persze :)
Title: Re: Általános BASIC Kérdések
Post by: lgb on 2015.February.12. 11:34:18
hát arra gondolok hogy jó is legyen persze :)

A primo emulator kiserletemben csinaltam igy, "lusta" voltam sajat LPT-t csinalni, meg akartam hogy pl a ZT clock menjen tovabb stb minden magia nelkul. Szoval nyitottam egy karakteres videolapot, aztan szepen atkozmetikaztam az EXOS LPT-t, de hagytam ahol van, stb. Mukodni mukodott ...
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.13. 10:39:19
amúgy zseniális dolog ez a melegreset EP-n, egy ami nem oké, hogy a funkcióbillentyűk programozását is reseteli
sőt, asszem pont ezért nem szoktam rá az átprogramozásukra...
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2015.February.13. 11:06:08
amúgy zseniális dolog ez a melegreset EP-n, egy ami nem oké, hogy a funkcióbillentyűk programozását is reseteli
Az a billentyűzet csatorna bezárása törli.

Quote
sőt, asszem pont ezért nem szoktam rá az átprogramozásukra...
Zozotoolsban ezért is lett funkció funkcióbillentyűk mentésére/visszatöltésére :-)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.February.13. 13:42:07
amúgy zseniális dolog ez a melegreset EP-n, egy ami nem oké, hogy a funkcióbillentyűk programozását is reseteli
sőt, asszem pont ezért nem szoktam rá az átprogramozásukra...
Biztos meg lehet csinálni, hogy reset után visszatöltse a billentyűfunkciókat. Vagy funkcióbillentyűket.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.13. 17:26:29
Biztos meg lehet csinálni, hogy reset után visszatöltse a billentyűfunkciókat. Vagy funkcióbillentyűket.

hát ja, ha újra beállítjuk :)
amúgy emlékszem, egyik szöveges játékomban (bestiák mestere) a funkcióbillentyűkre programoztam a fontosabb parancsokat. csakhogy enter karaktert is raktam a szavak után, így semmi értelme nem volt :D
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2015.February.13. 17:55:00
hát ja, ha újra beállítjuk :)
Mint említettem már Zozotoolsban van erre funkció...
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.13. 18:01:40
Mint említettem már Zozotoolsban van erre funkció...

á sajnos én sose használtam ilyen extra dolgokat...
Title: Re: Általános BASIC Kérdések
Post by: Ep128 on 2015.February.14. 23:07:43
á sajnos én sose használtam ilyen extra dolgokat...

Zozotools mint "extra"...? :-) Jó vicc... Elsők között égettettem be magamnak anno.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.14. 23:33:14
Zozotools mint "extra"...? :-) Jó vicc... Elsők között égettettem be magamnak anno.

beégetni? haha, nekem floppym is csak a vége felé lett :D
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.February.15. 12:37:27
beégetni? haha, nekem floppym is csak a vége felé lett :D
Az EP-s időkben nem is jutott el hozzám a Zozotools, de Orksoft programokból is maximum egy, de már nem tudom, melyik volt az.
Title: Re: Általános BASIC Kérdések
Post by: Ep128 on 2015.February.15. 22:45:14
beégetni? haha, nekem floppym is csak a vége felé lett :D

Az égetés nem követelt floppy -t azt az újságban (Enterpress) is meg lehetett rendelni magnós géphez is. :-)
Ok, ha CSAK alap géped volt, akkor leginkább a cartridge -ban kellett helyet szorítani (ahol nem volt sok) a beégetendő (bármiféle) cuccnak.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.15. 22:59:24
Az égetés nem követelt floppy -t azt az újságban (Enterpress) is meg lehetett rendelni magnós géphez is. :-)
Ok, ha CSAK alap géped volt, akkor leginkább a cartridge -ban kellett helyet szorítani (ahol nem volt sok) a beégetendő (bármiféle) cuccnak.

na jó, de mifelénk a floppy is nagy extrának, különlegességnek, luxusnak számított, pedig az is elég alap azért... szóval a többi meg még extrábbnak
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.16. 01:12:03
hm nincs xor basicben? :(
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.16. 19:15:33
rájöttem hogy az a módszerem amivel 2 print-el 4 színt rajzolok c16 módban, nem csak line mode 3-ban (xor) műxik hanem line mode 1-ben is (or), sőt, ahogy használom úgy ugyanazt csinálja
Title: Re: Általános BASIC Kérdések
Post by: geco on 2015.February.16. 19:30:54
hm nincs xor basicben? :(
úgy néz ki nincs, esetleg az EP Plust megnézheted, hátha ott van.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.16. 20:45:06
na akarok basic-hez írni lpt módosító rutinokat
de már az elején elakadtam
mi ennek a baja? 0-át olvas a portokról amik elvileg az lpt címét adják meg

Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2015.February.16. 20:46:12
Nick portok csak írhatóak.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.16. 22:18:59
hm rájöttem hogy ez nehezebb mint gondoltam
szegmenseket kell lapozgatni, exos meg felülírja majd, áhhh :(
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.17. 19:34:57
poke-al memória feltöltés teszt zippelve
Title: Re: Általános BASIC Kérdések
Post by: geco on 2015.February.17. 20:01:17
Így tök gyors lett, mennyivel volt lassabb a sima basic?
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.17. 20:18:12
hát ez így ügyebár totál lassú
mondjuk zippelve se annyira gyors hogy ezt bármire lehessen használni...
annak idején elkezdtem egy ilyen poke-os basic játékot, de az karakteres volt, ott még használható volt. sajnos elveszett

Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.18. 23:35:38
egy effekt ami sajnos csak max emu sebességen (kb 3000%) élvezhető
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2015.February.19. 18:51:19
egy effekt ami sajnos csak max emu sebességen (kb 3000%) élvezhető

Ezt lehet belőle kihozni.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.February.19. 18:57:15
hú ez most sokat gyorsult :)
a kirajzolás is
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2015.February.19. 19:44:56
a kirajzolás is

Sokat gyorsított rajta, hogy kiszedtem a  felesleges at x,y (jelen esetben gotoxy) utasítást... :oops:
Title: Re: Általános BASIC Kérdések
Post by: Tuby128 on 2015.May.03. 22:25:10
Szeretnék basic-ből végrehajtani egy
CALL memóriacím
utasítást. Kérdésem, hogy a
CALL USR(x,0)
ahol az x egy direkt memóriacím, megfelel-e erre?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2015.May.03. 22:33:09
Igen. A második szám a HL-be átadott paraméter.
Title: Re: Általános BASIC Kérdések
Post by: Tuby128 on 2015.May.04. 09:39:58
Valahogy nem működik a dolog. Talán a
CALL USR(x,0)
-ban az x nem direkt memóriacím, hanem egy változónak a basic-ben tárolt sorszáma, amit aztán egy táblázatból kikeres.
Lehet a megoldás az, hogy írok egy rutint, ami meghívja, és akkor

ALLOCATE 1
jmp=CODE("E9")    ! JP (HL)
CALL USR(jmp,16384)
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2015.May.04. 09:46:30
Működik az, csak a címednek a nullás lapon kell lennie.
Title: Re: Általános BASIC Kérdések
Post by: Tuby128 on 2015.May.04. 09:49:05
Értem, tehát az X maximalizálva van 16383-ban.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2015.May.04. 09:53:43
Igen mert a többi lapot lapozgatja a BASIC futásközben.

Ha jól értem a C kódodat szeretnéd próbálgatni.

Ehhez kellene pár pici CODE rutin:
1) ami lefoglal egy szegmenst
2) ami betölti a szegmensbe a kódot
3) ami futtatja: elmenti a 1-es lapot, belapozza a te szegmensedet, meghívja a rutint, végén visszalapozza az eredeti 1-es lapot, és visszatér
4) program végén, ami felszabadítja a szegmenst
Title: Re: Általános BASIC Kérdések
Post by: Tuby128 on 2015.May.04. 09:57:28
Ettől egyszerűbb a dolog, ez egy nem visszatérő rutin. Induláskor belapoz egy üres szegmenst a 0-ás lapra, 56 (dec) címre c9-et tölt, és utána szabadon garázdálkodik. Csak hard-reset-tel van visszaút.
Title: Re: Általános BASIC Kérdések
Post by: Povi on 2015.July.23. 16:40:10
Ha valakinek van kedve, igazi gépen lestopperelhetné ezeket a teszteket :-)

és akkor ki lehetne egészíteni ez a táblázatot:

http://cpcwiki.eu/index.php/BASIC_Benchmark
Title: Re: Általános BASIC Kérdések
Post by: gflorez on 2015.July.24. 00:05:39
The Enterprise Basic gives to me a benchmark of approximately 83,71(2,16 8,25 17,84 29,23 31,14 44,95 119,83 416,34).

You have to put this at the 8 phase to work as the test:

105 OPTION ANGLE DEGREES

Upto the 6 phase it makes an average mark, but increases enormously at 7 and 8 because its BCD arithmetic and also probably because the Enterprise works internally in radians and have to convert them to degrees.


If I put:

105 D=10
150 B=LOG(D)
160 C=SIN(D)

Then the 8 phase gives 306,23 working directly in radians, and gives a total benchmark of 69,94. Not so miserably bad for a more sophisticate Basic...
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.August.02. 12:53:52
Van basicben valami lehetőség az RBG függvényen kívül, amivel a szín fényerősségét lehet állítani? Pl. fokozatos elhalványodásra. Pl. a SET COLOR 1,x utasítás segítségével, ahol az x értéke egy FOR cikluson belül változna.
Nem tudom, milyen összefüggés van a színkódok és a szín ill. annak erőssége, fényessége között. Pl. hogyan érhetők el egymás után pl. a zöld, kék, stb. árnyalatai, fokozatos halványodással/erősödéssel.
Title: Re: Általános BASIC Kérdések
Post by: Z80System on 2015.August.02. 13:03:32
hát túl sok fokozatra nem kell számítanod, mert a kék színkomponensnek 4, másik kettőnek meg 8 árnyalata van,
ráadásul ha a feketét leszámítod, akkor mindkét számból kivonhatsz egyet,
de itt van a színkód bitjeinek jelentése, ami leírja hogy az R,G,B komponenseket milyen bitekre kell a színkódban beírni:

http://gafz.enterpriseforever.com/Dokumentacio/Konyvek/EXOS_2.1_technikal_information/hardware/Nick.html#12
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.August.02. 14:48:08
Van basicben valami lehetőség az RBG függvényen kívül, amivel a szín fényerősségét lehet állítani? Pl. fokozatos elhalványodásra. Pl. a SET COLOR 1,x utasítás segítségével, ahol az x értéke egy FOR cikluson belül változna.
Nem tudom, milyen összefüggés van a színkódok és a szín ill. annak erőssége, fényessége között. Pl. hogyan érhetők el egymás után pl. a zöld, kék, stb. árnyalatai, fokozatos halványodással/erősödéssel.

hát a basic RGB függvényben az értékek pont a fényességet határozzák meg 0-1-ig
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.August.02. 15:13:18
hát a basic RGB függvényben az értékek pont a fényességet határozzák meg 0-1-ig
Igen, de a 0 és 1 közötti számokat a Zzzip nem nagyon szereti. Bár RGB-nél még valamennyire elfogadó. Na, majd meglátjuk... De valami módszer biztos van, amivel sorba állíthatóak a 255 színből egy adott színnek az árnyalatai...
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.August.02. 15:16:51
Jó lenne egy basic parancs, ami után ha beírunk egy karaktersorozatot vagy basic utasítást, kilistázza azokat a sorokat, ahol a programban megtalálható az adott utasítás/karaktersorozat.
Pl.

LIST FOR "PRINT"
  310 PRINT AT X,Y:"x";
 1120 PRINT #101,AT 8,A:A$
ok

Ilyesmit nem lehet megvalósítani valahogy?

Tudom, hex editorban rákeresünk az adott fájlban, de az nem az igazi.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.August.02. 15:48:13
Igen, de a 0 és 1 közötti számokat a Zzzip nem nagyon szereti. Bár RGB-nél még valamennyire elfogadó. Na, majd meglátjuk... De valami módszer biztos van, amivel sorba állíthatóak a 255 színből egy adott színnek az árnyalatai...

huh, hát erről egy csomót beszélgettünk már itt, talán pont ebben a topikban
én és mások is csináltak ilyen szín sorbarendezőt
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.August.02. 16:53:36
huh, hát erről egy csomót beszélgettünk már itt, talán pont ebben a topikban
én és mások is csináltak ilyen szín sorbarendezőt
A színekről tényleg sok szó volt már, a palettáról, a 256 színről, de direkt ilyen elhalványulós effekt basicben tudtommal nem volt.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.August.02. 17:56:32
A színekről tényleg sok szó volt már, a palettáról, a 256 színről, de direkt ilyen elhalványulós effekt basicben tudtommal nem volt.

de, pont ez volt
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.August.02. 18:01:44
de, pont ez volt
Pont ez nem volt.
Title: Re: Általános BASIC Kérdések
Post by: geco on 2015.August.03. 10:46:46
A legegyszerűbb megoldás szerintem, amit a ZZZIP is megeszik, data sorba tenni a színek értéketi, és onnan behívni, én úgy szoktam az árnyalatot kiszámolni, hogy tudom, a zöld 3 árnyalata 128,16,2, a piros 3 árnyalata 64,8,1 , a kéké pedig 32,4, mindig a legnagyobb szám a legsötétebb.
Piros 8 árnylata: 0 64 8 72 1 65 9 73
ezt leeht tovább fokozni a zölddel: 0 128 16 144 2 130 18 146 értékeket ha hozzáadod a piros sor utolsó, vagy utolsónak szánt értékéhez, akkor folytatódik az átmenet a sárgába.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.August.03. 13:01:23
A legegyszerűbb megoldás szerintem, amit a ZZZIP is megeszik, data sorba tenni a színek értéketi
Végülis ez is egy megoldás. Csak azt hittem, van valami egyszerűbb, valami matematikai függvénnyel leírható módszer, hogy ne kelljen külön data sorokat írni.
Title: Re: Általános BASIC Kérdések
Post by: ergoGnomik on 2015.August.03. 15:57:30
Ez teljesen matematikai megoldás, csak képleteket nem futásidőben használod, hanem a program megírása során, a DATA sorok feltöltésekor. Egyébként lehet algoritmikusan is csinálni, de azt inkább nem akarnád kipróbálni, szerintem. Eléggé problémás a színleíró bájt nem túl triviális és felhasználó barát szervezése. Amire gondolok főbb vonalakban: egy módosított Bresenham vonalrajzoló algoritmussal a kezdő és befejező szín RGB ([0..7],[0..7],[0..3]) komponensei között átmenetet generálsz a kívánt lépésszámban, majd az átmenet színösszetevőinek helyiérték-bitenkénti kiértékelésével és az azokhoz tartozó színleíró bitkombináció összeállításával megadod az átmenet kívánt árnyalatait.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.August.19. 20:35:45
Ezt a képet találtam most. Arra gondoltam, talán viszonylag egyszerűen lehetne írni olyan programot, ami ehhez hasonló feladványokat talál ki, és egyre nehezedik. Akár basic-ben is, de így talán nem lehet olyan szépen megrajzolni azt a pár egyszerű ábrát.

[attachimg=1]
Title: Re: Általános BASIC Kérdések
Post by: pear on 2015.August.19. 20:44:43
4x3x1=12
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.August.22. 17:33:16
lehetett volna egy olyan funkció basic-ben ami az ESC szekvenciákkal végezhető műveletek parancsait lecseréli ESC szekvenciásra. ronda lett volna tőle a kód, de bizonyára gyorsabb, rövidebb. egy közepesen bonyolult sound művelet otromba hosszú sorokat generál például :) persze angol tanulásnak kiváló volt!

amúgy gondolom a zzzzip meg is csinálja ezt az ESC-esítést
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.August.22. 19:06:26
persze angol tanulásnak kiváló volt!
Pl. pitch = árok. :D
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.September.03. 22:33:20
csináltam egy összehasonlítást, poke és spoke
csak ránézésre lehet a sebességet látni, és nekem a poke kicsit gyorsabbnak tűnik :)
a videó cím hardcoded, szóval gányolás :)

a basic programokat is mellékeltem
sajnos a poke esetén az összeadás is kell mert csak így fordítja le a zzzip, tehát ez is lassítja a poke-s verziót
de ez csak teszt
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2015.September.04. 20:18:09
csináltam egy összehasonlítást, poke és spoke
csak ránézésre lehet a sebességet látni, és nekem a poke kicsit gyorsabbnak tűnik :)
a videó cím hardcoded, szóval gányolás :)

a basic programokat is mellékeltem
sajnos a poke esetén az összeadás is kell mert csak így fordítja le a zzzip, tehát ez is lassítja a poke-s verziót
de ez csak teszt
Ha nem nagy baj én egy kicsit javítottam a programokon, hogy működő képes legyen.
Zzzipelni nem tudom.
Nekem Emun a SPOKE gyorsabb mint a POKE.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.September.04. 23:28:02
aha ez jó, hogy a címet rendesen számolod ki. végre valaki megcsinálta :)

itt egy teszt, de a poke azért volt ugyanolyan sebességű mert volt benne egy összeadás, ezt most kivettem és a for-ba raktam a +32k-t (32k-1, mert 32k-val nem zzzippelhető!)

ja és beírtam több sor poke-t mert amúgy túl gyors lett volna a méréshez. sajnos még így is túl gyors, 1-2 másodperc alatt lefut, de már most is látszik hogy az spoke inkább 2mp a poke meg 1
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2015.September.05. 09:47:35
Tudod, hogy megint el írtad a programot?
A 200. sor hibás
Én még be tennék a
125 FOR Y=1 TO 20
155 NEXT Y
195 FOR Y=1 TO 20
225 NEXT Y

Ja és javítanám a 200. sort 32767 helyett 32768 adnák hozzá, hogy jó legyen.

A Zzzip ben tényleg gyorsabb a pooke
De BASIC ban Emun  a SPOKE teljesít jobban.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.September.05. 10:43:11
Ja és javítanám a 200. sort 32767 helyett 32768 adnák hozzá, hogy jó legyen.

32k-t nem tudsz hozzáadni mert a zzzzip nem fogja lefordítani, ezért a 32k-1! de ezt írtam is.
A Zzzzip előjeles 2 bájtos számokat tud kezelni, ezért 1 biten tárolja az előjelet. Ezért nem tud 32k fölé menni. De szerencsére poke és egyéb utasítások esetén (amikor gépi kódnak ad át paramétert), át lehet verni ezzel az összeadással. :)
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2015.September.05. 10:45:52
Akkor meg nem használható a POKE a Zzzip ben mert így egy tárcímmel eltérőt írsz át.
Ez súlyos hiba.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.September.05. 11:12:16
Akkor meg nem használható a POKE a Zzzip ben mert így egy tárcímmel eltérőt írsz át.
Ez súlyos hiba.

ezt most nem értem :)
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2015.September.05. 11:41:11
ezt most nem értem :)
Csináld :
BASIC
GRAPHICS
SPOKE 255,4000,255
POKE 4000+32767,255
Így már érthető.

De meg etethető 32767+1 =7FFFh+1 =8000h
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.September.05. 11:49:20
értem én, de amikor ilyen kísérleteket meg teszteket csinál az ember akkor nem kell tökéletesnek lennie
sőt amúgy később se :)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.September.05. 11:52:14
amúgy én annak idején elkezdtem egy karakteres módú poke-s basic játékot csinálni, amiben ha jól emlékszem 6x8 karakteres figurák voltak. csakhogy akkoriban már elkezdtem asm-ban kódolni, és végleg áttértem arra, úgyhogy ezt nem fejeztem be. sajnos el is veszett.

na most majd azért valamit összedobok talán így basicben, mert ez tök szórakoztató :)
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2015.September.05. 12:00:18
értem én, de amikor ilyen kísérleteket meg teszteket csinál az ember akkor nem kell tökéletesnek lennie
sőt amúgy később se :)
Igaz de ez olyan nagy hiba minta beírnánk sorszám nélkül a POKE 56,201 és enter.
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2015.September.05. 12:09:02
amúgy én annak idején elkezdtem egy karakteres módú poke-s basic játékot csinálni, amiben ha jól emlékszem 6x8 karakteres figurák voltak. csakhogy akkoriban már elkezdtem asm-ban kódolni, és végleg áttértem arra, úgyhogy ezt nem fejeztem be. sajnos el is veszett.

na most majd azért valamit összedobok talán így basicben, mert ez tök szórakoztató :)
Én is ezért léptem be egy kicsit a Dot Collector javításába.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.September.05. 12:09:16
amúgy sajnos az spoke és a vidmem cím kiolvasása az lpt-ből se jó teljesen, hiszen ha a videólap átlóg egy másik szegmensre, mindjárt nem lesz jó simán csak így címezgetni

igazából egy "dave-poke" kéne (tehát direktben címezni amit a dave* lát), csak hát egy ilyen szubrutin megintcsak lelassítaná az egészet

marad a poke és a gányolás :P

*arra gondolok hogy amit videókép előállítására tud használni, azt a 64k-t direktben címezni
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2015.September.05. 12:22:18
amúgy sajnos az spoke és a vidmem cím kiolvasása az lpt-ből se jó teljesen, hiszen ha a videólap átlóg egy másik szegmensre, mindjárt nem lesz jó simán csak így címezgetni

igazából egy "dave-poke" kéne (tehát direktben címezni amit a dave* lát), csak hát egy ilyen szubrutin megintcsak lelassítaná az egészet

marad a poke és a gányolás :P

*arra gondolok hogy amit videókép előállítására tud használni, azt a 64k-t direktben címezni
Annak már komoly grafikának kell lennie.

Esetleg a Zzzip lefordít "USR ALOCATE?!?!" gépi kódot ?

A POKE addig jó míg a VIDEO a NICK C000h-FFFFh ig van
Ha már lejjebb van akkor már a SPOKE kell vagy gépi kód.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.September.05. 20:39:27
ennek sok értelme nincs, és nem tudom miért csináltam :D
talán izometrikus jellegű pályák rajzolásához jó lehet

Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.September.08. 22:22:43
elkezdtem írni egy 4 színű karakter editort
4x8 pixel, 4 szín

még sehogy se áll, illetve most jön az hogy az editált mező adataiból a karaktert generáljam

Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.September.08. 23:40:30
már is itt egy új mert rájöttem hogy itt 1 karakter készítésének nincs sok értelme, ezért eleve 2x2 karakter editálása lesz
fapados lesz, szóval fix 4 karakter lesz, majd ki lehet iratni programsorként a végeredményt, és úgy felhasználni saját programban

Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.September.08. 23:43:27
1 karakter készítésének nincs sok értelme, ezért eleve 2x2 karakter editálása lesz
Esetleg lehet úgy is, hogy a program szedje szét az editált mezőt két karakterre. De a felhasználó egyetlen "karaktert" szerkeszt.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.September.25. 22:11:34
milyen király lett volna, ha a basic-ben kihasználják ezt a színes karakteres dolgot, és a lista színesben jelent volna meg (syntax highlight)

még a szép színes billentyűzetünkhöz is illett volna :)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.September.27. 00:51:37
fagyasztási trükk:
stop-olj le egy basic programot
írd be hogy ok és entert nyomja
ezután continue :)

szerk: az a jó benne hogy tök változatos fagyásokat okoz
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.September.27. 12:47:25
fagyasztási trükk
Ha csak simán reset futás közben, vagy előtte stop és úgy reset, és utána continue, az is fagyaszt. De ezt már írta itt valaki szerintem.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.September.27. 12:56:11
lezippeltem ezt a régi "magic ball in basic" bénaságomat, tök gyors
lehet hogy valami primitív játékot lehetne belőle csinálni
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.September.27. 14:25:53
itt egy jobb, már 8 sávos
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.September.27. 14:39:09
azt hogy fent vékonyabbak legyenek a vonalak, majd lpt állítással megpróbálom elérni, összehúzom a sorokat
persze alul meg szét kéne húzni, az már nem lesz olyan egyszerű
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.September.27. 18:50:25
itt egy 8 sávos
úgy nézem lesz proci idő a több gameplay elemre, a poke-olás elég gyors zippelve :)
Title: Re: Általános BASIC Kérdések
Post by: sanyike on 2015.September.29. 00:31:48
spoke - oláshoz készítettem egy progit, amely lekérdezi a képernyő címeket. (grafikus mód)
Gondolom van ennél egyszerűbb megoldás is :-)

...mindenesetre jól szórakoztam...

A képernyő címet nem lehet egy szegmensre áttolni, hogy ne két darabban legyen?
Title: Re: Általános BASIC Kérdések
Post by: geco on 2015.September.29. 09:00:13
A képernyő címet nem lehet egy szegmensre áttolni, hogy ne két darabban legyen?

Gondolom át lehet, de az megint némi spoke-olással jár :D
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.September.29. 10:05:42
valszeg a totális lpt kontroll lenne a jó megoldás.
azaz teljesen új lpt generálása, memória kéréssel stb.
persze így kb minden exos grafikai dolog elfelejthető...

szerk: főleg hogy az exos képes olyanra is hogy egy meglévő videólap memóriáját átállítsa és átpakolja :)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.October.01. 22:27:23
mekkora király lenne, ha az ep tudna úgy listázni hogy a def függvényeket nem listázná!
csak ha külön beírjuk hogy list def_name
mint más programnyelvekben ahogy be lehet ezeket "zárni"
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.October.08. 19:02:53
amúgy van ez a joy függvény, van egy nagy baja. az, hogy nem olyan mint az inkey, amit ügye 50hz-s megszakításban figyel a gép.
pont hogy a lassú basic játékokhoz ilyesmire a joy-nál is szükség lenne...
az inkey-nél meg ügye nem lehet két gomb együttes nyomását figyelni
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.October.11. 00:38:13
érdekes még, és ez is milyen jó ötlet, hogy a data utasításnál nem rendeződik amit utána írunk
tehát pl
data     "helo"
nem változik át
data "heló"-vá
még számoknál sem! ez azért jó mert az ember be tudja rendezni vizuálisan úgy ahogy neki tetszik :)
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2015.October.11. 08:59:17
Ehhez a megoldáshoz mit szóltok? :shock:
Ep-hez igazából nincs sok köze, egy '83-as (felsőfokú) tankönyvben  (!) találtam, több más hasonló megoldás mellett...
Title: Re: Általános BASIC Kérdések
Post by: ergoGnomik on 2015.October.11. 09:45:39
Hát, szép munka, de inkább
Code: [Select]
NO=INT(.5+NO) formába kellene írni, nemde? Az IF-ek csak lassítanak rajta.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2015.October.11. 10:16:11
Igen.
LET N0=INT(N0+.5)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.October.11. 11:13:21
béna kis program, hires 2-ben egy kis raszter színezés, plusz egy kis trükk
(meg a poke néha beleír oda is ahova nem kéne...) :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.October.11. 14:54:43
béna kis program, hires 2-ben egy kis raszter színezés, plusz egy kis trükk
(meg a poke néha beleír oda is ahova nem kéne...) :)
Lassan kiadhatsz egy újabb Ork demót. :D
Szép színes téglák között rohangálhatnának még emberkék, csak mint demóban.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.October.16. 23:49:22
egy gyönyörűséges "look" fagyasztás a graf-karakteres, raszterszínezett módban :)
szerintem ha megfesteném, milliókért el lehetne adni! XD
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.October.22. 18:14:42
valami nem világos
egy def-ben ügyebár lokálisak az újonnan létrehozott változók
de olyat vettem észre, hogy ha egy defből hívok egy másikat, és abban ugyanolyan változónév van, akkor azok összeakadnak
tehát mintha csak 1 mélységig lenne
bár ez ellentmond annak hogy rekurzív is lehet egy függvény...
de kifejezetten volt ilyen bug miközben ezt a gracha editort fejlesztem. persze én gyorsan átírom inkább hogy működjön mert az hatékonyabb :P
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2015.October.22. 22:45:08
Volt már szó róla, hogy ha egy eljárás rekurzívan hívja magát, és van benne FOR-NEXT ciklus, akkor a ciklusváltozót deklarálni kell az eljárás elején. Más "kavarodást" én még nem tapasztaltam.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.October.22. 22:47:28
Volt már szó róla, hogy ha egy eljárás rekurzívan hívja magát, és van benne FOR-NEXT ciklus, akkor a ciklusváltozót deklarálni kell az eljárás elején. Más "kavarodást" én még nem tapasztaltam.

áhááá! köszi
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.October.25. 10:12:44
van itt ez a text file, amit basic-be akarnék beolvasni de valamiért nem akarja
hex editorban nézve az EP a sortörést 0d 0a karakterekkel tárolja, míg ebben csak 0d van
hogy is voltak ezek a dolgok?

igen, ez egy nyan cat animáció :)
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2015.October.25. 11:06:35
hex editorban nézve az EP a sortörést 0d 0a karakterekkel tárolja, míg ebben csak 0d van
hogy is voltak ezek a dolgok?
Linux csinálja úgy. Programmer's Notepad-al lehet ida-oda konvertálni. (http://www.pnotepad.org/)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.October.25. 11:17:56
Linux csinálja úgy. Programmer's Notepad-al lehet ida-oda konvertálni. (http://www.pnotepad.org/)

köszi :)
hamarosan jelentkezem az eredménnyel :D
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.October.25. 11:37:51
hát egyelőre ennyi, meglátom érdemes-e még vele foglalkozni :D
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.October.25. 11:45:48
amúgy specyre van nyan, ha esetleg valaki átírni akarná :D
zene is van, 128-as :)
https://www.youtube.com/watch?v=UlPhDlY0N_0
Title: Re: Általános BASIC Kérdések
Post by: geco on 2015.October.26. 08:38:31
hát egyelőre ennyi, meglátom érdemes-e még vele foglalkozni :D
Szerintem érdemes, 16 szín karakter módban tuti lenne, és zzzipelve még egy scroll is elférne alatta.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.October.26. 13:25:16
aha jó ötlet volt, csak a színeket kéne belőni :)
Title: Re: Általános BASIC Kérdések
Post by: geco on 2015.October.26. 16:31:14
így is jó színbelővéssel, én a GRAPHCA karaktermódra gondoltam, karakterdefiníciókkal tök szép lehetne, nem ilyen nagy kockás :), és egy out 191,12-vel meg gyors is, a zzzip-ről nem is beszélve :)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.October.26. 18:23:45
így is jó színbelővéssel, én a GRAPHCA karaktermódra gondoltam, karakterdefiníciókkal tök szép lehetne, nem ilyen nagy kockás :)

ááá látom nem ismered a nyan cat-et! pont a kockásság a lényege :)
Title: Re: Általános BASIC Kérdések
Post by: geco on 2015.October.26. 18:32:08
ááá látom nem ismered a nyan cat-et! pont a kockásság a lényege :)
Lehetne negyedennyire kockás :D (4 pixel/karakter)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.October.26. 19:17:31
valaki csináljon nyan zenét
szipucsu? :)
illetve szerintem c64-re talán van sid-ben és akkor át lehetne konvertálni
hm illetve mod is tuti van, digi zenét elbírna egy ilyen anim

persze ez már nem basic lenne
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2015.October.26. 19:41:32
aha jó ötlet volt, csak a színeket kéne belőni :)

Tényleg jól néz így már ki!
A színeken kellene már csak csiszolni.
Title: Re: Általános BASIC Kérdések
Post by: ergoGnomik on 2015.October.26. 21:36:41
Kicsit szégyenkezve teszem ide, mert platform menőzésnek tűnhet :oops:, de Plus/4 NyanCat (http://plus4world.powweb.com/software/Nyan_Cat). Itt a tecső link (http://www.youtube.com/watch?v=Yphs-Vhye_g) is.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.October.26. 21:59:29
valaki csináljon nyan zenét
szipucsu? :)
Valószínű nem ilyenre gondoltál, de itt van két rockos-technós remix. :D

[attach=1]
[attach=2]
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.October.26. 22:21:45
Valószínű nem ilyenre gondoltál, de itt van két rockos-technós remix. :D

(Attachment Link)
(Attachment Link)

ep-n lejátszható formátumra gondoltam :)
na persze lehet egy digi hang is végül is, csak az rövid lesz
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.October.26. 22:44:22
ep-n lejátszható formátumra gondoltam :)
na persze lehet egy digi hang is végül is, csak az rövid lesz
Tudom, ironikusan írtam, hogy "valószínűleg".
Végülis meg lehet próbálni basic-ben data sorokba beírni a hangokat. Vagy akár Rockdigibe is, csak az utóbbit basic-ből nem lehet meghívni, főleg nem a mozgó grafika alá.
Mondjuk egy midi-basic data sorok konverter nem lenne rossz. Találtam olyan midit a neten, amiben egy szólam van csak, azt nem lehet nehéz data sorokba átkonvertálni. Igaz, ahhoz kéne valami kíséret is.
Majd lehet, elszórakozom vele, ha hozzájutok.
Title: Re: Általános BASIC Kérdések
Post by: ergoGnomik on 2015.October.27. 07:05:08
Megjegyezném a korábbi hozzászólásomhoz, hogy a linken elérhető a demó forrásakódja is. A hangmintákkal együtt, amik meg vannak assembly forrásban és .wav-ban is.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.October.28. 09:41:18
az eggs of life zzippelve, persze továbbra is csak a kurzor irányítható :)

de lenne egy ötletem! lehetne ez egy "körökre osztott stratégia"-szerű játék. a kurzort tudod mozgatni, mondjuk 20-at lehet egy körben lépni vele. ezután a tojások és a kikelt lények lépnek 20 fázist.
és így felváltva menne a game.
Title: Re: Általános BASIC Kérdések
Post by: ergoGnomik on 2015.October.28. 09:53:51
Ez így már majdnem Laser Squad. :ds_icon_cheesygrin:
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.October.28. 09:56:16
Ez így már majdnem Laser Squad. :ds_icon_cheesygrin:

hm jó hogy említed, azt a fajta félig-izometrikus grafikát is meg fogom próbálni az editorban :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.October.28. 12:32:05
"körökre osztott stratégia"
Lehetne belőle dáma vagy sakk játék is. :D Esetleg úgy bővítve, hogy lőni is lehet. Lenne a futóknál lézerfegyver, a királynőnél meg mondjuk nukleáris bomba.
Vagy a tojásokkal kéne sakkozni? Pl. "Én nyertem, záp, és matt!"
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.October.28. 16:05:07
írjátok be:
graphics attribute
copy from #105 to #101
:)

az is poén hogy from 102 to 0
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.October.28. 20:07:22
copy from #105 to #101
Feltaláltunk egy szövegszerkesztőt, ami mindössze egysoros. Lehet vele indulni a programozási versenyen. :D

Quote
az is poén hogy from 102 to 0
Ennek nálam nem volt hatása különösebb. Viszont ha a 103-as csatornára másoltam, annak sem. Pedig gondoltam, hátha kiad valamiféle hangokat a szövegnek megfelelően.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.October.28. 20:26:23
elvileg ha escape szekvenciákat gépelnél, hangot is tudna adni :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.October.28. 20:33:11
elvileg ha escape szekvenciákat gépelnél, hangot is tudna adni :)
Egyébként ezek az escape szekvenciák hogy vannak pontosan? van valami "képlet", amivel leírható, hogy milyen hangnak milyen szekvencia felelne meg?
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.October.28. 20:42:34
Egyébként ezek az escape szekvenciák hogy vannak pontosan? van valami "képlet", amivel leírható, hogy milyen hangnak milyen szekvencia felelne meg?

igen. minden exos művelet (grafika, zene stb) ilyen. de már én se nagyon emlékszek.
pl olyat lehet hogy lezárod a hangcsatornát, megnyitod mint file out és akkor ami zenét lejátszottál az kimentődik.
ezután ha megnyitod a fájlt és a hangcsatornára irányítod akkor lejátszódik a zene.
ugyanez igaz grafikára is, plot, set ink stb stb mind átvihető fájlba.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.November.18. 19:16:55
basic-ből akarok out-al hangot csinálni, de egyszerűen nem találom sehol a portok leírását!
help! :)
Title: Re: Általános BASIC Kérdések
Post by: geco on 2015.November.18. 19:55:25
basic-ből akarok out-al hangot csinálni, de egyszerűen nem találom sehol a portok leírását!
help! :)
Próbáld itt (http://ep128.hu/Ep_Konyv/Exos.htm#240) :)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.November.18. 20:26:50
aha köszi
hát nem jött össze amiért kipróbáltam... azt hittem hogy portra írással finomabb hangerő változást lehet elérni, de sajnos csak ugyanazt amit a basicben a +0.1-el :(
ugyanis ha lenne kisebb, akkor azzal érdekes effektet lehetne létrehozni :(
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.November.19. 11:22:46
azt hittem hogy portra írással finomabb hangerő változást lehet elérni, de sajnos csak ugyanazt amit a basicben a +0.1-el :(
ugyanis ha lenne kisebb, akkor azzal érdekes effektet lehetne létrehozni :(
Mi lehet az, amire nem elég a 0 és 255 közötti számérték? Erre kíváncsi lennék.

Még valamelyik Enterpressben volt egy bepötyögni való játék, ami a megszakításokat tiltotta, és ott is valami OUT-tal generálta a hangot. Autóverseny lehetett, ahol a képernyőn az autóval körbe-körbe kellett menni. Ez nincs meg valahol a neten? Vagy lehet, nem is Enterpress-ben volt?
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.November.19. 11:33:27
hát a hangmagasság basic-ben se 0-255, ugyanis tizedes jegyek is vannak, ne felejetsd.
és a porton se 8 bit, hanem 12 vagy 14 bit (két port)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.November.19. 11:39:16
hát a hangmagasság basic-ben se 0-255, ugyanis tizedes jegyek is vannak, ne felejetsd.
Az előbb nem a hangerőre gondoltál?
Úgy emlékszem, pl. 0.05 és hasonló PITCH értékek is működnek.
A hangmagasság egyébként 0-127-ig lehet. Illetve lehet utána is, de az már újra mély lesz, ha jól emlékszem.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.November.26. 16:36:46
na asszem elkészült az első valamennyire értékelhető gratcha játék :D
jó béna de ahhoz képest amúgy játszható :)
space-el emelkedik, amúgy sűllyed :)
Title: Re: Általános BASIC Kérdések
Post by: Povi on 2015.November.26. 16:37:34
Még valamelyik Enterpressben volt egy bepötyögni való játék, ami a megszakításokat tiltotta, és ott is valami OUT-tal generálta a hangot. Autóverseny lehetett, ahol a képernyőn az autóval körbe-körbe kellett menni. Ez nincs meg valahol a neten? Vagy lehet, nem is Enterpress-ben volt?
Ha jól emlékszem, a második számban volt.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2015.November.26. 16:43:38
na asszem elkészült az első valamennyire értékelhető gratcha játék :D
Nem kéne Game Over, amikor elfogy az energia? :-)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.November.26. 16:45:37
Nem kéne Game Over, amikor elfogy az energia? :-)

de
amúgy 700 a rekordom
nektek? :)
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2015.November.26. 16:53:53
amúgy 700 a rekordom
Így a sérthetetlenség pokéval nem nehéz több tízezret csinálni, csak be kell nyomni az alt+w-t :-)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.November.26. 17:10:45
Így a sérthetetlenség pokéval nem nehéz több tízezret csinálni, csak be kell nyomni az alt+w-t :-)

jól van na, még továbbfejlesztem
lesz eleje, vége, scrollos háttér (1 karakteres anim, szóval ne igazi flappy birdet várjatok)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.November.26. 18:27:01
újabb, van vége, meg egyéb fejlesztések, hangok

még kicsit bugos néhol
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2015.November.26. 18:33:16
még kicsit bugos néhol
Igen pl a pontszámláló :oops:

De nagyon jól néz ki!
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.November.27. 14:00:26
nem jut eszembe és a doksikban se találom azt hogy a basic random seedjét x értékre hogy kell beállítani
vagy nem is volt ilyen???
Title: Re: Általános BASIC Kérdések
Post by: ergoGnomik on 2015.November.27. 15:07:20
A felhasználói kézikönyv szerint létezik a RANDOMIZE utasítás, amivel inicializálni lehet a véletlen szám generátort, de ennek nincs paramétere. Nem lehet, hogy ehhez valami POKE/SPOKE kell?

Illetve az RND függvénynek van paraméter nélküli és paraméteres hívása, de a paraméter csak a skálázást - [0..x) - módosítja.

Na, a tippek és trükkök könyvben benne van, hogy a 211h és 246h-247h címeken található egy és két bájtos értékkel bűvészkedik. Akkor ezeket kell változtatni. Erre gondoltál?
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.November.27. 15:55:19
aha köszi
és vajon ebbe a 3 byte-ba hogy kell beírni a számot?
Title: Re: Általános BASIC Kérdések
Post by: ergoGnomik on 2015.November.27. 20:31:17
Igazából nem tudom hogyan kellene. Egy pici BASIC programban azt csináltam, hogy sorrendben POKE-kal beléjük írtam 1, 2, 3-at, kiírtam az RND értékét, újra beleírtam ugyan azt, mégegyszer PRINT RND, és a két érték azonos volt. Ha ki-REM-eltem a második adag POKE-ot, akkor meg változott. Ez segít?
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.November.27. 20:40:36
Igazából nem tudom hogyan kellene. Egy pici BASIC programban azt csináltam, hogy sorrendben POKE-kal beléjük írtam 1, 2, 3-at, kiírtam az RND értékét, újra beleírtam ugyan azt, mégegyszer PRINT RND, és a két érték azonos volt. Ha ki-REM-eltem a második adag POKE-ot, akkor meg változott. Ez segít?

ez ok, mivel az a seed, és a random úgy műxik hogy amit a függvény kiad az lesz a következő seed
persze elvileg bármilyen formátumban beleírva használható lehet...
a gracha editorba akarok olyat hogy a színekbe random generált színskálát lehessen megadott seed-el könnyebben szabályozni (azaz újra előhívni ugyanazt a skálát a beadott seed-el)
Title: Re: Általános BASIC Kérdések
Post by: Povi on 2015.December.05. 17:36:24
érdekes bug az IS-BASIC-ben:

a foglalt szavak is lehetnek változók

a print=5-öt nem fogadja el, de a let print=5-öt már igen

érdekes a helyzet olyan foglalt szavaknál, amik nem lehetnek sor elején, pl. AT

nézd az ábrát:
itt már elfogadja az értékadást a LET szól nélkül is
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.December.05. 18:08:13
ez vicces :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.December.05. 19:30:35
Ez úgy lett volna poén, ha csak egy sort mutatunk meg, pl.:

100 PRINT PRINT

Senki nem értette volna, mi ez. Utána eláruljuk az előző sort:

90 LET PRINT=1024
:D
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.December.27. 19:38:34
hogy lehetne basic-ben olyat, hogy kvantálni számokat
tehát pl van 1-100-ig száz szám, és 1-10-ig 1-é változzon, 11-20-ig 10-é stb
más nyelvben ez elég könnyű, itt van valami megoldás rá?
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2015.December.27. 19:45:02
INT(x/10)*10, vagy x-MOD(x,10)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.December.27. 19:48:15
INT(x/10)*10, vagy x-MOD(x,10)

áh tényleg, az int! :)
köszi
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.December.28. 12:26:58
meg akarom újra írni egy elveszett zeneszerkesztő programomat, amit basic-ben írtam
a gond az hogy nem emlékszem hogyan szinkronizáltam a szólamokat :D
furcsa...

mert ügye két lehetőség van:
1: a duration meghatározza a hang hosszát, kész a szinkron. több szólam esetén azonban ez nem jó mert ha egyik szólamban betellik a sound buffer akkor minden lelassul ennek a szólamnak a ritmusára
2: basic üres ciklusokkal csinálom meg a szinkront és minden sound utasításban interrupt parancs van. ezzel az a gond hogy esc szekvenciákba nem lehet menteni, pedig a régi programom egyik lényege volt hogy esc szekvenciákba tudott menteni
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.December.29. 11:09:01
a gond az hogy nem emlékszem hogyan szinkronizáltam a szólamokat
Mindig mindegyik szólamnak szólnia kell. Ha valamelyiken nincs hang, akkor a hangerő 0. És SYNC-kel szinkronizálni az összeset.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.December.29. 11:14:49
Mindig mindegyik szólamnak szólnia kell. Ha valamelyiken nincs hang, akkor a hangerő 0. És SYNC-kel szinkronizálni az összeset.

ez csak akkor jó ha ugyanolyan hosszúak a hangok
de ügye egy zenében nem ugyanolyan hosszúak általában

ja amúgy egy alapvető dolgot elfelejtettem mondani! ez nem egy szokványos zeneszerkesztő, hanem csak realtime játékot tud rögzíteni, tehát nem lehet editálni. ez volt annak a régi programomnak is a lényege. plusz az hogy több szólamot tudtál bejátszani, miközben visszajátszotta az előzőeket. így tudtál többszólamú zenét csinálni.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.December.29. 11:25:15
de ügye egy zenében nem ugyanolyan hosszúak általában
Na igen, ezt basicben sosem tudtam én normálisan megoldani. Legfeljebb úgy, hogy következő hangként is az előző hang szól tovább, míg egy másik csatornán a hang pedig más. De ez csak akkor jó, ha nincs envelope, mert különben nem lesz a hang folyamatos.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.December.29. 12:14:36
Na igen, ezt basicben sosem tudtam én normálisan megoldani. Legfeljebb úgy, hogy következő hangként is az előző hang szól tovább, míg egy másik csatornán a hang pedig más. De ez csak akkor jó, ha nincs envelope, mert különben nem lesz a hang folyamatos.

lehet hogy az a trükk, vagyis a régi programom csak azért működött jól, mert csak rövid zenéket lehetett vele csinálni?
amíg nem tellik be a sound buffer, addig jó a szinkron.
végül is amit most írok se akarom többre használni, csak rövid zenékhez...
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2015.December.29. 13:12:27
Még azt lehet megpróbálni, hogy az első hangját a két csatornának szinkronizálni. És utána az egyik csatornán a hang szól tovább, a másikon meg jönnek más hangok, de nincs szinkron. Nem tudom, hogyan működne.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2015.December.29. 18:25:35
itt a mínusz egyedik verzió, amibe épp bejátszottam valamit és végre valamilyen szinten visszajátssza
(maximum z80 frekivel  jó csak!!)
továbbra is fogalmam sincs hogy lehet majd jóra megcsinálni :)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.January.03. 18:31:45
egy kis program
lejátszik egy zenét, de fájlba irányítja (esc szekvenciák), aztán a fájlból lejátsza (másolja a file tartalmát a hang csatornára)
a fileio kiterjesztéssel műxik emu alatt
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.January.05. 20:08:47
az egyik első játék volt amit EP-n írtam, az a bizonyos falvédő játék. biztos ismertek ilyet, egy falat látunk, felül van a figuránk amelyiket jobbra balra tudjuk irányítani, és követ tudunk ledobni. a falon meg másznak fel az ellenségek, és meg kell akadályozni hogy felérjenek.
több ilyet láttam specyn meg ep-n is, bár most nem talátam egyet se, meg az enyém sincs meg már.

de most az gracha editorban gyorsan összedobtam egy ilyesmi grafikát, nincs még kész, majd még fejlesztgetem
Title: Re: Általános BASIC Kérdések
Post by: geco on 2016.January.05. 21:24:46
Én nem emlékszem, hogy láttam volna ilyen ledobálós játékot :)
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2016.January.05. 21:30:47
Én nem emlékszem, hogy láttam volna ilyen ledobálós játékot :)
Én se.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.January.05. 22:33:39
hm hát ez érdekes... specyn se láttatok ilyet?
lehet hogy csak álmodtam. mindenesetre az biztos hogy én csináltam ilyet. ennél a játéknál fedeztem fel, hogy c16 módban elég jól és gyorsan lehet a print utasítással sprite-okat rajzolni :)
Title: Re: Általános BASIC Kérdések
Post by: Trefe on 2016.January.05. 22:54:00
Tényleg, emlékszem! Anno TVC-re és EP-re is átírtam, csak EP-n nagyon lassú volt. Attrib módban ment.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.January.05. 23:08:35
Tényleg, emlékszem! Anno TVC-re és EP-re is átírtam, csak EP-n nagyon lassú volt. Attrib módban ment.

nocsak :)
vajon mi lehetett a címe?
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.January.06. 23:33:34
itt egy végleges, ha valaki akar valamit kezdeni vele :)
a sarokba raktam a figurákat, amiket space-el le lehet törölni
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.January.07. 14:54:54
az a bizonyos falvédő játék. biztos ismertek ilyet
EP-re is van, két része is van, de nem jut eszembe a címe... Talán a Ramparts?
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.January.07. 14:57:25
EP-re is van, két része is van, de nem jut eszembe a címe... Talán a Ramparts?

abban pont lerombolni kellett :)
Title: Re: Általános BASIC Kérdések
Post by: Trefe on 2016.January.07. 19:04:36
Azt hiszem OSTROM néven mentettem. TEXT 40 és ATTRINUTUM módban is átírtam. Ha megtalálom valamelyik régi lemezen feltehetem.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.January.07. 19:35:21
Azt hiszem OSTROM néven mentettem. TEXT 40 és ATTRINUTUM módban is átírtam. Ha megtalálom valamelyik régi lemezen feltehetem.

na az jó lenne :)
és bármi más amit azokon a lemezeken találsz
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2016.January.07. 19:37:10
Azt hiszem OSTROM néven mentettem. TEXT 40 és ATTRINUTUM módban is átírtam. Ha megtalálom valamelyik régi lemezen feltehetem.
Ez volt az?
A Zemen féle archívumban találtam.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.January.07. 20:00:27
na ez hamar meglett. :)
bár én valami szebbre/jobbra emlékeztem
Title: Re: Általános BASIC Kérdések
Post by: Trefe on 2016.January.07. 20:38:46
LGB epbas visszafejtőjével megnézve, ezt nem én készítettem. Ez még az eredeti Spectrumos vagy TVC-s verzió átirata, goto és gosub-okkal. Az enyém DEF/CALL hívásokkal ment, bár lehet, hogy emiatt ez a verzió mintha gyorsabb lenne egy hangya szellentésnyivel... Én akkoriban túlcsicsáztam.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.January.07. 21:31:43
egy kis segítség, ha valaki folytatná :)
persze majd zippelve lesz megfelelő sebességű
Title: Re: Általános BASIC Kérdések
Post by: Ep128 on 2016.January.07. 23:17:11
De már most is jól néz ki! :-D

egy kis segítség, ha valaki folytatná :)
persze majd zippelve lesz megfelelő sebességű
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.January.07. 23:31:28
na van ledobás, bár egy külön programrész, szóval nem a főprogramban esik. de ez ilyen kis egyszerű lesz :)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.January.07. 23:34:08
jó lesz a sebesség zippelve is, bár persze most még nincsenek ellenfelek
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.January.08. 18:16:08
most már ne folytassa senki mert én írom tovább :)
Title: Re: Általános BASIC Kérdések
Post by: nyuzga on 2016.January.08. 18:47:58
most már ne folytassa senki mert én írom tovább :)

Szép a fal, de szerintem túl csicsás. Lehetne kicsit inkább barnás és nem ilyen fényes, de te tudod. :)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.January.08. 18:58:54
Szép a fal, de szerintem túl csicsás. Lehetne kicsit inkább barnás és nem ilyen fényes, de te tudod. :)

ez a divat! :)
szép élénk színek :)
Title: Re: Általános BASIC Kérdések
Post by: nyuzga on 2016.January.08. 19:13:08
ez a divat! :)
szép élénk színek :)

és mi lesz az epilepsziásokkal ? :D
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2016.January.08. 20:17:49
és mi lesz az epilepsziásokkal ? :D

[attachthumb=1]
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.January.08. 20:20:08
haha ez jó. darkos hangulat!
amúgy ilyen minden játékba kéne, azaz hogy a játékos átszínezhesse ahogy akarja.
persze a fejlesztők nem szeretik az ilyet :)
Title: Re: Általános BASIC Kérdések
Post by: nyuzga on 2016.January.08. 20:42:46
persze a fejlesztők nem szeretik az ilyet :)

Persze mindenkinek megvannak az elképzelései.
Szépen süt a nap a frissen égetett téglákra.
Jönnek az arabok, (akarom mondani a törökök) mi meg gonosz módon kővel dobáljuk őket. :D
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.January.08. 21:02:30
na itt egy új
szebb graf. jönnek az ellenfelek. ha felérnek, még nem történik semmi
le lehet dobni őket. itt van egy kis graf hiba, majd javítom
ez itt a zzippelt

edit: ja tudom is a hibát, írta a zzzip hogy local/global változók összekeveredtek
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2016.January.08. 21:26:39
Ez nagyon jó!
Title: Re: Általános BASIC Kérdések
Post by: Ep128 on 2016.January.08. 22:04:52
Nagyon tetszik! :-)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.January.08. 22:33:59
na mára még egy, hangok sokat dobnak rajta :)
Title: Re: Általános BASIC Kérdések
Post by: gflorez on 2016.January.08. 22:36:22
"Legszebb és nagyon játszható."(google translator...)
Title: Re: Általános BASIC Kérdések
Post by: gflorez on 2016.January.08. 22:43:05
"Jó az egy összeállítás a kis játékok"
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.January.08. 22:50:59
"Jó az egy összeállítás a kis játékok"

nekem is az jutott eszembe hogy ilyen kis játékokból milyen jó összeállítást lehetne csinálni
(i hope the translator can translate this :) )
Title: Re: Általános BASIC Kérdések
Post by: geco on 2016.January.09. 09:56:27
Nagyon jó lett, mennyivel szívesebben fizettek volna ilyen basic játékokért régen az emberek, mint pl a Wind surfer ;)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.January.09. 16:40:33
most azzal szívok hogy a zzippelt program azt írja hogy nincs több adat a read-nak ami a data sorokból olvas
furcsa, miért lehet ez?
ez a program
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.January.09. 17:46:54
for ciklusba rakom (tehát nem az END stringet vizsgálom mint adat végét) akkor jó, furcsa...
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.January.09. 19:31:20
na itt egy kb végleges
talán túl könnyű, bár egy idő után meg túl nehéz...
majd nyitok neki külön topikot a verseny részlegen :)
Title: Re: Általános BASIC Kérdések
Post by: nyuzga on 2016.January.09. 20:02:40
Jó lett. :)

Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2016.January.09. 21:11:08
talán túl könnyű, bár egy idő után meg túl nehéz...
Igen egy kicsit hirtelen lesznek nagyon sokan.

Kéne még egy szép high score list.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2016.January.09. 21:12:18
Meg esetleg járhatna valami bonus azért, amikor éppen sikerült minden támadót leküzdeni.
Title: Re: Általános BASIC Kérdések
Post by: Ep128 on 2016.January.09. 23:35:47
Eszelős jó, nem lehet abbahagyni! :-D (Nekem 62 a rekord most, de kifolyik a szemem, így megyek aludni lassan... :-D )
Title: Re: Általános BASIC Kérdések
Post by: Ep128 on 2016.January.09. 23:36:32
Meg esetleg járhatna valami bonus azért, amikor éppen sikerült minden támadót leküzdeni.

Ezzel egyetértek, dobna a játékon! :-) Meg a Score list is...
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2016.January.10. 08:51:40
Az ELLFRISS eljárást talán kétszer kellene meghívni a GAME-ban, hogy nehezebb legyen?
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.January.10. 15:20:43
Az ELLFRISS eljárást talán kétszer kellene meghívni a GAME-ban, hogy nehezebb legyen?

asszem inkább az lesz hogy lesz egy ellenség aki random lesz kiválasztva és gyorsabban mászik a többieknél
Title: Re: Általános BASIC Kérdések
Post by: ergoGnomik on 2016.January.10. 19:11:41
asszem inkább az lesz hogy lesz egy ellenség aki random lesz kiválasztva és gyorsabban mászik a többieknél
Szerintem inkább úgy válaszd a gyorsan mászót, hogy a legtávolabbi legyen attól az ellenségtől, amelyik addig a legmagasabbra mászott.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.January.11. 16:22:46
lehet olyat basic-ben hogy az edit 1 2 stb programhelyekre betöltőből betölteni programokat?
tehát van egy betöltő ami betölt 3 programot és egyiket elindítja
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2016.January.11. 16:41:44
SAVE ALL
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.January.11. 21:36:14
SAVE ALL

ááá téééényleg :)

hm hm, viszont zzzip esetén ez nem műxik, ha jól emlékszem
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.January.24. 16:38:39
geco írta a másik topikban, és több helyen is olvastam már, hogy az ep basic-je lassabb a többi hasonló kisgép basic-jénél.
ez amúgy lehet hogy igazi is, de kérdés, hogy hogyan mérték ezt le? mert ügye ep-n megy a háttérben a sound eszköz, amivel jó hangokat lehet csinálni, vagy akár zenét is. aztán c16 módban tök nagy "sprite"-okat lehet kirakni print utasítással. szóval nem igazán lehet 1:1-ben pl specyvel vagy c64-el összehasonlítani...
Title: Re: Általános BASIC Kérdések
Post by: geco on 2016.January.24. 16:44:09
geco írta a másik topikban, és több helyen is olvastam már, hogy az ep basic-je lassabb a többi hasonló kisgép basic-jénél.
ez amúgy lehet hogy igazi is, de kérdés, hogy hogyan mérték ezt le? mert ügye ep-n megy a háttérben a sound eszköz, amivel jó hangokat lehet csinálni, vagy akár zenét is. aztán c16 módban tök nagy "sprite"-okat lehet kirakni print utasítással. szóval nem igazán lehet 1:1-ben pl specyvel vagy c64-el összehasonlítani...
Ez igaz, viszont ahol esetleg sokat kell számolni, az jelentkezik.
Egyébként a legegyszerűbb teszt, ciklus 1-től 100-ig és az érték kiprintelése a képernyőre.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.January.24. 16:51:14
Ez igaz, viszont ahol esetleg sokat kell számolni, az jelentkezik.
Egyébként a legegyszerűbb teszt, ciklus 1-től 100-ig és az érték kiprintelése a képernyőre.

na de ez az ami kb semmire se jó :)
a számolás se jó sokra szerintem. elég ritka az olyan program ami csak számol, még akkor is ha nem játékokról beszélünk :)
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2016.January.24. 16:54:09
Ebben a példában már az is rossz, hogy EDITOR-on keresztül megy képernyőre.
A PRINT #102 máris sokat gyorsít.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.January.27. 23:29:11
na ez érdekes lehet, 10 soros basic program versenyek és eredményeik, c64, cpc stb
http://gkanold.wix.com/homeputerium#!10liners/c15hi

ezeket könnyen át lehetne írni talán :)

edit: itt txt-ben letölthetők!
http://gkanold.wix.com/homeputerium#!gamelist/cves
Title: Re: Általános BASIC Kérdések
Post by: Povi on 2016.January.28. 15:47:16
he-he, ez jó!

anno még PGyuri mutatott speccire egy soros BASIC programozói versenyt :-)
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2016.January.28. 15:52:19
anno még PGyuri mutatott speccire egy soros BASIC programozói versenyt :-)
Az EP-sből (https://enterpriseforever.com/jatekok/egysoros-jatek-felhivas/msg29054/#msg29054) kimaradtál?
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.February.05. 20:22:47
egy egyszerű kis játék ötlet, valaki megcsinálhatja, én csak elkezdtem. basic-ben kiválóan megvalósítható játék!

a játék:
-egy vonal húzódik balról jobbra
-kapunk egy % értéket hogy a vonal hány %-ánál kell eltalálni ahogy a vonal növekszik (gombnyomás)
-ezt lejátszuk 10x mondjuk és átlagot kiírunk mint végeredményt
-a lényeg hogy minél pontosabban eltaláljuk a %-ot
-0%-ról ne induljon, sőt én 30%-ot írtam be, szóval annál kisebbről nem indulhat

egyelőre ennyit írtam meg belőle:
Title: Re: Általános BASIC Kérdések
Post by: geco on 2016.February.06. 11:38:55
jó ötlet :)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.February.06. 14:37:12
jó ötlet :)

asszem valami mobiljáték volt ilyesmi
de biztos egy csomó ilyesmi van mobilon
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.February.07. 17:51:33
kicsit tovább írtam
azt most hirtelen nem tudom hogy lehetne kiszámolni hogy mi is az eredmény :D
most csak kiírja a végén a cél %-ok átlagát és a játékos %-ainak átlagát
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.February.24. 19:24:26
Az ostrom játék eléggé jó!
Át kéne írni, hogy ne lentről fel, hanem fentről le menjenek az ellenségek, ne fent, hanem lent legyünk, és a fal helyett csillagos világűr legyen, és a kő helyett lövedék legyen. Invaders reloaded.
Kéne egy kis nehezítés bele. Pl. ha túl sokat lövünk, túlmelegszik a lézer, így pontosan kelljen célozni.
Nem tudom, van-e OUT 191,12 a program elején, de ha nincs, gyorsítana kicsit.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.February.24. 20:14:21
hát írd át :)
amúgy jó hogy eszembe juttattad, nyitnom kéne neki egy topikot
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.February.24. 21:19:15
hát írd át :)
Ahhoz el kéne mélyednem a játék felépítésében, még meglátom. De lényegét tekintve ugyanaz lenne, csak az ellenség kiindulási koordinátája lenne más, a haladási irányban nem -1 hanem +1 -gyel növekedne a függőleges pozíció, és a krapek a képernyő alján mozogna. A többi csak grafika.

Szerintem nem kell nyitnod új topikot, hanem az eddigieket áthelyezni új topikba és ott folytatni.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.March.19. 18:57:29
Igazából az a kérdés, hogy van nem BASIC program ZX81-re? :-)
Láttam Áttörés klónokat a linken. Az gondolom, nem basic. Eléggé nehéz lenne basicben a vízszintes scroll-t megcsinálni az egész képernyőre, pedig nagyon poén lenne, gondolkoztam már ezen. Lenne két videólap, és amíg az egyik látszik, addig a másikon átrajzolná a pályát, majd megjelenítené. Ha karakteres képernyőn dolgozunk, és az editor is arra van megnyitva, akkor "csak" egy del-t kéne nyomni mindegyik sor elejére, és balra menne az egész, a sorok végére meg kirajzolni az új karaktert. A képernyő tartalmát tömbben tárolni talán nem lenne jó, inkább a képernyőről kéne leolvasni, mi van ott. Bár a felszálló rakétáknak a koordinátáit is kéne tudni.
Gondolkoztam már scrollozó bomberen is, ami a legelső házat mindig kirajzolja a végére is, és így megy körbe-körbe. Ott be lehetne lőni, hogy ne az egész képernyő scrollozzon, hanem a legmagasabb házhoz igazítsa. Ezzel a játék egyre gyorsulna. Ráadásul a repcsi is mindig ugyanabban a vízszintes pozícióban lenne, még azt se kéne mozgatni, attól aztán szupergyors lenne. :D Na meg a bombát kéne mozgatni a képernyővel és a koordinátáját számon tartani. A bomba is körbemehet, és a képernyő elejére kerülhet, vagy nehezítésként olyankor eltűnhet.

Ha basicben íródtak azok az Áttörék klónok ZX81-re, kíváncsi lennék, hogy oldották meg.
Title: Re: Általános BASIC Kérdések
Post by: geco on 2016.March.19. 19:19:01
Szerintem ZZZIP-elve lehet jó sebességet elérni a Scramble klónokkal is karakteres megvalósításnál.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.March.19. 19:52:08
Szerintem ZZZIP-elve lehet jó sebességet elérni a Scramble klónokkal is karakteres megvalósításnál.

a scrollt hogyan oldanád meg? nekem ötletem sincs, szerintem nem is lehet :) hacsak nem egy asm rutinnal
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.March.19. 19:55:14
a scrollt hogyan oldanád meg? nekem ötletem sincs, szerintem nem is lehet :) hacsak nem egy asm rutinnal
Amit írtam, DEL karakterkódokkal a sorok elején, az nem lenne jó? Nyilván van egy rakat hátránya.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.March.19. 20:02:37
Amit írtam, DEL karakterkódokkal a sorok elején, az nem lenne jó? Nyilván van egy rakat hátránya.

pár sor scrollozása is tök lassú lenne vele...
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.March.19. 20:08:17
pár sor scrollozása is tök lassú lenne vele...
Hát igen, de más megoldás nincs szerintem.
Főleg, hogy a 0-ás csatornára kéne printelni, ha jól sejtem, hogy működjön a DEL, az lassítaná a legjobban.

Vagy tömbökben tárolná a sorokat (pl. 40 karakter hosszúakat), és azokat írná ki állandóan a 102-es csatornára, felülírva az előzőt.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.March.19. 20:11:55
A bombázó játékkal kapcsolatban még az jutott eszembe, érdekesebb lenne, ha nem is a repcsi kerülne egyre lejjebb, hanem a házak egyre feljebb. Így fel se tűnne, ahogy ereszkedünk le. Csak az a baj, a talaj is látszik, az meg bénán nézne ki, ha egyre feljebb kerülne, erre kéne valamit kitalálni.
Title: Re: Általános BASIC Kérdések
Post by: geco on 2016.March.19. 20:49:59
én is a tömb megoldásra gondoltam, és az LPRINT-re, vagy melyik print is a gyors, ZZZIPelve tuti elfogadható lenne a sebesség.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.March.19. 21:29:04
Ha nem az egész képernyő hosszában, hanem pl. csak fele méretű lenne a játékképernyő, akkor gyorsabb lenne ezzel a PRINT-es módszerrel? Sokat számít az, hogy egyetlen PRINT utasítás mennyit ír ki? Mert szerintem inkább a sok egymás utáni PRINT az, ami lassít.
Title: Re: Általános BASIC Kérdések
Post by: geco on 2016.March.19. 21:48:41
Az is jó, az is lassít, ha többet írsz ki egy sorba, de szerintem több print jobban lassít.
Le kéne tesztelni, hogy a ZZZIP mekkora tömböt bír el jó sebességgel.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.March.27. 20:52:31
Azt nem lehet valahogy megcsinálni attribútum módban, hogy ha plot utasítással rajzolunk valamit a lapra, a print ne törölje le, csak eltakarja?
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.March.27. 21:08:39
Azt nem lehet valahogy megcsinálni attribútum módban, hogy ha plot utasítással rajzolunk valamit a lapra, a print ne törölje le, csak eltakarja?

asszem attr módban nincs xor (line mode 3) :(
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.April.02. 23:00:37
egy kis primitív effekt :)
persze gyorsított emuval kell indítani
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.April.02. 23:12:42
paletta animmal
(a kirajzolásból gombnyomással kell kilépni)
Title: Re: Általános BASIC Kérdések
Post by: Ep128 on 2016.April.03. 00:19:51
Tetszik! :-)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.April.04. 14:25:05
Valamit nem értek. Ha van két attribútum videolap a képernyőn, egymás alatt, akkor nem lehet eltérő bias a két lapon? Mert ahogy állítgattam a bias-t az egyiken, a másikon is változtak a színek. Ez csak attribútum lapoknál van így, vagy hogyan van ez?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2016.April.04. 14:28:52
Egy BIAS van a Nick-ben.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.April.04. 14:42:55
Egy BIAS van a Nick-ben.
Áhá, szóval akkor akárhány attribútum vagy 16 színű képernyő van nyitva egyszerre, a bias közös mindegyiken, de az alsó 8 szín mindegyiken szabadon választható?

És a bias-ban van valami logika? Mondjuk minél nagyobb számot adunk meg, annál élénkebbek a színek, vagy ilyesmi? Tudom, ezek a színcsoportok 8-asával. De valami alapján ki lehet következtetni, hogy adott esetben melyik bias a legjobb?
Title: Re: Általános BASIC Kérdések
Post by: lgb on 2016.April.04. 17:45:17
Áhá, szóval akkor akárhány attribútum vagy 16 színű képernyő van nyitva egyszerre, a bias közös mindegyiken, de az alsó 8 szín mindegyiken szabadon választható?

És a bias-ban van valami logika? Mondjuk minél nagyobb számot adunk meg, annál élénkebbek a színek, vagy ilyesmi? Tudom, ezek a színcsoportok 8-asával. De valami alapján ki lehet következtetni, hogy adott esetben melyik bias a legjobb?

A BIAS vegulis azt adja meg, hogy alkalmasint 16 szintu modban a felso 8 szin (az also 8 elfer az LPB-ben, a felso mar nem, ezert is globalis a bias, mert nem tudna a Nick hol tarolni) "hol kezdodjon" az EP szinpalettan. De csak 8-al oszthato helyen kezdodhet (nyilvan, mivel azon belul a 3 bit a szin szama, a 8 db).

http://ep.lgb.hu/colors.html

Ha az elso oszlop numerikus ertekeit nezed, az mindig 8-al oszthato, az a BIAS tehat azt jelenti, hogy az es mogotte allo 7db szin lesz az a 8 ami igy kijon azzal a bias-szal. Mivel a tablazat 16*16-os, van meg pont a kozepen is ami 8-al oszthato, minden sorban.

Ha, jol gondolom, es jol emlekszem :)
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2016.April.04. 18:06:27
BASIC-ben (pontosabban az EXOS BIAS változójával), 0-255 érték használható, amit után az EXOS kerekít 8-al oszthatóra.
Title: Re: Általános BASIC Kérdések
Post by: lgb on 2016.April.05. 21:15:39
Nem tudom van-e ertelme, de :

http://ep.lgb.hu/colors.html

Probaltam vmi palette osszeallitot gyorsan beleirni JS-ben ... Hat nem biztos, hogy tuti, meg hogy minden browser-nek tetszini fog a ganyolasom :-/ Ezt sokkal szebben kene megcsinalni.

Jobb oldalt ki kell valasztani (??? van az elejen) a megfelelo paletta poziciot, aztan a bal oldali nagy szinmatrixba kattintva a kivalasztott paletta poziciora teszi a szint. A BIAS-hoz persze csak ugy engedi elvileg valasztani egyben, ahogy kell ... Azaz har mondjuk az 1-es szinre klikkelunk a BIAS 0 lesz, mert ugye 1 nem lehet ...
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.April.05. 22:04:40
http://ep.lgb.hu/colors.html
Ez eddig is ilyen volt, nem? Én most is "csak" a színekre tudok rámenni az egérrel és az egész szín betölti a képernyőt.
Title: Re: Általános BASIC Kérdések
Post by: ergoGnomik on 2016.April.05. 22:06:34
Ez eddig is ilyen volt, nem? Én most is "csak" a színekre tudok rámenni az egérrel és az egész szín betölti a képernyőt.
Jobboldalon, a kérdőjeleknél tapogass az egérrel, majd utána a bal oldalon válassz színt a kijelölt blokkba!
Title: Re: Általános BASIC Kérdések
Post by: lgb on 2016.April.05. 22:08:39
Ez eddig is ilyen volt, nem? Én most is "csak" a színekre tudok rámenni az egérrel és az egész szín betölti a képernyőt.

Shift-Reload, akarmi? :) Lehet a browser-ed becache-elte a regebbi verziot? :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.April.05. 22:35:51
Lehet a browser-ed becache-elte a regebbi verziot? :)
Ááá, igen, ez újabban mindent becache-el. Ezért láttam Laci oldalán is sokáig, hogy januárban frissítve utoljára.
Szóval itt össze lehet állítani a palettát, ez a lényege?
Title: Re: Általános BASIC Kérdések
Post by: lgb on 2016.April.05. 22:39:22
Ááá, igen, ez újabban mindent becache-el. Ezért láttam Laci oldalán is sokáig, hogy januárban frissítve utoljára.
Szóval itt össze lehet állítani a palettát, ez a lényege?

Hat, az akar lenni, de hogy van-e masok szerint ennek a formaban, igy ertelme, azt nem tudom :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.April.05. 23:01:03
Hat, az akar lenni, de hogy van-e masok szerint ennek a formaban, igy ertelme, azt nem tudom :)
Divatba jön újra az attribútum mód. Talán még jól jöhet.
Bár elkísérletezget az ember, előbb-utóbb megérti, kb. hogyan működik.
A színárnyalatok kódjai jönnének jól. Pl. a világoskéktől a sötétkékig, fokozatos átmenetekkel. A fokozatos színátmenetek is divatosak mostanában. :D Tudom, ott az rgb, de az nem az igazi.
Title: Re: Általános BASIC Kérdések
Post by: minmax on 2016.April.05. 23:15:27
Nem tudom van-e ertelme, de :

http://ep.lgb.hu/colors.html

Szerintem már a régi is hasznos volt, így még érthetőbb az egész színválasztósdi, csak azt hiányolom a régiből, hogy nagyobb felületen látszódjon a szín (lehet függ a felbontástól). Nem lehetne, hogy a jobb oldal ne legyen teljesen fehér, hanem ahol már nincs szöveg ott is mutassa a színt?
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.April.05. 23:36:50
olyan sorrendbe kéne rakni a színtáblázatot, mint amit a gracha editorba tettem (amit a demókazettáról loptam)
grafikus szempontból ez így nem túl használható hogy összevissza vannak
illetve amit szipucsu is mondott, hogy árnyalatokat csinálni különböző színekből, afféle előre elkészített tónusok, ezt is használják grafikusok (paletták)
Title: Re: Általános BASIC Kérdések
Post by: lgb on 2016.April.05. 23:41:10
olyan sorrendbe kéne rakni a színtáblázatot, mint amit a gracha editorba tettem (amit a demókazettáról loptam)
grafikus szempontból ez így nem túl használható hogy összevissza vannak
illetve amit szipucsu is mondott, hogy árnyalatokat csinálni különböző színekből, afféle előre elkészített tónusok, ezt is használják grafikusok (paletták)

Nem ossze-vissza vannak, hanem ugy, ahogy az EP szinei a maguk termeszetes modjan vannak :) Ha nem ilyen sorrendben lennenek, BIAS-t nem is lehetne igazan valasztani, akkor lenne csak ossze-vissza :) Ok, de ertem en a problemat persze, grafikus nem vagyok, az mar aztan biztos. Amugy meg ilyesmi aprosagokra nem igazan alkalmas ez igy, ahogy megirtam, marmint az JS-ronditas kapcsan *SE* :-) Az meg, hogy milyen szinnek az aranyalata, meg stb, haaat az mar ilyen colour-space transzformacios kerdes, ahhoz soha nem is ertettem :)

Amugy: ha valaki ad egy 256 elemu tombot, ami re-map-eli az EP szineket "termeszetes" sorrendbe, belerakhatom :)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.April.06. 00:50:24
Nem ossze-vissza vannak, hanem ugy, ahogy az EP szinei a maguk termeszetes modjan vannak :) Ha nem ilyen sorrendben lennenek, BIAS-t nem is lehetne igazan valasztani, akkor lenne csak ossze-vissza :) Ok, de ertem en a problemat persze, grafikus nem vagyok, az mar aztan biztos. Amugy meg ilyesmi aprosagokra nem igazan alkalmas ez igy, ahogy megirtam, marmint az JS-ronditas kapcsan *SE* :-) Az meg, hogy milyen szinnek az aranyalata, meg stb, haaat az mar ilyen colour-space transzformacios kerdes, ahhoz soha nem is ertettem :)

Amugy: ha valaki ad egy 256 elemu tombot, ami re-map-eli az EP szineket "termeszetes" sorrendbe, belerakhatom :)

a gracha-ból, íme, legalábbis remélem jól sikerült kimentenem

0,128,16,144,2,130,18,146,178,50,162,34,176,48,160,32,64,192,80,208,66,194,82,210,242,114,226,98,240,112,224,96,8,136,24,152,10,138,26,154,186,58,170, 42,184,56,168,40,72,200,88,216,74,202,90,218,250,122,234,106,248,120,232,104,1,129,17,145,3,131,19,147,179,51,163,35,177,49,161,33,65,193,81,209,67, 195,83,211,243,115,227,99,241,113,225,97,9,137,25,153,11,139,27,155,187,59,171,43,185,57,169,41,73,201,89,217,75,203,91,219,251,123,235,107,249,121, 233,105,77,205,93,221,79,207,95,223,255,127,239,111,253,125,237,109,13,141,29,157,15,143,31,159,191,63,175,47,189,61,173,45,69,197,85,213,71,199, 87,215,247,119,231,103,245,117,229,101,5,133,21,149,7,135,23,151,183,55,167,39,181,53,165,37,76,204,92,220,78,206,94,222,254,126,238,110,252,124, 236,108,12,140,28,156,14,142,30,158,190,62,174,46,188,60,172,44,68,196,84,212,70,198,86,214,246,118,230,102,244,116,228,100,4,132,20,148,6,134,22,150, 182,54,166,38,180,52,164,36,

Title: Re: Általános BASIC Kérdések
Post by: lgb on 2016.April.06. 01:04:58
:) Koszi. Beleraktam, lasd a nyomogombot, lehet szepen valtogatni vele.

Illetve, tettem jobbra egy szin minta felultet, mert valaki hianyolta. Az idiota "egesz oldal hatterszine valtozik" effektet meg kivettem, szerintem zavaro :D
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.April.07. 09:45:26
Ha megváltoztatunk egy színt, hogyan lehet visszaállítani eredeti színre?
Pl.
SET #102:COLOR 1,45
és utána:
SET #102:COLOR 1,1
Így már nem az eredeti színt kapjuk vissza, de még csak nem is a 45-öst.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2016.April.07. 10:11:36
SET #102:COLOR 1,1
Így már nem az eredeti színt kapjuk vissza, de még csak nem is a 45-öst.
Miért kapnánk vissza az eredeti, vagy a 45-öst, amikor 1 van oda írva? :oops:


Ha megváltoztatunk egy színt, hogyan lehet visszaállítani eredeti színre?
Előszeded az emlékedből, hogy mi volt az eredeti, és azt írod be a SET végére :oops:
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.April.07. 10:23:45
Miért kapnánk vissza az eredeti, vagy a 45-öst, amikor 1 van oda írva?
És ha az eredeti is 1 volt? Akkor sem azt adja vissza, valami teljesen más színt ad vissza, ami se nem 45, se nem az eredeti... De miért? Tegyük fel, akarok írni egy programot, ahol ki kell találni, milyen színek voltak a képernyőn, először megmutatja a színeket, majd elrejti úgy, hogy mindegyik helyére pl. 255-öt töltök a SET COLOR-ral, de utána nem tudom, az eredetit visszaállítani.

Vagy várj, az az 1 sem eredeti, mert a basic eleve mást tesz be már alapból a helyére?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2016.April.07. 10:33:25
Vagy várj, az az 1 sem eredeti, mert a basic eleve mást tesz be már alapból a helyére?
Így van.
0,36,73,219,146,45,54,255 az alapbeállítás.
Title: Re: Általános BASIC Kérdések
Post by: lgb on 2016.April.07. 11:09:47
Így van.
0,36,73,219,146,45,54,255 az alapbeállítás.

Megint emlitenem :)

http://ep.lgb.hu/colors.html

Van az "EXOS defaults", arra klikkelve mutatja a "default" valasztott palettat. Meg az Endi fele re-mapping is benne van ("Colour space") gomb, ha valakinek ugy egyszerubb valogatni.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2016.April.23. 09:30:57
Elkezdtem ezt (http://ep128.hu/Ep_Util/IS-BASIC.htm).
Végleges koncepció még nincs, ötleteket, javaslatokat szívesen fogadok.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.April.23. 13:35:41
Elkezdtem ezt (http://ep128.hu/Ep_Util/IS-BASIC.htm).
Elkezdtél írni egy könyvet? Vagy ez egy másik könyv?
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2016.April.24. 08:20:24
Könyvet azért nem írok csak ismertetőt... Ilyen könyv sajnos nem volt.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.April.29. 21:02:57
készül az új game :)
majd ez is a 256 színű karakteres módban lesz
remélhetőleg zippelve jó lesz a sebesség is
a feladat az lesz hogy át kell ugrani a réseket
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.April.30. 23:02:22
na alakul ez
a figura animál (egyelőre csak a szemén van az anim szám, de az egész grafika vált, 4 fázis van, majd 256 szín módban rajzolom meg)
vizsgálja a lába alatti talajt
majd nem luk lesz hanem piros, mintha láva lenne a lába alatt
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.April.30. 23:12:04
jónak tűnik zippelve
Title: Re: Általános BASIC Kérdések
Post by: geco on 2016.May.01. 08:32:03
Nagyon jó a sebessége, főhősünk jelenleg egy picit Horace-es :D
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.May.01. 10:46:58
jónak tűnik zippelve
Ilyesmit én is csináltam régen, de az csak egy karakter nagyságú volt, és a talaj is egyetlen karakter magas volt, azon belül egyetlen szóköz volt a luk, ami közeledett, azt kellett átugrálni. az a képernyőnek csak icipici részét foglalta el.
Úgy lehetne még érdekesebb, ha a lukon le lehetne esni egy másik szintre, ahol máshogy jönnek a lukak. Picit a Jumping Jack (Mr.Alex) játékhoz válna hasonlóvá.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.May.01. 22:02:38
na itt az újabb
graf még nem végleges, csak elkezdtem
de már fogy az energia, meg van vége
színek se véglegesek
ebbe majd jobb hangokat akarok, olyan envelope-s kis zenéket
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2016.May.01. 22:42:28
Javaslom, hogy a SPACE nyomvatartásával állítható legyen az ugrás mérete és ne energiára menjen a dolog, hanem életre.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.May.01. 23:00:58
Javaslom, hogy a SPACE nyomvatartásával állítható legyen az ugrás mérete

az a baj ettől még könnyebb lenne. inkább nehezíteni kéne, csak nem tudom hogyan
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.May.02. 12:09:49
az a baj ettől még könnyebb lenne. inkább nehezíteni kéne, csak nem tudom hogyan
Nagyobb luk kéne, és pontosabban kéne belőni, mikor kell ugrani.
Vagy a képernyő tetején is jöhetnének kampók, amikbe beleütheti a fejét a delikvens.
Néha jöhetnének sűrűbben a lukak, ne mindig ilyen szabályosan.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.May.02. 21:39:34
egy pici fejlődés
érdekes hogy mennyivel élőbb az egész hogy ugrás közben nem animál, leérkezéskor kezd újra animálni
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.May.02. 22:42:09
itt egy zippelt, kb végleges gameplay
(illetve ha van ötlet hogy lehetne nehezebb. most hosszabbra vettem a sávokat, pontosabban kell ugrani)
van vége is, pontszámmal
hangok vannak hátra :)
Title: Re: Általános BASIC Kérdések
Post by: Ep128 on 2016.May.02. 23:31:21
Nekem nagyon tetszik! :-) Talán valami háttérszerűség kellene még, így picit egyhangú pár perc után...
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.May.03. 09:11:20
itt egy zippelt, kb végleges gameplay
Biztos meleg lehet, hogy legyezi magát közben a fülével. :D
Nem kéne ilyen szabályosan jönni a sávoknak. Lehetne valamikor két sáv sokkal közelebb egymáshoz, hogy egyből ugrani kelljen. Váltakozhatnának a hosszabb és rövidebb sávok. Így változatosabb és nehezebb is lenne.
Egy Napot felhőkkel lehetne oda tenni, ahol nem a krapek van (ha gond lenne, hogy ugrásnál felülírja). Vagy lehetne házakat is, azok a távolban elég jól, valósághűen mutatnak. De lehetnének bolygók is akár.

Áhá, szóval ezért érdekelt annyira, mi az prise szó!
Aki még a 21. században is játszik a gépen, annak jutalom, hogy új játékok vannak.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.May.03. 10:00:24
háttérre van ötletem, nem egyszerű, mert a figura fel-le mozgatása display utasítással van...
igen, véletlenszerűbbre kell csinálni az akadályokat is
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.May.03. 10:01:58
Biztos meleg lehet, hogy legyezi magát közben a fülével. :D

igen, ezekben a régi stílusú játékokban még nem egyértelmű minden, mert nem olyan részletes a grafika. lehet vitatkozni hogy mi is az, fül, kéz? :)
szabadon hagyták a fantáziát :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.May.03. 13:26:01
Lehetnének különbözőek a "lukak" is a padlón. Valamelyik jobban, valamelyik kevésbé szívja az energiát. Úgy lenne az igazi, ha egy enyhébb luk után gyorsan jönne egy energiaszívó lyuk, amit így nehezebb átugrani.
És lenne fekete lyuk, amibe beleesni életveszélyes, mert elnyeli az embert.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.May.03. 17:00:09
olyat is lehetne hogy fent is tud futni, tehát ugráskor átugrik felülre. nagy divat az ilyen játék mobilon
csak ahhoz tükrözni kell a karaktert, bár ez is egyszerű lenne, fordítiva kell kirajzolni (most is előre ki van ügye rajzolva a 4 fázis egy videólapra egymás alá, és display utasítással váltom őket. mivel karakteres lapot jó nagyot lehet nyitni - nem foglal annyi memet mint a grafikus) ezért kiférne a 4 fázis tükrözve is. na de az majd egy másik játék lesz) :)

esetleg fent lehetne valami powerup. de az is csak úgy hogy nem lóg a karakterbe
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2016.May.03. 19:56:19
esetleg fent lehetne valami powerup. de az is csak úgy hogy nem lóg a karakterbe
Nem rossz ötlet, ha jönne valami ami visszatölti az energiát.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.May.03. 22:01:28
aha  változó sávval tök jó változatos lett
a függőleges kék csík egy háttér anim ötlet, de nem lesz így jó, de már van másik ötletem rá
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.May.03. 22:51:10
na itt a háttér anim ötlet
tök jó (lekopott az újjam mire begépeltem a karakter mögé őket), de úgy nézem lassít eléggé :(
pedig parallax hatású :)
(emuban amúgy 200-300%-on kb a zzip sebességét adja)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.May.03. 23:21:48
gyorsításokkal (out 191,12 + poke 56,201) és zippelve
csak hát így nem lehet hang
meg a border váltást át kell írnom out-ra
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.May.03. 23:54:20
kicsit gyorsítottam, pár felesleges sort kivettem
és most nincs poke 56
Title: Re: Általános BASIC Kérdések
Post by: Ep128 on 2016.May.04. 00:04:49
Ez utóbbi már egészen jó, (előtte használhatatlanul lassú volt) most még a háttérre valami variációk kellenének, ha már van. :-) Zozo ötlete is megfontolandó lentebb, érdekesebbé válna tőle! :-)
Title: Re: Általános BASIC Kérdések
Post by: geco on 2016.May.04. 08:40:02
Jó :) , jó a sebesség, és teccik az anim is :)
Title: Re: Általános BASIC Kérdések
Post by: ergoGnomik on 2016.May.04. 09:10:35
Cool. 454
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.May.04. 09:56:39
Ez utóbbi már egészen jó, (előtte használhatatlanul lassú volt) most még a háttérre valami variációk kellenének, ha már van. :-) Zozo ötlete is megfontolandó lentebb, érdekesebbé válna tőle! :-)

szerintem eddig a sima basic-et nézted, nem a zippeltet
olyankor mindig 200-400%-on kell futtatni az emut. illetve nálam úgy van hogy max z80 speed-en van, és 100%-on. így jól lehet gépelni basic-ben és tök gyors minden, hang is rendben van
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.May.04. 16:38:59
Nagyon jó! Néha a levegőben jöhetnének szembe kis lényecskék, amik elől le kell húzni a fejünket.
A "lukak" lehetnének más kinézetűek. Ott nem kéne annak a három sornak látszódnia, mint a padlónál, hanem lehet egybefüggően egy színű.
Title: Re: Általános BASIC Kérdések
Post by: Ep128 on 2016.May.04. 23:43:08
szerintem eddig a sima basic-et nézted, nem a zippeltet
olyankor mindig 200-400%-on kell futtatni az emut. illetve nálam úgy van hogy max z80 speed-en van, és 100%-on. így jól lehet gépelni basic-ben és tök gyors minden, hang is rendben van

Gondolj arra, hogy nem mindenki emuval nyomul ám... ;-) Ha tehetem, én sosem azt használom, hanem a valódi gépet! Tehát bármi készül, annak az igazi EP -n (is) kell(ene) futnia megfelelően! :-)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.May.05. 09:04:22
Gondolj arra, hogy nem mindenki emuval nyomul ám... ;-) Ha tehetem, én sosem azt használom, hanem a valódi gépet! Tehát bármi készül, annak az igazi EP -n (is) kell(ene) futnia megfelelően! :-)

jah, hát erről megfeledkeztem :)
a valódi gép az az amikor van az a lapos szürke gép és tévére van kötve? :)

amúgy örülök hogy valaki megnézi igazi gépen mert néha még az is lehet hogy csak emuban fut
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2016.May.05. 11:44:11
amúgy örülök hogy valaki megnézi igazi gépen mert néha még az is lehet hogy csak emuban fut
Én is meg szoktam nézni, azért is kértem múltkor valamelyikből a nem snapshot verziót. A három korábbi már be is került az SD kártya image-re :-)
Title: Re: Általános BASIC Kérdések
Post by: Ep128 on 2016.May.05. 23:59:53
jah, hát erről megfeledkeztem :)
a valódi gép az az amikor van az a lapos szürke gép és tévére van kötve? :)

Monitorra, te... ;-)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.May.12. 18:40:18
izometrik labirintus rajzoló :)
valamire talán jó lesz majd
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.May.16. 18:23:52
Ramdisk-re (e: meghajtó) miért nem lehet basicből alapból menteni? Beállítom alapértelmezettnek:
:e:
Ezután a save "akarmi" nem ide ment, csak ha így adom meg: save "e:akarmi"
A :dir működik, akkor is, ha nem adom meg úgy, hogy :dir e:, akkor is tudja, hogy az e:-ről kell a directory.

Van olyan konfig az emuban, ahol akkor is az alapból beállított e: meghajtóra ment, ha a save után az e:-t nem adjuk meg paraméterként?

Szerk.: Vaklárma volt, nem adtam ki, hogy :def_dev_disk
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.May.28. 20:37:21
lacinak
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.June.05. 11:12:05
A TEXT utasításról az van a leírásokban, hogy törli az addig megnyitott videolapokat és úgy nyitja meg az új 0-ás szöveges lapot. Ez nem teljesen igaz, nem törli teljesen az összes addig megnyitott videolapot. Ha egy korábbi videolap a 24. sor alatt volt, az ottmarad. A Bombernél figyeltem ezt meg, ahol a mellékelt snapshotban ha kiadjuk újra a TEXT-et, a kép alján az a pár sor akkor is ottmarad.
Viszont a TEXT után bizonyos parancsokra eltűnik a lap maradék része, ilyen utasítás pl. a NEW.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.June.05. 12:54:06
Hogyan van ez a ciklusok közepéből tilos a GOTO-val kiugrás? A FOR-NEXT ciklus közepéből ez elég ronda. A többi ciklusnál lehet? Pl. IF... END IF között lehet GOTO, ami a cikluson kívülre ugrik? Vagy a DO-LOOP-nál?
Title: Re: Általános BASIC Kérdések
Post by: ergoGnomik on 2016.June.05. 13:45:10
Hogyan van ez a ciklusok közepéből tilos a GOTO-val kiugrás? A FOR-NEXT ciklus közepéből ez elég ronda. A többi ciklusnál lehet? Pl. IF... END IF között lehet GOTO, ami a cikluson kívülre ugrik? Vagy a DO-LOOP-nál?
Miért akarnál ciklusból GOTO utasítással kiugrani? Vannak erre rendes EXIT utasítások. Az IF ... END IF meg ráadásul nem is ciklus. Elvileg - bár nem vagyok teljesen járatos a BASIC interpreterek lelkivilágában - azért, mert nem szabadít fel szabályosan lefoglalt erőforrásokat, ami később nem várt program működést eredményezhet.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.June.05. 14:38:12
FOR ciklusból nem akarok kiugrani. IF... END IF eljárásból akarok kiugrani. Azért kellene, mert az IF után sok változó értékét átállítom, ha teljesül a feltétel, és utána meg nem ott kéne folytatni a dolgokat, ahol előtte.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2016.June.05. 14:47:13
Akkor azokat a dolgokat rakd az ELSE ágba.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.June.05. 14:57:01
Szóval akkor ilyesmit nem lehet? :(

Code: [Select]
310 IF A>50 THEN
320   LET X=X+2:LET W=W-2
330   IF Y<6 THEN GOTO 400
340   IF Y>=6 THEN GOTO 5400
350 END IF

Ezt máshogy megoldani azért eléggé macerás...
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2016.June.05. 15:22:40
Lehetni lehet, csak randa :-) GOTO nem is kell, THEN után mehet a sorszám.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2016.June.05. 15:23:44
mert nem szabadít fel szabályosan lefoglalt erőforrásokat, ami később nem várt program működést eredményezhet.
Az EP-s GOTO az takarít, ezért lehetett felhasználni a hibás EXT hibájának javítására.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.June.05. 15:33:00
Lehetni lehet, csak randa :-) GOTO nem is kell, THEN után mehet a sorszám.
Nem akad ki a program később sem, ha ezen a részen, amit beraktam, többször átmegy? Csak a ciklusokkal kell vigyázni, az eljárásokkal nem? (A FOR...NEXT az ciklus, az IF..THEN eljárás, ahogy tudom.)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.June.14. 17:16:26
specy karakter editor weben, tök jó, alul kiírja a sorokat decimálisan
csak a 9. sor hiányzik :)
http://www.amelyn.com/speccy_character_builder/index.htm
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.July.31. 01:08:18
Régen kezdtem írni ezt a programot, a Hamika érdekesen továbbfejlesztett verziója (Snake Traffic Controller, hehehe), de még eléggé kezdetleges. A lényeg, hogy a kukacnak csak egy karakter széles járat van, ami elágazik több felé, az elágazások között kapuk vannak, melyeket át kell kapcsolni, hogy a megfelelő irányba menjen a kukac. A kukacot nem lehet irányítani, arra megy, amerre út van, amerre nyitva a kapu.
Eléggé kezdetleges, félkész állapotban van a program. Többször akartam folytatni, de valahogy sose jutottam hozzá. A játéktér is teszt jellegű, azért vannak körben számok is, hogy a kapuk koordinátáit jobban ki lehessen kísérletezni.
A kapukat a funkcióbillentyűkkel lehet átkapcsolgatni, kb. 6 lehetséges állása van mindegyik kapunak. A kapu mellett oda van írva, hogy melyik funkcióbillentyű kapcsolja át. Ez is egy kérdés, hogy jó-e a gombokkal kapcsolgatás, vagy kurzorral kéne ugrálni a kapuk között és úgy kapcsolgatni az aktuálisat.
A játék ötlete onnan jött, hogy azon gondolkodtam, a Traffic és a Hamika programot hogyan lehetne valahogy összegyúrni.

[attach=1]
[attach=2]
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.August.02. 18:32:08
na jó lesz ez, valami kis játék lehet belőle
hányas szám van kiírva? :)
Title: Re: Általános BASIC Kérdések
Post by: geco on 2016.August.02. 20:51:10
na jó lesz ez, valami kis játék lehet belőle
hányas szám van kiírva? :)
mondjuk a nyerő lottó számok ? :D
0122 ? :)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.August.26. 20:19:34
ez nem tudom mi, a 2048 játék alapján akarok valami újat kitalálni
mivel xor-al rakja ki az elemeket, ezért ha egymásra kerülnek, eltűnnek
valamit majd kihozok ebből, ha lesz ötletem :)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.August.27. 17:59:28
különböző formákkal... a cél az lenne hogy egy megadott mintát megcsinálj
pl a mellékelt snapshottal a mellékelt képen láthatót
Title: Re: Általános BASIC Kérdések
Post by: Povi on 2016.November.16. 23:25:54
érdekes ez a BASIC

nézd a képet.

azt hinné az ember, hogy végtelen ciklusba kerül, de nem.
Az A változó értékét elmenti a legelején, és ahhoz hasonlítja az I-t, hiába változik közben az A értéke.

Title: Re: Általános BASIC Kérdések
Post by: Povi on 2016.November.17. 09:01:51
érdekes ez a BASIC

nézd a képet.

azt hinné az ember, hogy végtelen ciklusba kerül, de nem.
Az A változó értékét elmenti a legelején, és ahhoz hasonlítja az I-t, hiába változik közben az A értéke.

értem, hogy miért így csinálja, csak azon gondolkodok, hogy ez bug, vagy feature? :-)
az A értékét a FOR ciklus elején kiértékeli, és elmenti a verembe
az összehasonlításkor meg már nem az A-hoz hasonlítja az I-t, hanem a veremben tárolt értékhez, ami ugye állandó, hiába változott meg közben az A értéke
Title: Re: Általános BASIC Kérdések
Post by: geco on 2016.November.17. 10:03:54
Nézőpont kérdése, szerintem bug, mert mi van ha egy változó értékhez akarod állítani a ciklus végét, viszont mennyire lenne ennek értelme, vagy milyen sűrűn lenne ez használt?
Title: Re: Általános BASIC Kérdések
Post by: geco on 2016.November.17. 10:07:55
Leteszteltem REXX-ben, ott is ugyanígy műxik, a végérték A le lett tárolva, és csak 5x fut le a ciklus, úgy fest ez a normális eljárás.

Code: [Select]
/*REXX*/  
A=5        
DO I=1 TO A
  A=A+1    
  SAY I    
END        

És Speccy basicben is ugyanez az eredmény :)
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2016.November.17. 10:08:29
egy változó értékhez akarod állítani a ciklus végét
Ha ilyet akarsz arra ott a DO/LOOP WHILE/UNTIL.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2016.November.17. 10:09:07
Leteszteltem REXX-ben
Kutyák mióta tudnak számolni? :ds_icon_cheesygrin:
Title: Re: Általános BASIC Kérdések
Post by: geco on 2016.November.17. 10:12:16
Kutyák mióta tudnak számolni? :ds_icon_cheesygrin:
Ha cupákos csülökcsontot kapnak, megcsinálnak bármit :D
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2016.November.17. 10:17:02
értem, hogy miért így csinálja, csak azon gondolkodok, hogy ez bug, vagy feature? :-)

Talán feature, a BASIC FOR ciklus nem annyira általánosított, mint a C-ben, és így nem kell például egy esetleges kifejezést (pl. A helyett INT(SQR(A))) a ciklus minden lefutásakor újra kiértékelni, ami hasznos a BASIC lassúsága és az optimalizálás hiánya miatt.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2016.November.17. 20:52:47
Magas szintű programozási nyelvben a FOR így működik! A Pascal-ban is szabvány szerint csak egyszer kerül kiértékelésére a FOR utasításban lévő kifejezés. (Ld. itt (http://ep128.hu/Ep_Konyv/Szabvanyos_Pascal.htm#2_10). 6. pont)
Title: Re: Általános BASIC Kérdések
Post by: ergoGnomik on 2016.November.18. 08:20:49
Tudom, hogy majd kötözködésnek veszitek és verbálisan jól megcipőztök, de a Magas szintű programozási nyelvben a FOR így működik! kijelentés implicite azt jelenti, hogy a C és a hozzá hasonló nyelvek nem magas szintű programozási nyelvek. Ez szerintem egy kicsit túlzás.

Várjatok még egy pillanatot, amíg felveszem a magzati pózt és a karommal próbálom védeni a fejemet, utána kezdhetitek!
Title: Re: Általános BASIC Kérdések
Post by: lgb on 2016.November.18. 08:41:41
Tudom, hogy majd kötözködésnek veszitek és verbálisan jól megcipőztök, de a Magas szintű programozási nyelvben a FOR így működik! kijelentés implicite azt jelenti, hogy a C és a hozzá hasonló nyelvek nem magas szintű programozási nyelvek. Ez szerintem egy kicsit túlzás.

Várjatok még egy pillanatot, amíg felveszem a magzati pózt és a karommal próbálom védeni a fejemet, utána kezdhetitek!

:) En is pont erre gondoltam. Hogy azert az kicsit eros, hogy a magas szintu nyelvek igy mukodnek, mar amelyik :) Oke, a C-t sokan nem tekintik "annyira magasnak", neha (bar kicsit tulzas) "hordozhato assembly"-nek is nevezik :) de attol meg teny, hogy ez szerintem nem a nyelv "szintjen" mulik, hanem egyszeru definicio/nyelv logikaja/stb/stb. Mondjuk pl a Python szerintem epp elegge magas szintu, megse ugy mukodik, mint a BASIC, igaz pont ugyanilyen FOR ciklus nincs benne, de elveiben hasonlo pelda talan:

Code: Python
  1. alma, kellene = ["korte", "szilva"], "banan"
  2. for a in alma:
  3.   print(a)
  4.   if kellene not in alma:
  5.     alma.append(kellene)

Ez a "banan"-t is ki fogja irni. Oke, ez mondjuk tenyleg nem tul jo pelda. Szerintem (de ez csak tipp) BASIC-ban egyszerubb es gyorsabb is, ahogy van, no meg, fura is lenne, ha egyes BASIC nyelvjarasok maskepp csinalnak (bar lehet, ilyen is van), mert minden nyelvnek megvan a maga jellegzetessegei, hiaba kb ugyanaz a fogalom, ket nyelvben akar mast is jelenthet.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2016.November.18. 09:40:17
fura is lenne, ha egyes BASIC nyelvjarasok maskepp csinalnak (bar lehet, ilyen is van)
Megnéztem, Spectrumon ugyanúgy működik mint EP-n.
Title: Re: Általános BASIC Kérdések
Post by: lgb on 2016.November.18. 10:29:05
Megnéztem, Spectrumon ugyanúgy működik mint EP-n.

Gyanitom, hogy ez igaz, azert eleg nagy elvi kulonbseg lenne, ha egyik BASIC igy mukodne a masik meg ugy, pont eleg a meglevo kulonbsegek is a BASIC nyelvjarasok kozott :) Amugy C-vel osszehasonlitas sem fair, mert ugye BASIC-ben a "FOR A=1 TO 10" az pl konkretan leirja, hogy A-val mi legyen. A C-ben levo kb megfeleloje amugy tok mas logikat kovet, ott ugye valami olyasmi van, hogy pl: "for (a=1;a<=10;a++)" vagy hasonlo. Lathato, hogy a BASIC szintaxissal ellentetben valojaban itt nem egy kezdo/veg ertek van, hanem kifejezes, tehat ezt nyilvan mindig ki kell ertekelni, kulonben nem is mukodne, ha csak egyszer ertekelne ki, hogy "a<=10", akkor vegtelen ciklus lenne :) Tehat, ez egy kicsit az almat a kortevel hasonlitunk ossze effektus, attol, hogy mindketto "FOR" egesz mast jelent a ket nyelvben a ketto. A Python-os idiota peldamat nem is emlitve, mert ott az megint total mast csinal, hiaba hivjak "for"-nak ugyanugy. Viszont ott van legalabbis elviekben hasonlo: "for a in range(10)", akkor az a ertke 0...9 kozott meg vegig. Az viszont megint maskepp viselkedik, ott ha a ciklusmagban megvaltoztatod az a-t nem is fog ra "reagalni", legalabbis kovetkezo iteraciokor megkapja a range() alapjan a kov erteket, tok mind1, hogy kozben atirtad az "a"-t ... Szoval, ujra: ahany haz, annyi szokas :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.November.18. 17:21:43
Magas szintű programozási nyelvben a FOR így működik! kijelentés implicite azt jelenti, hogy a C és a hozzá hasonló nyelvek nem magas szintű programozási nyelvek. Ez szerintem egy kicsit túlzás.
Én azon akadtam fenn, hogy milyen nem magas szintű programozási nyelv létezhet, amiben van FOR ciklus. Lehet, az assemblyben a next megfelelője a ret? :D Gépi kódban meg az ilyen 01101101001011100011011111000100011010001110010110111111 programrészben se for nincs, se más.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.November.18. 17:47:25
Én azon akadtam fenn, hogy milyen nem magas szintű programozási nyelv létezhet, amiben van FOR ciklus. Lehet, az assemblyben a next megfelelője a ret? :D

djnz ha jól emlékszem
Title: Re: Általános BASIC Kérdések
Post by: lgb on 2016.November.18. 18:43:08
djnz ha jól emlékszem

Az DJNZ es nem FOR :) :) :) :)
Title: Re: Általános BASIC Kérdések
Post by: ergoGnomik on 2016.November.18. 18:47:16
Én azon akadtam fenn, hogy milyen nem magas szintű programozási nyelv létezhet, amiben van FOR ciklus.
Valami halványan dereng, hogy olvastam valamikor, valahol egy HLA (High Level Assembly) nevezetű dologról. Talán abban lehet valamiféle FOR konstrukció. Utána kéne keresni, de most nincs hozzá hangulatom. :(
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.November.20. 18:01:00
huh micsoda basic bugot találtam :D

10 for c=1 to 10
20 next x

lefut :D
és c értéke 11, tehát mintha a next-ben nem is számítana a változó :D
amúgy lehet hogy nem is bug :)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.November.20. 18:04:12
aha! ha nem írunk semmit a next után úgy is lefut!
egymásba ágyazott ciklusok is :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.November.20. 21:11:58
aha! ha nem írunk semmit a next után úgy is lefut!
Ezt én is tudtam. De ha a next után valami zagyvaságot írunk, pl. turbomacskagenerator, azt is elfogadja?
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2016.November.20. 21:31:37
Ezt én is tudtam. De ha a next után valami zagyvaságot írunk, pl. turbomacskagenerator, azt is elfogadja?

Igen: :)
[attachthumb=1]
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.November.20. 22:49:36
Igen: :)
Hát ez tetszett. :D Mostanában mindenki vicces kedvében van itt a fórumon. Eredetileg amúgy az árvíztűrő tükörfúrógépet akartam írni, csak abban szóköz is van és sok ékezet.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.November.20. 23:10:15
amúgy logikus is hogy a nextnél nem számít. minek is oda az? nem kell oda.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.November.20. 23:15:05
amúgy logikus is hogy a nextnél nem számít. minek is oda az? nem kell oda.
Az átláthatóság miatt lehet érdekesebb. Ha mondjuk 100 sorral feljebb van a FOR, és a NEXT-nél már nem tudjuk, mi a ciklusváltozó.
De ennyivel tényleg az END DEF és hasonlók után is oda lehetne írni a nevet. Talán lehet is, nem próbáltam még. Mintha ! után láttam volna már itt-ott END DEF után.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2016.November.28. 13:37:13
CLICK hangot hogy kell programból kiadni? (Ep64 kompatibilis módon.)
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2016.November.28. 13:50:17
CLICK hangot hogy kell programból kiadni? (Ep64 kompatibilis módon.)
Vagy csúnyán beleugorva a ROM-ba, vagy ezt lefordítani ASMON-nal BASIC programnak:
Code: ZiLOG Z80 Assembler
  1. ;------------------------------------------------------------------------------
  2. ;       MAKE A KEYCLICK
  3. ;
  4. ;       This routine performs a 'keyclick' at the request of Phil. The envelope
  5. ;       is amplitude-only at around 10KHz, shaped on both channels as below,
  6. ;       lasting for approximately 0.015 secs.
  7. ;
  8. ;       |_|_|__|__|___|____|____|_____|______|______|_______|________|_____
  9. ;
  10.  
  11.  
  12. KEYCLICK:       LD      A,50                    ;SET CLICK
  13.                 LD      C,A
  14.                 OUT     (REG0),A                ;TONE FREQUENCY
  15.                 XOR     A                       ;ZERO A
  16.                 OUT     (REG1),A                ;FOR HIGH PART OF ABOVE
  17. BURST:          LD      B,15                    ;DURATION OF ON-TONE
  18.                 LD      A,MAXVOL                ;AT MAXIMUM VOLUME
  19.                 OUT     (REG8),A                ;ON BOTH
  20.                 OUT     (REG12),A               ;SIDES
  21. ONBURST:        DJNZ    ONBURST                 ;BURST OF ON-TONE
  22.                 LD      A,60                    ;CALCULATE DURATION
  23.                 SUB     C                       ;OF OFF-BURST FROM
  24.                 OR      A                       ;ELAPSED TIME IN
  25.                 RRA                             ;CLICK, SO THAT
  26.                 LD      B,A                     ;ON-BURSTS ARE
  27.                 XOR     A                       ;GRADUALLY STAGGERED
  28.                 OUT     (REG8),A                ;APART...KILL
  29.                 OUT     (REG12),A               ;SOUND ON BOTH SIDES
  30. OFFBURST:       DJNZ    OFFBURST                ;BURST OF OFF-TONE
  31.                 DEC     C                       ;COUNT CYCLE
  32.                 JR      NZ,BURST                ;RECYCLE IF NOT AT END
  33.  
  34.                 RET

Elejére végére kéne DI/EI pluszban.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2016.November.28. 14:07:53
Five in a Row egeres verzió (http://www.ep128.hu/Ep_Games/Prg/Five_in_a_Row.rar).
Ep64-en viszont már nem fut. Hogy miért...?
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.December.05. 17:48:44
Attributum képernyőn hogyan lehet basic-ben egy színpompás játékhoz a pályát tárolni, megrajzolni? A Bomber továbbfejlesztése egyszerű volt, mert véletlenszerűen eldönti a házak színét. De ha mi magunk rajzolunk pl. egy pac man játékban falat, és a fal is legalább 4-5 féle színből áll, akkor hogyan adható meg, hogy melyik karakter milyen színű legyen?
Pl. adott egy fal, ami egyszínű:

++++++++++++++++++

Ugyanennél a falnál hogyan lehet egyszerűen (?) megcsinálni, hogy pl. a 3., 4., 5.  karaktere 2-es színkódú legyen, a 6. 3-as színkód színű? Mert pl. megrajzolható a pálya a PRINT után, vagy változók neveiben, pl. LET PALYA$(1)="++++++++++++++", de ehhez még a színkódokat is meg kell adni. Nyilván megadható bonyolult módon, hogy kirajzolásnál a sok PRINT között sok SET INK-et is megadunk. Nyilván kell valami alapszín, és ahol azt akarjuk, hogy ettől eltérjen a fal, ahhoz LET utasítással megadjuk az értékeket. Van valami egyszerűbb módszer? Vagy ezt mindenhol így csinálják?

Kicsit bonyolultan sikerült megfogalmazni...
Title: Re: Általános BASIC Kérdések
Post by: ergoGnomik on 2016.December.05. 20:53:30
Attributum képernyőn hogyan lehet basic-ben egy színpompás játékhoz a pályát tárolni, megrajzolni? A Bomber továbbfejlesztése egyszerű volt, mert véletlenszerűen eldönti a házak színét. De ha mi magunk rajzolunk pl. egy pac man játékban falat, és a fal is legalább 4-5 féle színből áll, akkor hogyan adható meg, hogy melyik karakter milyen színű legyen?
Pl. adott egy fal, ami egyszínű:

++++++++++++++++++

Ugyanennél a falnál hogyan lehet egyszerűen (?) megcsinálni, hogy pl. a 3., 4., 5.  karaktere 2-es színkódú legyen, a 6. 3-as színkód színű? Mert pl. megrajzolható a pálya a PRINT után, vagy változók neveiben, pl. LET PALYA$(1)="++++++++++++++", de ehhez még a színkódokat is meg kell adni. Nyilván megadható bonyolult módon, hogy kirajzolásnál a sok PRINT között sok SET INK-et is megadunk. Nyilván kell valami alapszín, és ahol azt akarjuk, hogy ettől eltérjen a fal, ahhoz LET utasítással megadjuk az értékeket. Van valami egyszerűbb módszer? Vagy ezt mindenhol így csinálják?

Kicsit bonyolultan sikerült megfogalmazni...
Én ezen a vidéken (http://www.ep128.hu/Ep_Konyv/Exos.htm#108) keresgélnék. Csak sajnos nem ismerem jól az EXOS lelki világát.
Title: Re: Általános BASIC Kérdések
Post by: geco on 2016.December.06. 08:46:04
Sztem csak újra printeléssel, és előtte a szín megadásával.

Pályát eltárolni meg úgy, hogy vagy minden karakter előtt eltárolod a színkódját, ha kevésbé változatos a pálya, akkor mondjuk soronként tárolsz színkódot, ha nem akarsz helyet pazarolni, akkor meg lehet olyat, hogy mondjuk 128-at adsz hozzá a színkódhoz, és ha 128-nál nagyobb értéket olvastál be, akkor színcsere, ha kisebbet, akkor karakter adat jött (ebben az esetben nem használhatod papírszínhez a 8-15 paletta színeket.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.December.06. 14:58:33
van olyan pályaépítési mód is ahol adott elemeket adott koordinátára, adott színnel rakunk, tehát nem tömbszerűen van tárolva az adat. csináltam jópár ilyen játékot, meg editort hozzá. (ezt sajnos nem lehet basic data sorokban, vagyis elég körülményes lenne).

pl ilyenek a dizzy játékok vagy a manic miner stb...
vagy az én játékaim közül a dark lord

nem lenne rossz egy ilyen editor EP-re, a gracha-ba tehetek ilyet, csak hát ott pont nincs sok értelme
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.December.06. 17:42:07
nem lenne rossz egy ilyen editor EP-re, a gracha-ba tehetek ilyet, csak hát ott pont nincs sok értelme
Lehet a Gracha-tól függetlenül is akár egy ilyen editor.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2016.December.06. 18:12:43
Sztem csak újra printeléssel, és előtte a szín megadásával.
Még az jutott eszembe, hogy bizonyos karakterek bizonyos színeket jelentenének, és akár bizonyos (más) karaktereket is egyben. Tehát pl. lenne egy fal, ami AAAAABBBAAAABBBBCCCCAAAAA lenne, és mindegyik betű ugyanazt a karaktert jelentené, csak más színben. Ehhez a beolvasás/kirajzolás lenne lassú, mert a karaktereket egyenként kéne IF-fel megvizsgálni, milyenek, és egyenként kéne a szín megadása után PRINT-tel kiírni. Nekem hirtelen ez tűnik a leghasználhatóbbnak. Zzzippel talán a kirajzolás sebessége is elfogadható lenne.
De ha meg van rajzolva egy pálya, utána már biztos lehet azt elmentve átalakítani kevésbé emberbarát, de gyorsan kirajzolható formátumúvá.

Gondolkoztam azon is, hogyan lehetne a géppel pályát generáltatni, pl. pac man szerű játékhoz. Labirintust lehet generálni, de az más, ott a fal mellett ki lehet találni. Olyan kéne, ahol sok járat/út van.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.December.06. 18:27:26
nézd meg pl a miner c. játékomat, ott 2 printtel megoldottam a 4 szín kirajzolását c16 módban
persze tudom te főleg karakteres módban gondolkodsz

lehetne egy általános editort csinálni végül is... lehetne választani milyen módban fusson... megadható lenne szín, karakter... tudna menteni esc szekvenciákba is. végül is nem túl sok meló
Title: Re: Általános BASIC Kérdések
Post by: endi on 2016.December.06. 21:05:54
amúgy mostanában egy olyan játékon gondolkodok ami nem rajzolja ki a pályát az elején hanem csak a játékos körül, és ahogy mozgunk, úgy rajzolódik ki. persze ez csak bizonyos típusú játékok esetén alkalmazható
Title: Re: Általános BASIC Kérdések
Post by: gflorez on 2016.December.07. 08:24:52
Better add this line:     895 SET 180,101 ! set target graphics channel
Title: Re: Általános BASIC Kérdések
Post by: gflorez on 2016.December.07. 08:41:35
And: 896 SET 189,4 ! EnterMice control
Title: Re: Általános BASIC Kérdések
Post by: gflorez on 2016.December.15. 01:05:59
Ok, I can write the two lines if you are so lazy.....

First, check if the mouse driver has been loaded, with the ":MOUSE HELP" command. If not, load it(":LOAD MOUSE.XR") before running the Five in a Row game.

I have put this game on the EnterMice Wiki list of games.
Title: Re: Általános BASIC Kérdések
Post by: RetroJátékos on 2017.January.11. 11:10:30
Sziasztok!

Bocs, ha kicsit amatőr a kérdés, de még csak most ismerkedek az Enterprise-szal.
Próbáltam a neten fellelhető doksik, könyvek alapján a grafikus képernyőt piszkálgatni, de úgy tűnik, a konfigurációtól függ, hogy mely memóriacímen kezdődik a grafikus képernyő. Például egy SPOKE 254,11308,170 utasítás, ami a leírás alapján - módtól függően - az első néhány pixelt állítaná be, ha bármi bővítés van a gépben, már más pixeleket gyújt ki. Ha a FileIO bővítést tartalmazó konfigot állítom be, akkor felül, balról a kép kb. harmadánál gyulladnak ki a pixelek. Ha EXDOS is be van töltva, akkor jobb oldalt, a kép felső harmadánál rajzol. Stb.
Nyilván a konfigurációtól függően máshol kezdődik a képernyő-memória.
A kérdésem az lenne: hogy lehet meghatározni - lehetőleg BASIC-ből - a képernyő-memória elhelyezkedését? Esetleg valahogy be is lehet állítani?
Előre is köszönöm a segítségeteket!
Title: Re: Általános BASIC Kérdések
Post by: geco on 2017.January.11. 11:39:22
A Beállítását az EXOS végzi, azt biztonságosan Basicből nem lehet.
a SPEEK 255,16372 címről lehet kiolvasni az LPT helyét, és az LPT-ből lehet kiolvasni, hogy hol van a videómemória, de ez is macerás, mert 9 pixelsoronként van beállítva a képernyő az LPT-ben, és ez nem feltétlenül egybefüggő memóriaterület, tehát minden LPT sorban (LPB) ki nellene olvasni a kezdőcímet.
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2017.January.11. 11:51:11
A fix címek használata valóban problémás EP-n, erről itt (https://enterpriseforever.com/programozas/exos-kompatibilis-memoria-kezeles/msg11590/#msg11590) lehet részletesebben olvasni.

A képernyővel kapcsolatban csak két cím biztos a 255-ös szegmensen:
- 0BFF4h: az LPT kezdőcíme a 2. lapon
- 0BFF6h: a státuszsor kezdőcíme a 2. lapon

Példa POKE utasítással rajzolásra:
[attachurl=1]

Sok értelme ugyan nincsen, mert a PLOT sokkal egyszerűbb és gyorsabb. :)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.January.11. 12:04:07

Sok értelme ugyan nincsen, mert a PLOT sokkal egyszerűbb és gyorsabb. :)

zzippelve a poke nagyon gyors tud lenni
Title: Re: Általános BASIC Kérdések
Post by: RetroJátékos on 2017.January.11. 14:14:47
Köszönöm a válaszokat és a példaprogramokat is! :-)
Igazából azért használok ilyen "kerülőutakat" a kényelmes BASIC grafikai utasítások helyett, mert ki akarom tapasztalni a gép "lelki világát". Amit aztán majd z88dk-ban is kamatoztathatok, mivel úgy nézem, nem túl magas szintű az Enterprise-támogatása.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.January.11. 19:28:24
Példa POKE utasítással rajzolásra
még nem néztem ezt meg, de ez jó akkor is ha két szegmensre kerül a videólap?
én csináltam ilyesmit, hogy asm-ban volt a sprite kirakó a basic alatt (pl a http://www.ep128.hu/Ep_Games/Leiras/Mutant_Test.htm (http://www.ep128.hu/Ep_Games/Leiras/Mutant_Test.htm) játékomban) de ott asszem gányolás volt, és tuti nem oldottam meg ezt :)
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2017.January.11. 19:57:41
még nem néztem ezt meg, de ez jó akkor is ha két szegmensre kerül a videólap?

Minden pixel byte címét külön számítja ki az LPT alapján, ami lassú, de nem ad hibás eredményt.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.January.11. 20:01:25
Minden pixel byte címét külön számítja ki az LPT alapján, ami lassú, de nem ad hibás eredményt.

hm na akkor ezt használni fogom majd :)
bár valszeg inkább szöveges képernyős valamit fogok csinálni vele.
régen csináltam egy mászkálós platformjátékot, amiben egy robottal kellett menni és az volt benne az extra, hogy text módban futott. és zzzippelve tök gyors volt mert poke-okkal rajzoltam. sajnos nem marad meg az utókornak...
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.March.01. 11:36:06
ez a játék úgy néz ki mint a c16 módban printtel rajzolt játékok ep-n :)

http://forums.toucharcade.com/showthread.php?t=301052
Title: Re: Általános BASIC Kérdések
Post by: geco on 2017.March.01. 13:29:24
ez a játék úgy néz ki mint a c16 módban printtel rajzolt játékok ep-n :)

http://forums.toucharcade.com/showthread.php?t=301052
Ezt pont ilyenre meg lehetne csinálni EP-n is :D
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.March.07. 20:06:02
gracha editorral kísérleteztem ilyen saját nézetű labirintus dolgot.
hát, elég sok karakter kell hozzá, de lehet hogy működne.
sőt itt még csak 4 színt használtam, szóval a másik 4 lehetne az ellenségek, ajtók stb...
meg persze azért ennél jobb grafikát is lehetne, csak több meló.
Title: Re: Általános BASIC Kérdések
Post by: geco on 2017.March.07. 20:26:04
gracha editorral kísérleteztem ilyen saját nézetű labirintus dolgot.
hát, elég sok karakter kell hozzá, de lehet hogy működne.
sőt itt még csak 4 színt használtam, szóval a másik 4 lehetne az ellenségek, ajtók stb...
meg persze azért ennél jobb grafikát is lehetne, csak több meló.
Jó, a bal oldali téglás a legjobb, és a kövek letétele is nagyon jó ötlet, ZZZIP-pel simán működhet, ha nem, akkor gépi kódban meg 100%
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.March.07. 23:34:20
ilyen 3d cuccot is lehetne csinálni karakteres módban, teljes képernyővel, nagy objektumokkal: https://youtu.be/A3In6jPMmUw?t=457
persze ezt már asm-ban :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2017.March.08. 18:24:56
ilyen 3d cuccot is lehetne csinálni karakteres módban
De utáltam a Savage-nak ezt a részét! Csak jöttek az oszlopok aztán bumm!
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.March.08. 18:27:54
De utáltam a Savage-nak ezt a részét! Csak jöttek az oszlopok aztán bumm!

hát igen, a gameplay nem volt túl jó itt
van egy hasonló, az valamivel jobb volt, bár nem olyan szép:
https://youtu.be/hNh9okE2xA4?t=102
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2017.March.20. 19:20:20
A Swap játék közben játszik digi (rockdigis) zenét.
Arra gondoltam, a basic játékok (pl. Bomber, Hamika) nem terhelnék le nagyon a gépet, ha gépi kódban lennének megírva, így akár játék közben szólhatna Rockdigi zene. Lacika Pascal-ba átírta a Bombert, az is pár másodperc alatt lefutott, hát még gépi kódban milyen gyors lenne!
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.March.20. 20:31:04
A Swap játék közben játszik digi (rockdigis) zenét.
Arra gondoltam, a basic játékok (pl. Bomber, Hamika) nem terhelnék le nagyon a gépet, ha gépi kódban lennének megírva, így akár játék közben szólhatna Rockdigi zene. Lacika Pascal-ba átírta a Bombert, az is pár másodperc alatt lefutott, hát még gépi kódban milyen gyors lenne!

ja hát sok játékba elférne a digi lejátszó, sok egyszerű játék van.
mondjuk a book of life játékom alatt is fut egy digi hang lejátszó az effektek miatt, de totál hülyeség volt így megoldanom. egyrészt pont egy ilyen "3d" játékot nem szabad ilyennel lassítani (hangmegszakításban megy, bár elég kis frekin), másrészt effektek lejátszása mehetett volna úgy is hogy közben nem csinál mást a gép (azaz nem megszakításból megy). ráadásul így lehettek volna jó minőségű hangok is...
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.May.02. 22:08:37
béna kis program, a line style-al "ditherel" és palettát forgat
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.May.02. 23:19:36
másik
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.May.03. 00:37:48
ez a legjobb :)
Title: Re: Általános BASIC Kérdések
Post by: geco on 2017.May.03. 08:44:42
Egész jók, érdekes, mert nekem az első 2 jobban tetszett, mint a 3. :)
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2017.May.03. 16:24:26
Tök jók!
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2017.May.03. 16:26:39
Ez ugyan nem Basic, de hasonló effektus:
[attachurl=1]
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.May.03. 16:31:05
Ez ugyan nem Basic, de hasonló effektus:
(Attachment Link)

igen, ez már szép dither :)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.May.03. 22:24:18
na ez milyen jó.
tudom, semmi extra, de elég újszerű azért
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.May.04. 00:59:54
na még pár
ezek szerintem már "nagy" demókba is elmennének valami háttérnek :)
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2017.May.04. 10:38:21
A dither4c egész jó "3D tunnel" effektus. :)

Az előző program továbbfejlesztése, 8 helyett 24 fázis 3 lap használatával:
[attachurl=1]
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2017.May.09. 14:53:50
Gyorsabb sin() számítás, 7:42 helyett 4:50 futásidő:
[attachurl=1]    (szerk.: kisebb javítás)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.May.30. 19:05:54
Az emulátorral lehetne vajon olyan konfigot csinálni, ahol basic alatt is lehetne több memóriát is használni? Vagy létezik is ilyen bővítés?

szerintem nem lehet ezt megoldani.
van ügye az edit parancs amivel több basic program lehet a memóriában, csak hát ügye sehogy sincs megoldva hogy a változóikat átadják egymásnak. illetve ami király lenne ha váltáskor az előző "lefagyna", és megtartaná teljesen az állapotát. na ez tök használható lenne.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2017.May.30. 19:23:53
szerintem nem lehet ezt megoldani.
Az IS-BASIC a teljes RAM-ot tudja használni. A 0. program 42KB lehet, az 1.-127. 32KB. Viszont a programok hívhatják egymást, és paramétereket is lehet átadni a CHAIN utasításban. Ha több adatot kell a programoknak közösen kezelni, lehet igényelni egy szegmenst a Zozo által ismertetett módszerrel, és ott tárolni a "közös" adatokat.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.May.30. 19:40:10
Az IS-BASIC a teljes RAM-ot tudja használni. A 0. program 42KB lehet, az 1.-127. 32KB. Viszont a programok hívhatják egymást, és paramétereket is lehet átadni a CHAIN utasításban. Ha több adatot kell a programoknak közösen kezelni, lehet igényelni egy szegmenst a Zozo által ismertetett módszerrel, és ott tárolni a "közös" adatokat.

ja csak ez a paraméter átadás komolyabb célra nem alkalmas.
a "hívhatják egymást" így egy nagyon bátor kijelentés :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2017.May.31. 00:00:07
szerintem nem lehet ezt megoldani.
Biztos lehetne az emulátorban olyan beállítás, hogy ne 42 kilobájt legyen a határ, hanem mondjuk 256. Mert a PC-nek mindegy, ott hely van bőven. De nem értek hozzá.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.May.31. 00:14:22
Biztos lehetne az emulátorban olyan beállítás, hogy ne 42 kilobájt legyen a határ, hanem mondjuk 256. Mert a PC-nek mindegy, ott hely van bőven. De nem értek hozzá.

hát azt talán te is tudod, hogy a z80 processzor csak 64K memóriát lát egyszerre, mivel a címzése 16 bites. ez a 64K 4 darab 16k-s lapokra van felosztva, ahova be lehet lapozni az EP memóriáját, ami meg ügye asszem 4 mega is lehet.
na most ebből következik hogy külön le kell programozni azt hogy a teljes 4 mega memória elérhető legyen, azaz lapozgatni kell. na most ez nincs megírva a basic rendszerben...
videomemóriát tud lapozni az exos, ezt asszem kihasználja a basic, de majd okosabbak megmondják.

amúgy a pc is hasonlóan műxik, de persze jóval nagyobb címzéssel meg tudással...
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2017.May.31. 14:34:55
hát azt talán te is tudod, hogy a z80 processzor csak 64K memóriát lát egyszerre
Én még ezt se tudtam. Viszont a Z80-at is emulálja nyilván az emulátor, és ezt is biztos meg lehetne piszkálni nagyobb teljesítményűre.
Nincs ilyenre szükségem, csak érdekességként vetettem fel, hogy ha már egy bizonyos programot emulátoron használunk csak, akkor ilyen módon ki lehetne-e a maximumot hozni belőle. Fejlesztésekhez miért ne lehetne valami hiperbrutál cuccot használni? :D
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.May.31. 14:40:24
Én még ezt se tudtam. Viszont a Z80-at is emulálja nyilván az emulátor, és ezt is biztos meg lehetne piszkálni nagyobb teljesítményűre.
Nincs ilyenre szükségem, csak érdekességként vetettem fel, hogy ha már egy bizonyos programot emulátoron használunk csak, akkor ilyen módon ki lehetne-e a maximumot hozni belőle. Fejlesztésekhez miért ne lehetne valami hiperbrutál cuccot használni? :D

hát tegyük fel hogy emu alatt egy bővített z80 menne, 64 bites címzéssel. milyen program használná ezt ki? mindent újra kéne írni hozzá, kezdve az oprendszerrel.
a lapozást is azért találták ki hogy ne kelljen hozzá új z80, plusz a régi programok is fussanak vele.
állítólag a pc-s procik (x86 stb) teli vannak ilyen régi dolgokkal, hogy komplatibilisek legyenek. sok-sok millió tranzisztor :D
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2017.June.03. 11:22:43
amúgy a pc is hasonlóan műxik, de persze jóval nagyobb címzéssel meg tudással...

PC-n felhasználói programoknak már nem kell foglalkozni lapozással, egyszerű 32 (illetve most már 64) bites címzést használhatnak ahol minden egy szegmensen "látható". Hardver szinten a memória kezelése szegmentált és lapozott is (ami külön szint), de ennek a programozása az operációs rendszer (kernel) feladata.

Nincs ilyenre szükségem, csak érdekességként vetettem fel, hogy ha már egy bizonyos programot emulátoron használunk csak, akkor ilyen módon ki lehetne-e a maximumot hozni belőle. Fejlesztésekhez miért ne lehetne valami hiperbrutál cuccot használni? :D

Csak emulátoron futó EP-s program helyett talán célszerűbb egyszerűen PC-s programot írni, az valóban kihozza a maximumot a gépből. :) De emulátoron is megoldható például hogy a Z80-at gyakorlatilag Lua script helyettesítse (ez az egyszerű Mandelbrot demo (https://enterpriseforever.com/weboldalak/ep128-hu/msg30318/#msg30318) lényegesen gyorsabban fut mint az assemby változat (https://enterpriseforever.com/programozas/fraktalok-assemblyben/msg35970/#msg35970) 250 MHz-es emulált CPU-n), de továbbra is használja az emulált hardvert (NICK, DAVE).
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.June.03. 17:00:19
specyre létezik valami specbas nevű dolog, amivel pc-n, zx basicben lehet programozni, és persze kihasználva a pc képességeit.
na persze ma már úgy lenne inkább értelme hogy webre vagy mobilra lehetne.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2017.June.04. 16:43:57
ma már úgy lenne inkább értelme hogy webre vagy mobilra lehetne.
100 OPEN #1:"https:enterpriseforever.com" ACCESS INPUT
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2017.June.05. 12:18:22
specyre létezik valami specbas nevű dolog, amivel pc-n, zx basicben lehet programozni, és persze kihasználva a pc képességeit.

BASIC interpreter van PC-re több is, például itt (https://sourceforge.net/directory/development/interpreters/). Bár más nyelvek már népszerűbbek és többet is tudnak.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2017.June.09. 18:01:15
Azon gondolkodtam, lehetne olyan Bomber játékot csinálni, ahol egysoros videólap az, ahol a repülő végighalad. Ezen az egy videólapon meg lehetne rajzolni az összes fázist, de nem karakterenként, hanem jóval közelebb lennének egymáshoz az egyes fázisok, így majdnem folyamatos mozgást lehetne elérni. Először ki kéne rajzolni a videólapra az összes fázist, ez talán eltartana egy darabig, utána ezeket váltogatni.
Title: Re: Általános BASIC Kérdések
Post by: nyuzga on 2017.June.09. 18:18:20
Azon gondolkodtam, lehetne olyan Bomber játékot csinálni, ahol egysoros videólap az, ahol a repülő végighalad. Ezen az egy videólapon meg lehetne rajzolni az összes fázist, de nem karakterenként, hanem jóval közelebb lennének egymáshoz az egyes fázisok, így majdnem folyamatos mozgást lehetne elérni. Először ki kéne rajzolni a videólapra az összes fázist, ez talán eltartana egy darabig, utána ezeket váltogatni.

Bomber ? Lerágott csont. Vannak ingyenes játékszerkesztők, amikkel sokkal jobb játékokat lehet készíteni és egyszerűbbek mint a basic.

Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2017.June.09. 18:32:54
Vannak ingyenes játékszerkesztők, amikkel sokkal jobb játékokat lehet készíteni és egyszerűbbek mint a basic.
Itt inkább a megvalósítás a lényeges, és hogy az IS-BASIC-ből ilyet is ki lehet hozni.
Title: Re: Általános BASIC Kérdések
Post by: nyuzga on 2017.June.09. 18:37:31
Itt inkább a megvalósítás a lényeges, és hogy az IS-BASIC-ből ilyet is ki lehet hozni.

Értem én hogy EP-re szeretnél fejleszteni és a basic-ot érted. Nosza! :)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.June.09. 19:18:54
lehetne írni egy játék szerkesztőt, csak hát ezekkel nekem mindig az a bajom, hogy körülményesebbek mint programozni... nem véletlen raknak script nyelveket az ilyenekbe, vagy eleve hozzáférhetünk a forrásukhoz, vagy valahogy programozhatók...
Title: Re: Általános BASIC Kérdések
Post by: nyuzga on 2017.June.09. 19:22:48
lehetne írni egy játék szerkesztőt, csak hát ezekkel nekem mindig az a bajom, hogy körülményesebbek mint programozni... nem véletlen raknak script nyelveket az ilyenekbe, vagy eleve hozzáférhetünk a forrásukhoz, vagy valahogy programozhatók...

Ott az AGD és utánna megkérni Gecot hogy írja át.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.June.09. 19:29:16
Ott az AGD és utánna megkérni Gecot hogy írja át.

na ja, de annak meg úgy lenne értelme, hogy ep-síteni... az meg már túl sok munka lenne, hiszen az ep többet tud
Title: Re: Általános BASIC Kérdések
Post by: nyuzga on 2017.June.09. 19:34:43
na ja, de annak meg úgy lenne értelme, hogy ep-síteni... az meg már túl sok munka lenne, hiszen az ep többet tud

Két legyet egy csapásra. Lenne egy Spectrum játék és átírás után egy Ep is.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2017.June.11. 16:15:51
Értem én hogy EP-re szeretnél fejleszteni és a basic-ot érted. Nosza! :)
Már nem tudom, az ilyen videólapos animációt hogyan kell csinálni. Megnyitni sok videólapot, rajzolni rájuk, utána megjeleníteni sorban őket. Ehhez sok videocsatornát kell megnyitni? Már nem emlékszem... A display utasításokat kell utána sűrűn váltogatni, csak már nem tudom, a display után mi az, amiben eltérnek ezek az utasítások ahhoz, hogy animáció legyen.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2017.June.11. 16:17:41
Lehetne olyat is, hogy ugyanazt a videólapot megnyitni a képernyőre akár háromszor is egymás alá, ha megfelelő a mérete hozzá. Bár nem annyira érdekes ugyanazt háromszor is látni, de ezt is ki lehetne valahogy használni. Mondjuk feliratokhoz vagy demóhoz érdekes lehet.
Title: Re: Általános BASIC Kérdések
Post by: geco on 2017.June.12. 08:52:31
Lehetne olyat is, hogy ugyanazt a videólapot megnyitni a képernyőre akár háromszor is egymás alá, ha megfelelő a mérete hozzá. Bár nem annyira érdekes ugyanazt háromszor is látni, de ezt is ki lehetne valahogy használni. Mondjuk feliratokhoz vagy demóhoz érdekes lehet.
Ilyesmit láttam már pár demóban :), a másik, meg kell nyitni a videólapokat, majd mindegyiket feltölteni az adattal, és a végén csak a DISPLAY utasításokban váltogatni a csatornaszámot.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2017.June.12. 12:32:18
meg kell nyitni a videólapokat, majd mindegyiket feltölteni az adattal, és a végén csak a DISPLAY utasításokban váltogatni a csatornaszámot.
Aha, na erre nem emlékeztem biztosan. Szóval egy rakat csatornát meg kell nyitni hozzá, értem.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.June.28. 23:07:19
régen biztos mindenki szórakozott ilyennel :)
a karakterkészletet poke-olja át, ez épp minden második sort eltol 1 pixellel
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2017.June.29. 11:59:23
régen biztos mindenki szórakozott ilyennel :)
Nem, mert nem ismertem a memóriacímet hozzá. Talán valamelyik Enterpressben volt dőlt betűkhöz program, ami a tetejét jobbra, az alját balra tolta a karaktereknek.
Még érdekesebb, ha az előbbi programot még egyszer lefuttatjuk úgy, hogy a clear font parancsot nem adjuk ki. Olvashatatlanabb, de esztétikusabb lesz. A program lényege röviden ugyanaz, mint a pingáló kis indián: masza-toll.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.June.29. 12:28:42
ja itt egy olyan hogy kicsit dölt, kicsit lukas :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2017.June.29. 13:44:12
Azt nem tudom még, ki tervezhette az írott betűket (ep128.hu-n van fent). Nagyon ráérhetett, hogy az egész karakterkészletet áttervezte. Igaz, néha én is foglalkoztam ilyen értelmetlen dolgokkal.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.June.29. 14:24:00
ez egy összenyomja, még talán olvasható is
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.June.29. 18:07:52
huh, nem gondoltam hogy kóddal elő lehet állítani ilyen vékony karaktereket, és csak pár van ami elromlott
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.June.29. 21:57:38
a vékonyt javítottam, véletlen sikerült, most elég jó az összes betű és jel.
a másik meg négyzetben kis betűk, olvashatatlan.

amúgy rájöttem miért csinálom ezeket, mert ki akartam próbálni hogy soft reset és hogy néznek ki az ep logón :)
na majd...

Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.June.29. 22:01:51
haha viccesek
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.June.29. 22:07:07
aha rá is jöttem, az ep font-ot a specyről lopták, csak ráraktak egy bold effektet :D
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2017.June.30. 13:30:23
aha rá is jöttem, az ep font-ot a specyről lopták, csak ráraktak egy bold effektet :D
Ezen már én is gondolkodtam, hogy pl. a PC-n annyi betűkészlet van, meg az internetes oldalak is sokfélét használnak, de miért volt a régi számítógépeknek teljesen egyéni... A PC billentyűzetének is teljesen más a betűkészlete, az EP, Spectrum billentyűzetén is teljesen egyedi betűtípus lehet.
Nyilván más fér bele a 8x7 vagy nem tudom hány rácsba, mint amit PC-n használnak és kidolgozottabb.
Title: Re: Általános BASIC Kérdések
Post by: ergoGnomik on 2017.June.30. 14:00:53
, de miért volt a régi számítógépeknek teljesen egyéni...
Ez csak tipp, de valószínűleg szerzői jogi magyarázata lehet. Ha olyan "fontot" akartak használni, ami másik cég gépéről származott, azután jogdíjat kellett volna fizetni, amit gondolom kevesen akartak. Meg azután nem is volt túl bonyolult egy 100-200 elemű karakterkészletet összehozni, és ezzel is meg tudták különböztetni magukat más gyártóktól.

A betűtípusok jogi védelme sokkal-sokkal megelőzi időben a számítógépek elterjedését. Emlékezz, néhány éve volt az Apple-nek is balhéja ebből, amikor lenyúlták a svájci vasút óratipográfiáját, a svájciak beperelték őket, az almások meg szó nélkül fizettek. Pedig ez nem nagyon szokásuk!
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.July.01. 17:32:19
lehetséges lehet változók, tömbök memóriacímét elérni valahogy? pl egy string tömböt gépi kóddal átmásolni képernyőre?
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2017.July.01. 17:42:43
lehetséges lehet változók, tömbök memóriacímét elérni valahogy? pl egy string tömböt gépi kóddal átmásolni képernyőre?

Megoldható lehet az interpreter működésének az ismeretében, bár az ilyesmi sokkal egyszerűbb C-ben, ott a mutatók (tömbökre) és egész típusok (memória címek) között lehetséges a konverzió, és az inline assembly is jól támogatott. Valószínűleg Pascal programban sem jelentene nagyobb problémát.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.July.01. 18:07:28
Megoldható lehet az interpreter működésének az ismeretében, bár az ilyesmi sokkal egyszerűbb C-ben, ott a mutatók (tömbökre) és egész típusok (memória címek) között lehetséges a konverzió, és az inline assembly is jól támogatott. Valószínűleg Pascal programban sem jelentene nagyobb problémát.

mondjuk lehet, hogy jobban járok ha eleve gépi kódnak foglalom le a pályát és a soro színeit, és poke-olva írom és olvasom.
pl színek esetén eleve kevesebb memóriát is foglalna, ha byte-osra foglalom le.
na persz eléggé át kell írni az editort így... de megérné, mert tudnék csinálni hatalmas pálya editálását, scrollal
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.July.03. 10:06:39
amúgy van valahol infó arról hogy a basic hogy tárolja a változókat?
pl. 100 elelmes string tömb 1 karakteres hosszal vajon 100 byte?
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2017.July.03. 13:07:12
Tömb méret * (hosszúság + 2). Egyszerűen tesztelhető a FREE változóval a tömb létrehozása előtt és után.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.July.03. 18:12:40
Tömb méret * (hosszúság + 2). Egyszerűen tesztelhető a FREE változóval a tömb létrehozása előtt és után.

wow ezt a free függvényt lehet hogy nem is ismertem :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2017.July.03. 18:48:44
wow ezt a free függvényt lehet hogy nem is ismertem :)
Olykor véletlenszám generálására is használható akár. Pl. LET A=INT(FREE/5). Igaz, ha egy kész program már mindig ugyanannyi helyet foglal, ez az érték állandó lesz.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.July.06. 00:13:34
na még egy :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2017.July.06. 22:43:02
Ezeket az újonnan generált betűtípusokat érdemes lenne külön elmenteni. Későbbi programokban akár felhasználhatók. Vannak az ep128.hu-n is betűtípus készletek, pl. más gépek betűtípusai, de nem árt valami egyedi is.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.July.06. 22:47:49
Ezeket az újonnan generált betűtípusokat érdemes lenne külön elmenteni. Későbbi programokban akár felhasználhatók. Vannak az ep128.hu-n is betűtípus készletek, pl. más gépek betűtípusai, de nem árt valami egyedi is.

hát az a baj hogy nem minden karakteren szép, mert kód generálja.
csak annyit csinálok hogy eltolom 1 pixellel, azt bor-al vagy band-al az eredetire rakom, vagy minden sorra, vagy minden második sorra alkalmazva.
csak újraélem ezeket, mert ezt annak idején mind megcsináltam :D
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2017.July.06. 22:49:39
hát az a baj hogy nem minden karakteren szép, mert kód generálja.
Azt a néhány karaktert át lehet manuálisan szerkeszteni. Már ha használni fogja valaki ezeket pl. basic programokban.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.July.07. 18:49:04
sorok hullámoztatása basic-ben.
a sorokat összenyomom, és alul egy sort kihúzok, hogy az elvárt sor magasság megmaradjon és ne fusson a kép. ha most mivel már lusta vagyok és meleg is van, ez a része rosszul műxik :)
max emu sebességgel szépen hullámzik azért :)
de zippelve is simán jó lenne! szóval ezzel majd még kezdek valamit
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.July.08. 23:06:56
na itt egy jobb, meg a zipped, ami ha nem is túl gyors, de élvezhető
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2017.July.09. 08:58:35
na itt egy jobb, meg a zipped, ami ha nem is túl gyors, de élvezhető
Ez jó, ezt majd fel lehet használni basic programokban!
Régebben nyitottál egy topikot, ahova az ilyen valamire biztos jó lesz, basic dolgokat tetted. Oda is be lehetne tenni.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.July.09. 12:02:35
vízszintes, egyszerű margó állításokkal :)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.July.09. 12:05:22
hm érdekes, "lpt2.bas" néven nem lehet menteni, invalid file attributest ír.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.July.15. 00:50:48
megalkottam a legegyszerűbb rajzolóprogramot ep-re :)

text 80
set character 32,255,255,255,255,255,255,255,255,255

kész :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2017.July.15. 09:59:40
megalkottam a legegyszerűbb rajzolóprogramot ep-re :)
Adáskimaradás:

10 TEXT 40 :SET STATUS UFF
20 DO
30   SET CHARACTER 32,RND(255),RND(255),RND(255),RND(255),RND(255),RND(255),RND(255),RND(255),RND(255) ! vagy csak eggyel kevesebb szám kell ide, nem tudom.
40 LOOP

Igény esetén kiadható még:
5 RANDOMIZE
de túl nagy jelentősége nincs.

Esetleg még az RND-k helyett lehet valami ORD(INKEY$) is, az tényleg rajzolóprogram lenne már. Ha meg még a SOUND PITCH ORD(INKEY$)-t is beletesszük a programba, audiovizuális multimédiás program lesz belőle. Az INKEY$ által meghatározott torzítás, paletta, bias témát már ne is említsük!
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2017.July.15. 10:31:03
Na, megszállt az ihlet, csináltam valami hasonlót. A gombnyomásra színváltást végül kivettem belőle, kicsit túlzás, de a 125-ös sorban a ! eltávolításával színváltós is lesz. Ha alapból nyomjuk a gombokat, túl magasak a hangok, de shift-tel és alt-tal már jobb, így az "orgonának" más "regiszterei" lesznek elérhetők. A funkcióbillentyűket is érdemes használni a program futása közben.
Még azon gondolkozom, hogyan lehetne látványosabbá tenni. Úgy kéne definiálni funkcióbillentyűket, hogy a kettes számrendszerben a karakter alakjában folyamatos változásokat okozzon, pl. 00001 után 000010 jöjjön, aztán 000100, majd 001000, 010000, stb.

[attach=1]

UI: A snapshotot először az asztalra akartam menteni, de nem engedte, valami error volt. Csak az emuból kijelölt mappába engedte menteni, és az ékezetes karakterek helyett ott krixkrax jelent meg. Erről a laptopról ritkán használom az emulátort, más gépen nem volt ilyen probléma.

   10 TEXT 40
   12 OUT 191,12
   13 SET #102:COLOR 1,251
   15 SET KEY CLICK OFF
   20 SET STATUS OFF
   50 WHEN EXCEPTION USE VEGE
  100   LET A$=INKEY$
  110   IF A$="" THEN GOTO 100
  120   SOUND PITCH ORD(A$),DURATION 5,INTERRUPT
  125   !SET #102:COLOR 1,ORD(A$)
  130   SET CHARACTER 32,ORD(A$),ORD(A$),ORD(A$),ORD(A$),ORD(A$),ORD(A$),ORD(A$),ORD(A$),ORD(A$)
  140   GOTO 100
  150 END WHEN
  160 HANDLER VEGE
  170   CLEAR FONT
  180   TEXT 40
  190   END
  200 END HANDLER
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.July.15. 17:50:32
na de ez má túl hosszú :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2017.July.15. 19:12:11
na de ez má túl hosszú :)
Van itt bármi megkötés, hogy milyen programot lehet írni? Amihez éppen kedvünk van. Holnap reggel lehet, az a program jut eszembe, hogy 10 PING 20 GOTO 10. :D Bár azt nem tenném fel ide azért.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.July.15. 20:08:11
Van itt bármi megkötés, hogy milyen programot lehet írni? Amihez éppen kedvünk van. Holnap reggel lehet, az a program jut eszembe, hogy 10 PING 20 GOTO 10. :D Bár azt nem tenném fel ide azért.

semmi megkötés nincs.
de az poén ha 2 soros kóddal rajzolni lehet :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2017.July.15. 21:21:29
semmi megkötés nincs.
de az poén ha 2 soros kóddal rajzolni lehet :)
Egysorossal is lehet. Egy sorba kell írni: TEXT 80 :SET CHARACTER akármennyi. Ha meg nem fér ki egy sorba, akkor a végéről le kell hagyni a számok egy részét, rajznak az is rajz.
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2017.July.16. 15:22:32
Adáskimaradás:

[attachurl=1]
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2017.July.16. 15:34:44
noise.bas
Hát ez nagyon jó, tökéletes!
Kicsit kibővítetettem, így még jobb (hangszóró is kell hozzá):
[attach=1]
Title: Re: Általános BASIC Kérdések
Post by: gflorez on 2017.July.16. 16:43:00
Természetesen a zaj....
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.August.16. 10:52:40
pár dolog amit így nosztalgia programozás közben feltűnt... egy kis basic kritika :)

-listázásnál 4 karakterrel beljebb jelennek meg a sorok. pazarlás. elég lett volna 1 vagy 0 karakter. a basic sorok for, def stb estén 2 karakterrel beljébb jelennek meg a sorok. elég lett volna 1 is. 40 karakteres módban ezek elég nagy pazarlások, és átlátható lenne a kód kevesebb "beljébb tolással" is.
-nem teljesen értem néha miért nem lehet kettősponttal új parancsokat beírni egy adott sorba. most pl felfedeztem hogy egy hosszabb sound sor esetén nem engedi. meg van még pár másik furcsa eset is.
-soft reset esetén törlődnek a saját funkció billentyű beállítások. lényegében én ezért nem használtam ezt semmire. mivel sűrűn használtam a soft resetet :)
-színek: ez is alapbeállításra áll TEXT parancs vagy soft reset esetén. kár... már csak azért is mert az alap beállítás eléggé semmilyen és közepesen szép csak...

na mára ennyit. ettől még az EP csúcs jó persze :)
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2017.August.16. 11:03:58
-listázásnál 4 karakterrel beljebb jelennek meg a sorok. pazarlás. elég lett volna 1 vagy 0 karakter. a basic sorok for, def stb estén 2 karakterrel beljébb jelennek meg a sorok. elég lett volna 1 is. 40 karakteres módban ezek elég nagy pazarlások, és átlátható lenne a kód kevesebb "beljébb tolással" is.

Azért jelennek meg beljebb a sorok, mert a sor száma (ami valószínűleg 16 bites egész) legfeljebb 5 karakteres lehet, és az olvashatóság miatt jobbra van igazítva.
[attachthumb=1]
A FOR, DEF, stb. 2 karakteres beljebb kezdése is az olvashatóságot javítja, jobban lehet látni, hogy hány FOR (vagy egyéb) van egymásba ágyazva.

Célszerűbb egyébként 40 helyett 80 karakteres módot használni, bár az lassabb, több video memóriát fogyaszt, és 6x8 méretűre csonkítja a karaktereket.

Quote
-nem teljesen értem néha miért nem lehet kettősponttal új parancsokat beírni egy adott sorba. most pl felfedeztem hogy egy hosszabb sound sor esetén nem engedi. meg van még pár másik furcsa eset is.

Talán korlátozott a sorok maximális hossza, legalábbis bizonyos esetekben.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2017.August.16. 11:16:22
Quote
-listázásnál 4 karakterrel beljebb jelennek meg a sorok. pazarlás. elég lett volna 1 vagy 0 karakter.
Leghosszabb sorszámnál 1 karakterrel van beljebb, többi ehhez igazodik, szépen.

[attach=1]

Quote
a basic sorok for, def stb estén 2 karakterrel beljébb jelennek meg a sorok. elég lett volna 1 is.
Kettővel szerintem áttekinthetőbb.

Quote
40 karakteres módban ezek elég nagy pazarlások, és átlátható lenne a kód kevesebb "beljébb tolással" is.
Ha nem C64/Spectrum stílusban van írva a program, akkor bőven kifér.

Quote
-nem teljesen értem néha miért nem lehet kettősponttal új parancsokat beírni egy adott sorba.
Na ez a kettőspontozás pont az emlegetett C64/Spectrum stílus :ds_icon_cheesygrin: Programozás órán egyes járt érte.

Quote
most pl felfedeztem hogy egy hosszabb sound sor esetén nem engedi. meg van még pár másik furcsa eset is.
Block utasítások (IF, FOR-NEXT,stb) biztosan nem lehet. A hosszabb sor meg eleve nem lehet teljes képernyős :-) és itt pl az is csalóka lehet, hogy a számok több helyett is foglalhatnak mint kiírva a képernyőn. (Volt erre egyszer egy egysoros program versenyünk.)

Quote
-soft reset esetén törlődnek a saját funkció billentyű beállítások. lényegében én ezért nem használtam ezt semmire. mivel sűrűn használtam a soft resetet :)
Normális programozással, főleg BASIC-ben soha egyetlen alkalommal se kéne a reset gombhoz nyúlni. Normális legrosszabb esetre ott a STOP gomb.
Resetnél bezáródik minden csatorna, így a KEYBOARD is, persze, hogy törlődnek a beállításai. Amúgy ZOZOTOOLS-ba raktam funkcióbillentyű mentést/töltést :-)

Quote
-színek: ez is alapbeállításra áll TEXT parancs vagy soft reset esetén. kár... már csak azért is mert az alap beállítás eléggé semmilyen és közepesen szép csak...
Resetnél a VIDEO is bezáródik... meg a TEXT-nél is. Ott van helyette a CLEAR TEXT :-)
Én ahol csak lehet azóta is mindenütt fekete alapon zöld betűket állítok be.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.August.16. 11:28:10
na ja a nagyobb sorszám jogos
a többi nem teljesen :)
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2017.August.16. 11:30:01
Talán korlátozott a sorok maximális hossza, legalábbis bizonyos esetekben.
Így van, az emlegetett egysoros versenynél (https://enterpriseforever.com/jatekok/egysoros-jatek-felhivas/msg29054/#msg29054) derült ki:
"Nálunk a már tokenizált sor hossza lehet 254 bájt, ebből 1 a hossz, 2 a sorszám, 1 a bekezdési szint, így marad 250 az utasításokra. Azonban a sor beírásra is van 255-ös korlát"
És ennél a tokenizálásnál jön az, hogy a számok letárolva többet foglalnak.

Az én egysoros kő-papír-olló programom (https://enterpriseforever.com/jatekok/egysoros-jatek-felhivas/msg29143/#msg29143) 196 beírt karakterrel eredményez 248 bájtos programot. (Kimentéskor ehhez még hozzá jön 2 db 16 bájtos modul fejléc, így lesz összesen 280 bájt).
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2017.August.16. 12:32:11
sűrűn használtam a soft resetet :)
Ezzel biztos volt bosszúságod is. Nálam néha előfordult, hogy soft resetre lefagyott a gép, és csak még egy reset segített, amitől már újraindult, mindent elfelejtve.

Emulátorral én is használtam pl. tegnap is sokat a soft resetet. Ott nem fagy le. Egyszerűbb, mint pl. kiadni egymás után, hogy stop, clear sound.
Amikor letiltjuk a stop gombot a programban, még akkor jön jól a soft reset. De a letiltást én a legvégére szoktam tenni természetesen.
Az nem baj, ha a 80-as szöveges mód lassabb, kisebbek a betűk. Emun teljes képernyőn pont jó, és lehet állítani az emu sebességét is.
Egyébként biztos meg lehetne csinálni emuval (talán lua scripttel is), hogy alapból ne zöld, hanem pl. fehér legyen a betűszín. Bár engem sose zavart, úgy emlékszem. Vagy a basic romban is biztos át lehetne írni az alapbeállítást. Vagy inkább az exosban.
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2017.August.16. 12:35:23
Ezzel biztos volt bosszúságod is. Nálam néha előfordult, hogy soft resetre lefagyott a gép, és csak még egy reset segített, amitől már újraindult, mindent elfelejtve.

A lefagyást valószínűleg a 2.32 verzióban javított EXOS 0 bug okozhatta.
Title: Re: Általános BASIC Kérdések
Post by: Povi on 2017.August.16. 21:33:52
Na ez a kettőspontozás pont az emlegetett C64/Spectrum stílus :ds_icon_cheesygrin: Programozás órán egyes járt érte.
Na, az Altair Basic doksija (http://www.altair32.com/pdf/Altair_8800_BASIC_Reference_Manual_1975.PDF) (56. oldal) még bátorít is, hogy használd a kettőspontot, hogy több sort írj egy sorba (ugye a Commodore Basic is a Microsoft terméke):
hiszen egy programsor legalább 5 bájtot jelent: 2 bájt a sorszám, 2 bájt a mutató a következő sor címére (láncolt lista), és egy bájt, ami lezárja a sort (null chr). Ha három sort egybe írsz, akkor már meg is spóroltál 10 bájtot :-)
Persze a '70-es évek végén, amikor a 8kB RAM annyiba került, mint maga az Altair, érthető a spórolás a memóriával.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2017.August.16. 22:47:09
Az a baj, még az IS-BASIC-kel is ki lehet futni a memóriából és a sorokból. Endinek is kevés volt a basic a gracha szerkesztőre, bár talán nem a sorszámok volt a gond.
Pár éve próbált írni valaki egy hosszabb basic programot (a címére nem emlékszem), ott a sorszámok végessége volt a probléma, nem fért bele.
Kisebb programoknál jól jön a strukturált programozás, sok sor, sok eljárás, de van, amikor az egyesével számozott 9999 sor sem elég. Ilyenkor jó, ha több utasítás fér egy sorba.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.August.16. 23:18:17
24 sor kevés, ezért is kell néha egy sorba többet írni. sokszor jó ha egyben látok több dolgot és nem kell görgetni.
és ügye ezen a text80 se segít...
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.August.20. 16:25:07
na ez vicces :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2017.August.20. 16:36:38
na ez vicces :)
Ezt a hibaüzenetet ezerszer láttam a gépkönyvben (A rendszer változói megsérültek), de nem emlékszem, hogy valaha megjelent a képernyőn. Vagy talán egyszer, akkor se tudom, miért.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.August.20. 16:42:45
Ezt a hibaüzenetet ezerszer láttam a gépkönyvben (A rendszer változói megsérültek), de nem emlékszem, hogy valaha megjelent a képernyőn. Vagy talán egyszer, akkor se tudom, miért.

az a baj rámentettem a snapshotra, és bármit csinálok fagyi van :)
na mindegy, beírom újra :)

amúgy tudom mi a baja, def-ben nem szabad így megadni az eredményt
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2017.October.14. 23:20:20
Ha esetleg valakinek nagyon bejött a Williamsburg Adventure (http://www.ep128.hu/Ep_Games/Leiras/Williamsburg.htm), :???: itt (http://www.ep128.hu/Ep_Games/Prg/Mansion_Adventure_1.rar) a "folytatás".
Title: Re: Általános BASIC Kérdések
Post by: geco on 2017.October.15. 10:00:30
Ha esetleg valakinek nagyon bejött a Williamsburg Adventure (http://www.ep128.hu/Ep_Games/Leiras/Williamsburg.htm), :???: itt (http://www.ep128.hu/Ep_Games/Prg/Mansion_Adventure_1.rar) a "folytatás".
Gratula a konverzióhoz :) , Commodore-okon szoktak nagyon ronda, kinézetre képernyőre hányt Basic programokat írni :D
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2017.October.15. 10:24:57
Commodore-okon szoktak nagyon ronda, kinézetre képernyőre hányt Basic programokat írni

BASIC-ben ami a program olvashatóságát javítja (szóközök, megjegyzések, utasítások külön sorokba írása, stb.), az általában lassítja is és a méretét növeli. :)
Title: Re: Általános BASIC Kérdések
Post by: geco on 2017.October.15. 12:01:06
BASIC-ben ami a program olvashatóságát javítja (szóközök, megjegyzések, utasítások külön sorokba írása, stb.), az általában lassítja is és a méretét növeli. :)
Áhá, ezt nem tudtam, úgy emlékeztem a rövidítéseket sem oldják fel (mint pl a P + shift O), de leteszteltem, az megtörténik.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2017.October.15. 12:09:59
BASIC-ben ami a program olvashatóságát javítja (szóközök, megjegyzések, utasítások külön sorokba írása, stb.), az általában lassítja is és a méretét növeli. :)

Az a vicc, hogy Ep-n gyorsabban fut a program! A Plus4-es RENUMBER pedig valószínűleg a világ leglassabb átsorszámozása.
Title: Re: Általános BASIC Kérdések
Post by: geco on 2017.October.15. 12:21:59
Az a vicc, hogy Ep-n gyorsabban fut a program! A Plus4-es RENUMBER pedig valószínűleg a világ leglassabb átsorszámozása.
Hm, ez érdekes, úgy emlékszem a C+4 basic elég gyors.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2017.October.15. 18:25:04
"Imádom" ezt a Microsoft BASIC-nek csúfolt gájnyolást...
Erre varjatok gombot:

Code: [Select]
700 for k=1 to 9
702 if o$(k)<>o$ then next:print"drop what??":goto 180
710 if o(k)>0 then print"You dont have that item!":goto 180
720 ml=ml-1:o(k)=l:print"Okay,it's done!":goto 180
730 for k=1 to 9:if o$(k)<>o$ then next:print"Get what??":goto 180
740 if o(k)=-1 then print"You already have it!":goto 180

Valaki ezt nekem lefordítaná "magyarra"? A 702., 730. sorban a next utáni rész mikor fut le?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2017.October.15. 18:32:07
Én úgy tippelem akkor, ha az o$ hossza nem 1-9.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.October.15. 18:33:02
then next :D

haha ez vicces, bár belegondolva, gépi kódban úgyis ez lesz/lehet belőle XD
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2017.October.15. 18:33:21
Ha ez is Commodore BASIC, akkor a legegyszerűbb kipróbálni:
[attachthumb=1]

[attachthumb=2]
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2017.October.15. 18:58:00
Máshol nem tartozik hozzá NEXT
Én így alakítottam át:

Code: [Select]
700 for k=1 to 9
702 if o$(k)<>o$ then 722
710 if o(k)>0 then print"You dont have that item!":goto 180
720 ml=ml-1:o(k)=l:print"Okay,it's done!":goto 180
722 next
724 print"Drop what??":goto 180

Az "igazi  érdekességek" a GET és a BUY ciklusban vannak. A két ciklus között GOTO-zik ezzerrel össze-vissza, mint atom... Hogy nekem mekkora szerencsém van, hogy anno Ep-t kaptunk öcsémmel... :smt029
Title: Re: Általános BASIC Kérdések
Post by: Povi on 2017.October.16. 13:50:08
Máshol nem tartozik hozzá NEXT
A 8K-s Altair BASIC-ben szerintem lefutna konvertálás nélkül.
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2017.October.16. 14:41:31
Az "igazi  érdekességek" a GET és a BUY ciklusban vannak. A két ciklus között GOTO-zik ezzerrel össze-vissza, mint atom... Hogy nekem mekkora szerencsém van, hogy anno Ep-t kaptunk öcsémmel... :smt029

Ez egyébként ugyanabból a sorozatból egy újabb játék lesz? A kód hasonlónak tűnik, de nem találom a Mansion-ben.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2017.October.16. 18:11:18
Ugyanaz a sorozat: Castle Dracula (Adventure 5). Már, ha kiigazodok a GOTO-k, GOSUB-ok, THEN NEXT és hasonló csodák rejtelmein... A 2. 4. részhez nincs "megoldókulcs", azokat nem hiszem, hogy megcsinálom.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2017.October.16. 22:58:20
Szerintem elkészült (http://www.ep128.hu/Ep_Games/Prg/Castle_Dracula_Adventure_5.rar).
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2017.October.16. 23:52:56
Castle Dracula (Adventure 5)
Úgy látszik, idén a Commodore játékok átírásának az éve van (vö. Skramble, Exorcist). Z80-as Spectrum, CPC program már nem kihívás. Hiába, egyre rutinosabb a csapat! :D
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2017.October.23. 16:06:40
Itt egy teszt verzió az Adventure 2-ból.
Csak nem nagyon lehet tesztelni "megoldókulcs" nélkül... Kinek van hozzá affinitása?
Kétféle hiba lehet még elvileg benne: nem inicializált változók, illetve - bár ebből már nem sok lehet - olyan változónevek, amelyek azonosak tömbváltozók neveivel.
A .prg a Plus4-es verzió összehasonlítás végett.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2017.October.24. 16:59:35
Úgy tűnik nem nagy az érdeklődés...
Amire eddig rájöttem:
N, N, GET KEYS, S, S, S, U, GET GLASSES, D, E, GET STAFF, W, S, E, E, GET BAGEL, W, W, N, EXAMINE WALL, DROP STAFF, DROP BAGEL, HELP, PRAY, S, E, E, S, WEAR GLASSES, E, EXAM TABLE, PUSH TABLE, D, REMOVE GLASSES, EXAM DOOR, OPEN DOOR, W, S, W, W, GET BOOK, N, GET RING, EXAMINE RING, WEAR RING, S

Csak innen nem tudok kikeveredni, valami kimarad.
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2017.October.24. 17:01:53
Csak nem nagyon lehet tesztelni "megoldókulcs" nélkül...

A programlistából nem lehet kitalálni a megoldást? Bár az olvashatósága alapján lehet, hogy a játékban próbálkozni mégis könnyebb. :)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.October.24. 17:10:38
én szeretem a szövegeseket, de az olyanokat amiben pár szó a pályaleírás, azokat nem.
vagy akkor legyen grafika hozzá
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2017.October.24. 17:50:21
Úgy tűnik nem nagy az érdeklődés...
Tegyél fel snapshotot! Nekem tele van midis cuccokkal a working directory az emulátorban. Ha még oda bepakolok mást is, teljes lesz a káosz, ottfelejtem, aztán nem találom. (Nem lehetne több working directory-t is megadni valahogy az emulátoron? Jó, persze, ki kell választani másik könyvtárat és annyi. :D Csak én vagyok nehézkes ilyenekben.)

vagy akkor legyen grafika hozzá
Szerintem megoldható ez is akár. Akár Iview képekkel. És akkor kéne még egy kód, ami a képeket betölti. De lehetnek persze PLOT-tal rajzolt képek is. Csak megrajzolni idő.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2017.October.24. 18:07:42
Tegyél fel snapshotot!

Az a baj, hogy ebben a részben a közlekedés nélkülöz mindenféle logikát...
A programlistából nekem magas, mikor merre járunk.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.October.26. 18:59:32
miket fedeztem fel! trace utasítás :)

TRACE
TRACE ON TO £csat
TRACE OFF
Az éppen végrehajtott utasítás sorszámát írja ki a megadott csatornára, annak hiányában a 0 csatornára. A TRACE OFF kikapcsolja ezt a nyomkövetést.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2017.October.26. 20:09:23
miket fedeztem fel! trace utasítás :)
Ezt már ismertem eddig is.
Jól meg lehet hülyíteni basic programokat, ha futtatás előtt kiadjuk a trace on-t. Nem valószínű, hogy induláskor kikapcsolják. Videoton TVC-n a levédett Gombócfalót úgy sikerült feltörni (véletlenül), hogy az öninduló load előtt kiadtunk, hogy trace on. Ezután a játék futása közben összevissza írkálta a képernyőt a sorszámokkal, míg le nem állt egy hibaüzenettel. Innentől kezdve lehetett listázni, módosítani, menteni.
EP-re van egy ablakos demó, mindegyik ablakba mást ír, az egyik ablakba a sorok számát, ahol jár.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.November.09. 16:31:10
ez érdekes! ez a program nem szólal meg nekem emun, csak ha az z80 freki maxon van!
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2017.November.09. 16:37:59
ez érdekes! ez a program nem szólal meg nekem emun, csak ha az z80 freki maxon van!
Valamiért a sok "interrupt" zavar be.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.November.09. 17:48:59
Valamiért a sok "interrupt" zavar be.

hm abban lenne logika hogy a sync és az interrupt nem szeretik egymást :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2017.November.09. 19:15:13
hm abban lenne logika hogy a sync és az interrupt nem szeretik egymást :)
Kéne működniük együtt is. Mert mi van, ha pont mind a 3 csatornán szólt valami, és mind a hármat meg kell szakítani? Ahhoz mind a háromra kéne interrupt...
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.November.15. 20:27:18
attr módban a paper szín bias színek, így azok nem scrollozódnak, a pattern meg ilyen pepita
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2017.November.20. 15:00:57
Azt meg lehet csinálni basicben, hogy a kurzort az egérrel is lehessen mozgatni? Egyszer mintha láttam volna ilyet, de lehet, csak álmodtam. A programsorok szerkesztésénél gyorsabb lenne, mint a belső joy.
Title: Re: Általános BASIC Kérdések
Post by: geco on 2017.November.20. 15:08:04
Azt meg lehet csinálni basicben, hogy a kurzort az egérrel is lehessen mozgatni? Egyszer mintha láttam volna ilyet, de lehet, csak álmodtam. A programsorok szerkesztésénél gyorsabb lenne, mint a belső joy.
Gflorez patchelte a ROM-ot, nem emlékszem, hogy végleges fázisba került-e a dolog.

Gflorez patched the ROM, I do not remember if it reached it's final phase.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2017.December.16. 19:07:42
Itt egy kis tesztelni való. Hátha valaki teljesítei tudja... :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2017.December.16. 21:20:50
Itt egy kis tesztelni való. Hátha valaki teljesítei tudja... :)
Elsőre ügyesen elsüllyedtem a dirty bog-ban. :D
[attachimg=1]
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.December.16. 21:40:59
sose szerettem azokat a szövegeseket amik csak egy fél mondattal írják le a pályát...
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2017.December.16. 22:12:03
Elsőre ügyesen elsüllyedtem a dirty bog-ban. :D

A READ SIGN-ig eljutottam... :ds_icon_cheesygrin:
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2017.December.16. 22:13:34
sose szerettem azokat a szövegeseket amik csak egy fél mondattal írják le a pályát...

Az én angol tudásomnak tökéletesen megfelelnek :oops:
Amúgy meg nekem pl. pont a grafika nélküli Infocom-féle szöveghalmazok nem jönnek be.
Ízlés kérdése...
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.December.16. 22:26:42
Az én angol tudásomnak tökéletesen megfelelnek :oops:
Amúgy meg nekem pl. pont a grafika nélküli Infocom-féle szöveghalmazok nem jönnek be.
Ízlés kérdése...

az más kérdés ha grafika is van. akkor már jobb a rövid szöveges is, bár ez grafikától is függ. volt pár grafikás+rövid szövegű amit szerettem.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2017.December.17. 10:39:43
Újabb verzió. Bár egyszer már megfogadtam, hogy olyannal nem foglalkozom, amihez nincs "megoldókulcs". ;-)

Amire rájöttem: get key, unlock, open, drop key, n, u, s, get diary, read diary, n, d, drop diary, w, n, get candle, s
Title: Re: Általános BASIC Kérdések
Post by: endi on 2017.December.31. 23:02:54
ez egy kis béna program, aminek az a lényege hogy labirintusban irányítunk egy pontot, de a környezet csak a környezetünkben jelenik meg, véletlenszerű pontokkal.
max sebességű emuval élvezhető csak.
nem tudom mi lesz belőle, lehet hogy lesz valami majd :)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2018.January.13. 17:58:53
egy kis játék-kezdemény...
majd talán lesz belőle valami...
Title: Re: Általános BASIC Kérdések
Post by: endi on 2018.January.16. 20:32:21
col16 lpt scroll basicból, na ebből majd kihozok valami kis játékot :)
ez zippelve van
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2018.January.17. 11:47:17
ebből majd kihozok valami kis játékot :)
Erre kíváncsi leszek, érdekesnek tűnik.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2018.March.12. 18:09:37
Van valakinek tippje, hogy a Zzzip-nek mi baja a
9011   READ TO(I)
sorral: Syntax hibával leáll a fordítás.
Title: Re: Általános BASIC Kérdések
Post by: ergoGnomik on 2018.March.12. 21:14:25
Van valakinek tippje, hogy a Zzzip-nek mi baja a
9011   READ TO(I)
sorral: Syntax hibával leáll a fordítás.
Nem lehet, hogy a TO-t fenntartott szónak dekódolja, és nem tudja tömbváltozónak értelmezni?
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2018.March.13. 23:00:12
Nem lehet, hogy a TO-t fenntartott szónak dekódolja, és nem tudja tömbváltozónak értelmezni?

Csak ezt tudom elképzelni, de ezt honnan veszi...?
Title: Re: Általános BASIC Kérdések
Post by: endi on 2018.March.13. 23:44:20
Csak ezt tudom elképzelni, de ezt honnan veszi...?

hát TO az egy utasítás for ciklusban: FOR X=1 TO 5 például
Title: Re: Általános BASIC Kérdések
Post by: ergoGnomik on 2018.March.14. 09:43:06
Csak ezt tudom elképzelni, de ezt honnan veszi...?
A TO fenntartott szót az alábbi BASIC utasítások/parancsok használják a referencia kézikönyv szerint:

A Zzzip-nek talán az lehet a baja, hogy nem írták elég "intelligensre" a szövegértelmezőjét, így ezt a határesetet nem tudja helyesen feloldani. Próbáltad már úgy, hogy lecseréled a változó nevét?
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2018.March.14. 10:07:47
CASE kif TO kif (SELECT)
Jé, a CASE után is állhat TO? Ezt még sose használtam.

Szerintem is az lesz a gond, hogy basic parancsok, szavak nem lehetnek változók. Már csak egy olyan program kellene Lacinak, mely az összes TO változót lecseréli basic programjában valami más, megadott változónévre.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2018.March.14. 21:33:19
hát TO az egy utasítás for ciklusban: FOR X=1 TO 5 például

Valóban, a TO-t átnevezve már sikerült lefordítani a programot, igaz más okból kifolyólag nem működik helyesen :(
Title: Re: Általános BASIC Kérdések
Post by: endi on 2018.April.04. 19:14:17
itt a basic, látom a snapshotból nem jöttetek rá hogy ez pont azt csinálja amiről beszéltek, poke-olja az exos karakterkészletet :)
biztos lehet optimalizálni. vagy akár átírni gépi kódra.
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2018.April.07. 13:27:27
itt a basic, látom a snapshotból nem jöttetek rá hogy ez pont azt csinálja amiről beszéltek, poke-olja az exos karakterkészletet :)
biztos lehet optimalizálni. vagy akár átírni gépi kódra.

Az eredeti kb 76 másodperc

a v2 kb 69 másodperc
a v3 kb 21 másodperc csak BASIC

Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2018.April.07. 16:23:20
Assembly változat (a CLEAR FONT-ot nem tartalmazza, így többszöri futásnál halmozódik az effektus):
[attachurl=1]
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2018.April.07. 16:27:15
Az eredeti kb 76 másodperc

a v2 kb 69 másodperc
a v3 kb 21 másodperc csak BASIC

a v4 kb 14 másodperc ennél gyorsabbra én nem tudom csak BASIC-ben.

Illeszd be valahogy ezt:
Code: [Select]
  ld c,4
  ld hl,0b480h
  ld de,0128
ujsor  add hl,de
  ld b,128
kov  ld a,(hl)
  rrca
  ld (hl),a
  inc hl
  djnz kov
  dec c
  jr nz,ujsor
  ret
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2018.April.07. 18:45:59
[attachurl=1]
Title: Re: Általános BASIC Kérdések
Post by: endi on 2018.August.20. 12:11:32
van ez a tök jó játék: https://youtu.be/MxsYDzts1Dg
illetve ennek 2d verziója: https://youtu.be/J4M40JoZELM

na most 2d-ben, basic-ben is meg lehetne ezt csinálni, lpt margó állítással, poke-olással, tök gyors lenne zippelve, jó játékélményt adna.
el is kezdtem. :)
a 3d (izometrikus) verzió is lehetséges lenne gépi kódban talán.
ez a játék is marha jó példa arra amúgy, hogy még a mai napig ki lehet teljesen egyszerű és alapvető jó ötleteket találni, amik még a régi gépeken is megvalósíthatóak! nagyon bírom az ilyeneket.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2018.October.06. 11:45:18
Elkezdtem felrakni IS-BASIC példákat a Rosettacode (http://rosettacode.org/wiki/Category:IS-BASIC)-ra.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2018.October.20. 19:48:42
Rég volt "hiánypótló"program... Most sem lesz :ds_icon_cheesygrin: , viszont a "világ legfeleslegesebb programja" kategóriába benevezek egy konténerszám és egy IBAN-szám ellenőrző programmal.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2018.October.20. 20:49:31
konténerszám
Nekem mindenre azt írja, hogy "Invalid lenght". De a hossz az nem lenght, hanem length, tehát a "h" a "t" után van.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2018.October.20. 22:14:50
Nekem mindenre azt írja, hogy "Invalid lenght". De a hossz az nem lenght, hanem length, tehát a "h" a "t" után van.

Kösz, azt javítom.
Próbáld ezzel.  (https://ixquick-proxy.com/do/spg/show_picture.pl?l=english&rais=1&oiu=https%3A%2F%2Fwww.universalcargo.com%2Fwp-content%2Fuploads%2Fshipping-container.jpg&sp=c4ee6640cd4b922e83a4954f2978ca94) (Jobb felső sarok.) Vagy ezzel. (https://ixquick-proxy.com/do/spg/show_picture.pl?l=english&rais=1&oiu=https%3A%2F%2Fwww.royalwolf.co.nz%2Fwp-content%2Fuploads%2F2016%2F07%2FA-GRADE-20GP.jpg&sp=3f38868094baa7174366b5e4d1be1d44) (négy betű, hét szám)
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2018.October.21. 18:54:41
Újabb haszontalan program: bankkártyaszám ellenőrző.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2018.October.24. 10:19:06
azon gondolkodtam, miért lassú az ep basic pl a specy basic-hez képest?
asszem volt már szó róla, de nem emlékszem mit is beszéltünk.
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2018.October.24. 10:34:40
Részben valószínűleg az EDITOR: eszköz miatt, azaz a PRINT utasítás nagyon lassan írja ki a teszt programok eredményét. :)

De általában ezek lassíthatják a többi géphez képest:
- nagy pontosságú aritmetika, 64 bites BCD formátumú lebegőpontos számokkal
- az IS-BASIC "magasabb szintű" az átlagos 8 bites BASIC változatoknál
- az EXOS megszakítás kezelése viszonylag sok CPU időt fogyaszt, különösen akkor ha több eszköz (VIDEO:, KEYBOARD:, EDITOR:, SOUND:) aktív egyszerre, ezért lehet hasznos a POKE 56, 201
- bonyolultabb memória kezelés, talán nem jelent nagy különbséget, de például a Plus/4-es BASIC ezért lassabb a C64-nél
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2018.October.24. 10:41:15
Pl EP-n helyesen tud lefutni ez a nagyon bonyolult program :-)
10 FOR I=1 to 10 STEP 0.1
20 IF I=2 THEN PRINT "ketto"
30 NEXT I
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2018.October.24. 10:48:34
Pl EP-n helyesen tud lefutni ez a nagyon bonyolult program :-)
Más gépen nem fut le helyesen, hibázik?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2018.October.24. 10:48:59
De általában ezek lassíthatják a többi géphez képest:
Hozzá tehetjük még a bővíthetőséget, az utasítások nincsenek fixen bedrótozva, külön bővíthető táblázatokból keresi ki őket.

Quote
- az IS-BASIC "magasabb szintű" az átlagos 8 bites BASIC változatoknál
Itt említhető, hogy vannak lokális és globális változók, és a változó nevek nem csak két karakteresek lehetnek, mint sok más BASIC-ben.

Quote
Részben valószínűleg az EDITOR: eszköz miatt, azaz a PRINT utasítás nagyon lassan írja ki a teszt programok eredményét. :)
Így van, itt sokat segíthet a 102-es csatorna közvetlen használata.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2018.October.24. 10:53:42
Más gépen nem fut le helyesen, hibázik?
A kevésbé pontos számábrázolás miatt nem teljesül a feltétel. Most amit próbáltam: C64, Spectrum, CPC, ezeken nem fut helyesen.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2018.October.24. 11:00:08
A kevésbé pontos számábrázolás miatt nem teljesül a feltétel. Most amit próbáltam: C64, Spectrum, CPC, ezeken nem fut helyesen.
Akkor ott könnyen csúszhat be hiba, amire nem számít az ember, és nem fog működni a program.
Nálunk csak Zzzippel lefordítva nem működne ez a program. Úgy viszont sokkal gyorsabban nem csinálja meg, amit C64-en sem. :D
Title: Re: Általános BASIC Kérdések
Post by: endi on 2018.October.24. 11:03:24
a jobb számábrázolás vajon akkor is számít a sebességben, ha nem használunk komoly számításokat? pl csak egy figura mozog a képernyőn, összeadások, kivonások...
a 102-es csatornára írás valóban sokkal gyorsabb, de még ez is lassabb a specy-nél... (pedig tudjuk hogy ott 9 byte-ot kell kiírni egy karakterhez).

aha, a többi dolog (fejlettebb basic), érthető...

néha olyan érzésem van amúgy zippelt basic-el (amiben nekem nagy tapasztalatom van ügye), hogy az hozza a specy basic sebességét :)
Title: Re: Általános BASIC Kérdések
Post by: IstvanV on 2018.October.24. 13:23:35
a jobb számábrázolás vajon akkor is számít a sebességben, ha nem használunk komoly számításokat?

Úgy látom, törteknél és 16 biten nem ábrázolható értékeknél számít, az egyszerű egész számos műveleteket (pl. A=1+2) az IS-BASIC külön támogatja.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2018.October.24. 15:03:10
Úgy látom, törteknél és 16 biten nem ábrázolható értékeknél számít, az egyszerű egész számos műveleteket (pl. A=1+2) az IS-BASIC külön támogatja.

nocsak, tök jó
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2018.October.24. 18:54:23
A kevésbé pontos számábrázolás miatt nem teljesül a feltétel. Most amit próbáltam: C64, Spectrum, CPC, ezeken nem fut helyesen.

A korabeli gépek közül csak az Ep és a TVC tud pontosan számolni.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2018.October.24. 18:56:34
nocsak, tök jó

A 0 és 9999 közti egész számok a gyorsaság miatt nem lebegőpontos alakban tárolódnak, hanem a normál Z80 formátumban, 16 bites bináris számként.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2018.October.24. 18:59:48
A 0 és 9999 közti egész számok a gyorsaság miatt nem lebegőpontos alakban tárolódnak, hanem a normál Z80 formátumban, 16 bites bináris számként.

wow... ez nem semmi. de ha átlépi a limitet (vagy nem egész szám lesz) akkor dinamikusan átvált ezek szerint. ami nem feltétlen okos megoldás... akkor már miért nem lehetett definiálni hogy milyen típusú számot akarok? hmm...
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2018.October.24. 19:49:07
wow... ez nem semmi. de ha átlépi a limitet (vagy nem egész szám lesz) akkor dinamikusan átvált ezek szerint. ami nem feltétlen okos megoldás... akkor már miért nem lehetett definiálni hogy milyen típusú számot akarok? hmm...

Szerintem mindenképen 6 byte-ot foglal az interpreter  a számváltozónak, így semmiből nem áll dinamikusan váltani.
Nézegettem olyan BASIC-et, amiben van külön egész típus (CBASIC), csak a szívás van vele. C64-en is max. ciklusváltozónak használják.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2018.October.24. 19:51:31
és tényleg :)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2018.December.26. 14:02:49
rájöttem hogy fogok basic-ben pixeles függőleges scrollt csinálni. volt egy olyan próbálkozásom, hogy az lpt-ben fent összehúztam egy sort, alul meg széthúztam. így az kép elcsúszott és végül is működött, de ennél jobb ötlet lehet ha a memória címeket írom át az lpt-ben.
majd egyszer, ha lesz kedvem megint valamit csinálni, mostanában nem nagyon van :)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2018.December.26. 14:36:28
egyébként, hogy én milyen hülye vagyok! hiszen marha egyszerű megoldani hogy basic-ből egyszerűen megadjunk videó memória címet, ami fix lesz az adott videó lapon! nem lekérdezni kell hogy az exos hova osztotta ki! hanem egyszerűen le kell foglalni egy videó szegmenst, és brute force módszerrel bele-poke-olni az lpt-be. így exos kompatibilis lesz (hiszen le van foglalva neki a szegmens) és fix memória című, hiszen azt poke-olunk az lpt-be amit akarunk.
így kikerülhető az, hogy az exos ki tudja hova és hány szegmensre foglal le egy exos videólapot.
na persze ez esetben csak poke-al tudunk majd írni a videólapra :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2019.February.01. 12:26:51
Van bármilyen előnye a program működése szempontjából, ha hosszú változónevek helyett rövideket adunk meg? Pl. LET BOMBA=3 helyett LET B=3. Akár a program sebessége szempontjából, vagy Zzzippel lefordítva gyorsabb lesz? Előnyös, ha minél kevesebb változónevet használunk? Pl. átmeneti változóknak ugyanazt a nevet adni, pl.
100 FOR WAIT=1 to 200
110 NEXT
(És mindig a WAIT változót használni átmeneti kis feladatokra, a WAIT tartalmát máshol nem használja fel a program.)
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2019.February.01. 13:05:49
Rövidebb név valóban gyorsabb, bár ki kéne mérni, hogy mennyire észrevehető.
Ami biztos: kisebb lesz a programméret, valamint futás közben is kevesebb memóriát igényel a program. Nagy méretű, a Basic memóriát kitöltő programnál ez már számíthat.
Minél kevesebb változót használni szintén spórolás a memóriával. És amikor egy még nem használt változót használunk, akkor azt létre kell hozni a rendszernek, így biztos gyorsabb újrafelhasznált változókkal dolgozni. Szintén kérdés, hogy ez vajon mennyire észlelhető.
Zzzipnél szerintem a neveket eldobja, lefordított címeket használ, valamint eleve definiálja az összes változót, így szerintem sebesség befolyásolás nincs. De a zzzipelt programnál eleve hamarabb elszokott fogyni a memória, így a minél kevesebb változó használata ajánlott.
Title: Re: Általános BASIC Kérdések
Post by: Povi on 2019.February.01. 13:29:53
Van bármilyen előnye a program működése szempontjából, ha hosszú változónevek helyett rövideket adunk meg? Pl. LET BOMBA=3 helyett LET B=3. Akár a program sebessége szempontjából, vagy Zzzippel lefordítva gyorsabb lesz? Előnyös, ha minél kevesebb változónevet használunk? Pl. átmeneti változóknak ugyanazt a nevet adni, pl.
100 FOR WAIT=1 to 200
110 NEXT
(És mindig a WAIT változót használni átmeneti kis feladatokra, a WAIT tartalmát máshol nem használja fel a program.)
Nem tudom, az IS-BASIC hogy működik, de pl. a C64-nél (és az összes korai Microsoft BASIC esetében) a változó neveit deklarálás sorrendjében rakta el a memóriába, és hivatkozáskor lineáris kereséssel kereste meg azokat. Ezért a gyakran használt változókat minél előbb kellett deklarálni, hogy hamarabb megtalálja.
A BBC BASIC-ben már ABC sorrednben rakta el a változóneveket, lehet, hogy az IS-BASIC is így működik, elég sok ötletet át vettek belőle
Title: Re: Általános BASIC Kérdések
Post by: endi on 2019.February.01. 13:58:43
ez érdekes. ezek szerint az x használata nem igazán jó, ahol abc sorrendben van indexelve :)
ki lehetne mérni ezeket, bár lehet, hogy felesleges, úgyis minden basic programot zzzippelni kell :)
Title: Re: Általános BASIC Kérdések
Post by: endi on 2019.February.01. 14:00:30
érdekes amúgy hogy a gracha-ból exportált programot ha először kilistázzuk, furcsán néz ki.
ha elindítjuk, leállítjuk és újra listázzuk, már jó.
persze nagyjából értem mi ez.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2019.February.01. 14:08:23
érdekes amúgy hogy a gracha-ból exportált programot ha először kilistázzuk, furcsán néz ki.
:shock:
Title: Re: Általános BASIC Kérdések
Post by: Povi on 2019.February.01. 15:39:04
ez érdekes. ezek szerint az x használata nem igazán jó, ahol abc sorrendben van indexelve :)
ki lehetne mérni ezeket, bár lehet, hogy felesleges, úgyis minden basic programot zzzippelni kell :)
nem, nem, asszem tök mindegy, mivel kezdődik, mert úgy működik, hogy először a kezdőbetű alapján ugrótábla, és aztán majd ott keresi lineárisan, csak az x betűsök között (tehát akkor a leggyorsabb, ha minden változó különböző betűvel kezdődik)

szerk: tényleg így van:
http://www.bbcbasic.co.uk/bbcbasic/mancpm/annexd.html#variablestorage
Title: Re: Általános BASIC Kérdések
Post by: endi on 2019.February.01. 18:08:47
első idő: "a" a változó neve
második idő: "z" a változó neve
harmadik idő: hosszú változó név
mint láthatjuk, nem számít semmit.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2019.February.01. 18:38:57
persze nagyjából értem mi ez.
Jó neked.
Talán a tokenizálással függ össze, hogy először még a tokenizálatlan programot töltötte be (txt fájlból). De attól már elsőre tokenizáltnak kellett volna lennie.

Velem olyan volt nemrég, hogy egy programot nem akart a Zzzip lefordítani. Kilistáztam fájlba, majd abból a fájlból betöltöttem a load-dal és elmentettem. Így már vitte a Zzzip. Az eredeti program néhány bájttal több volt. Ez meg miért lehet?
Title: Re: Általános BASIC Kérdések
Post by: Tomato77 on 2019.February.02. 08:26:22
mint láthatjuk, nem számít semmit.
Ekkora programnál, ahol egy változó van, tényleg nem számít, de ki kéne próbálni olyat, ahol 20-30 változó közül kell kibogarásznia a megfelelőt. Ott lehet, hogy lehetne mérni valamekkora különbséget.
Title: Re: Általános BASIC Kérdések
Post by: Tomato77 on 2019.February.02. 09:25:09
Kipróbáltam: az első mérésnél "A" volt a változó neve, a másodiknál "AZ". Nincs mérhető különbség... A NEXT-ből elhagytam a változónevet, mert ahogy korábban olvastam, ott bármit elfogad az interpreter, és csak 20000 ciklust vártam ki normál emu sebességgel.
Title: Re: Általános BASIC Kérdések
Post by: gflorez on 2019.February.02. 21:56:12
Most, hogy a végrehajtási idők méréséről beszélünk.

Körülbelül 1/50 másodperc múlva mérhetjük az időt, a 39-es változót használva, RANDOM_IRQ.

Kíváncsi voltam, hogyan gyorsabb lenne elválasztani a 16 bites szám 2 bájtját?

----------------------

Talking about measuring execution times.

We can approximately measure time with 1/50th of seconds, using the variable 39, RANDOM_IRQ.

I wonder, how would it be faster to separate the 2 byte of a 16-bit number?

Code: [Select]
 100 PROGRAM EXTRACT L AND H FROM HL
  110 !
  120 SET STATUS OFF
  130 TEXT 40
  140 PRINT AT 1,1:"Please enter an 8 bit number(0-65535):"
  150 PRINT AT 2,1:CHR$(25)
  160 PRINT CHR$(25)
  170 PRINT CHR$(25)
  180 PRINT CHR$(25)
  190 PRINT CHR$(25)
  200 PRINT CHR$(25)
  210 !
  220 INPUT AT 2,1,IF MISSING 150:W$
  230 IF W$="" THEN GOTO 150 !            false input
  240 LET W=VAL(W$)
  250 IF STR$(W)<>W$ THEN GOTO 150 !     no strings  
  260 IF W>65535 OR W<0 THEN GOTO 150 ! out of range
  270 PRINT
  280 !
  290 !           WORD$ command mode
  300 !
  310 SET 39,0:LET A$=WORD$(W):LET L=ORD(A$(1:1)):LET H=ORD(A$(2:2)):ASK 39 T
  320 !
  330 PRINT W,"L=";L,"H=";H,LTRIM$(STR$(T));"/50 of sec."
  340 !
  350 !           Arithmetic mode
  360 !
  370 SET 39,0:LET L=REM(W,256):LET H=(W-L)/256:ASK 39 T
  380 !
  390 PRINT W,"L=";L,"H=";H,LTRIM$(STR$(T));"/50 of sec."
  400 !
  410 PRINT :PRINT "press a key for a new try"
  420 IF INKEY$="" THEN GOTO 420
  430 GOTO 150

Azt hiszem, törölhetjük a 230-as vonalat. És mindezeket a nyomtatási parancsokat vezérlőkódként helyezzük el egy karakterláncba

----------------------

I think that we can eraae line 230. And put all these Print commands as control codes inside a string.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2019.February.03. 16:39:06
Code: [Select]
 100 PROGRAM EXTRACT L AND H FROM HL
What is the sense of using a text after "program" command, without quotes? I have seen this somewhere else too.
If you use e.g. 100 PROGRAM "EXTRACT", SAVE command will save with this file name. But without quotes it has no function I think.

---
Mi értelme a "program" parancs után idézőjel nélkül írni szöveget? Már máshol is láttam ilyet.
Idézőjellel, pl. 100 PROGRAM "EXTRACT" a SAVE parancs ezzel a file névvel fogja kimenteni. De idézőjelek nélkül nincs semmi funkciója, úgy tudom.
Title: Re: Általános BASIC Kérdések
Post by: gflorez on 2019.February.03. 17:23:06
Természetesen igazad van.

Új verzió néhány optimalizálással:

-------------------

Of course you are right....

New version with some optimizations:

Code: [Select]
 100 PROGRAM "HL.BAS"
  110 !                EXTRACT L AND H FROM HL
  120 SET STATUS OFF
  130 TEXT 40
  140 LET S$=CHR$(25)&CHR$(10)&CHR$(13) !erase line and CR
  150 LET S$=S$&S$&S$&S$&S$&S$
  160 PRINT AT 1,1:"Please enter an 8 bit number(0-65535):"
  170 PRINT AT 2,1:S$
  180 !
  190 INPUT AT 2,1:W$
  210 LET W=VAL(W$)
  220 IF STR$(W)<>W$ OR W>65535 OR W<0 THEN PRINT AT 2,1:S$(1:3):GOTO 190 !strings not allowed
  230 PRINT
  240 !
  250 !           WORD$ command mode
  260 !
  270 SET 39,0:LET A$=WORD$(W):LET L=ORD(A$(1:1)):LET H=ORD(A$(2:2)):ASK 39 T
  280 !
  290 PRINT "L=";L,"H=";H,LTRIM$(STR$(T));"/50 of sec."
  300 !
  310 !           Arithmetic mode
  320 !
  330 SET 39,0:LET L=REM(W,256):LET H=(W-L)/256:ASK 39 T
  340 !
  350 PRINT "L=";L,"H=";H,LTRIM$(STR$(T));"/50 of sec."
  360 !
  370 PRINT :PRINT "press any key for a new try"
  380 IF INKEY$="" THEN GOTO 380
  390 GOTO 170

Title: Re: Általános BASIC Kérdések
Post by: ergoGnomik on 2019.February.03. 19:00:25
Quote
Code: [Select]
160 ... "Please enter an 8 bit number(0-65535):"
Wouldn't that actually be either a 16 bit number or (0-255)?

Could you try it with
Code: [Select]
330 ... L=W BAND 255 ...instead of
Code: [Select]
330 ... L=REM(W,256) ...as a third or at least two-and-a-halfth method?
Title: Re: Általános BASIC Kérdések
Post by: gflorez on 2019.February.03. 21:09:19
Sajnálom, egy nagyon nyilvánvaló hiba, hogy egy 8 bites számot kérjen nagyobb tartományban.

Hozzáadtam a javasolt módszert. Gyorsabban működik ... de csak 9999-ig .... Miért?

-----------------------------

Sorry, a very evident error to ask for an 8 bit number with a bigger range....

I have added your suggested method. It works... faster.... but only up to 9999.... Why?


Code: [Select]
 100 PROGRAM "HL.BAS"
  110 !                EXTRACT L AND H FROM HL
  120 SET STATUS OFF
  130 TEXT 40
  140 LET S$=CHR$(25)&CHR$(10)&CHR$(13) !erase line and CR
  150 LET S$=S$&S$&S$&S$&S$&S$&S$&S$
  160 PRINT AT 1,1:"Please enter a 16 bit number(0-65535):"
  170 PRINT AT 2,1:S$
  180 !
  190 INPUT AT 2,1:W$
  200 LET W=VAL(W$)
  210 IF STR$(W)<>W$ OR W>65535 OR W<0 THEN PRINT AT 2,1:S$(1:3):GOTO 190 !strings not allowed
  220 PRINT
  230 !
  240 !           Arithmetic+BAND
  250 !
  260 SET 39,0:LET L=(W BAND 255):LET H=(W-L)/256:ASK 39 T
  270 !
  280 LET M$="BAND ":GOSUB 450
  290 !
  300 !           WORD$
  310 !
  320 SET 39,0:LET A$=WORD$(W):LET L=ORD(A$(1:1)):LET H=ORD(A$(2:2)):ASK 39 T
  330 !
  340 LET M$="WORD$":GOSUB 450
  350 !
  360 !           Arithmetic+REM
  370 !
  380 SET 39,0:LET L=REM(W,256):LET H=(W-L)/256:ASK 39 T
  390 !
  400 LET M$="REM  ":GOSUB 450
  410 !
  420 PRINT :PRINT "press any key for a new try"
  430 IF INKEY$="" THEN GOTO 430
  440 GOTO 170
  450 PRINT M$,"L=";L,"H=";H,LTRIM$(STR$(T));"/50 of sec.":RETURN
Title: Re: Általános BASIC Kérdések
Post by: ergoGnomik on 2019.February.04. 07:50:36
I have added your suggested method. It works... faster.... but only up to 9999.... Why?
Storing numeric values works roughly as follows, according to a Hungarian book (Tippek és trükkök ENTERPRISE (http://ep128.hu/Ep_Konyv/Tippek.htm) - Tips and Tricks ENTERPRISE). Numeric values are usually stored in the variable table in 5+1 bytes. Some integer values are stored in two bytes native binary form and the rest of the memory allocated to it is filled with 127. Integers larger than 9999 and floats are stored in BCD form. Maybe that has to do something with it.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2019.February.04. 23:13:06
És azzal lehet spórolni valamit, ha string változó maximális hosszát előre meghatározzuk?
Például:

100 GET A$
110 IF A$....

És ez elé még odaírjuk, hogy

90 STRING *1 A$

Így talán a Zzzip is később fut ki a szabad helyből és nem tart fent annyi helyet egy új változónak?
Title: Re: Általános BASIC Kérdések
Post by: endi on 2019.February.04. 23:29:07
ezzel nagyon sokat lehet spórolni! ha nincs megadva a hossz, asszem minden string 256 bájtot foglal
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2019.February.05. 12:16:12
Az envelope-nak miért csak 25 fázisnak van hely alapból? Persze fel lehet szabadítani több helyet is neki, pl.

CLOSE #103
SET SOUND BUFFER 30 (vagy még nagyobb)
OPEN #103:"sound:"

Ha nagy sound buffert adunk meg, akkor az mi elől veszi el a helyet? Hogy a Zzzipnek bezavar, azt nem hiszem, hiszen a zzzippel lefordított program betöltése előtt is lehet sok envelope numbert létrehozni, még a zzzippelt program is tudja azokat használni.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2019.February.05. 13:39:45
hát a nagyobb sound buffet több memóriát foglal.
már nem emlékszem pontosan mennyit, de asszem nem sokat, csodálkoztam is hogy miért olyan kevés a default
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2019.February.24. 18:19:17
Endi, az jutott eszembe, hogy a Mega Pacman játékodat meg lehetne csinálni grafikus karakteres képernyőre, több szín lenne. Bár a soronként megnyitott videólapok a scrollt talán nem tennék lehetővé, vagy legalábbis nehezebb lenne megcsinálni. De attól tartok, nincs meg az eredeti basic program, csak a zzzippelt, legalábbis az ep128.hu-n.
Meg a 2016-os (félig befejezett) Snakeprise (https://enterpriseforever.com/programozas/snakeprise/) is megcsinálható lenne gracha módra. Ez akár sokszínű is lehet, mert a karakterek alakjának nincs túl nagy jelentősége.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2019.February.24. 18:41:36
Endi, az jutott eszembe, hogy a Mega Pacman játékodat meg lehetne csinálni grafikus karakteres képernyőre, több szín lenne. Bár a soronként megnyitott videólapok a scrollt talán nem tennék lehetővé, vagy legalábbis nehezebb lenne megcsinálni. De attól tartok, nincs meg az eredeti basic program, csak a zzzippelt, legalábbis az ep128.hu-n.
Meg a 2016-os (félig befejezett) Snakeprise (https://enterpriseforever.com/programozas/snakeprise/) is megcsinálható lenne gracha módra. Ez akár sokszínű is lehet, mert a karakterek alakjának nincs túl nagy jelentősége.

már el is felejtettem ezt a játékot :D
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2019.March.15. 22:14:53
Eljárás nem hívhatja meg önmagát, mert a sokadig meghívás után hiba lesz? Például ez a 40. meghívás után lefagy:

10 DEF EKT
20  CALL EKT
30 END DEF
40 CALL EKT

De ha nem ilyen direktbe hívjuk meg, akkor működhet? Például ilyesmi:

10 DEF EKT
20   IF A>80 THEN CALL EKT
30 END DEF
35 FOR X=1 TO 2000
40   LET A=RND(120)
50   CALL EKT
60 NEXT

Valami hasonlót sikerült a kígyós játékomba betenni. Próbálgattam, de sokadik meghívás után sem fagy le.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2019.March.15. 23:07:08
a rekurzív függvényhívás hasznos dolog, de persze nyilván minden hívás plusz memóriát foglal, így aztán egyszercsak elfogy a memória...
Title: Re: Általános BASIC Kérdések
Post by: ergoGnomik on 2019.March.16. 00:05:09
Nos, a két változat között az az eltérés, hogy mesterségesen 39-re (vagy 38-ra?) korlátozod a hívás "mélységét" a második esetben, így sosem éri el a 40-es határt. Egyébként a kettő között nincs érdemi különbség.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2019.March.16. 10:10:45
Nos, a két változat között az az eltérés, hogy mesterségesen 39-re (vagy 38-ra?) korlátozod a hívás "mélységét" a második esetben, így sosem éri el a 40-es határt.
Ezt nem teljesen értem. Mivel korlátoztam én a hívás mélységét 39-re?

Arra jöttem rá, az első változat lényegében végtelen ciklusba állítja az eljárást, ez tesz be neki.
Ha nem kerül végtelen ciklusba, hanem különféle IF és CASE ágak esetén hívja meg önmagát újra, és közben változnak a feltételek is, ami miatt önmagát újra meghívhatja, akkor már nem érvényes ez a 39 körüli határ? Ha egyszer már lemegy végig END DEF-ig, akkor már jó lesz?

A kukacos játékban van egy tárgy, amihez ha hozzáér a kukac, átkerül a képernyő másik részére. Viszont a képernyő másik részén is egyből meg kell nézni, milyen tárgy van ott, ahova kerül a kukac. Tehát az eljárás, amiben megvizsgálja, mihez ér hozzá a kukac, az meghívja önmagát, ha ilyen teleporthoz ér hozzá, hogy utána azt is megvizsgálja, hogy ahova került a kukac, ott mi van. Remélem, érthető. :D Ha nem akkor majd teszek fel róla részt.
Én sokat próbálgattam, játék közben mindig teleportáltam, és nem fagyott le.
Title: Re: Általános BASIC Kérdések
Post by: ergoGnomik on 2019.March.16. 10:58:36
Jajj! Nagyon figyelmetlenül olvastam a kódod. Bocsi! Nem is értem hogyan, de beleláttam hogy A értékét hívásonként csökkentgeti, pedig konkrétan nem csinál semmit.

Amíg A értéke nem haladja meg a nyolcvanat, addig csak egyszer fog lefutni az EKT függvény. Ha A értéke legalább 81, akkor viszont az én értelmezésem szerint újra előáll a "végtelen ciklus".

Egyébként nem a "végtelenség" a baj, hanem annak az adminisztratív memóriának (ún. verem) az elfogyása, amivel nyomon követi az IS-BASIC az egymásba ágyazódó függvényhívásokat.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2019.March.16. 11:15:03
Ha A értéke legalább 81, akkor viszont az én értelmezésem szerint újra előáll a "végtelen ciklus".
Igen, most már ki is próbáltam, tényleg végtelen "ciklus lett", pedig én sem erre számítottam először.
Ha nem lesz végtelen ciklus, akkor nem telhet be a verem az ilyen önmagát meghívó eljárástól, akkor sem, ha sokszor hívja meg önmagát?
Title: Re: Általános BASIC Kérdések
Post by: ergoGnomik on 2019.March.16. 11:47:45
Ha nem lesz végtelen ciklus, akkor nem telhet be a verem az ilyen önmagát meghívó eljárástól, akkor sem, ha sokszor hívja meg önmagát?
Pontosabb azt mondani, hogy ha a rekurzív hívások száma nem haladja meg a kritikus értéket, akkor a program futása nem fog emiatt hibával megszakadni.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2019.March.16. 12:00:45
Pontosabb azt mondani, hogy ha a rekurzív hívások száma nem haladja meg a kritikus értéket, akkor a program futása nem fog emiatt hibával megszakadni.
Szerintem sok rekurzív hívás volt abban a kukacos játékban, ahogy teszteltem, direkt úgy játszottam, hogy sok legyen, de nem lett gond. Nem is hibával szakadna meg olyankor, nekem teljesen le is fagyott, amikor elérte a 39 körüli értéket a lentebbi program, és csak a reset segített, még a STOP-ra sem reagált.
Na, de majd abba a topikba kicsit konkrétabban leírom a helyzetet.
Title: Re: Általános BASIC Kérdések
Post by: IstvanV 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):

[attachthumb=1]
Title: Re: Általános BASIC Kérdések
Post by: szipucsu 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?
Title: Re: Általános BASIC Kérdések
Post by: IstvanV 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.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu 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.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft 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.
Title: Re: Általános BASIC Kérdések
Post by: ergoGnomik 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.
Title: Re: Általános BASIC Kérdések
Post by: Povi on 2019.June.24. 12:29:35
emléktáblát avattak a BASIC-ről:

https://prog.hu/hirek/5290/kozuti-emlektablat-kapott-a-basic-programozasi-nyelv
Title: Re: Általános BASIC Kérdések
Post by: endi 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 :)
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 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
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2019.July.04. 16:40:49
Melyik ZZZIP jó Ep128emu2.0.11.2 hoz
Mindegyik. Az 1.2-es (letöltési link) (http://ep128.hu/Ep_Util/Prg/Zzzip_12.rar) 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.
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 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.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2019.July.05. 20:47:09
Sebesség: SET CHARACTER X,......   v. SPOKE

igen, igen, a poke/spoke nagy ereje a zzzipnek :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu 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.)
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 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.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu 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?
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2019.July.05. 22:03:07
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?

A 2. variációra gondolsz?
   rem SET CHARACTER 33,1,2,3,4,5,6,7,8,9
   CALL               CHAR(33,1,2,3,4,5,6,7,8,9)

Vagy milyen formátum írd meg.

Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2019.July.05. 22:17:31
Karakter pókoláshoz nem árt tudni az EXOS verziót, 2.0-ban máshol van.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2019.July.05. 22:30:29
A 2. variációra gondolsz?
   rem SET CHARACTER 33,1,2,3,4,5,6,7,8,9
   CALL               CHAR(33,1,2,3,4,5,6,7,8,9)
Igen, erre gondoltam, hogy CALL után kell megadni a számokat, utána valahogy el-spoke-olja a program.
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2019.July.06. 14:51:06
Karakter pókoláshoz nem árt tudni az EXOS verziót, 2.0-ban máshol van.
Ki használ EXOS 2.0 ?

Ha valami probléma lesz majd javítunk.
Tudjátok mint a windows-nál.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2019.July.06. 15:48:39
Ha valami probléma lesz majd javítunk.
Ha jól sejtem, Zozo erre gondol:
[attachimg=1]
Ez egy basic programból kiragadott két külön rész.
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2019.July.06. 16:04:29
Igen valami ilyesmi.

Csak felesleges kikérni hacsak nem EXOS ROM-ban változtatták meg a címet.
BASIC-ban még nem találkoztam ennek változásával.
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2019.July.06. 16:34:20
Már megint nem tudom hol, milyen néven keressem a  ~ CHARACTER generátor basic progit.

Segítség.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2019.July.06. 17:30:24
Ki használ EXOS 2.0 ?
Minden EP64.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2019.July.06. 17:51:51
Szerkesztek egy DEF CHAR rutint

Szerintem felesleges ennyire "túlmisztifikálni" a dolgot egy sima set character egyszerűbb, mint DATA-sorokból beolvasni, majd karakter-soronként POKE-ézni...

Code: [Select]
...
130 CALL HFONT
...
2410 DEF HFONT
2420   WHEN EXCEPTION USE NINCSHFONT
2430     EXT "HFONT"
2440   END WHEN
2450   HANDLER NINCSHFONT
2460     CLEAR FONT
2470     SET CHARACTER 145,24,24,60,102,126,102,102
2480     SET CHARACTER 151,24,24,126,96,120,96,126
2490     SET CHARACTER 133,28,24,60,24,24,24,60
2500     SET CHARACTER 146,6,60,102,102,102,102,60
2510     SET CHARACTER 148,66,60,102,102,102,102,60
2520     SET CHARACTER 153,102,92,102,102,102,102,60
2530     SET CHARACTER 149,24,102,102,102,102,102,60
2540     SET CHARACTER 137,102,66,102,102,102,102,60
2550     SET CHARACTER 143,51,102,102,102,102,102,60
2560     SET CHARACTER 129,24,24,60,6,62,102,62
2570     SET CHARACTER 147,24,24,60,102,126,96,60
2580     SET CHARACTER 132,28,16,56,24,24,24,60
2590     SET CHARACTER 134,24,24,60,102,102,102,60
2600     SET CHARACTER 135,102,0,60,102,102,102,60
2610     SET CHARACTER 136,102,102,60,102,102,102,60
2620     SET CHARACTER 138,24,24,102,102,102,102,60
2630     SET CHARACTER 139,102,0,102,102,102,102,60
2640     SET CHARACTER 140,54,36,102,102,102,102,60
2650   END HANDLER
2660 END DEF
Title: Re: Általános BASIC Kérdések
Post by: endi on 2019.July.06. 17:58:26
Szerintem felesleges ennyire "túlmisztifikálni" a dolgot egy sima set character egyszerűbb, mint DATA-sorokból beolvasni, majd karakter-soronként POKE-ézni...

itt most a sebesség a lényeg, ami poke-olással SOKKAL nagyobb
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2019.July.06. 18:42:30
Szerintem felesleges ennyire "túlmisztifikálni" a dolgot egy sima set character egyszerűbb
Karakteres animációnál jó lehet a SPOKE.

Már megint nem tudom hol, milyen néven keressem a  ~ CHARACTER generátor basic progit.
A demokazettán van ilyen. Ennek továbbfejlesztett változata szerény művem az Util programcsokorban (http://ep128.hu/Ep_Util/Util.htm), Itt a letöltési link, ezen belül a CHR2012-t kell keresni. (http://ep128.hu/Ep_Util/Prg/Util.rar) Grafikus karakterek tervezéséhez Endi nagyszabású programja áll rendelkezésre valahol, és István is készített ilyet, ami PC-n is futtatható, de az szerintem nem tölthető le sehonnan már.
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2019.July.06. 18:44:56
Szerintem felesleges ennyire "túlmisztifikálni" a dolgot egy sima set character egyszerűbb, mint DATA-sorokból beolvasni, majd karakter-soronként POKE-ézni...


Ha simán BASIC lenne akkor a SET CHARACTER  a jobb sebesség, kevesebb memória.

viszont ha ZZZIP eled akkor már csiga lassú lesz.

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.
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2019.July.09. 22:59:51
Nem értek a hang képzéshez.
De látom van sok SOUND egymás után ami a zenét adja pl: Főcimzene de ha hosszú a zene vissza tartja a programot.
Esetleg lehet úgy programozni, hogy két SOUND közé betenni pl a karakter változókat helyezni?
Gondolok :
Code: [Select]
FOR ZENE=1 TO 100
   READ  A,B,C,D
   SOUND ...A, ...B,
   SOUND ...C, ...D,
NEXT ZENE
SET CHARACTER ...
SET CHARACTER ...
SET CHARACTER ...
SET CHARACTER ...

Helyett:
Code: [Select]
FOR ZENE=1 TO 100
   READ  A,B,C,D
   SOUND ...A, ...B,
   SET CHARACTER ...
   SOUND ...C, ...D,
   SET CHARACTER ...
NEXT ZENE

Írom nem értek hozzá.
Még.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2019.July.09. 23:31:56
Esetleg lehet úgy programozni, hogy két SOUND közé betenni pl a karakter változókat helyezni?
Betenni be lehet éppen. Csak késni fog egymáshoz képest a két sound, ha két különböző csatornát használ (pl. egyik a source 1-et, a másik a source 2-t). De SYNC paraméterrel így is megoldható, hogy egyszerre szólaljon meg a két hang.
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2019.July.10. 09:23:28
Akkor lehet rosszul magyarázok.
A sound-ba nem mélyültem el azokat össze ollóztam mindig.
Írnál egy 3-10 másodperces 1 csatornás zenét? Vágy ki ollózhatsz valahonnan.
 PL.: főcím, lehet több csatornás is.
Akár még az Entersnake -ba is bele tehető lesz.
Ha lefordítjuk ZZZIP-el akkor is normál sebbességgel játtsza le?
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2019.July.10. 13:48:16
Ha lefordítjuk ZZZIP-el akkor is normál sebbességgel játtsza le?
Igen. A DURATION paraméter megadja a hang hosszát 1/50 másodpercben, ez akkor is annyi marad, ha Zzzippel van fordítva. A hang megszakításból megy, tehát mást is tud közben csinálni a gép. Viszont Zzzippel fordítva a "hangtár" (vagy mi a neve) megtelhet, a sok sound utasítás egymás után mindig elküldi a hangot a memóriának, hogy majd onnan játssza le a gép, de ez a tár megtelhet. Ezért kell valami késleltetés is (pl. FOR-NEXT ciklussal). A Hungry Creature játékban is így oldottam meg a menüben. (De annak nincs fent a basic változata, azt hiszem, de talán a fórumra egyszer feltettem.)
Sajnos (tudtommal) csak tippelni lehet, mekkora késleltetés kell a zzzippelt zenéhez, mert a basic lassabb, és később telik be a tár. Ha betelik a tár, akkor addig áll a program futása, míg az adott hang véget nem ér.

Az Entersnake-be én is gondolkodtam már zenén, van is tervben. A játék közbeni zenék közül lenne az egyik (nem kellenek külön DATA sorok), csak más hangzással. De attól még csinálhatsz te is zenét, hátha az jobb lesz, vagy máshova jó lesz.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2019.July.10. 13:56:18
Írnál egy 3-10 másodperces 1 csatornás zenét?
Ha ez kell a teszteléshez:

Code: [Select]
100 RESTORE
110 FOR I=1 TO 36
120   READ G
130   SOUND PITCH G,DURATION 10
140 NEXT I
150 DATA 37,39,37,39,37,39,41,42,44,44,44,44
160 DATA 37,39,37,36,37,39,37,36,34,32,34,34
170 DATA 49,48,46,48,49,48,44,46,42,44,41,37

A hangzáson még lehetne dobni sokat sokféleképpen, ha érdekel, pl.

Code: [Select]
130 SOUND PITCH G+.2,DURATION 10,SOURCE 2,SYNC 1
135 SOUND PITCH G,DURATION 10,SYNC 1,STYLE 128
A 130-as sorba +.2 helyett lehet pl. +.3 vagy +.1 vagy +.05, de Zzzippel ez nem fog így szólni, mert az mindent kerekít.

Vagy:
Code: [Select]
130 SOUND PITCH G,DURATION 10,SOURCE 0,SYNC 1,STYLE 64
135 SOUND PITCH G+7,DURATION 10,SYNC 1,SOURCE 1
A 135-ös sorba itt a 7 helyett lehet írni pl. 12-t vagy 19-et, más lesz a hangzás. (Ha kapásból jól írtam mindent.)
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2019.July.10. 14:46:16
Na valami ilyesmire gondolok.

listázd
futtasd
00:00:06       zene lefutási ideje, rész idő
00:00:10       program mérés vége

210  ! SET ...
220  ! SET ...

160    SET ...
170    SET ...

futtasd
00:00:06       zene lefutási ideje, rész idő
00:00:06       program mérés vége

Nos ezen már el lehet gondolkodni.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2019.July.11. 18:43:34
Csak kíváncsiságból teszteltem, hogy a GOSUB-RETURN módszer gyorsabb-e, vagy a CALL-DEF:
[attachimg=1]
Basic programban, ha nem akarjuk Zzzippel fordítani, a GOSUB-RETURN-t érdemes használni, ha számít a sebesség. (Már ha a mérési módszerem hiteles.)
Lehet, a basic Hamika turbó változatában is majd át kéne írni néhány CALL-t GOSUB-ra, hátha gyorsulna valamit.
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2019.July.11. 19:02:05
Látom tanulsz.

De a 205 sort a 185 sorba kellet volna rakni.

Így tényleg gyorsabb.

De próbáld meg pl változó átvitellel meg oldani a bosub-ot

Gondolok a CALL CHAR_DEF(CH0,CH1,CH2,CH3,CH4...

Különben is a CALL nem olyan gyakori mint pl a PRINT.
Plusz ha a GOSUBnál elírod a sor számot rögtön prüszköl.
Csak RENUMBERel tudsz sorszámozni.
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2019.July.12. 15:46:26
Sebesség arány: GET A$  -  A$=INKEY$
BASIC                      37s            46s
ZZZIP                        6s              9s

Programozáshoz segítség.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2019.July.13. 19:58:34
Fura, hogy nem fogad el egy sorban több PING-et:

100 PING :PING :PING
Ez hibát okoz.

Több CLEAR sem lehet egy sorban, ez is hibát okoz:
10 OPEN #1:"video:"
20 OPEN #2:"video:"
30 OPEN #3:"video:"
40 CLEAR #1 :CLEAR #2 :CLEAR #3

Viszont CLOSE lehet több is egy sorban:
10 OPEN #1:"video:"
20 OPEN #2:"video:"
30 OPEN #3:"video:"
40 CLOSE #1 :CLOSE #2 :CLOSE #3
Title: Re: Általános BASIC Kérdések
Post by: endi on 2019.July.16. 11:52:31
kéne méréseket végezni arra hogy ha a keyboard: és sound: eszközöket lezárjuk, az mennyit gyorsít.
a joy függvény asszem akkor is műxik, ha nincs keyboard eszköz, továbbá ha nagyon kell, akkor lehet port írással-olvasással is billentyűzetet figyelni.

persze a poke 56,201 mindezeket megcsinálja... de esetleg lehet olyan helyzet hogy csak a keyboard: vagy csak a sound: eszközt kell lezárni.

meg még milyen eszközök vannak amik viszik a proci időt?
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2019.July.16. 15:30:01
A sound: ot még csak meg értem de a keyboard: mivel irányítod a progit.
Vagy fordítva a DEMO-t?
Title: Re: Általános BASIC Kérdések
Post by: endi on 2019.July.16. 16:12:00
A sound: ot még csak meg értem de a keyboard: mivel irányítod a progit.
Vagy fordítva a DEMO-t?

mint írtam, a joy függvény keyboard: eszköz nélkül is műxik.
és portok írása-olvasásával lehet billentyűzetet olvasni. (in, out parancsok).
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2019.July.16. 16:20:35
mint írtam, a joy függvény keyboard: eszköz nélkül is műxik.
Nem működik! Annyi igaz viszont, hogy POKE 56,201 alatt is működik.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2019.July.16. 16:49:27
Nem működik! Annyi igaz viszont, hogy POKE 56,201 alatt is működik.

ööö hát ez furcsa :D
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2019.July.16. 16:54:39
ööö hát ez furcsa :D
Nem furcsa, az EXOS 11 speciális funkcióhívásnak (amelyen belül a JOY lekérdezés van) is kell csatornaszámot megadni, ezért kell KEYBOARD csatorna legyen.
És azért működik POKE 56,201 alatt, mert ez azonnali lekérdezést végez, nem a megszakítási rutin által pufferbe tett adatokból dolgozik.
Title: Re: Általános BASIC Kérdések
Post by: endi on 2019.July.16. 19:36:33
Nem furcsa, az EXOS 11 speciális funkcióhívásnak (amelyen belül a JOY lekérdezés van) is kell csatornaszámot megadni, ezért kell KEYBOARD csatorna legyen.
És azért működik POKE 56,201 alatt, mert ez azonnali lekérdezést végez, nem a megszakítási rutin által pufferbe tett adatokból dolgozik.

hát ez az. persze értem én hogy csatornához vannak kötve ezek... csak hát így lassú :)
meg kéne írni a hasznos ki basic programokhoz egy joy olvasót :)
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2019.July.16. 20:18:51
Úgy emlékszem ALOCATE USR gépi kódot is fútatthatunk.
Vagy REM után mint a ZX Spectrum progik.
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2019.July.18. 15:05:39
Javítottam még.
A nevet középre igazítja.
És van valami kurzor féleség.
Majd ha nem kell más bele akkor megy csak a hasznos progikhoz.
Véleményeket, javaslatokat várom.
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2019.July.27. 16:14:00
BASIC-ben a "PRESS TO FIRE" majd a IF JOY(0,1,2) = 16 THEN ...
Helyet egy kicsit gyorsabb gépi kód USR(PRJOYS,0).
Még BASICben is gyors de ZZZIPben pláne.
Ha érdemes akkor bekerülhet a hasznos BASIC progik topikba.

Vagy hasznos ZZZIP programok BASIC-ben?
Title: Re: Általános BASIC Kérdések
Post by: endi on 2019.July.27. 16:42:53
Ha érdemes akkor bekerülhet a hasznos BASIC progik topikba.
Vagy hasznos ZZZIP programok BASIC-ben?

mindenképpen kerüljön be!
és ez nem csak zzzippben jó, hanem akkor is ha le van tiltva a keyboard csatorna vagy a megszakítás, gyorsítási céllal.
szóval jók az ilyen kis progik!
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2019.July.27. 17:47:29
Most már függetlenül vizsgálhatjuk billentyűt.

Az EXOS megkerülésével.
Title: Re: Általános BASIC Kérdések
Post by: Tuby128 on 2019.August.05. 15:06:19
Lányommal ma játszottunk az Enterprise-on. Csináltam neki kis programocskát, amiben jól kiélte nyomkodási kedvét.
A gond az, hogy ha több SOUND parancs várakozik, akkor várni kell amíg véget nem ér. Erre volt valami flush parancs, amivel a hangpuffert lehet üríteni. Vajon ez az amit keresek a célomra?
És ha igen, akkor mi a szintaxisa?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2019.August.05. 15:11:17
És ha igen, akkor mi a szintaxisa?
CLEAR SOUND
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2019.August.05. 16:13:14
CLEAR SOUND
Vagy az is jó, ha a SOUND paraméterébe beírod, hogy INTERRUPT, és megszakítja az előző hangot. Pl.:

SOUND PITCH SQR(87),DURATION 10,INTERRUPT

De ez mindig csak az adott csatornán szakítja meg a hangot.
Title: Re: Általános BASIC Kérdések
Post by: Tuby128 on 2019.August.05. 16:23:49
A Flush parancsot mikor használjuk? Ha a "TAPE:" csatorna pufferét nem írtuk még tele, de szeretnénk kiíratni a fájl végét a kazettára?
Title: Re: Általános BASIC Kérdések
Post by: endi on 2019.August.24. 19:59:54
hú ez most kicsit meglepett: egy sorban ha gosub van, utána kettősponttal bármit írhatunk, még rem vagy ! se kell, nem veszi figyelebe, hibát se ír.
ez gagyi :)

pl.
10 gosub 100: BLABLABLA
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2019.August.25. 12:52:42
Zozo, menjünk le egy kicsit dedóba, elakadtam az első lépésnél... :oops:

Beírom ASMON-ba próbaképp (szorzunk 256-tal):
Code: [Select]
M1  LD H,L
    LD L,00
    RET

Assemble options:
Memory assemly NO
Object file name: P.BAS
EXOS module header YES
EXOS module type: 4

Ha lefordítom, a P.BAS-t nem tudom betölteni. :smt017
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2019.August.25. 13:52:11
Na erre én is kíváncsi vagyok.
Én
Code: [Select]
   org 1000h
M1  LD H,L
    LD L,00
    RET
Assemble options:
Memeory assemly Yes
Object file name:
EXOS module header
EXOS module type:
PASS2.... YES

majd M 1000
ki jegyzetelem 00,01,02

Aztán basic ALOCATE CODE szorz=HEX$("00,01,02")

PRINT usr(szorz,4)
 1024

valami ilyesmit csinálok én
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2019.August.25. 18:28:07
Nem lehet máshogy kinyerni a video: buffer kezdő címét.
Csak akkor lehet ha DISPLAY-t kiadjuk?
Pedig szerintem az EXOS már az OPEN parancsra lefoglalja azt a mennyiségű (X*Y) bájtót.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2019.August.25. 18:59:28
Zozo, menjünk le egy kicsit dedóba, elakadtam az első lépésnél... :oops:
Nekem működik.
[attach=1][attach=2][attach=3]

De van már EP-s SJASM-ünk (https://enterpriseforever.com/programozas/sjasm-fejlesztese/), az is tud már BASIC-et:
Code: [Select]
HEADER 4
ld h,l
ld l,0
ret
end

Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2019.August.25. 19:05:46
Nem lehet máshogy kinyerni a video: buffer kezdő címét.
EXOS 11, 3-as alfunkció.
De ti pókolni szerettek :twisted:
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2019.August.25. 19:22:58
Igen de a scrollnál sokat kellet keresgélni  mire rá leltem a pontos címre.
Mivel nem a puffer elejéről indul ezért a PRINT AT 15... DISPLAY AT 1 FROM 15 TO ....
nem azt eredményezi.
Meg így rá érünk később bedobni képet,


Ugyan így kilehet kérni pl ATTRIBUTUM csatorna PIXEL cím és ATTRIB címet is ez kettő különböző cím lenne szerintem.
Érhető a kérdés?
Köszönöm.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2019.August.25. 19:50:20
Ááá! Most látom, hogy lehagytam az END-et! Az hiányzott neki. Fordításnál viszont nem jelzett hibát...
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2019.August.25. 20:09:03
Nekem működik.
(Attachment Link) (Attachment Link) (Attachment Link)


Bakker.
Ezzel a trükkel fel lesz turbózva a BASIC gépi kóddal.
Nem kell annyit pötyögnöm.

Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2019.August.30. 18:56:15
pl:
csinálok
Code: [Select]
  SET VIDEO X 40
  SET VIDEO Y 64
  SET VIDEO COLOR 0
  SET VIDEO MODE  karakteres
  OPEN #1:"VIDEO:"
Lekérem a videó buffer címét és akkor van 40x64 bájt lefoglalt bármire használható tömböm memoriám.
Elég bekottázni:
buffercím  memória mérete, hossza
buffercím+02,03  HL érték ALLOCATE visszatérésből
...

Elméletem helyes?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2019.August.30. 19:07:12
Viszont ha újabb csatorna nyítás-zárás lesz, akkor elmozdulhat. No meg a videómemória amúgy is sokkal lassabb mint a normál.
Szerintem akkor már praktikusabb egy egész szegmenst foglalni. Ahogy pl. az FDISK-ben csinálom.
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2019.August.30. 19:33:21

Viszont ha újabb csatorna nyítás-zárás lesz, akkor elmozdulhat.
Nem hiszem mivel ez lenne először megnyitva és csak utána lenne a többi megnyitás.
Míg nem zárom be a csatornát addig a videó buffercim nem változik.
Szerintem.
No meg a videómemória amúgy is sokkal lassabb mint a normál.
És a BASIC-hez viszonyítva? Még nem mértem de mindjárt megnézem.
Szerintem akkor már praktikusabb egy egész szegmenst foglalni. Ahogy pl. az FDISK-ben csinálom.
Végűlis "RAM-TAPE:" vagy a pályák, karakterek, zenék fix helyre és SPEEK(RAM-TAPE:,cim) kiolvasni.
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2019.August.30. 20:15:14
Megnézte.
BASICben
Code: [Select]
READ A112
Code: [Select]
A=SPEEK(253,16000)201

ZZZIP
Code: [Select]
READ A80
Code: [Select]
A=SPEEK(253,16000)3
Viszont nem fájlból olvasva.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.February.11. 23:19:20
Hogy nevezik a tömböknek a "részeit"? Pl.:

100 NUMERIC TOMB(1 TO 4,1 TO 10)

Az 1 TO 4 és az 1 TO 10 az micsoda?

Pl. feltöltjük a tömb értékeit az első ???-re nézve:
FOR I=1 TO 10
LET TOMB(1,I)=128
NEXT

Feltöltjük a tömb értéket a második ???-re nézve:
FOR I=1 TO 10
LET TOMB(2,I)=256
NEXT

Mit kéne mondani a ??? helyén?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2020.February.11. 23:28:35
Dimenzió. Ebből is ered a DIM utasítás.
Title: Re: Általános BASIC Kérdések
Post by: Povi on 2020.February.12. 11:44:06
Dimenzió. Ebből is ered a DIM utasítás.
Igen. Sőt, a FORTRAN-ban még DIMENSNION-nak hívták, ez rövidült a BASIC-ben DIM-re.
Aztán a Quick Basic-ben a DIM már nem csak tömb deklarációjára használható, hanem bármilyen változóra is, pl.:
DIM i AS INTEGER

itt "kénytelenek" voltak valami más magyarázatot kitalálni a DIM szóra, így lett belőle "Declare In Memory"
Title: Re: Általános BASIC Kérdések
Post by: Tomato77 on 2020.February.13. 00:34:45
És mivel két dimenziót adtál meg a deklarálásnál, ezért két dimenziós a tömböd, ami egy mátrix.
(Ha Neo megkérdezi, mi az a mátrix, tudni fogod rá a választ, nem úgy, mint Trinity. :))
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.February.13. 10:26:32
És mivel két dimenziót adtál meg a deklarálásnál, ezért két dimenziós a tömböd, ami egy mátrix.
És ha négy dimenziót adok meg, akkor az időben is utazhatunk az Enterprise űrhajóval? :)

100 NUMERIC (1 TO 100,10 TO 80,1 TO 120,1 TO 128)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.February.13. 15:01:55
Amit itt említettem, (https://enterpriseforever.com/programozas/basic/msg78349/#msg78349) azt nem úgy lenne a legjobb mondani, hogy "feltöltöm a tömböt az első dimenzió 1. ill. 2. értéktartományára nézve?
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.February.19. 19:32:53
Ha attribútum képernyőre vagy valamilyen grafikus képernyőre printelünk karaktert, akkor van arra valami peek vagy speek, amivel le lehet kérdezni, hogy egy adott pozícióban milyen karakter van? Szöveges lapnál ez működik, de grafikus lap nem a karaktert tárolja, hanem a képpontokat. Azért jutott ez eszembe, mert TVC-n van a 4 színes mód, és ha ilyen módú programot akarunk konvertálni EP-re esetleg (tegyük fel), akkor a legpraktikusabb az attribútum képernyő lenne erre. Viszont TVC-n peek-kel ki tudjuk olvasni, milyen karakter van adott pozícióban, EP-n meg szerintem nem, mert csak szöveges képernyőnél működik. Azt hiszem, Attus Gombócfalója (TVC átirat, basic) is valami look-kal nézi, mi van a pályán.
Title: Re: Általános BASIC Kérdések
Post by: Tomato77 on 2020.February.19. 19:37:23
Nincs semmilyen mód a karakter lekérdezésére, mert attribútum módban a képpontokat és az attribútumokat tárolja, nem a karakter kódját. Esetleg ha valamit kiírsz a képernyőre, azt elteszed valahová, akkor le tudod kérdezni, mit írtál ki.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.February.19. 21:49:19
Nincs semmilyen mód
Az avatárod nézegetve elgondolkoztam, pontosan milyen lehet a Grid Trouble hangja. Nem lehet valahogy dekódolni, vagy basicbe kiszedni a hangot? Tutira magas torzítás szól, amikor felszedi a villogó pontokat. Amikor a piros pöttyökön mászkál, akkor is magas torzítás lehet, csak alacsony frekvenciával. Az ütközésre a zajcsatornát használhatja? Vagy az is magas torzítás, csak magas frekvencián? A négyzetek bekerítésével járó rövid "zenét" még csak le lehetne hallás alapján kottázni, de a torzításokat aligha.
Title: Re: Általános BASIC Kérdések
Post by: Tomato77 on 2020.February.19. 22:38:32
Azért az a kép van ott, mert az volt az első játékunk EP-re. Órákig nyúztuk szegény gépet vele. :) A hangját nem tudom, de a grafikáján már gondolkodtam, hogyan lehet megoldva. Először text képernyőnek tűnt átdefiniált karakterekkel, az induláskor egy villanásnyira látni is lehet, hogy más karakterekből áll a pálya, de megnézve egy sort, elég sok szín van benne (fekete, fehér, cián, piros, zöld). Szóval inkább attribútum képernyőre tippelnék, pedig a lények animációját és a pálya villogását is tök jól meg lehetett volna oldani karakterdefiniálással. Vagy esetleg valamilyen gracha mód, de azokat nem igazán ismerem. Ha mégis valamilyen text üzemmód, akkor akár basicben is meg lehetne csinálni ilyen sebességgel.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.February.19. 22:59:50
Órákig nyúztuk szegény gépet vele.
Sok órányi játék után nem fagyott le a játék? Nálunk előfordult ilyen.
Az ep128.hu-n (http://www.ep128.hu/Ep_Games/Leiras/Grid_Trouble.htm) nézegetve tényleg "túl sok" szín van egy sorban: külön szín van a mozgó figuráknak, a villogó pöttyöknek, a megevett pöttyöknek is, és a körbezárt területek is más színnel villognak. Én 4 színű grafikus-karakteres módra tippelek, és az altind0 vagy micsoda, amit mindig emlegettek, az is be van kapcsolva, így van még egy szín.
Szerintem basicben nem lehetne ilyen sebességűre megcsinálni, de sose tudni. Sima karakteres képernyőn a Hungry Creature nagyon lassú volt Zzzip nélkül. Igaz, ott 4 szörny van. De az is lehet, hogy sokkal hatékonyabbra is meg lehet írni, mint ahogy én a HC-t írtam.
Az ep128.hu-n a képen fetűnő, hogy az életek számát jelző karakter hibás, ott emberkének kéne lennie, és talán másik konfiguráció van a gépben, vagy a játék betöltése előtt át lett definiálva az a karakter, így valami más jelenik meg helyette. Illene azért egy játéknak teljes egész saját karakterkészletet használnia.

Ami még eszembe jutott, poén lenne EP128Emu-hoz egy LUA script, ami az éppen aktuális karakterkészletet elmenti (karakterdefiníciók) úgy, ahogy éppen akkor van. Így játékokból lehetne lopkodni és lebuktatni a programozókat, mit hogyan csináltak meg.
Title: Re: Általános BASIC Kérdések
Post by: geco on 2020.February.20. 08:42:46
Ha nincs több szín a játéktérben, csak ez a négy, simán lehet karakteres a játék, karakteres módban 4 színpár érhető el.
Title: Re: Általános BASIC Kérdések
Post by: Tomato77 on 2020.February.20. 09:03:43
A háttérrel együtt ötöt számoltam, és ezek lehetnek egy sorban: a pálya piros és világoskék, a bekerített rész zöld, a lények fehér, plusz a háttér.
Title: Re: Általános BASIC Kérdések
Post by: geco on 2020.February.20. 10:59:20
A háttérrel együtt ötöt számoltam, és ezek lehetnek egy sorban: a pálya piros és világoskék, a bekerített rész zöld, a lények fehér, plusz a háttér.
4 színpár
minden színpárban a karakter háttere fekete, és a többi a 4 szín.
Title: Re: Általános BASIC Kérdések
Post by: gflorez on 2020.February.20. 11:33:49
Sorry, only in English due to technical (http://enterprise.iko.hu/technical/ET11-11_EXOS_21_Video_Driver_Specification.pdf) words.

The character under the cursor or the colour under the beam can be read.

[attachimg=1]

For example, you can use this procedure on a text screen:

Code: [Select]
100 PRINT £102, AT Y,X:;  ! ";" is important here
110 GET £102:CHARACTER$
120 CHAR=ORD(CHARACTER$)

Remember that it can return an empty string if that coordinate is still unused.

And on a graphics screen it would be:

Code: [Select]
100 PRINT £101:CHR$(27);"A";WORD$(X);WORD$(Y); !like PLOT X,Y but it doesn't draw.
110 GET £101:COL$
120 COL=ORD(COL$)

This colour would be the palette colour, so we have to know it on that line.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.February.23. 18:36:38
4 színpár
minden színpárban a karakter háttere fekete, és a többi a 4 szín.
Ez tuti? Arra a grafikus módra gondolsz, amiben a Treasure Cave vagy az Entersnake is fut? Mert ott alapból 4 szín van, és ebben benne van a háttér színe is. Valami trükkel még plusz színeket bele lehet vinni, talán bizonyos tartományban a karaktereket rá lehet venni, hogy másmilyen színűek legyenek, mint a többi.
Title: Re: Általános BASIC Kérdések
Post by: geco on 2020.February.23. 20:09:24
Ez tuti? Arra a grafikus módra gondolsz, amiben a Treasure Cave vagy az Entersnake is fut? Mert ott alapból 4 szín van, és ebben benne van a háttér színe is. Valami trükkel még plusz színeket bele lehet vinni, talán bizonyos tartományban a karaktereket rá lehet venni, hogy másmilyen színűek legyenek, mint a többi.
A Treasure cave 4 színű karakteres módban fut, ott 2 színkvartett van
A 2 színű karakteres módban 4 színpár érhető el, alapból az EXOS ezt nem támogatja (ha jól emléxem, akkor a 4 színű karakter módot sem), csak a 2 színpárt, de LPT módosítással elérhető ez is.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.February.23. 20:15:44
de LPT módosítással elérhető ez is.
Igen, így már stimmel!
Szóval ilyen módban futhat a Grid Trouble, erre nem is gondoltam volna.
Az tényleg érdekes, miért jelennek meg a pálya indításakor egy pillanatra más karakterek.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.March.03. 23:17:58
Ez szembejött Facebookon:
[attach=1]
Így mindenki összerakhatja a "japán" nevét. Vagy bármilyen szót "japánul". Kicsit azért macerás a betűk között keresgélni, így csináltam egy basic programot, ami a beírt szöveget átalakítja "japánra":
[attach=2]
[attach=3]
Inkább csak 2-4 betűs szavakat érdemes megadni, mert különben túl hosszúak lesznek.
A data sorokat átírva más "nyelvre" is átalakítható a szöveg. Célszerűbb lenne, ha egy betűnek csak egy betű felelne meg, kevés betűnek két betű, így nem lennének olyan hosszú szavak.
Title: Re: Általános BASIC Kérdések
Post by: Ep128 on 2020.March.03. 23:49:21
Ez szembejött Facebookon:
(Attachment Link)
Így mindenki összerakhatja a "japán" nevét. Vagy bármilyen szót "japánul". Kicsit azért macerás a betűk között keresgélni, így csináltam egy basic programot, ami a beírt szöveget átalakítja "japánra":

... és most írd be, hogy Enterprise.
Aztán amit erre kiad, mondd ki elsőre! (Ha sikerül, elhiszem, hogy nem vagy részeg. :-D )
Title: Re: Általános BASIC Kérdések
Post by: gflorez on 2020.March.04. 00:19:57
Valószínűleg egy vicc, sajnálom, ez a weboldal (https://www.japan-guide.com/forum/quereadisplay.html?0+105127) szerint teljesen téves.

Sorry, that is totally wrong, probably a joke , according with this web page (https://www.japan-guide.com/forum/quereadisplay.html?0+105127).

A japánok a katakana ábécét használják az angol szavak kiejtéséhez. Ez egy fonetikus fordítás, nincs értelme.

What the Japanese use to spell-out English words is the Katakana alphabet, a phonetic translation without meaning.

Lásd ezt a weboldalt/See this web page (https://www.sljfaq.org/afaq/english-in-japanese.html).

Mégis jó lenne elnevezni a neveket a katakana ábécébe, esetleg meghatározva néhány karaktert.

Still, It would be cool to do a translation of names to the Katakana alphabet, maybe defining some characters.

Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.March.04. 10:48:18
Sorry, that is totally wrong, probably a joke
Yes, this is a joke, I know. It is just funny. On Facebook there are always a lot of funny (or not funny) and senseless things. I was happy to create a basic program of it in 5-10 minutes.
---
Persze, ez vicc. Facebookon mindig van egy rakat vicces (vagy csak annak szánt) és értelmetlen dolog. Örültem, hogy 5-10 perc alatt össze tudtam rakni egy programot, ami átalakítja "japánná" a szöveget.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.April.18. 22:56:45
El lehet távolítani egy videolapot a képernyőről? Olyanra gondolok, mint a display text, de csak egyetlen megadott videolapra vonatkozzon. Ha több videolap is van a képernyőn, akkor azok maradjanak ott. A CLOSE nem jó, mert az bezárja teljesen és újra meg kell nyitni.
Ha jól sejtem, csak azt lehet, hogy egy másik lapot nyitunk meg a helyére, pl. beállítjuk, hogy az legyen ott, ami előtte már ott volt.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2020.April.18. 23:10:09
El lehet távolítani egy videolapot a képernyőről?
FROM-ot 0-val kell kezdeni
DISPLAY #n:AT x FROM 0 to y
Ez az x sortól kezdve y+1 sort leszed a képernyőről, keret lesz ott.
(Tehát ha FROM 0 TO 0 akkor 1 sort, ha FROM 0 TO 1 akkor 2 sort, stb)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.May.17. 17:59:51
A SOUND parancsot lehet helyettesíteni valamilyen SPOKE-kal? Úgy, hogy sok paraméter is meg van adva a SOUND-ban. Ha igen, az gyorsabb valamivel?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2020.May.17. 18:52:01
PRINT-tel lehetne helyettesíteni, de ha paraméterek kellenek, akkor mire azokat belevariálod, nem hinném, hogy gyorsabb lenne.
Title: Re: Általános BASIC Kérdések
Post by: Povi on 2020.May.22. 08:54:29
félig off:
A Microsoft publikussá tette a GW-BASIC forráskódját!
https://devblogs.microsoft.com/commandline/microsoft-open-sources-gw-basic/?fbclid=IwAR0G_9TSxKE-Jfa7lpUmMaINOHlo2d85j4zCEVrT2Co2AvJv6c4MnfzxmV0

látszik, hogy 8080 asm az alapja, a kommentekben még 8080 regiszterekre hivatkoznak
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2020.May.22. 09:10:02
látszik, hogy 8080 asm az alapja, a kommentekben még 8080 regiszterekre hivatkoznak
Akkor Z80-ra is le lehetne fordítani? :-)
Amúgy ha jól emlékszem anno adott ki az Intel 8080 -> 8086 assembly konvertert, ami lecserélte a forrásban az utasításokat a megfelelő újakra. Lehet, hogy ez a cucc is így készült?
Title: Re: Általános BASIC Kérdések
Post by: Povi on 2020.May.22. 11:37:26
Akkor Z80-ra is le lehetne fordítani? :-)
Amúgy ha jól emlékszem anno adott ki az Intel 8080 -> 8086 assembly konvertert, ami lecserélte a forrásban az utasításokat a megfelelő újakra. Lehet, hogy ez a cucc is így készült?
vszínű, mivel pl ehelyett: (1993-1994. sor a GWMAIN.ASM-ban)
https://github.com/microsoft/GW-BASIC/blob/master/GWMAIN.ASM
Code: [Select]
MOV BH,DH ;SAVE [D,E]
MOV BL,DL

lehetett volna:
Code: [Select]
mov bx, dx

az eredeti (Altair BASIC-ben) pedig ez a rész Z80 szintaktikával:
Code: [Select]
   ld      h,d
    ld      l,e
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.May.26. 19:53:25
Az ALLOCATE utasításnak a program elején kell lennie mindig? Vagy elég a CODE, HEX előtt is kiadni? Azt írja a kézikönyv, hogy a változókat elrontja. DEF blokkon belül nem célszerű kiadni?
A program tele van egy rakat SET CHARACTER utasítással, semmi más nincs benne. És lenne egy DEF blokk, amit ha akarunk, meghívunk parancs üzemmódból, és akkor HEX, USR segítségével elmenti az egész karakterkészletet.

UI.: Próbálkoztam, működik, csak mire az END DEF-hez ér, már nem tudja, az mire vonatkozik. Valószínű CALL-lal így nem lehet meghívni blokkot, hanem csak a "RUN sorszám"-mal elindítani a kódos részt.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2020.May.26. 20:53:17
Az ALLOCATE utasításnak a program elején kell lennie mindig? Vagy elég a CODE, HEX előtt is kiadni? Azt írja a kézikönyv, hogy a változókat elrontja. DEF blokkon belül nem célszerű kiadni?
Bármi olyan előtt ami értéket tárol el a BASIC munkamemóriában. Ennek a munkamemóriának tolja el a kezdetét, hogy legyen egy fix hely majd a gépi kódú részeknek.

Quote
Próbálkoztam, működik, csak mire az END DEF-hez ér, már nem tudja, az mire vonatkozik.
Igen pont erről van szó, a DEF blokkhoz tartozó adatok is ebben a munkamemóriában vannak tárolva, amikor az ALLOCATE lefut, azzal ez is elromlik.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.May.26. 21:17:30
Köszi! Még azt valaki meg tudná nézni, hogy itt a Wikin (https://wiki.enterpriseforever.com/index.php?title=IS-BASIC_tr%C3%BCkk%C3%B6k) a Karakterkészlet kimentése és betöltése cím alatt az a kis program jó-e? Szerintem nem menti el a karakterkészletet, pedig már mindenféle felállásból próbáltam... Ha a C9 előtt a 08-at átírom 06-ra, akkor be tud tölteni egy másik karakterkészletet, de amit ez ment el, azt nem tölti vissza. (Az access output helyett beírtam, hogy access input.) Hibát nem okoz, de a karakterkészletet nem menti el rendesen, pedig már ezerszer ellenőriztem, azokat a számokat írtam-e be.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.May.26. 21:29:58
itt a Wikin (https://wiki.enterpriseforever.com/index.php?title=IS-BASIC_tr%C3%BCkk%C3%B6k) a Karakterkészlet kimentése és betöltése cím alatt az a kis program jó-e?
Közben próbálgattam még. Működik, de ha egy több száz soros basic programba tesszük be, akkor már nem működik. Rejtély, hogy miért. Pedig nem változtattam rajta semmit. Rögtön a program elején lefut, de nem írja át a karakterkészletet.
Title: Re: Általános BASIC Kérdések
Post by: Povi on 2020.May.27. 14:11:04
Közben próbálgattam még. Működik, de ha egy több száz soros basic programba tesszük be, akkor már nem működik. Rejtély, hogy miért. Pedig nem változtattam rajta semmit. Rögtön a program elején lefut, de nem írja át a karakterkészletet.
Most akkor a töltés, vagy a mentés nem megy nálad? (nálam működik)
Biztos, h jó file-t töltesz be?
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.May.27. 14:40:52
Most akkor a töltés, vagy a mentés nem megy nálad? (nálam működik)
Biztos, h jó file-t töltesz be?
Működik.
Csak akkor nem működik, ha egy nagyobb basic program része. A most felrakott Dots and gems programba akartam belerakni, hogy betöltse a karakterkészletet, de ott már nem működött. Nem okoz hibát, egyszerűen olyan, mintha átugraná azt a részt.
Még tavaly Ferro73 az Entersnake-ben is máshogy oldotta meg a karakterkészlet betöltését, végül az ő spoke-os módszerét loptam el, csak az lassabb.
Title: Re: Általános BASIC Kérdések
Post by: Povi on 2020.May.27. 15:35:51
Csak a ZZZIP-pel lefordított változatban nem működik, vagy a nyers BASIC-ben se?

Egyébként azt tudom elképzelni, hogy akkor, amikor meghívod a függvényt, akkor nem a 255-ös szegmens van a 2-es lapon. És akkor rossz helyre tölti be a chr készletet.
Próbáld ki úgy, hogy berakod még ezt a CALL USR elé:

Code: [Select]
LET SZEG=IN(178)
OUT 178,255
ezt pedig a CALL USR után
Code: [Select]
OUT 178,SZEG
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.May.27. 16:21:52
Csak a ZZZIP-pel lefordított változatban nem működik, vagy a nyers BASIC-ben se?
Basic-ben se. Akkor majd kipróbálom a módszered.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.June.09. 17:03:37
Egyébként azt tudom elképzelni, hogy akkor, amikor meghívod a függvényt, akkor nem a 255-ös szegmens van a 2-es lapon. És akkor rossz helyre tölti be a chr készletet.
Próbáld ki úgy, hogy berakod még ezt a CALL USR elé:

Code: [Select]
LET SZEG=IN(178)
OUT 178,255
ezt pedig a CALL USR után
Code: [Select]
OUT 178,SZEG
Kipróbáltam, de így sem működik.
Először simán a hosszú program elejére az eredeti "fontos" részt:
[attach=1]
Beleírva az OUT-os részt:
[attach=2]
Ha az első snapshotban, ha töröljük a programot és csak az elején a fontos részt hagyjuk meg, majd egy resetet nyomunk és futtatjuk, akkor működik.
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2020.June.09. 20:32:00
A program tele van egy rakat SET CHARACTER utasítással, semmi más nincs benne. És lenne egy DEF blokk, amit ha akarunk, meghívunk parancs üzemmódból, és akkor HEX, USR segítségével elmenti az egész karakterkészletet.

Az egyik kígyós játékba mintha beleraktam volna ezt a funkciót
Char Load / Char Save

Amúgy itt ez nem jó?

Újabb  darab.
CHARS_RD   A komplett karakter mátrixot olvassa be fájlból.
CHARS_WR  A komplett karakter mátrixot írja ki fájlba.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.June.10. 10:40:26
Az egyik kígyós játékba mintha beleraktam volna ezt a funkciót
Char Load / Char Save

Amúgy itt ez nem jó?
De, ez jó. Te valami SPOKE-s módszerrel csináltad, nem CODE és USR utasításokkal. De attól még működhetne az utóbbi is. Illetve működni működik, csak ha egy hosszabb basic programba kerül bele, ott már nem működik valamiért.
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2020.June.10. 20:50:09
Kipróbáltam, de így sem működik.
Először simán a hosszú program elejére az eredeti "fontos" részt:
(Attachment Link)
Beleírva az OUT-os részt:
(Attachment Link)
Ha az első snapshotban, ha töröljük a programot és csak az elején a fontos részt hagyjuk meg, majd egy resetet nyomunk és futtatjuk, akkor működik.
Ennyi erővel
Code: [Select]
  IN A,(0B2h)
  PUSH AF
  LD A,255
  OUT (0B2h),A
  LD A,1
  LD BC,0480h
  EX DE,HL
  EXOS 6
  POP AF
  OUT (0B2h),A
  RET

És ha nem #1 hanem #255 még az LD A,1 is megspórolod.
Így nem piszkál bele a BASIC a lapozásba.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2020.June.10. 21:01:30
Ha az első snapshotban, ha töröljük a programot és csak az elején a fontos részt hagyjuk meg, majd egy resetet nyomunk és futtatjuk, akkor működik.
Hiányzik a font fájl amit töltene :oops: Mondjuk egy RAMDISK-es verzió?
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.June.10. 21:45:40
Hiányzik a font fájl amit töltene :oops: Mondjuk egy RAMDISK-es verzió?
Nálam reset után is ki kell adni, hogy :def_dev_disk, mert elfelejti néha:
[attach=1]
Ha kiadod, hogy NEW, majd a 100 alatti sorokat újra beviszed enterrel, majd reset, majd :def_dev_disk, majd START, akkor működik.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.June.10. 21:52:17
Ennyi erővel
Ezt hogyan lehet átalakítani CODE =HEX$ formára? Csak a RET-ről tudom, hogy az C9, csak mert a végén mindig az van. :D
Title: Re: Általános BASIC Kérdések
Post by: geco on 2020.June.11. 08:26:14
Ezt hogyan lehet átalakítani CODE =HEX$ formára? Csak a RET-ről tudom, hogy az C9, csak mert a végén mindig az van. :D
A legegyszerűbb módja, ha begépeled az EP128emu debuggerének második lapjának bal felső ablakába:
A 2000 (1 utasítás) majd enter
és sorról sorra gépeled a kódot, megkapod a hexa értékeket.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2020.June.11. 08:48:19
Ezt hogyan lehet átalakítani CODE =HEX$ formára?
ASMON-nal lefordítod BASIC programnak. Modernebb megoldás az István féle SJasmEP.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.June.11. 17:34:30
Code: [Select]
 IN A,(0B2h)
  PUSH AF
  LD A,255
  OUT (0B2h),A
  LD A,1
  LD BC,0480h
  EX DE,HL
  EXOS 6
  POP AF
  OUT (0B2h),A
  RET
Kipróbáltam ezzel is, de nekem most sem működik. Az LD A,255 helyett LD A,FF-et írtam be, mert csak azt fogadta el, és még egy 00-t berakott utána:
[attachimg=1]
[attach=2]
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2020.June.11. 18:26:06
Ezt merge -rezd

Csatorna 255

Code: [Select]
start
  IN A,(0B2h)
  PUSH AF
  LD A,0FFh
  OUT (0B2h),A
  LD BC,0480h
  EX DE,HL
  EXOS 6
  POP AF
  OUT (0B2h),A
  RET
  end
  

Így jobb
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.June.11. 19:12:29
Ezt merge -rezd

Csatorna 255
Nem tudom, mi lehet vele, de nekem most sem működik:
[attach=1]
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2020.June.11. 20:46:10
nekem se
de vissza írtam #1 re és 3E,01 be illesztve működik ... vagy nem ... betölt majd törlődik?
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.June.11. 21:21:59
betölt majd törlődik?
A VIDEO_INI-ben volt egy CLEAR FONT, az állította vissza. Most már működik!
Ezt a fontbetöltő eljárást csak tesztelés miatt tettem a program legelejére. Valójában később lenne a helye, a CLEAR FONT után, a CHARS eljárásban. De nem tudom, valójában érdemes-e kicserélni. Előnye az lenne, hogy gyorsabb. Hátránya, hogy a Zzzip esetleg nem örül az ilyen CODE és HEX utasításoknak, bár elvileg jól kéne kezelnie, de volt már, hogy nem jól kezelte. (Hogy melyik eljárás foglal kevesebb helyet, nem tudom.) Igaz, az is pont a most módosított karakterátíró eljárás volt, ami lehet, hogy hibás. Eredetileg valamilyen számítógépes újságból loptam. Kb. 20 éve voltam egy barátommal egy számítógépes kiállításon, ahol voltak újságok is, és az egyikbe belelapoztam és nagyon megörültem, hogy van benne Enterprise program, gyorsan kimásoltam tollal a jegyzetfüzetembe a programot. De ezek szerint a program valamiért nem tökéletes, de most már jó kell, hogy legyen.
[attach=1]
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2020.June.11. 22:14:18
A "LOADING SOUND DATA" után nem látom de leáll.
nem hiányzik a "gems.env" fájl?
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.June.11. 22:29:33
nem hiányzik a "gems.env" fájl?
Ja, de igen. Az egész az összes fájllal a másik topikban van, itt van a legutóbbi verzió, amit eddig feltettem (https://enterpriseforever.com/programozas/dots-and-gems/msg79394/#msg79394). Ezt csak a karakterbetöltősdi miatt tettem ide. Azóta kicsit fejlesztettem tovább is, majd felteszem azt is.
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2020.June.11. 22:31:21
Úttörő áruház bejön SCROLL le -föl aztán leál valami hibával.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.June.11. 22:44:12
Úttörő áruház bejön SCROLL le -föl aztán leál valami hibával.
Biztos? Nem lehet, hogy csak nagyon lassú, és azért tűnik úgy, hogy leáll? Amúgy ez csak egy régebbi változat a karakterbetöltősdi teszteléséhez, ezzel nem kell nagyon foglalkozni, a másik topikban van/lesz az igazi verzió.
Ha tényleg leállt, akkor az F5-re clear font és text van beállítva, utána print exline és cause extype utasításokkal szoktam csekkolni, hogy milyen hiba volt.
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2020.June.11. 22:55:24
Mükszik csak hang nincs.
Basicban .
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.June.11. 22:58:12
hang nincs.
A gems.env-et nem tudta betölteni, azért nincs hang, Az eddigi legfrissebb változatot a másik topikba tettem fel minden fájllal, ami kell hozzá.
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2020.June.11. 23:00:36
Mára ennyi, majd a következő napokba folytatjuk ezt.

Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.June.11. 23:02:09
Mára ennyi, majd a következő napokba folytatjuk ezt.
Oké, akkor lehet, lecserélem még a régi karakterbetöltős részt az újra DEF CHARS eljárásban.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.July.21. 21:20:24
Azon gondolkoztam, hogyan lehetne megcsinálni a demokazettás karakterszerkesztő programot úgy, hogy ha átrajzoljuk a karaktereket (betűket, számokat is), akkor is olvashatóan írja ki az üzeneteket. Van, ami mindig ott van, az mehet pl. attribútumképernyős videolapra, azon pixelenként tárolódik a szöveg is. Viszont amikor kiírja, hogy milyen karakterdefiníciót kell megadni a set character után, az mindig más, és ha a számokat átírjuk más jelekre, nem fog szépen látszani.
Az is fura kicsit, ha a hálót, ahol a karaktereket szerkesztjük, annak a karaktereit átrajzoljuk, meg a kurzort, meg a karakterek pixeleit jelölő karakter alakját.
Gondolom, a megoldás, hogy pl. attribútum képernyőn van a szerkesztői felület is, és nem karaktereket használunk hozzá.
A számok kiírása előtt pedig elmenteni a karaktermátrixot a memóriába, visszaállítani eredetire a karakterek alakját, kiírni attribútum képernyőre a számokat, majd a memóriából visszaállítani az átdefiniált karaktereket.
Na, közben le is írtam kb. a megoldást, de hátha van valami egyszerűbb is, pl. egyszerre több karakterkészletet is tudunk használni, mint a Word, pl. Times new roman és Courrier. :D Vagy valami gépi kódú eljárással az eredeti karakterekkel írni ki a szöveget az attribútum képernyőre akkor is, ha át vannak definiálva azok a karakterek.
Title: Re: Általános BASIC Kérdések
Post by: Tomato77 on 2020.July.21. 21:51:13
Vagy úgy lehetne, hogy nem definiálod át a karaktereket, hanem grafikus módban írod meg a programot és megrajzolod, amit a felhasználó definiál. Így megmarad a teljes karakterkészlet a szerkesztőnek. Utána elmented a karaktereket, majd mikor egy program visszatölti, akkor definiálja át őket. 
Title: Re: Általános BASIC Kérdések
Post by: ergoGnomik on 2020.July.21. 21:57:11
Viszont amikor kiírja, hogy milyen karakterdefiníciót kell megadni a set character után, az mindig más, és ha a számokat átírjuk más jelekre, nem fog szépen látszani.
Ez roppant fapados megoldásnak tűnik. Többet érne, ha rendes IS-BASIC programként, SET CHARACTER utasítások sorozataként exportálná, amit csak hozzá kell fűzni a programhoz, amiben használni akarod a karakter definíciókat. Valamelyik könyvben meg lehet találni hogyan épül fel egy IS-BASIC program és mik az egyes utasítások kódjai, illetve a paramétereket hogyan kell megadni. Egyszer már nekem is sikerült valahogyan kiderítenem, amikor a PETSCII karakterkészlet átalakításával foglalkoztam endi kívánságára.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.July.22. 00:09:15
ha rendes IS-BASIC programként, SET CHARACTER utasítások sorozataként exportálná
A továbbfejlesztett programban (Chr 2012 (http://ep128.hu/Ep_Util/Util.htm)) van ilyen is. Illetve ott txt fájlba exportálja a basic programot. Ez nem tokenizált, ennek hátránya, hogy nem lehet össze merge-elni más programmal. (Gondolkodtam már én is, hogy tokenizált formában is menthetne. Ehhez csak meg kéne nézni hex editorral egy tokenizált programot, amiben set characterek vannak. Utánuk a számokat, úgy emlékszem, ugyanúgy tárolja, mint a szöveget.)
Én is gondolkodtam azon, mi lenne, ha nem is írná ki a képernyőre a SET CHARACTER a,b,c....-t. Egyszer volt olyan, hogy jól jött, hogy kiírja, mert csak egy karakter kellett, ahol több sor 0 volt, és egyszerűbb volt lemásolni azt a pár számot, mint merge-ölni.

Szerkesztés közben a képernyő tetején 4 sorban elfér a teljes karaktermátrix, itt látható az is, ha valamelyik karaktert átdefiniáltuk. Lehetne gombnyomásra váltogatni egy karakteres és egy attribútum videolapot, az előbbin az átdefiniált, az utóbbin az eredeti karakterek lennének.

De nem tudom, mennyire lenne szükség ilyenekre ma már...
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2020.July.26. 17:27:13
Kár, hogy csak elméletben lehet minden "video:" csatornához külön karakterkészletet csatolni.

Emlékeim szerint PRINT-el is lehet karaktert módosítani.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.July.26. 17:59:04
Emlékeim szerint PRINT-el is lehet karaktert módosítani.
Igen.
Code: [Select]
PRINT #102:CHR$(27)&CHR$(75)&CHR$(karakter kódja)&CHR$(karakter 1. sora)&CHR$(karakter 2. sora), stb.A CHR$(27) beállítja, hogy escape szekvencia legyen. A CHR$(75) gondolom megadja, hogy SET CHARACTER.

UI.: A PRINT-tel beírható karaktersort fájlba is lehet menteni, ott megnéztem hex editorral a "proba" fájlt, úgy fejtettem meg, hogy 27 és 75 van az elején. Az elmentett adatokat COPY-val a videocsatornára másolva át is definiálja a karaktert az elmentett alakúra:
[attachimg=1]
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2020.July.26. 18:58:53
Bárcsak lehetne csatornánként más-más karakter készlet.
Hamar elfogyna a video: memoria.

Igen.
Code: [Select]
PRINT #102:CHR$(27)&CHR$(75)&CHR$(karakter kódja)&CHR$(karakter 1. sora)&CHR$(karakter 2. sora), stb.A CHR$(27) beállítja, hogy escape szekvencia legyen. A CHR$(75) gondolom megadja, hogy SET CHARACTER.

UI.: A PRINT-tel beírható karaktersort fájlba is lehet menteni, ott megnéztem hex editorral a "proba" fájlt, úgy fejtettem meg, hogy 27 és 75 van az elején. Az elmentett adatokat COPY-val a videocsatornára másolva át is definiálja a karaktert az elmentett alakúra:
(Attachment Link)

Egy másik módszer a karakterek módosítására.
Így nem kell olyen sok programsor:
 DEF set_char
  ...
 END DEF
  vagy a teljes karakter tábla betöltése /128 db/
Elég csak azokat amik álandok maradnak.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.July.26. 20:03:18
Bárcsak lehetne csatornánként más-más karakter készlet.
Attribútum videolapokra kell írni mindent. Írás előtt elmenteni a memóriába a karakterkészletet (pl. ramdiskre :D ), megváltoztatni, írni, majd visszaállítani. De pár dolog nem használható így, pl. a SPEEK-es karakterfelismerő módszer már nem jó.
Tényleg, magnós gépnél, exdos nélkül lehetne csinálni ramdisk bővítést?
Valamelyik rajzolóprogram betölt sok karakterkészletet egyszerre, és lehet közülük válogatni. Biztos nem ramdiskre menti, valahol biztos el lehet tárolni őket. Szerk.: Megvan, az Art Studio (http://ep128.hu/Ep_Util/Art_Studio.htm) az:
Quote
SELECT FONT - a rendelkezésünkre álló 26 karakterkészlet közül választhatunk ki egyet, melyet a FONT EDITOR-ba tölthetünk, majd átszrkeszthetünk.
Ahogy nézem, a CHARS fájlban van benne mind a 26 karakterkészlet, majdnem 20Kb az a fájl, biztos nincs tömörítve, pedig úgy biztos jóval kisebb lehetne.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2020.July.27. 16:39:44
Tényleg, magnós gépnél, exdos nélkül lehetne csinálni ramdisk bővítést?

Az Util programcsokorban (http://www.ep128.hu/Ep_Util/Util.htm) van egy RAMDISK.EXT program, pont erre a célra.
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2020.July.27. 19:30:25
Az Util programcsokorban (http://www.ep128.hu/Ep_Util/Util.htm) van egy RAMDISK.EXT program, pont erre a célra.
EP128k, tape:
És minek ?
Vesztesz 16KB.
Lesz kb 32-48kB ramdisk és marad talán 64kB.
?!?!?
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.July.27. 21:36:26
Az Util programcsokorban (http://www.ep128.hu/Ep_Util/Util.htm) van egy RAMDISK.EXT program, pont erre a célra.
Nem is lenne rossz arra, hogy ha sok nagy pálya van, akkor azokat előbb betölti mind magnóról, és nem kell mindig visszatekergetni a magnót új játéknál. Viszont a Zzzippel fordított program mellett nem lehet más rezidens program a tárban, tehát akkor mégse használható.
De biztos létezhet olyan basic program, amihez jól jöhet, ha sok fájlt töltöget be összevissza sorrendben többször is...
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2020.July.28. 19:44:49
Nem is lenne rossz arra, hogy ha sok nagy pálya van, akkor azokat előbb betölti mind magnóról, és nem kell mindig visszatekergetni a magnót új játéknál. Viszont a Zzzippel fordított program mellett nem lehet más rezidens program a tárban, tehát akkor mégse használható.
De biztos létezhet olyan basic program, amihez jól jöhet, ha sok fájlt töltöget be összevissza sorrendben többször is...
Basic-ban ?
Viccelsz ?
Hacsak nem csinálsz.

Akkor már használd az EDIT részeket.
Minden plusz EDIT kb. 16KB basic rész.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.July.28. 20:50:38
Basic-ban ?
Még azon gondolkodtam, hogy az a RAMDISK program kevesebb, mint 2 KB. Létre lehetne hozni ramdisk programot basic HEX és USR parancsokkal, és az fordítható lenne Zzzippel. Bár az a 2 kilobájtnyi HEX krixkrax elég terjedelmes lenne. Még akkor is, ha kihagyjuk belőle a felhasználónak kiírt szövegeket, pl. a helpet. Egyelőre nincs még olyan játék, amiben sok nagy pálya lenne és nem férne el a programban, tehát nincs is szükség ilyen ramdiskre magnós géphez.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2020.July.29. 11:44:10
Kár, hogy csak elméletben lehet minden "video:" csatornához külön karakterkészletet csatolni.
Kelő mennyiségű POKE-val meg lehet csinálni, hasonlóan a gracha módhoz.
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2020.July.29. 18:01:45
Kelő mennyiségű POKE-val meg lehet csinálni, hasonlóan a gracha módhoz.
Esetleg egy új LPT nem lehet meg etetni BASIC-ban?
Title: Re: Általános BASIC Kérdések
Post by: geco on 2020.July.29. 22:13:55
ideiglenesen tuti, nem hinnem, hogy az exos megszakitas minden futaskor atallitana, de ha igy van, akkor a bff4h cimen is atirva sztem nem fogja.
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2020.July.30. 17:42:10
ideiglenesen tuti, nem hinnem, hogy az exos megszakitas minden futaskor atallitana, de ha igy van, akkor a bff4h cimen is atirva sztem nem fogja.
Ha megcsináljuk az LPT , át írjuk a 0BFF4h címet és nem csinálunk DISPLAY, CLOSE parancsot akkor nem kellene annyi video: csatorna.
Elég lenne pl az LPT:
 1 sor(8-9 line) 32-42 kar CHAR64/128 color 4 /status sor/ külön karakter mátrix.
 24 sor(9 line)/27 sor (8 line) color4 CHAR64/128 /Játék tér/ külön karakter mátrix.
 24-x egyéb státus sor grafikus
 128-256 különböző karakter készlet.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.August.23. 21:27:21
Ha nem PRINT AT-tel, hanem SPOKE-kal írunk a képernyőre karaktert, akkor lehet olyat valahogy, hogy az adott helyre ne írjon semmit, csak a kurzort rakja oda? A "SPOKE 255,cím,karakterkód" képletben a karakterkódnak nem tudom, lehet-e olyan értéket megadni, ami nem ír semmit, csak a kurzort rakja oda.
Title: Re: Általános BASIC Kérdések
Post by: geco on 2020.August.23. 21:39:02
Az mindenkepp felulirja az adott helyet, de ha azt szeretned, hogy legyen kurzorod, akkor az adott hely tartalmat mentsd le, tedd ki a kurzort, majd ha az elmozdul,akkor allitsd vissza a lementett erteket, es az uj pozicioban jatszd el ugyanezt.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.August.24. 11:58:13
de ha azt szeretned, hogy legyen kurzorod
Köszi, ez jó módszer!
Fura egyébként, hogy ha kurzort is megjelenítek a grafikus lapon (print chr$(27);"O"-val), és/vagy print-tel is odairkálok, mármint üres sztringet a kurzor pozicionálására, akkor a SPOKE-kal nem lehet felülírni az adott pozíciót. Ha a kurzort eltüntetem és nem printelgetek oda, akkor már működik. De simán speek-kel és spoke-kal megoldható a dolog.

Más: van ugye 4 hires grafikus üzemmód, eltérő a felbontásuk. Graphics utasítással azonban mindegyiknek 1279,719 a jobb felső széle, viszont csak graphics hires 2 esetén van kihasználva az összes pixel. Tehát például 256 színű módban ha egymás melletti értékekre adunk ki plot utasítást (pl. plot 0,1:plot 1,1:plot 2,1:plot 3,1, stb.), akkor az egymáshoz  közeli értékek valójában ugyanazt a pontot jelölik. Mi a lépésköz grafikus módonként? Vagyis mennyivel kell többet megadni ahhoz, hogy új pixelre kerüljön a pötty? Tehát valami ilyesmire gondolok, hogy hires 2-nél a plot 0,0:plot 1,0 már külön pontokat jelöl, hires 4-nél a plot 0,0:plot 4,0 jelöl külön pontokat, hires 16-nál a 0,0 és a 8,0,  256-nál a 0,0 és a 16,0 között nincsenek pixelek, vagy ilyesmi. Ezeket csak hasraütésszerűen írtam, szóval biztos nem így van, csak hogy lehessen érteni, mire gondolok. De most belegondoltam, lehet pont eltaláltam hasraütésszerűen? Akkor mindegy. Na, nem baj, jól megfejtem itt magamnak a dolgot. :D
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.August.24. 12:06:48
Ez van a Felhasználói kézikönyvben (http://ep128.hu/Ep_Konyv/Users_Manual.htm#26):

Quote
GRAPHICS HIRES 2 - e parancs kiadása esetén egyszerre csak két szín használható, de a képernyő szélességében 640 pontra van felosztva;
GRAPHICS HIRES 4 - négy színnel rajzolhatunk a rendelkezésünkre álló 320 pont szélességű képernyőn;
GRAPHICS HIRES 16 - ezúttal 16 szín és 160 pont/sor használható;
GRAPHICS HIRES 256 - a 256 szín megjelentetésének lehetőségéért azzal fizetünk, hogy képernyőnk vízszintes felbontása 80 pontra csökken.

Nem hibás ez? A képernyő szélessége kétszer annyi mindegyik esetben. Az idézetben megadott szám a képernyő közepét jelenti vízszintesen. Tehát hires 2-nél 640 helyett 1280, hires 4-nél 320 helyett 640 lenne, és így tovább.
UI: Vagy lehet, tényleg jó, de akkor már a hires 2 módban is két szomszédos koordináta ugyanazt a pixelt jelölné? Fura ez kicsit. Lehet, tervben volt egy speciális grafikus mód, ahol 1280 a vízszintes felbontás, csak az nem készült el végül?
Title: Re: Általános BASIC Kérdések
Post by: geco on 2020.August.24. 12:38:35
Lehet tervben volt, vagy ha nem, akkor felkészítették a Basic-et rá.
hires 2-ben vízszintesen minden 2. érték ad ki egy pixelt
hires 4-ben vízszintesen minden 4. érték ad ki egy pixelt
hires 16-ben vízszintesen minden 8. érték ad ki egy pixelt
hires 256-ben vízszintesen minden 16. érték ad ki egy pixelt
függőlegesen meg szerintem minden 2.
Edit:
Megnéztem, 4.

De az is lehet, hogy bármekkora a képernyőd, a koordinátarendszer adott, tehát a 0,0 lesz a bal alsó sarok, és az 1279,719 a jobb felső
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.August.24. 13:15:34
Szóval ez valahogy úgy működik, hogy pl. 256 színű módban vízszintesen 0-15-ig ugyanazt a koordinátát jelöli, 16-31-ig megint egy másik koordinátát, 32-47-ig megint egy másikat, és így tovább. Ez pont olyan, mint a SOUND STYLE paramtétere (hangcsatornánál), amikor 0-15 között négyszögjel szól, 16-31 között alacsony torzítás, 32-47 között közepes torzítás, stb. A kettes számrendszert, vagy 2 hatványait kell jól ismerni. Azért így 2020-ban kezdem megérteni a Enterprise logikáját. :D Rajzolásnál mondjuk kicsit nehéz fejből tudni, melyik számot kell megadni.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.August.25. 13:29:50
Ezzel a programmal a 256 szín között böngészhetünk és megtudhatjuk a színkódjukat. Basic, így kicsit lassú. Az elv egyébként Geco ötlete volt.
[attach=1]
[attach=2]
Van már ilyen program, még neten böngészőben használható is. De inkább legyen több, mint egy se. Érdekesebb lenne úgy megcsinálni, hogy nem színkódok sorrendjében vannak egymás mellett a színek, hanem mondjuk a hasonló színárnyalatok vannak egymás mellett, ezt még nem igazán tudtam megfejteni, hogyan lehetne megcsinálni.
Biztos lehetne egyszerűsíteni a programon, például a mátrix kirajzolásában. Ha van ötlete valakinek, érdekelne.
Title: Re: Általános BASIC Kérdések
Post by: geco on 2020.August.25. 14:27:19
Csak ennyi a módosítás, hogy átmenetesen pakolja ki.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.August.25. 15:17:54
Csak ennyi a módosítás, hogy átmenetesen pakolja ki.
Köszi! :smt041
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.August.25. 23:03:03
Azt korlátozza valami, hogy a videolap függőleges mérete mekkora lehet? A SET VIDEO Y után régebben "csak" 170 körüli értéket fogadott még el. Most megint próbálgattam, 210-et is elfogad. Ravasz, mert akkor jelzi a hibát, ha utána az OPEN #csat:"video:"-hoz ér, hogy nem jó a paraméter.
Lehetséges, hogy a basic program mérete vagy valami más dolog meghatározza, mekkora videolapot nyithatunk meg? Azért lenne fontos, mert ahogy a programot bővítgetem, toldozgatom, nehogy valami beleköpjön a levesbe, és a korábbi érték túl nagy legyen, amikor ahhoz az értékhez igazítottam már sok minden mást.
Title: Re: Általános BASIC Kérdések
Post by: geco on 2020.August.25. 23:06:35
A szabad videomemoria merete szab korlatot neki, vagy a max 255 sor.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu 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?
Title: Re: Általános BASIC Kérdések
Post by: geco on 2020.August.26. 08:27:42
Elméletileg csak te :D , igen ha megnyitod őket, akkor tovább már nem csökken.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu 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.
Title: Re: Általános BASIC Kérdések
Post by: geco 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.
Title: Re: Általános BASIC Kérdések
Post by: gflorez 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.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu 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?
[attach=1]
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...
Title: Re: Általános BASIC Kérdések
Post by: gflorez 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.

[attachimg=1]

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

[attachimg=2]

There is some way to know the offending line number?
Title: Re: Általános BASIC Kérdések
Post by: szipucsu 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?
[attach=1]

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
Title: Re: Általános BASIC Kérdések
Post by: gflorez 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.
Title: Re: Általános BASIC Kérdések
Post by: geco 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
Title: Re: Általános BASIC Kérdések
Post by: szipucsu 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 (http://ep128.hu/Ep_Util/Ep_Util_eng.htm), 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):
[attach=1]
Title: Re: Általános BASIC Kérdések
Post by: gflorez on 2020.August.27. 14:36:43
Thanks both. Later I will try it.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu 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.
Title: Re: Általános BASIC Kérdések
Post by: ergoGnomik 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).
Title: Re: Általános BASIC Kérdések
Post by: szipucsu 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
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.September.05. 20:41:48
Bár úgy látom, most már C-ben is lehet programozni EP-re PC-n, de azért még a basic viszontagságaival kapcsolatban egy kérdés: A CTRL+F2-vel középre lehet állítani az adott sort. Ennek a karakternek a kódja CHR$(241). Ha kiadom egy szöveges csatornán arra a sorra, hogy PRINT CHR$(241), akkor odarak valamilyen karaktert, ahelyett, hogy középre rakná a sort. Ez miért lehet? Igaz, gracha képernyő volt, de az is karakteres.
Egyúttal találtam helyette egy másik megoldást, a PRINT AT 1,vsz/2-LEN(A$)/2:A$ (vsz:videolap szélessége) nagyjából középre írja a szöveget. De azért érdekelne, a CHR$(241) miért nem működik.
Title: Re: Általános BASIC Kérdések
Post by: ergoGnomik on 2020.September.05. 20:58:20
A CTRL+F2-vel középre lehet állítani az adott sort. Ennek a karakternek a kódja CHR$(241). Ha kiadom egy szöveges csatornán arra a sorra, hogy PRINT CHR$(241), akkor odarak valamilyen karaktert, ahelyett, hogy középre rakná a sort. Ez miért lehet?
Valószínűleg azért, mert a billentyű kombináció egy EDITOR funkciót hoz működésbe. A BASIC program futása közben ezek ha minden igaz csak részlegesen működnek, és a PRINT paranccsal nem is lehet kiváltani ezeket.
Title: Re: Általános BASIC Kérdések
Post by: Tomato77 on 2020.September.05. 22:10:40
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.

Tetszik ez a megoldás, egész programozós hozzáállás. :) Nincs nagy jelentősége, de akkor az A=X részt is ki lehetne venni és közvetlenül X-szel cserélni, még egy utasítással kevesebb lenne. De maga az elv tök jó lett! :)
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2020.September.05. 22:27:11
Pedig működik:
PRINT "Szöveg";CHR$(241)
Értelemszerűen a PRINT végére kell a pontosvessző, mert a CHR$(241) az aktuális bekezdésre vonatkozik.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2020.September.05. 23:15:11
Megjegyzendő, az összes szerkesztő funkció működik programból is.
Itt (http://www.rosettacode.org/wiki/Word_wrap#IS-BASIC) egy példa.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.September.06. 12:57:06
Pedig működik:
PRINT "Szöveg";CHR$(241)

Ebben a programban nem működik, a CHR$(241) egy "q" karaktert biggyeszt a végére:

Code: [Select]
5520 SET VIDEO MODE 0:SET VIDEO COLOUR 0
 5560 SET VIDEO X 30:SET VIDEO Y 1
 5570 OPEN #1:"VIDEO:"
 5580 SET #1:SCROLL OFF:PRINT #1:CHR$(27);"o"
 5590 DISPLAY #1:AT 25 FROM 1 TO 1
 6000 PRINT #1:"SZOVEG";CHR$(241)

Csak a 0-ás editor csatornán működik (ahogy ErgoGnomik írta), külön videolapokra már nem.
Title: Re: Általános BASIC Kérdések
Post by: geco on 2020.September.06. 14:28:30
szerintem ha csinalsz editort, es hozzarendeled a csatornad, akkor mukodni fog
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.September.06. 15:15:11
szerintem ha csinalsz editort, es hozzarendeled a csatornad, akkor mukodni fog
Hozzárendelni hogyan lehet? A 0-ás csatorna hogyan rendelhető hozzá videolaphoz? Szerintem alapból a 102-es videolaphoz van hozzárendelve a 0-ás editor csatorna.
Lehet több editor csatornát is nyitni? És hozzá lehet rendelni más videolapokhoz is?
Title: Re: Általános BASIC Kérdések
Post by: gflorez on 2020.September.06. 15:53:34
Esetleg megérinti a 29. rendszerváltozót VID_EDIT?

---------

Maybe touching System Variable 29 VID_EDIT?

--------

¿Quizás tocando la Variable de Sistema 29 VID_EDIT?
Title: Re: Általános BASIC Kérdések
Post by: geco on 2020.September.06. 16:03:49
szerintem igen, a 29-es rendszervaltozon keresztul, ugy tudom lehet tobb editor csatorna is.
i think yes, it can be done through 29 system variable, and i think more editor channel can be open.
Title: Re: Általános BASIC Kérdések
Post by: gflorez on 2020.September.06. 16:30:58
[attachimg=1] (http://enterprise.iko.hu/technical/ET18-5_EXOS_21_Editor_Device_Specification.pdf)

Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.November.03. 09:37:11
Tegnap nálam járt Chuck Norris és játszott a Bomberrel. Demóba felvettem emulátorral, ahogy játszik:
[attach=1]
Title: Re: Általános BASIC Kérdések
Post by: Tomato77 on 2020.November.04. 13:22:15
Ha elromlik Basicben a PING parancs, akkor lehet helyettesíteni:
Code: [Select]
100 ENVELOPE NUMBER 1;0,63,63,1;0,-63,-63,50
110 SOUND PITCH 79.5,ENVELOPE 1,DURATION 50
:D
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2020.November.04. 18:49:01
Ha elromlik Basicben a PING parancs, akkor lehet helyettesíteni:
Chuck Norris után sose tudni...
Van valami trükk is benne, mert ha SOUND-dal helyettesítjük a PING-et, akkor az nem teljesen ugyanaz, várakozik egy kicsit.

Code: [Select]
10 PROGRAM "3ENVPING.BAS"
100 ENVELOPE NUMBER 1;0,63,63,1;0,-63,-63,50
105 FOR A=1 TO 3
110   SOUND PITCH 79.5,ENVELOPE 1,DURATION 50
120 NEXT

Code: [Select]
10 PROGRAM "3PING.BAS"
105 FOR A=1 TO 3
110   PING
120 NEXT

Az előbbi programnál egyből megjelenik az "ok" üzenet, az utóbbi programnál csak a harmadik pinggel.
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2021.January.16. 20:50:03
Mit hibáztam ?
Code: [Select]
  100 TIME "00:00:00"
  110 FOR X=1 TO 3000
  120   DATA 1,2,3,4
  130   READ A,B,C,D
  140 NEXT
  150 PRINT TIME$
  160 END
Code: [Select]
START

*** Out of data in READ/INPUT
130   READ A,B,C,D
print x
2
ok
Az új DATA sor bekellene vinnie  az adatokat a memoriába.
Title: Re: Általános BASIC Kérdések
Post by: ergoGnomik on 2021.January.16. 21:00:34
Mit hibáztam ?
Ez most beugratós kérdés?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2021.January.16. 21:01:10
Csak 4 adat van a DATA-ban, az csak 1 ciklusra elég.
Title: Re: Általános BASIC Kérdések
Post by: Tomato77 on 2021.January.16. 21:18:59
Kellene RESTORE. Így a négy érték kiolvasása után kifogy a DATA sorokból. Az nem elég neki, hogy ráfut újra a DATA sorra, attól még a következő DATA sort keresi, ami itt nincs.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2021.January.16. 21:24:18
Mit hibáztam ?
A FOR után RESTORE kellene. Beolvas 4 adatot, és nincs több adat, újra kell indítani elölről az adatok olvasását.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2021.January.27. 22:47:37
Korszakalkotó felfedezésem, hogyan lehet becsempészni egy basic programba a LIST parancsot, amikor a basic interpreter nem fogadja el *** Command in program ürügyén.

A következő programot kimentettem:

100 OPEN #1:"file.txt" ACCESS OUTPUT
110 PRINT #1:
120 CLOSE #1

A kimentett, tokenizált basic programot megnyitottam hex editorral. Lgb egyedülálló oldalán (http://epbas.lgb.hu/result-dist-db.txt) megnéztem a basic tokenek kódjait. Itt kiderült, hogy a PRINT kódja 56 (hex: 38). A LIST kódja 42 (hex: 2A), így hex editorban átírtam a 38-at 2A-ra, elmentettem a fájlt, és EP-n visszatöltve LIST volt a 110-es sorban a PRINT helyén. Ez a dolog már 25 éve is foglalkoztatott, de most derült ki, hogy tényleg megoldható.
Így most vicces programokat is lehetne írni, melyekben benne van az INFO, LIST, MERGE, DELETE és egyéb utasítások is. Például a játék megkérdezi, melyik pályán akarunk játszani, aztán letörli a program egy részét, ami már nem kell, és összemerge-eli a következő pályával.
Csak azt nem értem, Lgb oldalán miért decimálisban vannak a tokenek kódjai, amikor mindig hexadecimálisban kellenek.
Biztos az emulátor debuggerében is át lehetne írni a tokeneket és nem is kellene hex editor se.
[attach=1]
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2021.January.27. 22:55:14
Ez a dolog már 25 éve is foglalkoztatott
Könyveket nem olvastad? :oops:
A Tippek és Trükkökben meg a Gépi kódú programozás BASIC-kel foglalkozó részében is voltak olyan POKEolások, hogyan lehet parancs utasítást programba tenni, és programutasítást parancsba :-)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2021.January.28. 09:53:53
Könyveket nem olvastad? :oops:
Huszonvalahány éve olvastam valamelyikben ezt. De valamiért nem működött, pedig a POKE utáni számot számjegyenként ellenőriztem többször is. Így akkor elmaradt a hatalmas élmény, ami most meglett.

Egyébként gyakran mentek txt fájlba basic programot és ott szerkesztem, ezért jutott eszembe, hogy ezt így le lehetne egyszerűsíteni. Persze naiv fejemmel nem gondoltam arra, hogy ez a basic program felülírja majd azt, amit el akarok menteni. Hacsak nem chain, edit parancsokkal lépkedek a basic programok között, majd talán ezt is megpróbálom.
De gondolom, Lua scripttel is meg lehetne csinálni, hogy 1-2 kattintással kiírja txt fájlba a tárban levő basic programot.
Vagy funkcióbillentyűt átdefiniálni, és úgy írná txt-be.

Tényleg, a funkcióbillentyűk szövegei (START, LIST, stb.) hol tárolódnak? A basic romban? Mert pl. a TOGGLE REM1, TOGGLE SPEAKER soha nem kell emulátoron, nem is tudom, csinálnak-e valamit, azokat fixre át lehetne írni valami olyan szövegre, ami hasznos. (A ZT is jó, csak azt külön el kell indítani, azt hiszem.)
Title: Re: Általános BASIC Kérdések
Post by: Povi on 2021.January.28. 10:11:59
Tényleg, a funkcióbillentyűk szövegei (START, LIST, stb.) hol tárolódnak? A basic romban? Mert pl. a TOGGLE REM1, TOGGLE SPEAKER soha nem kell emulátoron, nem is tudom, csinálnak-e valamit, azokat fixre át lehetne írni valami olyan szövegre, ami hasznos. (A ZT is jó, csak azt külön el kell indítani, azt hiszem.)
A SET FKEY parancs pont erre való. Példa:

Code: [Select]
set fkey 4 "PRINT"&chr$(34)&"alma"&chr$(34)&chr$(13)
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2021.January.28. 10:26:36
Huszonvalahány éve olvastam valamelyikben ezt. De valamiért nem működött, pedig a POKE utáni számot számjegyenként ellenőriztem többször is.
Ez valószínűleg angol/német gép különbség miatt volt, neked pont másik volt, mint amilyenhez a könyvet írták. (Német gépen kicsit arrébb csúsznak a dolgok a memóriában.)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2021.January.28. 10:36:51
A SET FKEY parancs pont erre való.
Ezt ismerem, de ez resetnél visszaáll eredetire. De lehet, hogy megpróbálom.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2021.January.28. 11:03:30
Ezt ismerem, de ez resetnél visszaáll eredetire.
Na pont ezért készült ZT azon része :-)

Amikor bezáródik a billentyűcsatorna, akkor törlődik, ezért a csatornát megnyitó programnak, jelen esetben a BASIC-nek újra ki kell küldeni a funkcióbillentyű definiciókat.

Amúgy a BASIC 1-es szegmensen lévő részében vannak ezek a szövegek.


Title: Re: Általános BASIC Kérdések
Post by: SlashNet on 2021.January.28. 11:29:00
SET FKEY command was very helpful when mine old kb membrane was partially broken. Besides the built-in joystick, the enter key also worked poorly, so I reprogram F8 key with chr$(13) value and can programming more comfortably.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2021.January.28. 11:43:16
the enter key also worked poorly, so I reprogram F8 key with chr$(13) value and can programming more comfortably.
At my first membrane also the Enter dead... this is a sign of you are programmer :lol:
Then I used CTRL+M :ds_icon_cheesygrin:
Title: Re: Általános BASIC Kérdések
Post by: SlashNet on 2021.January.28. 12:41:17
Then I used CTRL+M :ds_icon_cheesygrin:

:smt023
About control codes (not only for EP) I finded out only at 2000 year.
CtrlM would be more helpful in nineties, than my method.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2021.January.31. 12:11:37
A billentyű- és joystickfigyelésnek van valami más módja, mint az INKEY$ és a JOY() függvény? Arra gondolok, hogy valami cím értéke megváltozik, ha egy billentyű le van nyomva vagy a joystick el van mozdítva. Basic programoknál körülményes megoldani, hogy figyelje a joystickot és a billentyűzetet is, egyszerűbb lenne a CASE után a címértékeket odaírni, és azokra menne pl. jobbra a figura.
Title: Re: Általános BASIC Kérdések
Post by: ergoGnomik on 2021.January.31. 12:51:30
Az ep128.hu-n fent levő Tippek és trükkök ENTERPRISE könyv változatban az IN(n) szakasz pont ezt taglalja a billentyűzetnél. A JOY szakasz pedig a joystick esetében mutat példát. Talán.
Title: Re: Általános BASIC Kérdések
Post by: Povi on 2021.February.01. 09:20:06
A billentyű- és joystickfigyelésnek van valami más módja, mint az INKEY$ és a JOY() függvény? Arra gondolok, hogy valami cím értéke megváltozik, ha egy billentyű le van nyomva vagy a joystick el van mozdítva. Basic programoknál körülményes megoldani, hogy figyelje a joystickot és a billentyűzetet is, egyszerűbb lenne a CASE után a címértékeket odaírni, és azokra menne pl. jobbra a figura.
BASIC-ben a 181-es port írásával és olvasásával tudod figyelni a billentyűzetet és a belső joy-t, a külső joy-t a 181-es port írásával, és a 182-es port olvasásával. Szerintem ezt megvalósítani BASIC-ben nem egyszerűbb, mint a joy és az inkey$

nézd a billentyűzet mátrixot:
http://povi.uw.hu/images/key_matrix.png

ha pl. az ENTER-t akarod figyelni, az a 7. sorban van
ezért a 181-es portra írsz egy 7-est, majd beolvasod a 181-es port értékét, mondjuk a P nevű változóba, aminek értéke 0 és 255 között lesz
OUT 181,7
P = IN(181)

ha valaki lenyomta az ENTER-t, ami a 6. oszlopban van, akkor a P változó 6. bitje 0 lesz, vagyis  = 1011 1111 = 191, ha csak az ENTER-t nyomták le, és semmi mást abban a sorban.

vagy nézheted BAND utasítással is
P BAND 64 akkor lesz 0, ha lenyomták az ENTER-t

Code: [Select]
10 OUT 181,7
20 IF (IN(181) BAND 64)=0 THEN PRINT "Enter"
30 GOTO 10



Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2021.February.01. 10:46:54
A portos módszer akkor működhet, ha POKE 56,201 van, különben az EXOS maga is állítgatja B5h portot. Viszont ez esetben kell is ez a módszer, hiszen ekkor nem működik a billentyűzet kezelő. (Joy fügvény az megy)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2021.February.04. 20:51:48
A Flappy Bird témában előjött, hogyan lehetnek a karaktereknek az egyes sorai más színűek. Ilyet basicben is meg lehet csinálni? Vagy az LPT miatt inkább felejtős? Nyilván a legegyszerűbb, hogy külön kell definiálni a karaktereknek pl. a felső és az alsó részét, és más-más színnel íratni egy grafikus képernyőre, de ez nem az igazi. Bár így belegondolva, akár a kiírogatás idejére az adott karakterek alakját ki lehet olvasni a memóriából, és azzal hókuszókuszolni és külön-külön más színnel íratni ki, ez mondjuk pl. egy játék menüjében még el is menne, de biztos van kellemesebb módszer is.
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2021.February.04. 22:22:13
Úgy emlékszem a 255 lapon megvan mind a 10 sor elmentett eleme igaz a megszakításnak menni kell.

Vagy a "Hasznos kis Basic programok" résznél  INAB5.BAS
Title: Re: Általános BASIC Kérdések
Post by: geco on 2021.February.05. 10:46:44
A soronkenti szinatmenet felejtos basicben az LPT miatt, ilyenkor minden pixel sorra kell csinalni egy LPB-t. Nalad az lehetne a megoldas, hogy attributum modot hasznalsz, minden sorra nyitsz egy csatornat, es az attributumokat allitod soronkent. A hogyan rajtad all, egyik modszer se lesz izgalom mentes, mert vagy sajat soronkenti karakter rajzolot csinalsz, hogy soronkent lehessen szinezni, vagy kiPRINTeled a karaktert mondjuk hatter szinnel, megkeresed az LPT-ben hol kezdodik az adott sor a videomemoriaban, es szepen beSPOKE-olod a szineket pixelsoronkent.
Title: Re: Általános BASIC Kérdések
Post by: dp304 on 2021.February.07. 00:24:16
A Flappy Bird témában előjött, hogyan lehetnek a karaktereknek az egyes sorai más színűek. Ilyet basicben is meg lehet csinálni? Vagy az LPT miatt inkább felejtős? Nyilván a legegyszerűbb, hogy külön kell definiálni a karaktereknek pl. a felső és az alsó részét, és más-más színnel íratni egy grafikus képernyőre, de ez nem az igazi. Bár így belegondolva, akár a kiírogatás idejére az adott karakterek alakját ki lehet olvasni a memóriából, és azzal hókuszókuszolni és külön-külön más színnel íratni ki, ez mondjuk pl. egy játék menüjében még el is menne, de biztos van kellemesebb módszer is.

Eszembe jutott erre egy egyszerű BASIC megoldás. SET ATTRIBUTES-szal meg lehet adni, hogy a PLOT ne rajzoljon át, csak a színt változtassa. Csatolok egy példát.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2021.February.07. 12:48:49
SET ATTRIBUTES-szal meg lehet adni, hogy a PLOT ne rajzoljon át, csak a színt változtassa.
Na, nekem meg évek óta lyukasra furdalta a kíváncsiság az oldalamat, mire lehet jó az a set attributes, és most itt egy jó példa.
Ha kiírás és színezés után a palettát változtatgatjuk, akkor talán jó kis hullámzást is bele lehet tenni a szövegbe.
A szöveg egyik részét így írjuk ki egy (vagy több, eltérő palettájú) videolapra, a szöveg másik részét más videolapokon úgy, hogy minden betű más színű és így mennek a színátmenetek, a harmadik részét pedig GRACHA háromszínű karakterekkel írjuk ki. És közben a háttér színét is lehet karaktersoronként váltogatni.  Ez azért nem nézne ki rosszul pl. a menüben. A következő basic játékban majd megpróbálom ezeket mind bedobni. Utána még zene kell gyűrűmodulációval, szűrővel, négy csatornán, lehetőleg sztereóban, és mindenki azt fogja hinni, Amigán fut a program. :D
Title: Re: Általános BASIC Kérdések
Post by: dp304 on 2021.February.07. 13:06:17
És lehet olyat is, hogy a hátteret színezi be átmenettel, hasonlóan a szokásos rasztercsíkos effekthez: át kell írni a SZINEZ eljárásban a SET ATTRIBUTES 10-et 6-ra, a SET INK I-t pedig SET PAPER I-re.
És meg lehet csinálni azt is, hogy a sorokat azelőtt színezed, mielőtt kiírnád a szöveget. Akkor a kiírás előtt SET ATTRIBUTES 64 kell.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2021.February.27. 14:54:20
Van ez a sor:

100 SOUND PITCH 25+I

A PITCH utáni értékadásba bele lehet valahogy variálni, hogy ha pl. 50-nél nagyobb az I értéke, akkor is max 50-es értéket kezeljen itt, mint I-t? IF-fel meg lehet csinálni, de hátha van valami nagyon érdekes módszer erre, hogy a következőt egyetlen paraméter-értékadással meg lehessen oldani:

90 IF I>50 THEN I=50
100 SOUND PITCH 25+I

Ehelyett:

100 SOUND PITCH 25+(bonyolultvalami(I,50))
Title: Re: Általános BASIC Kérdések
Post by: dp304 on 2021.February.27. 15:01:01
MIN(I,50) ?
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2021.February.27. 15:08:09
MIN(I,50) ?
Ne viccelj, ez ilyen egyszerű? Mindig tudtam, hogy van ez a MIN függvény, de a gyakorlatban nem ugrott be, hogy mikre lehetne használni. A matekkal is mindig ez volt a bajom, hogy sosem tudtam összekapcsolni az elméletet a gyakorlattal. Jó annak, akinek az ilyesmik könnyen beugranak. Szerintem itt kezdődhet a matematikus gondolkodás, ami nekem mindig magas volt. :D
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2021.March.09. 20:56:04
Valahogy le lehet kérdezni a már definiált burkológörbéket? Például parancsmódban kiadok egy envelope number definíciót, utána képernyőtörlés, és hallom, milyen szól, de már nem emlékszem pontosan, mit adtam meg.
Title: Re: Általános BASIC Kérdések
Post by: gflorez on 2021.March.10. 16:15:17
Esetleg bekukucskál(SPEEK) a SOUND csatorna pufferre?

--------

Maybe peeking(SPEEK) at the SOUND channel buffer?

-------

¿Quizás ojeando(SPEEK) en la zona de trabajo del canal SOUND?


[attach=1]
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2021.March.10. 17:05:50
Esetleg bekukucskál(SPEEK) a SOUND csatorna pufferre?
És hogyan lehet oda bekukucskálni? Sejtettem, hogy valami SPEEK lesz a dologban.
Na, majd megpróbálok kísérletezni, hogy egy envelope number kiadása után mi lesz más a memóriában.
Akkor a 4946h címtől kellene kukucskálni?
Should I stare from the address 4946h?
¿Tengo que mirar del 4946h?

Remélem, nem túl nehéz visszafejteni az adatokat onnan, mert az escape szekvenciákban kiírt adatok eléggé nehezen értelmezhetőnek tűnnek első rákukucskálásra.
I hope the datas won't be too difficult to decompile as the datas saved through escape sequences seem quite hard to understand at first look.
Title: Re: Általános BASIC Kérdések
Post by: gflorez on 2021.March.10. 20:16:29
Sajnálom, csak angolul és spanyolul:


Maybe you can start modifying the 255 envelope(default) and see what changes on the buffer memory. Then continue defining a new envelope. It is probably that the same ESC sequence numbers will be stored on some place on the buffer.

Observe, the addresses can change from one EP configuration to other, but the area to watch in this emulator case(on the screen) is from  4946h upwards to 1 byte less than the next channel, 5256h-1(if I remember well).

Once knowing the working area structure will be easier for you to find an envelope on the area.

----

Prueba a empezar modificando la envolvente 255(por defecto), y a observar que cambia en la memoria de trabajo. Entonces, continua definiendo una nueva envolvente. Es probable que los mismos valores de la secuencia ESCAPE sean guardados en algún sitio de la memoria.

Observa que las direcciones de memoria pueden cambiar de una configuración a otra, pero el área a examinar en esta emulación(la de la pantalla) va de 4946h hacia arriba hasta un byte menos del siguiente canal, 5256h-1(creo recordar).

Una vez que sepas la estructura de la zona de trabajo será más fácil para ti encontrar una envolvente en ese área.
Title: Re: Általános BASIC Kérdések
Post by: gflorez on 2021.March.10. 20:48:44
The 255(FF) segment is placed on page 01 by EXOS to manage its contents, but you will use the SPEEK command, so it is like if you were managing the segment on page 00: from 2374 dec to 4693 dec.

----

El segmento 255(FF) es colocado por EXOS en la página 01 cuando maneja su contenido, pero tú  vas a usar el comando SPEEK, por lo que es como si manejases el segmento en la página 00, desde 2374 dec a 4693 dec.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2021.March.18. 08:44:20
A C64-es Uberswap (Überswap?) játék átírásával kapcsolatos hozzászólások átkerültek a Konvertálás témakör alá.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2021.April.01. 10:29:31
Gondolkodtam, ebbe a témába vagy a zeneprogramozásba illene ez inkább. Sehol nem írják, hogy lehetne paraméterezni a PING-et, de most kipróbáltam, és nagyon meglepődtem. Látszólag működik a pitch paraméterezés, mint a soundnál. Viszont egy ilyen utasítás kiadása után instabil lesz a rendszer, és semmi más parancsot nem értelmez a basic, és egyetlen resetre is teljesen újraindul. Lehet, hogy azért nem dokumentálták ezt, mert nem írták meg rendesen? De akkor minek rakták ezt bele, ha gyakorlatilag nem használható? Érthetetlen...
Egy demóban mutatom, hogyan működik ez:
[attach=1]
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2021.April.01. 11:11:07
Szerintem egy bugot találtál :-)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2021.April.01. 22:37:27
Szerintem egy bugot találtál :-)
Biztos?
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2021.April.02. 08:16:01
Sehol nem írják, hogy lehetne paraméterezni a PING-et, de most kipróbáltam, és nagyon meglepődtem.
Senki nem próbálta ki maga?
A dátumot nem néztétek? Vagy csak a reakció maradt el?
Title: Re: Általános BASIC Kérdések
Post by: Tomato77 on 2021.April.02. 10:41:44
Szerintem mindannyian bekajáltuk Szipucsu április 1-i tréfáját. Gratula, jó volt, én még az igazi gépet is bekapcsoltam, hogy mit csinál. :) Jövőre visszakapod! :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2021.April.17. 14:12:55
Van valami gyakorlati jelentősége, amiért a HEX-es sorokat több sorba írják egy sor helyett? Működik mindenhogy, csak esztétikailag szebb, ha több sorban van?

Például ez:
Code: [Select]
  120 CODE LDCHAR=HEX$("DB,B2,F5,3E,FF,D3,B2,2A")
  130 CODE =HEX$("F4,BF,3E,06,85,6F,5E,23")
  140 CODE =HEX$("56,06,07,CB,13,CB,12,10")
  150 CODE =HEX$("FA,CB,B2,01,80,04,3E,6A")
  160 CODE =HEX$("F7,06,F1,D3,B2,C9,00,00")

egyetlen sorban is elférne, max. nem lenne olyan szép:

Code: [Select]
  120 CODE LDCHAR=HEX$("DB,B2,F5,3E,FF,D3,B2,2A,F4,BF,3E,06,85,6F,5E,23,56,06,07,CB,13,CB,12,10,FA,CB,B2,01,80,04,3E,6A,F7,06,F1,D3,B2,C9,00,00")
Szeretnék a sorokkal spórolni, például a Zzzipnél van egy határ már.
Title: Re: Általános BASIC Kérdések
Post by: geco on 2021.April.17. 15:56:18
szerintem nincs, csak a jobb atlathatosag.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2021.April.19. 15:43:40
Nem lehet egyetlen PRINT-en belül új sorokat kezdeni? A vessző a köv. tabulátorpozícióra ugrik, a pontosvessző ugyanott hagyja a kurzort, ahol van. Nyilván ha CHR$(13)-at írunk közbe, az jó, csak az hosszú, és a külön PRINT utasítás is jó, de nem oldható meg egyszerűbben? Például, hogy a következő dolgokat mind külön sorba írja, és ne kelljen külön print mindegyikhez:

PRINT a,b,b1,c,c1,str$(x),"supertext",g(1),g(2),g(3)

Még a read-data megoldáson gondolkozom, talán az a legjobb, ha nincs más, ott for ciklusban van a print és mindig egymás alá ír.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2021.April.19. 16:53:33
Rakd be a CHR$(13)-at egy változóba, és akkor már nem olyan hosszú :-)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2021.April.19. 17:02:23
Rakd be a CHR$(13)-at egy változóba, és akkor már nem olyan hosszú :-)
Nem rossz ötlet! pl. az A$ egész rövid.
Title: Re: Általános BASIC Kérdések
Post by: Tomato77 on 2021.April.20. 23:15:15
Esetleg lehetne írni egy szubrutint string bemenő paraméterrel, ami egy spéci karakternél, amit amúgy nem írsz ki, új sorba printel. A rutin nyilván hosszabb egy sima printnél, de sok kiírásnál talán visszahozhatja ezt a hátrányt.
Title: Re: Általános BASIC Kérdések
Post by: Tuby128 on 2021.December.27. 17:35:06
Szükségem lenne egy olyan rutinra vagy parancsra, ami egy 2 bájtos hexidecimális (pl. BFE0) kifejezést átalakít 2 bájtos számmá és ezt el tudom tárolni egy változóban.
Sajnos nem tudok decimálisban gondolkodni.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2021.December.27. 18:49:32
átalakít 2 bájtos számmá
Milyen az a 2 bájtos szám? (Lehet, mindenki tudja, csak én nem.)
Az Util programcsokorban (http://ep128.hu/Ep_Util/Util.htm) a Számátalakító című átvált számrendszerek között számokat. Kiindulásnak talán jó lesz.
Title: Re: Általános BASIC Kérdések
Post by: Tuby128 on 2021.December.27. 21:33:12
2 bájtos szám=16 bites szám
decimális.
Sajnos a Poke meg Peek a basicben csak decimális számot fogad. Én pedig nem akarom átváltani, mert nekem úgy vannak meg hexidecimálisban, hogy B900h meg ilyesmi.
Title: Re: Általános BASIC Kérdések
Post by: ergoGnomik on 2021.December.28. 07:24:23
Szükségem lenne egy olyan rutinra vagy parancsra, ami egy 2 bájtos hexidecimális (pl. BFE0) kifejezést átalakít 2 bájtos számmá és ezt el tudom tárolni egy változóban.
Ez (http://ep128.hu/Ep_Konyv/Tippek.htm#21)?

Quote
Sajnos nem tudok decimálisban gondolkodni.
Ez igen furcsa! Hogyan jutottál ebbe az állapotba? Ha azt kérdezem mennyi 12+29, akkor tényleg 3B-t válaszolsz rá?
Title: Re: Általános BASIC Kérdések
Post by: ergoGnomik on 2021.December.28. 07:29:17
Én pedig nem akarom átváltani...
Ezt simán meg tudod csinálni a Windows beépített számológépével, ha átállítod programozó módba (Alt+3 talán). És gondolom Linuxban vagy MacOS-ben is van hasonló szolgáltatás. Amúgy is érdemesebb manapság emulátorban fejleszteni és csak a végső tesztelésnél használni igazi gépet. Szerintem.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2021.December.28. 09:37:42
Szükségem lenne egy olyan rutinra vagy parancsra, ami egy 2 bájtos hexidecimális (pl. BFE0) kifejezést átalakít 2 bájtos számmá és ezt el tudom tárolni egy változóban.
pl így lehet megoldani:
Code: [Select]
  100 POKE HEX("bfe0"),255
 1000 DEF HEX(H$)
 1010   LET HEX=256*ORD(HEX$(H$(1:2)))+ORD(HEX$(H$(3:4)))
 1020 END DEF
Elején a példa POKE a keretet állítja át EXOS 2.1+ alatt.
Title: Re: Általános BASIC Kérdések
Post by: gflorez on 2021.December.28. 10:18:40
Ez a (https://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html) web aranyat ér számomra.
Title: Re: Általános BASIC Kérdések
Post by: Tuby128 on 2021.December.28. 16:45:38
pl így lehet megoldani:
Code: [Select]
 100 POKE HEX("bfe0"),255
 1000 DEF HEX(H$)
 1010   LET HEX=256*ORD(HEX$(H$(1:2)))+ORD(HEX$(H$(3:4)))
 1020 END DEF

Köszi Zozo! Pont erre gondoltam!
Title: Re: Általános BASIC Kérdések
Post by: Tuby128 on 2022.January.11. 08:04:04
Mi az a 3-as betöltőkódú többszörös basic program?
Lehet több EDIT alatt lévő programot egyszerre menteni/visszatölteni?
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2022.January.11. 10:23:04
Mi az a 3-as betöltőkódú többszörös basic program?
Lehet több EDIT alatt lévő programot egyszerre menteni/visszatölteni?
Igen. SAVE ALL parancs.
Title: Re: Általános BASIC Kérdések
Post by: Tuby128 on 2022.January.11. 18:50:11
30 év után most tudom meg, hogy van save all parancs.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2022.January.11. 18:58:26
30 év után most tudom meg, hogy van save all parancs.
Pedig a kézikönyv 140. oldalán írnak róla :-)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2022.January.11. 21:13:00
30 év után most tudom meg, hogy van save all parancs.
Én már régóta tudtam, de soha nem használtam. Pedig biztos jól ki lehetne használni a lehetőséget valamire, hogy egyik program a másiknak adogassa át a kilincset. Csak a Reversi-Dáma-Awari programról tudok, ami kihasználja ezt a lehetőséget. A képernyő tetején meg mindig ott virít a "program 0" felirat, és nem tudom, kik és milyen gyakran állítgatják át, nem csak kísérletezés céljából.
Title: Re: Általános BASIC Kérdések
Post by: Tuby128 on 2022.January.12. 04:03:12
Da deklarálok egy
DEF a$(x)
 ....
END DEF
részt az edit 0-ban, és RUN parancs kiadása után valahol átadja a futást edit 1-ben futó programnak, akkor az a$ függvény itt is használható?
Title: Re: Általános BASIC Kérdések
Post by: gflorez on 2022.January.12. 08:06:27
Azt hiszem, nem, mert amikor a PROGRAM 1-t végrehajtja, a lista ott RUN, ami törli az összes változót.

De könnyebb ellenőrizni, mint beszélni róla....

------

I think no because, when you execute PROGRAM 1, the listing there is RUN, what erases all the variables.

But is easier checking it than talking about it....
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2022.January.12. 09:13:45
Nem, ilyen szinten nem függnek össze a programok.
Paramétereket lehet átadni a CHAIN utasítással.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2022.January.12. 18:24:54
részt az edit 0-ban, és RUN parancs kiadása után valahol átadja a futást edit 1-ben futó programnak, akkor az a$ függvény itt is használható?
A run törli a változókat. De programból nem is tudja meghívni egyik program a másikat, erre szerintem a chain parancs való.
Title: Re: Általános BASIC Kérdések
Post by: gflorez on 2022.January.12. 19:44:59
Az angol (http://enterprise.iko.hu/books/EnterpriseProgrammingGuide.pdf) nyelvű kézikönyvben az Indexen a Lánc parancs helytelenül a 195. oldalon található.

-----

On the English manual (http://enterprise.iko.hu/books/EnterpriseProgrammingGuide.pdf), the Chain command is wrongly indexed on pag. 195.

CHAIN       -> 152
EDIT          -> 159
PROGRAM -> 175

[attachimg=1]
Title: Re: Általános BASIC Kérdések
Post by: Tomato77 on 2022.January.12. 20:55:58
Azért nem semmi, hogy az Enterprise IS-Basic-je ilyet tud. Nem is emlékszem, hogy hasonló gépek tudtak-e akkoriban egyszerre több programot betölteni. Általános iskolás koromban ezt egyszer arra használtam, hogy egy versenyen az akkori összes kis basic programomat betöltöttem különböző helyekre, aztán amikor rám került a sor, azonnal tudtam mutogatni őket. Gondolom, meg se várták volna, amíg befütyüli őket a magnó. :) Egyszerű programok voltak, nem is nyertem velük semmit, de akkoriban nagy élmény volt, hogy valaki megnézi őket. Apuval cipeltük a gépet, magnót meg a Junoszty tévét valahová Budára villamossal.
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2022.January.12. 21:15:02
Magyar leírásban nem emlékszem erre.

A változókat ezért POKE-val oldottam meg. Problémás volt ezért elvettettem.
És a vissza térés EDIT 0 ra? Újra elveszted a változókat?
Vagy programról programra végig mész.
Title: Re: Általános BASIC Kérdések
Post by: Tomato77 on 2022.January.12. 22:55:17
És a vissza térés EDIT 0 ra? Újra elveszted a változókat?
CHAIN 0
A változók más környezetben sem szoktak elérhetőek lenni más programoknak, ha hívogatják egymást, csak a paraméterekben átadott értéket látják.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2022.January.13. 20:44:08
On the English manual (http://enterprise.iko.hu/books/EnterpriseProgrammingGuide.pdf), the Chain command is wrongly indexed on pag. 195.
Ezt a paraméterátadást sosem értettem. Az a baj, nem mutatták be gyakorlati példán, hogy a meghívott program mit tud csinálni azokkal a dolgokkal, amiket megadunk neki az egyik programból. A PROGRAM utasítás után a programnév után is meg lehetett adni zárójelben valamiket, de erre se láttam még példát, hogy hogyan lehet aztán felhasználni.
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2022.January.13. 21:12:56
CHAIN 0
A változók más környezetben sem szoktak elérhetőek lenni más programoknak, ha hívogatják egymást, csak a paraméterekben átadott értéket látják.
Még ilyet ?
Végül is talán meg lehet oldani azt is.
  PROGRAM "START" (START,X,Y,Z.....)

  IF start="" then
       LET X=1:LET Y=2:LET Z=3: ...
Title: Re: Általános BASIC Kérdések
Post by: gflorez on 2022.January.14. 00:04:46
Ezt a paraméterátadást sosem értettem. Az a baj, nem mutatták be gyakorlati példán, hogy a meghívott program mit tud csinálni azokkal a dolgokkal, amiket megadunk neki az egyik programból. A PROGRAM utasítás után a programnév után is meg lehetett adni zárójelben valamiket, de erre se láttam még példát, hogy hogyan lehet aztán felhasználni.

Oké, adnak egy egyszerű példát:

------

Ok, they are already giving you an easy example:

[attachimg=1]




Title: Re: Általános BASIC Kérdések
Post by: Tomato77 on 2022.January.14. 09:44:18
Ezt a paraméterátadást sosem értettem.
Dióhéjban kb. ugyanaz, mint amikor DEF szubrutinok hívják egymást, és paraméterekben adnak át egymásnak értékeket, mert egymás változóit nem látják. A programoknál is hasonlóan működik, ők is értékeket adnak át egymásnak. Más környezetben is létezik ez, pl. DOS batch parancsfájlok és .EXE programok is adhatnak át egymásnak paramétereket.

Pl. ha írsz egy MIDI lejátszót, akkor lehet a bemenő paramétere egy fájlnév, és akkor azt tölti be.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2022.March.26. 10:14:27
Biztos nagyon egyszerű a válasz, de ezt hogy lehet megcsinálni rövidebben, valamilyen FOR-ciklussal?

Code: [Select]
6510   SET #2:PALETTE COLT(A,1),COLT(A,2),COLT(A,3),COLT(A,4),COLT(A,5),COLT(A,6),COLT(A,7)
 6520   SET #2:PALETTE COLT(A,1),COLT(A,3),COLT(A,4),COLT(A,5),COLT(A,6),COLT(A,7),COLT(A,2)
 6530   SET #2:PALETTE COLT(A,1),COLT(A,4),COLT(A,5),COLT(A,6),COLT(A,7),COLT(A,2),COLT(A,3)
 6540   SET #2:PALETTE COLT(A,1),COLT(A,5),COLT(A,6),COLT(A,7),COLT(A,2),COLT(A,3),COLT(A,4)
 6550   SET #2:PALETTE COLT(A,1),COLT(A,6),COLT(A,7),COLT(A,2),COLT(A,3),COLT(A,4),COLT(A,5)
 6560   SET #2:PALETTE COLT(A,1),COLT(A,7),COLT(A,2),COLT(A,3),COLT(A,4),COLT(A,5),COLT(A,6)

Annyi a lényege, hogy (az első paraméter kivételével) mindig 1-et adjon hozzá a függvény második tömbjéhez, de ha ez valamikor nagyobb lenne, mint 7, akkor kezdje 2-től. Akkor csak egyetlen SET PALETTE lenne, de az cikluson belül.
Title: Re: Általános BASIC Kérdések
Post by: geco on 2022.March.26. 10:53:49
Code: Text
  1. 10 FOR I=0 TO 5                      
  2. 20   PRINT "1";MOD(I,6)+2;MOD(I+1,
  3.      6)+2;MOD(I+2,6)+2;MOD(I+3,6)+
  4.      2;MOD(I+4,6)+2;MOD(I+5,6)+2    
  5. 30 NEXT I                          
  6.  
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2022.March.26. 13:12:24
Köszi! Sejtettem, hogy valami turpisság lesz a dologban. Azt hittem, valami band, bor műveletek jók erre.
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2022.March.26. 19:49:13
Code: [Select]
 
  200   LET A=1:LET B=2:LET C=3:LET D=4:LET E=5:LET F=6:LET G=7
  210   FOR I=0 TO 5
  220     PRINT A;B;C;D;E;F;G
  230     LET BB=B:LET B=C:LET C=D:LET D=E:LET E=F:LET F=G:LET G=BB
  240   NEXT I
Ez sem egy utolsó megoldás.
Title: Re: Általános BASIC Kérdések
Post by: Povi on 2022.March.26. 20:10:21
De egyébként Szipucsu megoldása lesz a leggyorsabb mind közül :-) Cserébe az foglalja a legtöbb helyet.
Title: Re: Általános BASIC Kérdések
Post by: geco on 2022.March.27. 08:30:21
A helyfoglalásban se vagyok 100%-ig biztos, mert ugyan a Ferroé és az enyém rövidebb, az a kérdés, hogy a Basic hogy tárolja a tömböket, ha teljes nevén, akkor mi nyertünk :D
Sebességre meg sztem az enyém a leglassabb a sok számolás miatt, majd Ferroé, és a leggyorsabb Szipucsué.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2022.March.27. 09:07:20
De egyébként Szipucsu megoldása lesz a leggyorsabb mind közül :-) Cserébe az foglalja a legtöbb helyet.
Zzzippel úgyis le lesz fordítva, a sebesség mindegy, mindenképpen még lassítani is kell rajta. A lassításhoz célszerű, ha csak egyszer kell betenni lassító FOR-NEXT ciklust az egészbe, ebből a szempontból az enyém a legrosszabb. De nem Zzzippel fordított basic programhoz talán tényleg az a legjobb.

Közben így oldottam meg:
Code: [Select]
6531 LET A=RND(10)+1
 6532 FOR CKL=2 TO 7
 6533   LET COLV(CKL),COLV(CKL+6)=COLT(A,CKL)
 6534 NEXT
 6535 FOR CIKL=1 TO 15
 6536   FOR CKL=2 TO 7
 6537     FOR A1=1 TO 900
 6538     NEXT
 6539     SET #2:PALETTE COLT(A,1),COLV(CKL),COLV(CKL+1),COLV(CKL+2),COLV(CKL+3),COLV(CKL+4),COLV(CKL+5)
 6540   NEXT
 6541 NEXT

Annyi a lényege, hogy attribútum videolapon az alsó 7 (vagy 8?) színt cserélgesse egymással, tehát a paletta következő színe megkapja az előző színkódját, ha pedig nincs következő, akkor az elsőnek adja át a botot, persze a háttérszínt kihagyva a dologból, így jó kis vizuális effektet lehet elérni. Lehet, rosszul emlékszem, de mintha Geco is használna ilyet néhány játékban, ahol lent az Enterprise felirat alatti vonalak színei "hullámzanak" (a következő vonal színe megkapja az előző vonal színét), de lehet, hogy annak más az elve, már nem emlékszem.
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2022.March.27. 10:01:20
Sima BASIC-ban azonos változó nevekkel:
szipucs:    660
geco:        236
ferro73:     260

100 szor ismételve:
szipucs:    00:01:00
geco:        00:02:50
ferro73:     00:00:54

mellékelem a tesztet

Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2022.June.03. 19:27:55
Be lehet valahogy állítani a botkormányokra olyasmit, ami a billentyűzeten a KEY DELAY? Az lenne a lényege, hogy ha pl. jobbra döntjük a botkormányt, ne menjen a krapek folyamatosan jobbra, hanem csak egyet lépjen jobbra. Csak akkor lépjen újra egyet, ha a botit elengedjük, majd újra megdöntjük.
A JOY() függvény teljesen figyelmen kívül hagyja a KEY DELAY-t, még belső joynál is. Hiába nem szól a click, de ha meg van döntve a botkormány, a JOY() függvény értéke már nem nulla.
De így belegondolva, lehet, kellene a programba egy rész, ami figyelni, volt-e 0 a JOY függvény értéke, és ha igen, akkor átállít egy változóértéket, és ezt a változóértéket figyelembe véve lépteti vagy nem lépteti a krapekot a léptetőeljárás.
Most mindjárt meg is válaszoltam a kérdésem, de azért már elküldöm ezt, ha begépeltem.
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2022.June.03. 21:22:46
És ha ügyesen  írod a progit akkor akár többet is léphetne körönként.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2022.October.03. 22:19:04
Azon gondolkodtam, lehetne-e olyan basic programsort (esetleg teljes programot) írni, mely visszafele olvasva is ugyanaz. Sajnos csak a 111-es sor lesz itt ilyen:

110 LET TNIRP=1
111 PRINT TNIRP 111

vagy még:

110 DATA ATAD 011
120 REM MER 021

Ha a sorszámoktól eltekintünk, könnyebb lehet:

100 CALL LLAC
110 DEF LLAC
stb.

Gépi kódú részen is lehetne gondolkozni (HEX$ utáni, 16-os számrendszerbeli számokra gondolok), de sajnos a végén mindig C9-nek kell lennie, ami az elején viszont nem lehet.

Még ötlet? :D

Title: Re: Általános BASIC Kérdések
Post by: AoC on 2022.October.04. 09:30:09
Még ötlet? :D

100 REM Géza kék az éG MER 001
Title: Re: Általános BASIC Kérdések
Post by: ergoGnomik on 2022.October.04. 10:02:55
L'art pour l'art nyelvi játszadozásnak nem utolsó. :D Kérdés, hogy lehet-e így működő programot írni? Nekem nem nagyon tűnik valószínűnek még úgy sem, ha megengedjük hogy a program tartalmazzon olyan segédrészeket (pl.: a DEF LLAC szipucsu példájában), amikre nem vonatkozik a megkötés. De ki is lehet erre írni egy versenyt. :mrgreen:
Title: Re: Általános BASIC Kérdések
Post by: Tomato77 on 2022.October.04. 10:50:21
1 ! 1
:)
Title: Re: Általános BASIC Kérdések
Post by: AoC on 2022.October.04. 11:00:13
1 ! 1
:)
4!4
:ds_icon_cheesygrin:
Title: Re: Általános BASIC Kérdések
Post by: Spidermans Friend on 2022.December.18. 02:32:30
Hogy tudok egy basic programlistát txt-be, vagy bármibe konvertálni, amit a pc-n be tudok olvasni?
LLIST, virtuális nyomtatóeszközzel a windowsban? De melyik emulátor emulál nyomtatót?
Title: Re: Általános BASIC Kérdések
Post by: Tomato77 on 2022.December.18. 03:00:46
Hogy tudok egy basic programlistát txt-be, vagy bármibe konvertálni, amit a pc-n be tudok olvasni?
LLIST, virtuális nyomtatóeszközzel a windowsban? De melyik emulátor emulál nyomtatót?

A 104-es csatornát be kell zárni, át kell irányítani egy txt fájlba, amibe az LLIST beleírja a forrást:

CLOSE #104
OPEN #104:"lista.bas" ACCESS OUTPUT
LLIST
CLOSE #104
OPEN #104:"PRINTER:" ACCESS OUTPUT

Az LLIST után mindenképp le kell zárni a csatornát, hogy a fájlt rendesen bezárja.
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2022.December.18. 09:05:16
Nem kell LLIST, és #104, elég simán így:
OPEN #1:"lista.bas" ACCESS OUTPUT
LIST #1
CLOSE #1
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2022.December.18. 11:09:28
OPEN #1:"lista.bas" ACCESS OUTPUT
"lista.bas" helyett "lista.txt" még jobb, akkor egyből jegyzettömbben lehet megnyitni és szerkeszteni.
Visszaolvasni a szöveges listát a LOAD-dal lehet.
Title: Re: Általános BASIC Kérdések
Post by: Spidermans Friend on 2022.December.18. 12:53:21
Köszi néktek, bevált! :)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2022.December.18. 13:00:55
Hogy tudok egy basic programlistát txt-be, vagy bármibe konvertálni, amit a pc-n be tudok olvasni?
Van valahol egy LUA script is az emulátorhoz, amit talán Zozo írt, és ha az lefut, akkor a LLIST (shift+F2) is kirakja txt fájlba a listát. Ez gyorsabb lehet annak, aki lassan gépeli be a parancsokat.
Title: Re: Általános BASIC Kérdések
Post by: Spidermans Friend on 2022.December.18. 13:17:11
Köszi néktek, bevált! :)

És basszus, visszatölti txt-ből a programot, és futtatja. :D
Kezdem megszeretni ezt a gépet! :)



Title: Re: Általános BASIC Kérdések
Post by: Spidermans Friend on 2022.December.18. 13:18:12
Van valahol egy LUA script is az emulátorhoz, amit talán Zozo írt, és ha az lefut, akkor a LLIST (shift+F2) is kirakja txt fájlba a listát. Ez gyorsabb lehet annak, aki lassan gépeli be a parancsokat.

Ez se rossz! Majd rákeresek erre is.
Title: Re: Általános BASIC Kérdések
Post by: SlashNet on 2022.December.18. 14:21:15
http://epbas.lgb.hu/

Also can be useful.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2022.December.18. 15:20:33
És basszus, visszatölti txt-ből a programot, és futtatja. :D
Arra kell vigyázni, hogy a LOAD-dal töltsd be, ne a start (F1) paranccsal. Ez utóbbi egyből futtatja is, és nincs ideje magához térnie a txt betöltéséből a rendszernek, és a programba hibás sorok kerülhetnek. Egyszer már jártam így, a Xorgame 2 basic programnál, elég nehezen jöttem rá, miért kerültek zsibbadtságok hirtelen a programba, abban a topikban írtam is.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2023.January.26. 14:51:12
A Reversi-Dáma-Awari (http://www.ep128.hu/Ep_Games/Leiras/Reversi_Dama_Awari.htm) játékhoz tévedve láttam, hogy a Reversi és a Dáma része nem igazán színpompás, ezen talán könnyen lehetne segíteni. Alighanem soronként változó attribútum képernyőkkel lenne a legjobb. Bár annyi szín meg minek, a Reversi 4 színű karakteres módban is jó lehet, mert nem összetett a karakterek alakja. Bár Reversi van még kétféle a Basic programcsokorban is.
Még azt is meg lehetne csinálni, hogy ne a koordináták megadásával lehessen lépni, hanem kurzort lehessen mozgatni a játéktéren. Ráadásul úgy emlékszem, anno úgy sikerült kilistázni a programot, hogy az INPUT után " karaktert adtam meg, így Missing closing quotes hibával leállt, ez eléggé béna megoldás.
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2023.January.26. 17:27:24
A Reversi-Dáma-Awari (http://www.ep128.hu/Ep_Games/Leiras/Reversi_Dama_Awari.htm) játékhoz tévedve láttam, hogy a Reversi és a Dáma része nem igazán színpompás, ezen talán könnyen lehetne segíteni. Alighanem soronként változó attribútum képernyőkkel lenne a legjobb. Bár annyi szín meg minek, a Reversi 4 színű karakteres módban is jó lehet, mert nem összetett a karakterek alakja.

Az attribútum képernyő jó ötlet, soronként változó paletta felesleges, sőt rosszat tenne az áttekinthetőségnek (táblás játékokról van szó...) 16 szín még több is mint elég.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2023.January.26. 20:41:58
Az attribútum képernyő jó ötlet
Belekukkantottam a Reversibe. Az egész képernyő az alapállapotú szöveges képernyő. Sokat lehetne szépíteni rajta. A játéktér melletti jelzés, hogy ki lép, mehetne külön videolapra a képernyő aljára a 25-27. sorba. A játéktér lehetne mondjuk egy attribútum képernyő, a videolap méretét meghatározná, hogy mekkora pályát kérünk, és középre is rakná így. Ahol a lépéseket kell beírni, külön videolap lenne, az INPUT utasítást valami másra kellene cserélni, és nem engedne beírni olyan karaktereket eleve, amelyek nem kellenek a lépés megadásához. Amíg a gép gondolkodik a lépésén, addig lehetne poke 56,201. (És lehetne alapból out 191,12.)
Bár nem tudom, mennyi értelme lenne ezzel foglalkozni, akkor már inkább írjuk újabb játékokat.
Nem sokat foglalkoztak a megjelenítéssel, de új karakterkészletet tettek bele. Ha legalább egyetlen soros külön szöveges lap lenne az INPUT résznek, nem lehetne a kurzorral elmászkálni a játéktérbe és azt átrajzolni akár. :D
Title: Re: Általános BASIC Kérdések
Post by: Trefe on 2023.February.10. 20:44:17
:smt017 Tud valaki segíteni?
PRINT USING formátum vezérlő karaktereit be lehet vinni a formátum szövegbe valamiképpen, hogy csak egyszerű karakterként jelenjenek meg?
Remélem érthető voltam!

Trefe
Title: Re: Általános BASIC Kérdések
Post by: gflorez on 2023.February.10. 23:55:15
Egy példa, kérem.
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2023.February.11. 07:58:04
Olyat nem.
Esetleg:
 LET UINK1$=CHAR$(27)&CHAR$(...)&CHAR$(1)
 LET UINK2$=CHAR$(27)&CHAR$(...)&CHAR$(2)
 PRINT "ILYEN"&UINK2$&"-OLYAN"&UINK1$&" SZINEK"
Title: Re: Általános BASIC Kérdések
Post by: gflorez on 2023.February.12. 02:14:30
Meglepő módon a Basic elfogadja a vezérlő karaktereket a "PRINT USING" formázó karakterlánc előtt és után, de a közepén nem:

----

Surprisingly, Basic accepts control characters before and after the formatting string on "PRINT USING", but not in the middle:

[attachimg=1]
Title: Re: Általános BASIC Kérdések
Post by: Trefe on 2023.February.12. 12:47:16
Egy példa, kérem.

10 x=10
20 print using "blabla:#####%": x
run
blabla:000010

10 x=10
20 print using "blabla:##### %": x
run
blabla:    10

így nem tudom használni az IMAGE utasítást.
pl.
BLABLA:   10%, BLABLABLA:   10%, BLEBLE   10%

ehelyett:
10 IMAGE :BLABLA: ####%,   BLABLABLA:####%, BLEBLE:####%
20 X,Y,Z=10
30 PRINT USING 10:X,Y,Z
RUN
BLABLA:00010, BLABLABLA:00010, BLEBLE:00010

Pedig USING utasítással egyszerűbb lenne.

Köszönöm.

Trefe
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2023.February.12. 13:58:26
Kerestem de nem találtam az "USING" használatát leíró dokumentumra.

Egyébként meg itt egy teszt program.
Title: Re: Általános BASIC Kérdések
Post by: gflorez on 2023.February.12. 18:01:56
A PRINT USING kapcsolatos információk az Alapvető kézikönyv 165. oldalán találhatók, IMAGE leírás.

-----

The information about PRINT USING is on Page 165 of the Basic manual, IMAGE description.
Title: Re: Általános BASIC Kérdések
Post by: gflorez on 2023.February.12. 19:02:47
Nem látom a problémát, sajnálom...   A formátum karakterláncot nem lehet csonkítani, a "Space" nem érvényes formátum karakter, így ha a formátum karakterlánc közepére teszed, akkor kettévágod.(A kézikönyvben van egy hiba, "," van a " " helyett.)

----

I don't see the problem, sorry...   The format string can't be truncated, a "Space" is not a valid format character, so if you put it in the middle of a format string you slice it in two.(There is an error in the manual, "," is instead of " ")

[attachimg=1]

Title: Re: Általános BASIC Kérdések
Post by: Trefe on 2023.February.12. 21:14:54
Köszönöm a válaszokat! Azt hiszem megoldódott.
Csak használni kellett a fejemet, amit már rég nem tettem... :-)

Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2023.September.08. 21:32:05
Biztos nagyon egyszerű a válasz a kérdésemre, de nem jövök rá. Hogy lehetne megírni ezt a programot, hogy az X1-nek a következő értékeket adja vissza, miután elindítjuk a programot?

1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1, 2, 3 ...

Tehát 1 és 6 között oda-vissza "léptesse" a számokat.

Code: [Select]
100 FOR A1=1 TO 40
110   IF A1<7 THEN LET X1=A1
120   IF A1>6 AND A1<11 THEN LET X1=....
130   IF ....
140   IF ....
....
200   PRINT X1
210 NEXT
Title: Re: Általános BASIC Kérdések
Post by: SlashNet on 2023.September.08. 22:01:09
Something this?

Code: [Select]
90 AD=1
95 A1=0
100 FOR I=1 TO 40
110   IF A1=6 THEN LET AD=-1
120   IF A1=1 THEN LET AD=1
130   A1=A1+AD
140   PRINT A1
150 NEXT I
Title: Re: Általános BASIC Kérdések
Post by: ergoGnomik on 2023.September.08. 22:05:29
Béna Commodore BASIC megoldás:
[attach=1]
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2023.September.08. 22:30:21
Köszi mindkét megoldást!
Thank you for both solutions!
Дякую за обидва рішення!
Title: Re: Általános BASIC Kérdések
Post by: ergoGnomik on 2023.September.09. 08:40:07
Nagyjából három perccel a hozzászólásom után rájöttem, hogy természetesen a két feltételt egybe kellett volna vonni egy IF utasításba vagy kapcsolattal és a mínusz eggyel szorzás helyett egyszerű negálást kellett volna írni.
Code: [Select]
IF(A<2ANDI<0)OR(A>5ANDI>0)THENI=-IReggelre meg megfogalmazódott bennem a kérdés, hogy egy PRINT utasításban karakterlánc literálként megadva a teljes sor mintáját nem lenne ez gyorsabb és kisebb memóriaigényű?
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2023.September.09. 09:00:45
nem lenne ez gyorsabb
A sebesség nem igazán számít, persze nem baj, ha nem kell perceket várni. PRINT utasításban karakterenként akarnék majd szöveget kiíratni attribútum lapra, minden karakter előtt átállítaná a színt, és hullámzó színátmenetek lennének a szövegben. A palettát persze úgy lőném be, hogy színátmenetes legyen. Minden egyes sor kiírása előtt a sor tartalmát átadná egy változónak, meghívná a színezős szövegkiírós részt. A Manhole játékba tervezek tenni ilyet is. A Speed Collectorban és a Dot turbóban is van ilyen a kijelzőkön. Lehet, hogy ezentúl minden basic programban kötelező lesz ez az extra.
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2023.September.10. 18:46:12
Lenne.

Alábbi összehasonlító progi.

4000 ciklus és a ráfordított idő.
Title: Re: Általános BASIC Kérdések
Post by: Tomato77 on 2023.September.14. 14:08:58
Lehet rövidebb kóddal benevezni? Valószínűleg nem gyorsabb, és az se biztos, hogy jó, mert EP-n nem próbáltam, de az elv az, hogy a számok tizenként ismétlődnek, így a ciklusszámlálót 10-zel osztva és annak maradékát véve mindig kiszámolható, hogy mit kell kiírni.
Code: [Select]
100 FOR I=0 TO 39
110   LET MARADEK=MOD(I,10)
120   PRINT 1 + MARADEK + (MARADEK>5)*((MARADEK-6)*2+1)
130 NEXT I
Ha jól emlékszem, a logikai IGEN és NEM értéke -1 és 0 IS-Basic-ben, a 120-as sorban a második plusz azért plusz. Ha a true értéke +1, akkor ott mínusz jel kellene. Ha lesz időm, otthon kijavítom, hogy tényleg fusson EP-n. :)
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2023.September.14. 21:18:50
Majdnem jó és majdnem gyors.

1 2 3 4 5 6 6 5 4 3 2 1 2 3 4 5 6 6 5 4 3 2 1

min 63 bájt

Az első variációhoz képest több mint 2x lassulás.

első min 103 bájt

3. min 66 bájt
Title: Re: Általános BASIC Kérdések
Post by: Tomato77 on 2023.September.15. 18:31:37
Kijavítottam és kipróbáltam, így jó:
Code: [Select]
100 FOR I=0 TO 39
110   LET MARADEK=MOD(I,10)
120   PRINT 1 + MARADEK + (MARADEK>5)*(MARADEK-5)*2;
130 NEXT I

Ahhoz képest, hogy a tegnapi gép nélkül készült, majdnem jó lett. :)

Sőt, így még rövidebb, de a MOD függvény többszöri használata miatt lassabb is:
Code: [Select]
100 FOR I=0 TO 39
110   PRINT 1 + MOD(I,10) + (MOD(I,10)>5)*(MOD(I,10)-5)*2;
120 NEXT I
Title: Re: Általános BASIC Kérdések
Post by: Ferro73 on 2023.September.15. 19:24:45
Jó, az első kb 2.4 szer lassabb míg a második kb 7.2 szer.

De legalább egy másik megközelítés.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2023.October.19. 23:57:42
Ilyen játékkal próbálkoztam, de nagyon primitív, az irányításra is nehezen reagál, a krapek is villog, és a karakteres pálya is nagyon béna. Először a falat rakja ki, utána töröl helyet rajta a kapunak, ez se túl szép, de van rá egy másik ötletem.
[attachurl=1]
[attachurl=2]
Aztán rájöttem, kb. a Baltazár, az űrszemetes egyik pályája (https://enterpriseforever.com/basic/baltazar-az-rszemetes-tovabbfejlesztese/) is ilyesmi, de az jobban néz ki, talán ezt kéne inkább továbbfejleszteni és valami mást kihozni belőle.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2024.February.15. 21:12:06
A két fájl miért nem ugyanaz? Az a.txt betöltve basibe furcsaság lesz, míg a he.txt normálisan működik. PC-n szerkesztgettem basic programot, eredetileg a he.txt-ben lévő volt, de idővel valamiért átalakult azzá, ami az a.txt-ben van. Hex editorban is látható a különbség, de "szabad szemmel" nem.
[attachurl=1]
[attachurl=2]
Title: Re: Általános BASIC Kérdések
Post by: Zozosoft on 2024.February.15. 21:48:01
UTF karakterkészlettel lett mentve. Mentsd vissza ANSI-ba, és akkor visszaváltozik.
Title: Re: Általános BASIC Kérdések
Post by: Tuby128 on 2024.February.17. 16:42:47
Ez egy nagyon érdekes dolog. Jegyzettömböt használok Win10 Pro/Enterprise verziókon, és egyszer abba estem bele, hogy nem tud már ANSI-ba menteni.
Win10-ben már alapból UTF-fel dolgozik a jegyzettömb, és annyira extrém lett a helyzet, hogy Ansi-ba mentettem de mégis UTF maradt.
Végül aztán Notepad++ végetvetett ennek a rémálomnak.
Kezd a windows arrafelé menni ami már nekem nem tetszik.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2024.February.17. 17:09:05
Jegyzettömböt használok Win10 Pro/Enterprise verziókon
Nekem Win 10 Pro van, és mentésnél át tudtam állítani ANSI-re a kódolást, újra jó lett, ahogy Zozo írta. Sima jegyzettömböt használok.

Egyébként a héten volt egy Win frissítés, és lehet, hogy ezzel lett alapértelmezett a nem ANSI-s kódolás.
A másik lehetőség, hogy a weboldalam beépített poszt-szerkesztőjével szerkesztettem a basic program listáját, és onnan jegyzettömbbe másolva állította be az UTF kódolást. (Munkahelyi gépre ugye nem lehet telepíteni emulátort, és a mailes melléklet küldése is le van tiltva, így mindezt kicselezve tudtam így szerkeszteni programot munka közben.)
Title: Re: Általános BASIC Kérdések
Post by: Lacika on 2024.February.17. 17:29:40
Én is tegnap, Win11 frissítés után másoltam Jegyzettömbből szöveg-file-ba FORTRAN programot gond nélkül :-)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2024.February.18. 17:43:29
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
Ennek a fordítottját meg lehet csinálni valahogy viszonylag egyszerűen?
Itt elsüllyesztettünk egy karaktert. Most az kéne, hogy a karakter kinőjön a földből.
Title: Re: Általános BASIC Kérdések
Post by: geco on 2024.February.19. 12:21:13
de, tedd be egy másik 9-es tömbbe, a karakter kilenc sorának értékét, C(1)-C(9) legyen 0, és a for ciklusban kezdd el feltölteni a karakter értékét a másik tömbből.
Code: [Select]
4210 NUMERIC C(9)
4215 NUMERIC CN(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
4220 CN(1)=0:CN(2)=0:CN(3)=0:CN(4)=0:CN(5)=0:CN(6)=0:CN(7)=0:CN(8)=0:C(9)=0
4230 FOR I=1 TO 9
4240   SET CHARACTER 0,CN(1),CN(2),CN(3),CN(4),Cn(5),CN(6),CN(7),CN(8),CN(9)
4250   FOR J=1 TO I
4260     CN(J)=C(9-I+J)
4270   NEXT J
4290 NEXT I
Title: Re: Általános BASIC Kérdések
Post by: BruceTanner on 2024.February.19. 18:38:50
de, tedd be egy másik 9-es tömbbe, a karakter kilenc sorának értékét, C(1)-C(9) legyen 0, és a for ciklusban kezdd el feltölteni a karakter értékét a másik tömbből.
Code: [Select]
4210 NUMERIC C(9)
4215 NUMERIC CN(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
4220 CN(1)=0:CN(2)=0:CN(3)=0:CN(4)=0:CN(5)=0:CN(6)=0:CN(7)=0:CN(8)=0:C(9)=0
4230 FOR I=1 TO 9
4240   SET CHARACTER 0,CN(1),CN(2),CN(3),CN(4),Cn(5),CN(6),CN(7),CN(8),CN(9)
4250   FOR J=1 TO I
4260     CN(J)=C(9-I+J)
4270   NEXT J
4290 NEXT I
Bug at the end of line 4220 :lol:
The second 4220! :lol: :lol:
Title: Re: Általános BASIC Kérdések
Post by: geco on 2024.February.19. 22:11:37
Bug at the end of line 4220 :lol:
The second 4220! :lol: :lol:
:lol:
Yes, I just edited the original code, and entered 2 typos :D

corrected:
Code: [Select]
4225 CN(1)=0:CN(2)=0:CN(3)=0:CN(4)=0:CN(5)=0:CN(6)=0:CN(7)=0:CN(8)=0:CN(9)=0
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2024.February.19. 22:32:38
Yes, I just edited the original code, and entered 2 typos :D
Csak a sorszám volt probléma? Más nem volt?
Was the problem only the line number? Nothing else?

Köszi az ötletet! Na, én ezért sem lennék programozó, mert az ilyen egyszerű dolgokat nem tudom megoldani.
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2024.February.20. 00:00:50
Csak a sorszám volt probléma? Más nem volt?
Most nézem, az utolsó CN végéről lemaradt az N, pótoltam.
A karakter nem alulról nő ki, hanem fölülről jön le. Ezt még meg tudnátok csinálni, hogy alulról nőjön ki?
Title: Re: Általános BASIC Kérdések
Post by: geco on 2024.February.20. 09:29:16
óóó persze, mert az 1. érték a teteje, és nem az alja :D
Persze
Title: Re: Általános BASIC Kérdések
Post by: geco on 2024.February.20. 09:39:21
Code: [Select]
4210 NUMERIC C(9)
4215 NUMERIC CN(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
4225 CN(1)=0:CN(2)=0:CN(3)=0:CN(4)=0:CN(5)=0:CN(6)=0:CN(7)=0:CN(8)=0:CN(9)=0
4230 FOR I=1 TO 9
4240   SET CHARACTER 0,CN(1),CN(2),CN(3),CN(4),CN(5),CN(6),CN(7),CN(8),CN(9)
4250   FOR J=1 TO I
4260     CN(9-I+J)=C(9-I+J)
4270   NEXT J
4290 NEXT I
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2024.February.20. 14:49:04
Persze
Köszi! :smt041
Biztos egyszerű az ilyeneket megcsinálni, de nekem semmi érzékem az ilyen programozáshoz...

És ha egyszerre úszna be alulról és fölülről is a karakter, ahhoz kellene még egy tömb, az lenne a CNN? :D (Erre már nincs szükség amúgy.)
Title: Re: Általános BASIC Kérdések
Post by: szipucsu on 2024.February.20. 16:55:09
óóó persze, mert az 1. érték a teteje, és nem az alja :D
Most nézem, ez kirajzolja a karaktert úgy, hogy először az alját rajzolja ki, és úgy megy felfelé pixelsoronként. Én arra gondoltam, hogy először a legteteje jelenik meg alul, az menne felfelé, és így a többi része is. Mint amikor pl. egy csatornából kidugja a fejét egy ember, aki beleesett. Most próba szerencse alapon átírtam ezt:

Code: [Select]
4260     CN(9-I+J)=C(9-I+J)
Erre:

Code: [Select]
4260     CN(9-I+J)=C(J)
És pont azt csinálja, amire gondoltam. Hogy miért, azt nem tudom, de a korábbi programrészben is csak J volt az egyik függvény értéktartományában:

Code: [Select]
4260     CN(J)=C(9-I+J)
Így gondoltam, beteszem ide is, és bejött.
Nem rossz, hogy ilyen sokféle karakterbeúsztató effektünk van már, ezeket fel lehetne használni demókban, játékokban.
Title: Re: Általános BASIC Kérdések
Post by: geco on 2024.February.20. 17:50:42
Igen, pont a kocsiban hazafelé jutott eszembe, hogy amit eredetileg írtam, az nem pont az, amire gondoltál, és ez kell helyette:

Code: [Select]
CN(9-I+J)=C(J)