Enterprise Forever

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

Title: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: gafz on 2006.August.15. 09:52:21
Nem lehet, hogy átugorja mindenképpen azt a 2. end if-et?
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: szipucsu on 2006.October.16. 18:05:28
Igazad van, Zozo, az EP memóriakezelésérõl halovány fogalmam sincs. :D A saját memóriám is megtréfál idõnként...

Archivációs tevékenységem folytatásához összedobtam egy progit basicben, ami elvileg orrvérzésig másol kazettáról floppyra, ezt most mellékelem.
Én nagyon szeretem úgy használni az EP-t, hogy még a tévét sem kapcsolom be hozzá, ezen igényemet igyexik kiszolgálni fergeteges alkotásom. Csalafinta módon kiolvassa a status sorból a file címét, megnézi, van-e már ilyen a floppyn, ha nincs, akkor lemásolja, meg ilyesmi.

A sebesség növelése érdekében bevetettem az OUT 191,12 és a POKE 56,201 nevû fegyvereket. Az utóbbi tiltja a megszakításokat, ezért van az egész progi egy WHEN blokkban, hogy ha balhé van, akkor elõbb állítsa vissza a megszakikat, utána balhézzon a gép, hogy ne hiába nyomogassuk a billentyûket ebben az esetben.
Valami plusz 5letetek nincs, amivel még gyorsabbá lehet tenni a progit? A PAUSÉknél kicsit sokat vár.

Tudom, még lehetne továbbfejleszteni, hogy pl. akkor is ellenõrizze, nincs-e ilyen fájl, ha újat adunk meg (ha mégis felül akarjuk írni, akkor sima ENTER-t kell nyomni), ill ha olyan file jön a magnóról, amiben pl. több . karakter is van, akkor is másolja le valami más néven a hibaüzi helyett. Talán majd egyszer azt is megcsinálom...

Szóval a sebességet lehetne még növelni? A Zzzip sajnos nem eszi meg ezt a progit...
Title: Re: BASIC
Post by: Zozosoft on 2006.October.16. 18:53:18
Quote from: "szipucsu"

Valami plusz 5letetek nincs, amivel még gyorsabbá lehet tenni a progit? A PAUSÉknél kicsit sokat vár.

Igen mert a COPY karakterenként olvas, ír, vagyis egy bájt átviteléhez roppant sok kód fut le...
Mindenképpen blokk mûveleteket érdemes használni. A magnó blokk mérete miatt mondjuk 4096 bájtos adagokban célszerû kezelni a cuccot, vagyis 4096 bájtot beolvasni az 1-es csatornáról, és aztán 4096-ot kiírni a 2-esre. Természetesen ha nem sikerült 4096 bájtot beolvasni, mert már nincs annyi a fájlban, akkor ki kell számolni mennyit sikerült, és annyit kell kiirni, majd kilépni a másolási cikklusból.
Sajnos erre nincs semmilyen Basic utasítás :-(
Így ezt egy pici gépi kódú betétben kell megirni (ALLOCATE :-) , CODE, CALL USR...).
Lõjem le a poént, vagy menni fog egyedül is? :-)
Title: Re: BASIC
Post by: szipucsu on 2006.October.16. 19:35:27
Quote from: "Zozosoft"

Lõjem le a poént, vagy menni fog egyedül is? :-)


Hát, a gépi kódú dolgokról annyi a fogalmam, mint a gép memóriakezelésérõl. Szóval ha nem túl nagy gond, megírnád, mit mire cseréljek ki a basic programomban? (Lehetõleg úgy, hogy az említett tervezett módosításokat is meg tudjam még utána csinálni, vagyis a fájlnevekkel idétlenkedést. Vagy ehhez újra kéne írni szinte az egész progit?)
Title: Re: BASIC
Post by: Zozosoft on 2006.October.16. 20:03:34
Hát elméletileg valami ilyesmirõl van szó...
Code: [Select]

                IN A,(0B1H)
                PUSH AF
                EXOS 24
                LD L,A
                LD A,C
                OUT (0B1H),A
                JR NZ,KILEP
MASOL           LD A,1
                LD DE,4000H
                LD BC,4096
                EXOS 6
                LD DE,4000H
                JR NZ,KILEP
                LD A,2
                LD BC,4096
                EXOS 8
                JR MASOL
                LD L,A
                PUSH HL
                LD HL,4096
                OR A
                SBC HL,BC
                PUSH HL
                POP BC
                POP HL
                LD A,C
                OR B
                JR Z,KILEP
                LD A,2
                EXOS 8
KILEP           LD A,1
                EXOS 3
                LD A,2
                EXOS 3
                IN A,(0B1H)
                LD C,A
                EXOS 25
                POP AF
                OUT (0B1H),A
                LD H,0
                RET
                END


Az Asmon (legalábbis az 1.5-ös) nagyon rendes hozzánk, ha ezt lefordítjuk 4-es fejléccel, akkor ezt kapjuk:
Code: [Select]
   1 ALLOCATE 80
    2 CODE M=HEX$("DB,B1,F5,F7,18,6F,79,D3")
    3 CODE =HEX$("B1,20,2B,3E,01,11,00,40")
    4 CODE =HEX$("01,00,10,F7,06,11,00,40")
    5 CODE =HEX$("20,1C,3E,02,01,00,10,F7")
    6 CODE =HEX$("08,18,E8,6F,E5,21,00,10")
    7 CODE =HEX$("B7,ED,42,E5,C1,E1,79,B0")
    8 CODE =HEX$("28,04,3E,02,F7,08,3E,01")
    9 CODE =HEX$("F7,03,3E,02,F7,03,DB,B1")
   10 CODE =HEX$("4F,F7,19,F1,D3,B1,26,00")
   11 CODE =HEX$("C9,00,00,00,00,00,00,00")


Így ezt már csak össze kell MERGE-zni az eredetivel, meg lecserélni a COPY-t a saját programunkra.
És aztán ki kéne próbálni, hogy azt csinálja-e amit gondolunk :-)
Title: Re: BASIC
Post by: Povi on 2006.October.16. 20:40:59
Quote from: "Zozosoft"
Az Asmon (legalábbis az 1.5-ös) nagyon rendes hozzánk, ha ezt lefordítjuk 4-es fejléccel, akkor ezt kapjuk:

Nem is tudtam, hogy az ASMON ilyet is tud!!! :shock:
Nagyon okos!
Title: Re: BASIC
Post by: Zozosoft on 2006.October.16. 20:45:49
Quote from: "Povi"
Nem is tudtam, hogy az ASMON ilyet is tud!!! :shock:
Nagyon okos!

Sejtettem, hogy neked tetszeni fog :-)
Title: Re: BASIC
Post by: szipucsu on 2006.October.17. 11:56:57
Quote from: Zozosoft
Így ezt már csak össze kell MERGE-zni az eredetivel, meg lecserélni a COPY-t a saját programunkra.
És aztán ki kéne próbálni, hogy azt csinálja-e amit gondolunk :-)


 :smt041  :smt041  :smt041  :smt041  :smt041  :smt041  :smt041  :smt041  :smt041  :smt041

 :mrgreen:  :smt006  :smt026  :smt023  :smt040  :smt039  :smt026
Title: Re: BASIC
Post by: Zozosoft on 2006.October.17. 13:35:50
Ez a nagy újjongás azt jelenti, hogy mûködik? :-)
Title: Re: BASIC
Post by: szipucsu on 2006.October.17. 21:03:45
Mûködik bizony!

Csak azt ne mondd, hogy te is a munkahelyeden dobtad össze a progit szabadidõdben:)
Title: Re: BASIC
Post by: Zozosoft on 2006.October.17. 21:23:03
Quote from: "szipucsu"
Csak azt ne mondd, hogy te is a munkahelyeden dobtad össze a progit szabadidõdben:)

Nem, ezt itthon, miközben vártam, hogy elkészüljön a vacsora :-)
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: Mayer Gábor on 2007.May.26. 10:41:52
hogy lehet két sztringet egybe fűzni?
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: nyuzga on 2008.November.27. 18:20:21
Hogy tudok az Emulátorból Basic programot TXT-be menteni? :?:
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: Zozosoft on 2008.November.27. 19:30:16
Tessék:
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: Zozosoft on 2009.December.30. 13:02:28
Nincs. CTRL+M használható Enter helyett (mivel az is CHR$(13))
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: nt75sw on 2010.November.06. 13:12:05
Üdv!

Basic programot lehet lefordítani binárisra?
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: szipucsu on 2011.July.16. 16:44:05
Létrás játék kezdeménye:

[attachmini=1]

[attachimg=2]
Title: Re: BASIC
Post by: Ep128 on 2011.July.16. 23:10:55
Ez utóbbit 30-40 "szobássá" fejleszthetnéd... :)
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: szipucsu on 2011.November.19. 14:49:15
Köszi!
Próbálkozom beépíteni valami játékba...
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: Povi on 2011.December.29. 13:44:55
Jó az akkor így, ahogy van?
igen
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: Povi on 2011.December.29. 18:06:19
De megeszi a Zzzip az ilyen ALLOCATE-HEX-es programokat?
Simán...
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: IstvanV on 2012.March.06. 16:15:49
Úgy látszik, késve, de itt egy egyszerű példa:

[attach=#]
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: Zozosoft on 2012.March.10. 21:53:31
De pont a LOAD / SAVE-re mondta Zozotools
Õ kicsoda?  :oops:
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: Lacika on 2012.March.11. 12:20:14
Õ kicsoda?  :oops:
Nyomdahiba...  :ds_icon_cheesygrin:
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: Zozosoft on 2012.March.11. 20:09:39
Mennyi az alapértéke a 191-es IO portnak?
4
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: IstvanV on 2012.March.26. 16:39:21
[attach=#]
Title: Re: BASIC
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: BASIC
Post by: Lacika on 2012.March.26. 17:04:36
(Attachment Link)

 :bow:
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: Zozosoft on 2012.March.29. 21:58:47
A sorbarendezõs kérdések hova tüntek innen?
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: Ferro73 on 2012.April.07. 11:22:18
TRN, CHEAT, SETUP  paraméterek BASIC programhoz?
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: Zozosoft on 2012.May.04. 21:44:25
A Reversi-Dáma-Awari csomagban lévõ a jó.
Title: Re: BASIC
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: BASIC
Post by: Lacika on 2012.July.06. 23:54:26
Vadonatúj Ep-s játék került a BASIC programcsokorba (http://www.ep128.hu/Ep_Games/Leiras/Basic_Program_Pack.htm), a címe: Limonádé  :ds_icon_cheesygrin:

Eredetileg az azonos címû C16-os BASIC programot akartam EP-re "átírni", de az olyan förtelmesen van megírva (GOTO, GOSUB hegyek...), hogy valóban érdemes megnézni elrettentõ példának. Így aztán inkább megírtam IS-BASIC-es módiban, "tüntetõleg" egyetlen GOTO és GOSUB nélkül...  :smt067
Egyébként még mindig élvezetes IS-BSIC programot írni: naponta 15-30 perc alatt megír az ember egy-egy eljárást, ezekbõl épül fel egy jófajta moduláris program. Van benne példa, hogy lehet használni HFONT ékezetes karaktereket, ha nincs EPDOS.
Title: Re: BASIC
Post by: Zozosoft on 2012.July.07. 08:45:48
Vadonatúj Ep-s játék került a BASIC programcsokorba (http://www.ep128.hu/Ep_Games/Leiras/Basic_Program_Pack.htm), a címe: Limonádé  :ds_icon_cheesygrin:
Aktuális  :ds_icon_cheesygrin:
Title: Re: BASIC
Post by: Zozosoft on 2012.July.07. 09:05:40
Jó a kezdeti toplista  :ds_icon_cheesygrin: :ds_icon_cheesygrin: :ds_icon_cheesygrin:
Title: Re: BASIC
Post by: Lacika on 2012.July.07. 09:09:28
Jó a kezdeti toplista  :ds_icon_cheesygrin: :ds_icon_cheesygrin: :ds_icon_cheesygrin:

A Diktátor toplistájából van, az meg az itteni, akkori hozzászólások "toplistából" :ds_icon_cheesygrin:
Tényleg, a pontszámtábla mentéses Diktátort is meg fogom csinálni, hogy menjen HFONT (EPFOS) nélkül.
Title: Re: BASIC
Post by: szipucsu on 2012.July.07. 12:18:13
Remélem, átutalják a számlámra a kb. 87 rugót. :D

[attachimg=#]

A sorok végén az "ékben" és "étékeben" feliratokat módosítani kellene.  :oops:

Érdekes, ahogy a HANDLER NINCSHFONT megnézi, van-e HFONT. Talán túl nagy jelentõsége nincs, mert ha van HFONT és akkor is átdefiniálná a karaktereket, akkor se történik semmi, max. 1 másodpercet vesz el feleslegesen. :D


Quote
2690 PRINT #102,AT 2,16:HET;". hét"

A sorszámot jelölõ pont elõtt kimarad egy szóköz kiíratásnál, ami rondán néz ki. Ezt így lehetne kiküszöbölni:

Code: [Select]
2690 PRINT #102,AT 2,17:STR$(HET)&". hét"
Ha minden igaz, 16 helyett 17-et kell írni, mert ha STR$-be alakítunk át, eltûnik az elõjel, ami numerikus változónál láthatatlan.

Kár, hogy vásárlás közben már nem láthatjtuk a hõmérsékletet.


UI.: A 720-as sorban is ugyanezt a változtatást kéne megcsinálni a HET változó környékén.

UI2: "A citromlé, cukor, víz ára 1%-al csökkent" - Nem %-al, hanem %-kal. A százalékjelet hasonló módon közelebb lehetne vinni az elõtte álló számhoz, mint a fent említett pontot.
Title: Re: BASIC
Post by: Lacika on 2012.July.07. 13:09:13
Érdekes, ahogy a HANDLER NINCSHFONT megnézi, van-e HFONT. Talán túl nagy jelentõsége nincs, mert ha van HFONT és akkor is átdefiniálná a karaktereket, akkor se történik semmi, max. 1 másodpercet vesz el feleslegesen. :D

Az nagyon rondán néz ki! A HFONT az egész karakterkészletet átdefiniálja, ugyanis az össze karakter lejjebb csúszik és kisebb lesz, hogy jobban elférjenek az ékezetek. Csinálj screenshot-ot EPDOS-os és EPDOS nélküli konfigból is, máshogy fognak kinézni a karakterek. (A HFONT karakterkészlet nekem jobban tetszik, mint az eredeti).
Title: Re: BASIC
Post by: Zozosoft on 2012.July.07. 13:11:56
A HFONT az egész karakterkészletet átdefiniálja, ugyanis az össze karakter lejjebb csúszik és kisebb lesz
Én pont ezért nem szeretem  :oops:
Title: Re: BASIC
Post by: Lacika on 2012.July.07. 13:24:50
Remélem, átutalják a számlámra a kb. 87 rugót. :D

Kérjen számlaszámot a program?  :ds_icon_cheesygrin:
Title: Re: BASIC
Post by: Lacika on 2012.July.07. 13:25:40
A sorok végén az "ékben" és "étékeben" feliratokat módosítani kellene.  :oops:

Javítottam!
Title: Re: BASIC
Post by: Lacika on 2012.July.07. 13:27:19
A sorszámot jelölõ pont elõtt kimarad egy szóköz kiíratásnál, ami rondán néz ki. Ezt így lehetne kiküszöbölni:

Code: [Select]
2690 PRINT #102,AT 2,17:STR$(HET)&". hét"

Ezzel igazából nem láttam értelmét foglalkozni...  :oops:
Ez vajon bug lehet? Más gépek BASIC-jében hogy mûködik ez?
Title: Re: BASIC
Post by: Lacika on 2012.July.07. 13:29:56
UI2: "A citromlé, cukor, víz ára 1%-al csökkent" - Nem %-al, hanem %-kal.

Úgy nem fért ki egy sorban...  :oops:
Title: Re: BASIC
Post by: Zozosoft on 2012.July.07. 13:31:03
Code: [Select]
2690 PRINT #102,AT 2,17:STR$(HET)&". hét"Erre igazából a PRINT USING lenne a szép megoldás, ha nincsenek 13 jegyû számok  :oops:
Title: Re: BASIC
Post by: Zozosoft on 2012.July.07. 13:32:27
Úgy nem fért ki egy sorban...  :oops:
42 karakteres videólap?
Title: Re: BASIC
Post by: Lacika on 2012.July.07. 13:45:35
42 karakteres videólap?

Igen.
"A citromlé, cukor, víz ára 5 %-al csökkent"
Ez pont 42 karakter.
Title: Re: BASIC
Post by: szipucsu on 2012.July.07. 15:58:00
Úgy nem fért ki egy sorban...  :oops:
Ezért lehetne, hogy a % elõtt ne maradjon ki szóköz! :)

A sok karakterdefiníció helyett egyszerûbb lenne külön fájlban tárolni a karakterek alakját és ezt töltené be a basic program némi HEX$ részekkel kiegészítve. Ehhez HANDLER sem kéne, mert pillanatok alatt betöltené, akár van EPDOS, akár nincs.
Szerintem a "lejjebb csúsztatott" karakterek jobbak lennének, mert van, hogy egy másik olyan karakter kerül fölé, ami "hozzáér" és az bénán néz ki. (Mármint nem ebben a programban, hanem általában elõfordulhat az ilyesmi.)
Title: Re: BASIC
Post by: szipucsu on 2012.July.07. 16:02:50
Még az fura a játék végén, hogy a "Forintot" egyszer kisbetûvel, egyszer nagybetûvel van.
Szebben hangzana egyébként az "X Forintot kerestél" a "Kerestél X Forintot" helyett.
És: "A családnak X Forinttal tartozol" vagy még jobb: "tartoztál", mert itt levonja a program és már nincs tartozás.
Ezért is lehet a végtelenségig fejleszteni egy programot, mert rengeteg apróságot lehet találni, amit még jobbá lehet tenni. :D
A grafikát hogyan csináltad? Saját?
Hangeffektek esetleg lehetnének.

"fkakon ásványvíz" helyett "flakon ásványvíz" kéne a játék végén.
Title: Re: BASIC
Post by: Lacika on 2012.July.07. 16:24:34
A játék végén kiírt üzeneteket javítottam.
Title: Re: BASIC
Post by: Lacika on 2012.July.07. 16:26:09
A grafikát hogyan csináltad? Saját?

Saját. Paintboxban rajzolgattam, majd utána kilestem belõle a koordinátákat, és beírtam a PLOT ... sorokba.
Ennyire volt türelmem, így is három délután kb. 1-1 órát szenvedtem vele.
Title: Re: BASIC
Post by: Lacika on 2012.July.07. 16:26:55
Hangeffektek esetleg lehetnének.

Lehetnének, ha valaki csinál...  :oops:
Title: Re: BASIC
Post by: Zozosoft on 2012.July.07. 16:45:47
Amikor rossz idõ van, egy felhõ eltakarhatná a napot :-)
Title: Re: BASIC
Post by: Lacika on 2012.July.07. 16:59:01
Amikor rossz idõ van, egy felhõ eltakarhatná a napot :-)

Ez benne is volt az eredeti elképzelésben.
Jó idõben strandfelszerelések, rossz idõben felhõ.
Talán majd lesz hozzá lelkierõm...  :oops:
Title: Re: BASIC
Post by: Lacika on 2012.July.07. 17:04:51
Remélem, átutalják a számlámra a kb. 87 rugót. :D

Ki éri el elsõnek az 500000 Ft-ot?
493214 Ft a rekordom eddig.
Title: Re: BASIC
Post by: Zozosoft on 2012.July.07. 17:07:40
Ki éri el elsõnek az 500000 Ft-ot?
493214 Ft a rekordom eddig.
Te helyzeti elõnyben vagy, mert tudod, hogyan dolgozik a program :-)

Egy ötlet még: ha elfogy a pénz, akkor lehessen még kunyerálni a családtól, ami aztán véletlenszerûen döl el, hogy adnak vagy se. Ha igen, akkor természetesen a végén többet kell visszaadni.
Title: Re: BASIC
Post by: Lacika on 2012.July.07. 18:21:23
Te helyzeti elõnyben vagy, mert tudod, hogyan dolgozik a program :-)

Egy ötlet még: ha elfogy a pénz, akkor lehessen még kunyerálni a családtól, ami aztán véletlenszerûen döl el, hogy adnak vagy se. Ha igen, akkor természetesen a végén többet kell visszaadni.

Igazság szerint ez inkább szerencsejáték. Sok múlik azon milyen az idõjárás, ami meg RND... Snapshot-okkal összejött 707464 Ft.
A képre még egy citromos flakont rajzoltam, de többre egyelõre nem lesz türelmem...  :oops:
Title: Re: BASIC
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: BASIC
Post by: szipucsu on 2012.July.07. 22:18:11
Az eddigi utolsó verzió a javításokkal a letöltéseknél? Ha ez megvan, csinálhatok bele hangeffekteket...
A grafika kifejezetten tetszik! Én pl. szerintem nem tudtam volna megcsinálni. :D

Mi számít "jó idõnek" és "rossz idõnek"?
Title: Re: BASIC
Post by: Zozosoft on 2012.July.07. 22:36:23
Mi számít "jó idõnek" és "rossz idõnek"?
Tapasztalataim szerint 30 fok felett indul be a biznisz :-)
Azt egyébként jól látom, hogy hétvégére extra forgalmat generál?b
Title: Re: BASIC
Post by: Lacika on 2012.July.07. 22:39:32
Azt egyébként jól látom, hogy hétvégére extra forgalmat generál?b

Igen.
Title: Re: BASIC
Post by: Lacika on 2012.July.07. 22:40:54
Az eddigi utolsó verzió a javításokkal a letöltéseknél?

Igen.
Ehhez vajon milyen hangokat lehet csinálni...?  :ds_icon_cheesygrin:
Kasszacsörgés hangot lehet csinálni a Dave-vel?
Title: Re: BASIC
Post by: Lacika on 2012.July.07. 22:44:07
Nézzétek meg a C16-os verzió programlistáját.
http://plus4world.powweb.com/games.php?l=L&cols=&icons=

Ilyen borzasztót még Commodore programlistában nem láttam, pedig ez még nem is C64-es Basic...
Title: Re: BASIC
Post by: szipucsu on 2012.July.08. 14:04:05
Ehhez vajon milyen hangokat lehet csinálni...?  :ds_icon_cheesygrin:
Kasszacsörgés hangot lehet csinálni a Dave-vel?
Kasszacsörgést nem tudom. De pl. a beírt értékek függvényében változhatna a hangmagasság, eladáskor is pedig az ottani értékek határoznák meg a PITCH értéket, és mindegyik árufajtához más envelope tartozhatna.
Vagy: az áruk mennyisége után leütött ENTER-nél is olyan hangmagasság szólhatna, ami az adott árufajtához tartozik, pl. a citromléhez 37, a cukorhoz, 41, az ásványvízhez 42, a poharakhoz 44 PITCH érték ENTER megnyomására. Vagy pl. 37, 41, 44, 49 PITCH értékek. Tipikus egyszerû megoldás, hogy pl. 30, 40, 50, 60 PITCH értékeket használnak, ami elég bénán hangzik (ilyen van pl. a 4-es játékban), mert a 10-es különbség a hangok PITCH értéke között egy olyan hangköz, ami a zenében is a lehetõ legritkábban fordul elõ.
Ha a cukor stb. ára nem változik, szólhatna rövid dallam. Ha nõ vagy csökken az ára, a százalék függvényében szólhatna olyan hang, aminek az envelope-ja úgy van beállítva, hogy a hangmagasság a százaléktól függõen emelkedjen vagy ereszkedjen.
Az "alacsony" és "magas" hõmérsékletekhez is tartozhatna valami rövidke dallam.
Title: Re: BASIC
Post by: Lacika on 2012.July.08. 17:58:59
Elkészült az idõjárási viszonyoktól függõ látványt nyújtó verzió.  :ds_icon_cheesygrin:
29 fok felett más kép van.
Title: Re: BASIC
Post by: Zozosoft on 2012.July.08. 18:18:42
Elkészült az idõjárási viszonyoktól függõ látványt nyújtó verzió.  :ds_icon_cheesygrin:
29 fok felett más kép van.

 :smt038 :smt038 :smt038
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: Tuby128 on 2012.October.25. 19:52:34
És ha nem 101-es csatorna, hanem mondjuk 2-es?
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: Tuby128 on 2012.December.03. 21:41:07
Az F5 (TEXT) mindig segít videólapokat bezárni.
Title: Re: BASIC
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: BASIC
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: BASIC
Post by: Lacika on 2012.December.04. 19:58:43
Rosetta Code (http://rosettacode.org/wiki/Animate_a_pendulum)-os feladat.
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: Lacika on 2012.December.15. 09:45:47
Abszolút "hiánypótló" program... :ds_icon_cheesygrin:
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: endi on 2013.August.10. 19:57:35
graphics
run 3190

és kirajzol egy új pályát :)
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: geco on 2013.October.29. 23:54:13
Ez nagyon jó, alt+w-vel :D
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: Zozosoft on 2013.November.01. 17:13:57
Hogy tudtok bírtok ilyeneket kitalálni?
Title: Re: BASIC
Post by: endi on 2013.November.01. 17:25:47
na itt egy új, az új ORKSOFT DEMÓÓÓ!!!! :D
Title: Re: BASIC
Post by: endi on 2013.November.01. 18:37:48
worm1, worm2
Title: Re: BASIC
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: BASIC
Post by: Lacika on 2013.November.01. 23:25:35
Kis "optikai tuning".
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: endi on 2013.November.03. 15:29:06
itt egy új robbanás, szerintem állat :)
Title: Re: BASIC
Post by: geco on 2013.November.03. 20:44:19
jó lett :)
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: GUS on 2013.December.08. 19:54:20
Protect: Igen. Egyik megoldásként, én is valami ilyesmire gondoltam. Gratula.
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: Z80System on 2014.July.06. 13:56:10
Hááát ... nekem nem ment ... :)
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: geco on 2014.July.08. 12:53:11
Műxik, itt a példa :)
Title: Re: BASIC
Post by: Zozosoft on 2014.July.08. 13:04:46
És ha a karakterkódhoz +128-at adunk, akkor piros lesz.
Title: Re: BASIC
Post by: szipucsu on 2014.July.08. 18:21:02
Ez nagyon király, köszi mindenkinek!
Title: Re: BASIC
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: BASIC
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: BASIC
Post by: Zozosoft on 2014.August.06. 10:24:14
0-ás szegmens D385h :-)
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: endi on 2014.August.23. 22:04:19
itt a final basic, szóval ami nem zzzzippelt
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: Z80System on 2014.September.12. 01:24:40
Megoldottam inkább exception kezeléssel ...
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: Zozosoft on 2014.October.02. 09:24:27
Megelőzöm Endit :-)
EP-n erre ott a Basic Plus.
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: Z80System on 2014.October.02. 20:33:27
Egen ... csak egy iciripicirit lenne gyorsabb a scroll -ja ....
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: endi on 2014.October.24. 12:56:05
esetleg:
set cursor character 32

de van set cursor off is
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: Zozosoft on 2014.November.05. 21:28:01
SPOKE/SPEEK, abban csak 16383 a max ami kell.
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: endi on 2014.November.20. 22:30:13
aha értem, köszi
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: szipucsu on 2014.December.19. 21:46:33
aki akarja folytassa :)
Kegyetlen értelmes lett...
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: endi on 2015.February.05. 00:11:51
itt az első eredmény :)
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: endi on 2015.February.05. 22:38:18
na már nem lehet belemenni a falba
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: endi on 2015.February.08. 14:58:49
hát ehhez én se értek, de remélem valaki...
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: endi on 2015.February.08. 22:52:57
semmi lényegi fejlődés, elszórakoztam a grafikával :)
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: endi on 2015.February.10. 10:09:33
sőt, van BOR is :)
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: endi on 2015.February.10. 11:40:17
mi az a REM? :D
Title: Re: BASIC
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: BASIC
Post by: Zozosoft on 2015.February.10. 11:46:57
mi az a REM? :D
Remainder azaz maradék.
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: endi on 2015.February.10. 23:19:18
futtassátok többször
tényleg érdekes :D
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: endi on 2015.February.11. 09:52:42
jó de milyen haszna van ennek a tanuláson kívül? :)
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: SlashNet on 2015.February.11. 19:41:56
http://bob-bishop.awardspace.com/Maze/index.html
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: endi on 2015.February.16. 01:12:03
hm nincs xor basicben? :(
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: Zozosoft on 2015.February.16. 20:46:12
Nick portok csak írhatóak.
Title: Re: BASIC
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: BASIC
Post by: endi on 2015.February.17. 19:34:57
poke-al memória feltöltés teszt zippelve
Title: Re: BASIC
Post by: geco on 2015.February.17. 20:01:17
Így tök gyors lett, mennyivel volt lassabb a sima basic?
Title: Re: BASIC
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: BASIC
Post by: endi on 2015.February.18. 23:35:38
egy effekt ami sajnos csak max emu sebességen (kb 3000%) élvezhető
Title: Re: BASIC
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: BASIC
Post by: endi on 2015.February.19. 18:57:15
hú ez most sokat gyorsult :)
a kirajzolás is
Title: Re: BASIC
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: BASIC
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: BASIC
Post by: Zozosoft on 2015.May.03. 22:33:09
Igen. A második szám a HL-be átadott paraméter.
Title: Re: BASIC
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: BASIC
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: BASIC
Post by: Tuby128 on 2015.May.04. 09:49:05
Értem, tehát az X maximalizálva van 16383-ban.
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: szipucsu on 2015.August.02. 18:01:44
de, pont ez volt
Pont ez nem volt.
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: pear on 2015.August.19. 20:44:43
4x3x1=12
Title: Re: BASIC
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: BASIC
Post by: szipucsu on 2015.August.22. 19:06:26
persze angol tanulásnak kiváló volt!
Pl. pitch = árok. :D
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: endi on 2015.September.27. 14:25:53
itt egy jobb, már 8 sávos
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: Lacika on 2015.October.11. 10:16:11
Igen.
LET N0=INT(N0+.5)
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: endi on 2015.October.26. 13:25:16
aha jó ötlet volt, csak a színeket kéne belőni :)
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: ergoGnomik on 2015.October.28. 09:53:51
Ez így már majdnem Laser Squad. :ds_icon_cheesygrin:
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: endi on 2015.October.28. 20:26:23
elvileg ha escape szekvenciákat gépelnél, hangot is tudna adni :)
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: endi on 2015.December.05. 18:08:13
ez vicces :)
Title: Re: BASIC
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: BASIC
Post by: SlashNet on 2015.December.08. 12:48:49
Who can prompt me how to hide video channel from the screen (without closing)?

To show channel: DISPLAY....
But how to hide?
Title: Re: BASIC
Post by: endi on 2015.December.08. 12:50:28
Who can prompt me how to hide video channel from the screen (without closing)?

To show channel: DISPLAY....
But how to hide?

as i know it is not possible. you must make an other empty channel and display it
Title: Re: BASIC
Post by: Zozosoft on 2015.December.08. 12:56:39
But how to hide?
DISPLAY #x:FROM 0
Title: Re: BASIC
Post by: szipucsu on 2015.December.08. 13:02:00
But how to hide?
You can display another video channel at the same position, that overlies the screen you do not want to show.
Title: Re: BASIC
Post by: SlashNet on 2015.December.08. 13:14:03
DISPLAY #x:FROM 0
That line has interesting effect: all open videochannels was closed. Useful, but not in my case...

You can display another video channel at the same position, that overlies the screen you do not want to show.
Now I use that method, but I thought it can be done in more native way.


Thanks!
Title: Re: BASIC
Post by: Zozosoft on 2015.December.08. 13:20:36
That line has interesting effect: all open videochannels was closed.
Not closed, just hidden.

Quote
Useful, but not in my case...
Enter more parameters, for example:
DISPLAY #101:AT 5 FROM 0 TO 2
Title: Re: BASIC
Post by: endi on 2015.December.08. 13:43:47
DISPLAY #x:FROM 0

wow :)
Title: Re: BASIC
Post by: SlashNet on 2015.December.08. 14:13:21
Not closed, just hidden.
Yes, hidden. My mistake.:oops:

Title: Re: BASIC
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: BASIC
Post by: IstvanV on 2015.December.27. 19:45:02
INT(x/10)*10, vagy x-MOD(x,10)
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: endi on 2016.January.07. 20:00:27
na ez hamar meglett. :)
bár én valami szebbre/jobbra emlékeztem
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: endi on 2016.January.08. 18:16:08
most már ne folytassa senki mert én írom tovább :)
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: IstvanV on 2016.January.08. 20:17:49
és mi lesz az epilepsziásokkal ? :D

[attachthumb=1]
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: Zozosoft on 2016.January.08. 21:26:39
Ez nagyon jó!
Title: Re: BASIC
Post by: Ep128 on 2016.January.08. 22:04:52
Nagyon tetszik! :-)
Title: Re: BASIC
Post by: endi on 2016.January.08. 22:33:59
na mára még egy, hangok sokat dobnak rajta :)
Title: Re: BASIC
Post by: gflorez on 2016.January.08. 22:36:22
"Legszebb és nagyon játszható."(google translator...)
Title: Re: BASIC
Post by: gflorez on 2016.January.08. 22:43:05
"Jó az egy összeállítás a kis játékok"
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: nyuzga on 2016.January.09. 20:02:40
Jó lett. :)

Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: Zozosoft on 2016.January.11. 16:41:44
SAVE ALL
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: geco on 2016.February.06. 11:38:55
jó ötlet :)
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: endi on 2016.April.02. 23:00:37
egy kis primitív effekt :)
persze gyorsított emuval kell indítani
Title: Re: BASIC
Post by: endi on 2016.April.02. 23:12:42
paletta animmal
(a kirajzolásból gombnyomással kell kilépni)
Title: Re: BASIC
Post by: Ep128 on 2016.April.03. 00:19:51
Tetszik! :-)
Title: Re: BASIC
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: BASIC
Post by: Zozosoft on 2016.April.04. 14:28:52
Egy BIAS van a Nick-ben.
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: endi on 2016.April.30. 23:12:04
jónak tűnik zippelve
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: geco on 2016.May.04. 08:40:02
Jó :) , jó a sebesség, és teccik az anim is :)
Title: Re: BASIC
Post by: ergoGnomik on 2016.May.04. 09:10:35
Cool. 454
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: endi on 2016.May.12. 18:40:18
izometrik labirintus rajzoló :)
valamire talán jó lesz majd
Title: Re: BASIC
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: BASIC
Post by: endi on 2016.May.28. 20:37:21
lacinak
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: Zozosoft on 2016.June.05. 14:47:13
Akkor azokat a dolgokat rakd az ELSE ágba.
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: lgb on 2016.November.18. 18:43:08
djnz ha jól emlékszem

Az DJNZ es nem FOR :) :) :) :)
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: Lacika on 2016.November.28. 13:37:13
CLICK hangot hogy kell programból kiadni? (Ep64 kompatibilis módon.)
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: gflorez on 2016.December.07. 08:24:52
Better add this line:     895 SET 180,101 ! set target graphics channel
Title: Re: BASIC
Post by: gflorez on 2016.December.07. 08:41:35
And: 896 SET 189,4 ! EnterMice control
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: endi on 2017.May.02. 23:19:36
másik
Title: Re: BASIC
Post by: endi on 2017.May.03. 00:37:48
ez a legjobb :)
Title: Re: BASIC
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: BASIC
Post by: Zozosoft on 2017.May.03. 16:24:26
Tök jók!
Title: Re: BASIC
Post by: IstvanV on 2017.May.03. 16:26:39
Ez ugyan nem Basic, de hasonló effektus:
[attachurl=1]
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: endi on 2017.June.29. 12:28:42
ja itt egy olyan hogy kicsit dölt, kicsit lukas :)
Title: Re: BASIC
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: BASIC
Post by: endi on 2017.June.29. 14:24:00
ez egy összenyomja, még talán olvasható is
Title: Re: BASIC
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: BASIC
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: BASIC
Post by: endi on 2017.June.29. 22:01:51
haha viccesek
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: endi on 2017.July.06. 00:13:34
na még egy :)
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: endi on 2017.July.09. 12:02:35
vízszintes, egyszerű margó állításokkal :)
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: endi on 2017.July.15. 17:50:32
na de ez má túl hosszú :)
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: IstvanV on 2017.July.16. 15:22:32
Adáskimaradás:

[attachurl=1]
Title: Re: BASIC
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: BASIC
Post by: gflorez on 2017.July.16. 16:43:00
Természetesen a zaj....
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: endi on 2017.August.16. 11:28:10
na ja a nagyobb sorszám jogos
a többi nem teljesen :)
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: endi on 2017.August.20. 16:25:07
na ez vicces :)
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: Zozosoft on 2017.October.15. 18:32:07
Én úgy tippelem akkor, ha az o$ hossza nem 1-9.
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: Lacika on 2017.December.16. 19:07:42
Itt egy kis tesztelni való. Hátha valaki teljesítei tudja... :)
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: IstvanV on 2018.April.07. 18:45:59
[attachurl=1]
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: Lacika on 2018.October.21. 18:54:41
Újabb haszontalan program: bankkártyaszám ellenőrző.
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
Post by: endi on 2018.October.24. 19:51:31
és tényleg :)
Title: Re: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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: BASIC
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