Enterprise Forever

:HUN => Emulátorok => Topic started by: Tuby128 on 2011.March.08. 04:50:01

Title: Pseudo IS-BASIC
Post by: Tuby128 on 2011.March.08. 04:50:01
Csináltam magamnak egy ál IS-Basic-et Windowsra. Basic-et ugyan nem tud, de olyan mintha. Én csak szövegszerkesztésre használom.
Két dolgot implementáltam bele az F5 és F8 billentyûket.
(Szipucsu neked ajánlom az F9-et)

Akit érdekel, próbálja ki.
Innen lehet (http://ep4ever.org/dlattach.html;topic=358.0;attach=6523) letölteni.

ui: Nézzétek meg, hogy minden karakter egyforma szélességû-e, mert ha nem, akkor lehet hogy nincs telepítve a fidexsys karaktertípus a windowsban.
Title: Re: Pseudo IS-BASIC
Post by: vizor on 2011.March.08. 18:18:18
Szép. A vágólapon kívül nem találtam mentési lehetõséget. Stílusos lenne, ha F1-el töltési/mentési lehetõség lenne és az is ha a ":help"-re reagálna egy kis segítséggel.  :) Visual C++ ? Az exe méretébõl következtetve...
Title: Re: Pseudo IS-BASIC
Post by: szipucsu on 2011.March.08. 18:25:31
(Szipucsu neked ajánlom az F9-et)
Óh, ezt igazán nem kellett volna...  :oops: Még elbízom magam. :D
Elõször azt hittem, write only üzemmódba fog váltani F9-re.
Title: Re: Pseudo IS-BASIC
Post by: Zozosoft on 2011.March.08. 23:26:31
 :ds_icon_cheesygrin: :ds_icon_cheesygrin: :ds_icon_cheesygrin:
Title: Re: Pseudo IS-BASIC
Post by: Tuby128 on 2011.March.09. 09:41:38
Az alkalmazás struktúrált-C nyelven íródott, beépített WINDOWS fügvények közvetlen meghívásával. A szerkesztõ-fordítóm pedig a DEV-CPP volt. Ingyenesen letölthetõ pár megás nyitott forrású program.

Ha érdekel valakit, akkor elmondom, hogy létrehoztam egy ablakot, amiben csináltam egy Rich-Edit (szövegszerkesztõ) dobozt. Nem tudom mennyire ismeritek a Rich-edit lehetõségeit, de pl. támogatja a különleges háttérszínt, és a mindenféle betûszínt, akár betûnként eltérõt is.
Összehasonlításként, egy jegyzettömb csak olyan hátterû tud lenni, mint ami a Windowsban standard háttérnek be van állítva. Ez a legtöbb esetben fehér. Ez EP ellenes.
 Még nem jöttem rá, hogy ebben a Rich-Edit-ben, hogyan kell szöveget úgy betenni, hogy az IS-BASIC felirat piros legyen, de már dolgozom rajta.
 A teli piros kurzort felejtsétek el, mert a windows beépített szövegszerkesztõk egyike sem támogatja a kurzor kinézetének változtatását, külön szövegszerkesztõ alkalmazást meg nem írok neki, mert nem éri meg azt a sok munkát.

 Ha valaki gondolja tehetek be még extra funkciókat, de BASIC interpretert nem tudok csinálni, mert soha nem fog elkészülni.
 Az a baj, hogy a legtöbb funkcióbillentyû nem igazán kell PC-re. Tehát pl: Toggle REM1, Toggle KEY CLICK
Pseudo (azaz ál) IS-BASIC esetén a START, LIST, AUTO is kiesik.
Talán még annyit tudnék, hogy programokat lehessen írni, tehát sorszám meg parancsok, talán még listázni is lehetne õket, elmenteni/betölteni de már a végrehajtás az nagyon nehézkes és idõt nem kímélõ válalkozás lenne.


(Én az ÚTÁLJUK AZ OBJEKTUM ORIENTÁLT NYELVEKET klub tagja vagyok. Azt vallom, hogy mindent meg lehet csinálni struktúrált C-ben. Az ObjektumOrientált szemlélet elõtt is volt élet, és igen jó programok készültek.)
Title: Re: Pseudo IS-BASIC
Post by: MrPrise on 2011.March.09. 10:01:16
(Én az ÚTÁLJUK AZ OBJEKTUM ORIENTÁLT NYELVEKET klub tagja vagyok. Azt vallom, hogy mindent meg lehet csinálni struktúrált C-ben. Az ObjektumOrientált szemlélet elõtt is volt élet, és igen jó programok készültek.)
Ez a kijelentés, akár flameindító is lehetne ;-) A magam részéről, nem akarok veled vitatkozni, meggyőzni meg pláne.
Persze, hogy meg lehet csinálni, de azért nem mindegy, hogy mennyi munkával és hogyan. Manapság pedig az egyik legfontosabb szempont, hogy mennyi idő (=pénz) egy alkalmazás fejlesztése. Nyílván, hobbi projekt esetén, azt használ az ember, amit akar.
Ha mondjuk olyan programot kellene írnod sima C-ben, amit objektumokkal sokkal egyszerűbb lenne, akkor azon fogod magad észrevenni, hogy osztályok helyett struct-okat és mutatókat kezdesz el használni és gyakorlatilag megcsinálod a C++ objektumkezelését saját kóddal, ami viszont ritkán lesz elsőre annyira kiforrott mint a C++-é. Nem azt mondom, hogy a C++ tökéletes, sőt. Érdemes megnézni a D nyelvet, ha már itt járunk. Nekem nagyon szimpatikus, de még nem jutottam odáig, hogy komolyabban foglalkozzak vele.
A fentebb vázolt, fából vaskarikát megoldásra jó példa a GTK GObject-je, ami C-ben valósít meg objecktumokat.
Alapvetően én sem kedvelem a C++-t, de én inkább úgy vagyok, hogy az adott feladatot a legmegfelelőbb eszközzel oldjuk meg ha lehet.
Title: Re: Pseudo IS-BASIC
Post by: Zozosoft on 2011.March.09. 10:07:34
(Én az ÚTÁLJUK AZ OBJEKTUM ORIENTÁLT NYELVEKET klub tagja vagyok. Azt vallom, hogy mindent meg lehet csinálni struktúrált C-ben. Az ObjektumOrientált szemlélet elõtt is volt élet, és igen jó programok készültek.)
Sõt akkor még készültek jó programok! Ma meg már csak bazi nagy, lassú, memória zabáló dögök :-(
Title: Re: Pseudo IS-BASIC
Post by: MrPrise on 2011.March.09. 10:17:49
Sõt akkor még készültek jó programok! Ma meg már csak bazi nagy, lassú, memória zabáló dögök :-(
Erről elsősorban nem a programnyelvek tehetnek.
Csak egy példa: Ott a PS3, amiben 256+256MB memória van csak (rendszer és video). Ennek ellenére meg lehet nézni milyen játékok készülnek rá.
Gran Turismo 5, God of War 3, Killzone 3. De főleg az olyan játékoknál szembetűnőbb a különbség amelyek PC-re is megjelentek. Pl. Mass Effect 2 jut eszembe most. PC-n ugye alapkövetelmény az 1GB RAM XP alatt, Vista/Win7 alatt a 2GB. Ok, nyílván PS3-on nem windows van (szerencsére ;-)) aminek a nagyobb memóriaigény részben köszönhető.
Na, csak azt akartam kihozni ebből, hogy ha muszáj, akkor tudnának ma is kevés RAM-ot használó programokat csinálni. Ennek viszont nem örülnének a HW gyártók.
Title: Re: Pseudo IS-BASIC
Post by: Tuby128 on 2011.March.09. 10:20:15
...hanem a virtuális gépek, de azok a TE védelmedben vannak.

Visszatérve MR.Prise mit szólsz a programocskához. Próbáltad?
Title: Re: Pseudo IS-BASIC
Post by: lgb on 2011.March.09. 12:12:34
(Én az ÚTÁLJUK AZ OBJEKTUM ORIENTÁLT NYELVEKET klub tagja vagyok. Azt vallom, hogy mindent meg lehet csinálni struktúrált C-ben. Az ObjektumOrientált szemlélet elõtt is volt élet, és igen jó programok készültek.)

Ez erdekes felvetes, mert mindent mindenben meg lehet csinalni, ami turing-teljes nyelv, de ilyen elven akkor nem is szabadna tobb programozasi nyelvnek lenni, mondjuk legyen csak assembly, hiszen mindent meg lehet vele csinalni, minek akkor tobb nyelv? Pont azert kell, mert mas a filozofia, logika, szintaxis, stb, van amit itt egyszerubb megcsinalni, van amit ott. Az OOP hivei is irhatnak, hogy mindent meg lehet csinalni OOP-ben, minek akkor a proceduralis nyelv egyaltalan? :) Ettol fuggetlenul en sem vagyok OOP parti, foleg, ha tuleroltetik, es eppen nincs is igazan ra szukseg, en azt mondom, hogy mindig a feladathoz legmegfelelobb eszkot kell valasztani, de olyan nem letezik, hogy egy eszkoz "barmire jo", az altalaban hazusag.
Title: Re: Pseudo IS-BASIC
Post by: Tuby128 on 2011.March.17. 10:11:15
Valaki használja ezt a programocskát?
Title: Re: Pseudo IS-BASIC
Post by: szipucsu on 2011.March.17. 17:19:56
Valaki használja ezt a programocskát?
Úgy érdekesnek érdekes, csak még nem volt számomra gyakorlati haszna.  :oops: (Még ha esetleg önbizalom-hiányos állapotomban az F9-et nyomkodom. :D )
Ha lehetne pl. programokat listázni, szerkeszteni benne, a lista teteje nem tûnne el és mondjuk az egeret is lehetne kurzor helyett használni, akkor egész használható lenne.
De egyébként nem lenne egyszerûbb egy EP emulátort "lebutítani"?
Title: Re: Pseudo IS-BASIC
Post by: Tuby128 on 2012.September.01. 00:04:11
Helló!

 Mostanában sokat programozok Windows-ban, mert vannak saját projektjeim, és ennek keretén belül eltanultam egy-két újdonságot. Ezen felbuzdulva készítettem egy újabb PSEUDO IS-BASIC-et. Elsõsorban WIN-XP-n használtam, így nem tudom megmondani, hogy más OP rendszeren hogyan fut.
 Az újításom a felülírhatatlan status sor illetve a tejes képernyõs mód használata. A programból az ALT+F4-gyel lehet kilépni, de az ALT+TAB is használható.
 Az IS-BASIC funkciók közt most csak az F5 mûködik.

Az a bajom egyébként, hogy a Windows-os Edit-kontrol, amit mint EDITOR használok alapvetõen INSERT módban mûködik (értsd a kurzor szövegíráskor tolja maga elõtt a betûket), az EP alapból pedig OVERWRITE módban ment (felülírta a karaktert amin rajta állt). Sajnos alap Edit-kontrolnál nincs ez az opció. Továbbá az EP-nél a kurzorral be lehetett járni a képernyõt, a WIN esetében csak addig lehet menni, amíg szöveg vagy space karakter jelen van.
 Másik probléma INSERT módban, ha a programsor felénél nyom az ember egy ENTER-t, akkor a másik felét a következõ sorba viszi. Ehhez kell írnom egy rutint, ami kezeli az ENTER gomb lenyomását, és ilyenkor nem engedi az eredeti enter-kezelést érvényesülni. Nade ehhez meg kell találni a következõ sor elejét, és oda pozicionálni a kurzort.
 Piros teli kurzorral sajnos nem tudok szolgálni, mert nagyon-nagyon nehéz megcsinálni. Ugyan a windows engedi, hogy bármilyen bitképet kirajzoljak kurzorként, de abban már nem segít, hogy milyen pozícióba tegyem. Ehhez akkor a mindenkori karaktermérethez kellene alkalmazkodni, és számolgatni, hogy a sorban hanyadik karakternél járunk...
 A legfontosabb hiányosság pedig, hogy nagyon trükkösen lehet lekérdezni a kurzor helyét. Emiatt nehezen tudom implementálni pl. az AUTO utasítás után kiadott eseményeket.
 Kíváncsi lennék, ha elkészülne az interpreterem milyen gyorsan futtatná le a Tippek-Trükkök könyv almaemberkét rajzoló programját. (Kétprocesszoros Pentium 3-asom van, de ez is fantasztikus sebességgel rajzolja tele görbékkel a képernyõt)

 Még valami: A mostani Pseudo IS-BASIC editorja limitálva van 64kb-ban. Ez alap Windows beállítás. Nincs hibajelzés, csak nem enged többet írni.
Próbáljátok ki!
Title: Re: Pseudo IS-BASIC
Post by: Tuby128 on 2014.February.28. 14:56:27
Kedves Fórumozók!

 Újra nekikezdtem az Intelligent Software Editorjárnak. Szakítottam a régi Windows-os editorral. Figyelembe vettem, hogy az EP editora hogyan működik, és az alapján írtam meg.
 Még tengernyi dolog hiányzik, de az már siker, hogy a nyílbillentyűkkel lehet navigálni és bárhova karaktert elhelyezni. A backspace és a delete is működik EP-sen.
 Próbáljátok ki! Érdekelne a véleményetek.

ui: Lehet hogy kilépéskor "elszáll" hibás memóriahivatkozás miatt, de ez betudható, hogy még alfa előtti verzióról van szó :)

 Apropó jobb oldalt a számok a kurzor x,y koordinátái, ez amolyan debug info. A fehér vonal pedig a margó.
Title: Re: Pseudo IS-BASIC
Post by: geco on 2014.February.28. 16:41:08
Kipróbáltam, tök jól néz ki, a kurzor a nyilakra jól mozog, a CTRL/SHIFT+nyílat hiányolom, és a sor végén működik másképp, mint ep-n.
Title: Re: Pseudo IS-BASIC
Post by: Tuby128 on 2014.February.28. 18:07:02
Köszönöm a visszajelzést!
Igen, még van néhány gyermekbetegség. Pl. a nyílbillentyűket és a delete gombokat ascii karakterként dolgozza fel, emiatt a pont lenyomva deleteként működik, de majd javítani fogom.
 Végül úgy oldottam meg a memóriát, hogy feltöltöttem szóközökkel, és minden koordiátán így szóköz van. Az enter lenyomása nem helyez el CHR$(13)-at hanem hagy mindent úgy ahogy van, és a kurzor a következő sorra ugrik. Így ha szövegfájlkét el akarnám menteni a képet, és megnyitnám jegyzettömbbel, akkor egy nagyon hosszú sort kapnék csupa szóközzel.
Jelenleg 16KB az Editor mérete. És sajnos még nem scroll-ozható, de már ezen is dolgozom.
 Érdekességként: A billentyűzethez ciklikus buffert használok. Ez azt jelenti, hogy van egy adott méretű buffer a memóriában, aminek van egy felső és alsó határa emellett egy start es egy end pointere. A start mutatja hogy hova legyen írva a köv. byte, az end pedig azt, hogy az utána következő byte-ok a kiolvasandók. Ha üres a buffer akkor az end utáni byte-ra mutat a start pointer. Namármost, ha pötyögök, akkor elkezdi pakolni a byte-okat a startra, és lépegeti a start pointert. Közben jelez, az editornak, hogy a keyboard buffer nem üres. Ekkor az editor egyenként elhelyezi az editor memóriájában a karaktereket (annak megfelelően, hogy alfanumerikus karakter, vagy parancskarakter delete esetén pl. töröl). Amikor feldolgoz egy billentyűt, akkor lépteti az end pointert. Amikor az end eléri a start-ot, (különbségük 1) akkor abbahagyja a pakolást. Jelez megjelenítő rutinnak, az pedig kiírja a képernyőre.

ui: Javítottam az "elszálást" talán mostmár normálisan lép ki.
Title: Re: Pseudo IS-BASIC
Post by: Tuby128 on 2014.March.01. 08:38:45
Javítottam a hibákat mostmár a pontot is "viszi".
A Shift+Bal most megy. Arra nem emlékszem, hogy a Shift+nyílbillentyűknek mi a feladata. Valaki el tudná mondani? Volt Ctrl+nyíl is?
Most a scrollozáson töröm a buksimat. A status sort ki kell akkor vegyem az editor képből és szeparáltan elhelyeznem, hogy a kurzorral ne legyen elérhető.
Title: Re: Pseudo IS-BASIC
Post by: Tuby128 on 2014.March.01. 10:03:07
Most már van Scrollozás az utolsó sortól, és külön status sor. Próbáljátok ki a Shift vagy Ctrl lenyomását :), és figyeljétek a status sort.
Nem tudja valaki véletlenül, hogy mi a "Program 0" felirat színkódja?
Újabb BUG jelent meg a programban: jelenleg a Shift+billentyű lenyomással vannak problémák.
Title: Re: Pseudo IS-BASIC
Post by: Tuby128 on 2014.March.01. 12:23:21
Kurzor mostantól piros. Scrollozás jól megy, 10 sort lép egyszerre.
Javítva a BUG. (Lemaradt egy kapcsos zárójel-páros az "else" parancs után ami összefogta az utána lévő kódsorokat)
Lassan kifogyok az ötletekből, mi hiányzik még belőle?
Elkezdem lassan megírni a Kanyargó nevű játékot erre az Editorra, és meglátjuk mennyire lesz élvezhető.
Title: Re: Pseudo IS-BASIC
Post by: Tuby128 on 2014.March.01. 20:12:23
Működő Insert és Alt+Insert. Nagyon nehezen születik meg az ilyen blokkmozgató utasítás. Még a Deleté-re és Backspace (Erase) kell kitalálnom valami koncepciót.
Title: Re: Pseudo IS-BASIC
Post by: Tuby128 on 2014.March.01. 21:17:17
Érdekes, hogy az EP Basic interpreterében az ENTER gomb lenyomása nem a következő sorba jutattja a kurzor utáni szöveget, hanem tulajdonképpen nem csinál semmit a szöveggel, és az új sor elejére ugrik. A sor elején megnyomott backspace(erase) vajon mit csinál? Le kell töltenem egy EP emut, mert már elfelejtettem.
Title: Re: Pseudo IS-BASIC
Post by: szipucsu on 2014.March.01. 21:53:44
Quote from: Tuby128
A sor elején megnyomott backspace(erase) vajon mit csinál? Le kell töltenem egy EP emut, mert már elfelejtettem.
Az előző sor végére ugrik.
Nincs EP emu a gépeden? Nekem ez alap. :D
Az ESC gomb érdekes még, mert önmagában nincs hatása a basic editorban. Van valami funkciója? Én arra jöttem rá, hogy ha megnyomjuk és utána írunk, akkor letörli a sorban az utána álló karaktereket. Tényleg ez lenne a funkciója?
Title: Re: Pseudo IS-BASIC
Post by: lgb on 2014.March.01. 22:23:41
Quote from: Tuby128
Érdekes, hogy az EP Basic interpreterében az ENTER gomb lenyomása nem a következő sorba jutattja a kurzor utáni szöveget, hanem tulajdonképpen nem csinál semmit a szöveggel, és az új sor elejére ugrik.

Ez nem olyan meglepo (vagy erdekes - legalabbis szerintem nem az), pl C64-en is igy van. Ha belegondolsz kell is: mivel egy BASIC sor editalasa mindket gepen lehetseges a kepernyo kvazi akarmelyik reszen (nincs specifikus edit parancs hogy azzal kell kivalasztani egy sort szerkesztesre), es a sor editalasanak befelyezese az ENTER/RETURN gombra tortenik, fura is lenne, ha ennek hatasara a szoveg egy reszet a kovetkezo sorba tenne. Pl editalok egy BASIC sort, ahol a sor kozepen atirok egy karaktert, majd nyomok enter-t, akkor a sor hatralevo reszenek uj sorba kene kerulnie? Imho nem, csak vege kell hogy legyen a sor szerkesztesenek. Vagy en nem ertem a kerdest, hogy mi a fura? :D

Quote from: Tuby128
Le kell töltenem egy EP emut, mert már elfelejtettem.

Nincs letoltve?! :) Ha meg nincs, akkor ajanlhatom szerenytelnul az en webes (JS) emulatoromat, mivel letolteni/installalni sem kell (illetve configolni sem - ha jo az alap cucc), csak egy URL-re ellatogatni, pl ide: http://ep.lgb.hu/jsep/demo/?autostart=yes (http://ep.lgb.hu/jsep/demo/?autostart=yes)
Ok, mint tudjuk azert kepessegeiben messze de messze az ep128emu mogott van, de egyszeru feladatokra azert jo lehet, ha gyorsan meg kell nezni valamit :D
Title: Re: Pseudo IS-BASIC
Post by: Tuby128 on 2014.March.01. 22:26:19
Jó-jó előző sor végére ugrik, ezt én is gondoltam. A kérdés az, hogy mennyire ugrik a végére? A legutolsó oszloba ugrik? És hogy viszi magával az adott sort? Nekem valami kacsacsőr rémlik a sor végén ami piros színű volt. Sosem tudtam, hogy ezt a kacsacsőrt hogyan lehetett hasznosítani. Ugye manapság az auto sortörés miatt ilyesmi nincsen.
Title: Re: Pseudo IS-BASIC
Post by: szipucsu on 2014.March.02. 11:13:46
Az alt + ins vagy ctrl + ins kombóval lehet átváltani beszúrás üzemmódra. Ilyenkor nyíllá változik a kurzor. Nem tudom, ez rémlik-e, mint kacsacsőr.

OFF: Lgb: szerénytelenség ide vagy oda, az aláírásodba betehetnéd a linket, amit most linkeltél, szerintem hasznos lenne. Oda is lehetne írni elé, hogy online emulator, így ha valaki idetéved a fórumra és rákattint, tudja legalább, kb. miről van itt szó. Zozo nagyon praktikus aláírást használ itt.
Title: Re: Pseudo IS-BASIC
Post by: Zozosoft on 2014.March.02. 17:39:30
Az EXOS könyvben (http://ep128.hu/Ep_Konyv/Exos.htm#215) részletesen le vannak írva ezek a billentyűkombinációk.