Szerző Téma: Soros vonal programozása  (Megtekintve 23462 alkalommal)

0 Felhasználó és 1 vendég van a témában

RetroHW

  • Administrator
  • Jr. Member
  • *****
  • Hozzászólások: 76
  • Karma: +1/-0
    • Profil megtekintése
    • RetroHW
Soros vonal programozása
« Dátum: 2013. Június 30. - 16:36:24 »
Megépítettem a soros vonali interfészt.
A LIST #6 parancs kilistázza a bepötyögött basic sorokat, de a LOAD #6 paranccsal nem tudok semmit betölteni.
Azonnal leáll "System error 243" hibaüzenettel. Ha össze-vissza nyomkodok mindent a HyperTerminal-ban,  akkor viszont "Bad file" hibaüzenettel áll le.
Amit ő maga küldött ki, attól is kiakad ha visszaküldöm.
Van valami speciális formátuma a beküldendő BASIC fileoknak? Tudtok erről valamit?

Módosítás(130630 21:57): a 243-as hiba hibás keretet, hiányzó stopbitet jelent. Pedig elvileg kéne, hogy legyen. Kettő is, mert az a default.

Létezhet terminál progi TVC-re? Átlapoztam A-Z-ig a programokat, de nem találtam.
Valami tesztet próbálok írni, de ha van valakinek megírt valamije, sikítson. :)

Módosítás 2(130701 19:32): úgy tűnik hardverhiba volt, a táp szűretlensége okozta a hibás karaktereket. Annyi baj legyen, legalább nekiláttam egy soros portos chat írásának(mert igazi terminálnak nem nevezném még:)). Aszinkron módban, 19200,8,n,1 beállításban egész gyors(max. 2,4Kbyte/sec).
« Utoljára szerkesztve: 2013. Július 1. - 20:00:36 írta RetroHW »
Konfiguráció: TVC 64K Basic 1.2, SAA1099P, soros interfész, soros egér, +128K NVSRAM RTC-vel.

VaszicsApoca

  • Full Member
  • ***
  • Hozzászólások: 125
  • Karma: +5/-0
    • Profil megtekintése
Re:Soros vonal programozása
« Válasz #1 Dátum: 2013. Július 3. - 15:22:19 »
Attila! (Grósz) Ígértél RS232-es - soros - emulációt az emulátorodba, hogy "állsz" vele? Atka írtad valahol, hogy kipróbáltad a soros egeret, de nem találkoztam vele sehol, hogy áll az emud - floppy?

Atka72

  • Full Member
  • ***
  • Hozzászólások: 110
  • Karma: +3/-0
    • Profil megtekintése
    • Atkalabor
Re:Soros vonal programozása
« Válasz #2 Dátum: 2013. Július 4. - 09:21:24 »
Csak a fényceruzát építettem be egyenlőre, annak a pozícióját lehet lekérdezni a crtc regiszerein keresztül.
Ezzel igazából karakteres felbontást lehet elérni.
Ha valaki tudja hogy lehet a kurzor pozícióját megváltoztatni, akkor a joy-os mászkálást ki lehetne váltani.
A soros portjával még nem foglalkoztam. Remélem RetroHW jóvoltából lesz róla leírás, mert a tvc könyvben nem sokat foglalkoztak vele.A floppy emuláció sajnos még nem megy a Z80 uitasításaim rejtélyes hibái miatt, azokat kell előbb kijavítsam, de elég fárasztó úgyhogy most pihentetésképpen a hangot  szertném javítani ami az  SAA-hoz is szükséges.Igazából alapjaitól elkezdtem újrairni...Rövidesen újabb verzióval jelentkezem.

RetroHW

  • Administrator
  • Jr. Member
  • *****
  • Hozzászólások: 76
  • Karma: +1/-0
    • Profil megtekintése
    • RetroHW
Re:Soros vonal programozása
« Válasz #3 Dátum: 2013. Július 5. - 13:58:02 »
Sajnos úgy tűnik eléggé nehézkes programot írni a soros port normális használatára.
Egy csomó minden vagy nem működik, vagy én nézek be nagyon valamit.
Nem működnek a soros vonal inicializálása után olyan egyszerű funkcióhívások, mint a KBD_CHIN, BON, BOFF, BABS, VID_CHOUT.
Csak az editor funkcióit bírtam működésre.
A soros egér ötlet annyira megtetszett, hogy azonnal félreraktam mindent, és rákötöttem egyet az interfészre. Tudok hozzá szinkronizálni, ki tudom szedni az XY offsetet, meg a gombok állapotát, példát is írtam rá. Meglepődtem rajta milyen egyszerű. Csak a fent említett nem működő függvények miatt nem tudom kirakni grafikusan az egérmutató nyilat.
Más alternatívát kell keresnem a megjelenítésre. A soros port működtetését kell újraírnom, vagy a grafikus megjelenítést.
Konfiguráció: TVC 64K Basic 1.2, SAA1099P, soros interfész, soros egér, +128K NVSRAM RTC-vel.

VaszicsApoca

  • Full Member
  • ***
  • Hozzászólások: 125
  • Karma: +5/-0
    • Profil megtekintése
Re:Soros vonal programozása
« Válasz #4 Dátum: 2013. Július 5. - 15:23:03 »
Akkor most karakteresen műkszik az egér? (a Norton Commander DOS-ban is karakteres volt) A példákat fel tudnád tenni, hogy kipróbáljuk?

Atka72

  • Full Member
  • ***
  • Hozzászólások: 110
  • Karma: +3/-0
    • Profil megtekintése
    • Atkalabor
Re:Soros vonal programozása
« Válasz #5 Dátum: 2013. Július 5. - 20:57:33 »
Összedobtam egy teszt változatot.
Az emuban karakteres felbontásban működik az "egér" vagyis a fényceruza.
64 oszlop*480 sor
A mellékelt mosepos.cas elindításával lehet tesztelni.
A fényceruza pozíciót a  CRTC 16,17 regiszteriből lehet kiolvasni.
Elvileg a TVC-n is így kell működnie ha csatlakoztatva van az lpen pontra egy fényceruza.
Valakinek van kedve kipróbálni?
**********
/RetroHW/
Azt nem tudnád megcsinálni hogy ne egérmutatótt jelenítsen meg hanem a kurzort vigye a megadott pontba?
« Utoljára szerkesztve: 2013. Július 5. - 21:29:38 írta Atka72 »

RetroHW

  • Administrator
  • Jr. Member
  • *****
  • Hozzászólások: 76
  • Karma: +1/-0
    • Profil megtekintése
    • RetroHW
Re:Soros vonal programozása
« Válasz #6 Dátum: 2013. Július 5. - 23:50:54 »
Ez a fényceruza dolog egész jó, kipróbálom majd assemblyben is.
Igaziból a nyíl az egy definiált karakter amit xy pozícióba raknék ki. Létezik a BREL funkció ami relatív "sugárelmozdulást" produkálna. Ez lenne a tökéletes, mert az egérből közvetlenül az előző állapothoz képest történt elmozdulás jön ki. De nem működik.
A karakteres módban küzdök most, valamit rosszul számolok ki, mert teleszemeteli a képernyőt nyilakkal :). Az eltolás kiszámolásáig jó, onnan van egy kis gubanc, de már keresem a hibát.

Módosítás: Mindig megfeledkezem róla, hogy óvatosan kell bánni az erőforrásokkal a TVC-n. A szemetelős hibát az okozta, hogy minden paramétert kiirattam a programmal, aminek következtében kiesett a szinkronból. Az egér már mozog, még az x=0,y=0 pozícióval van gondom, és az egér érzékenységét kell kicsit lerontani. Hamarosan elkészülök vele.
« Utoljára szerkesztve: 2013. Július 6. - 00:21:43 írta RetroHW »
Konfiguráció: TVC 64K Basic 1.2, SAA1099P, soros interfész, soros egér, +128K NVSRAM RTC-vel.

RetroHW

  • Administrator
  • Jr. Member
  • *****
  • Hozzászólások: 76
  • Karma: +1/-0
    • Profil megtekintése
    • RetroHW
Re:Soros vonal programozása
« Válasz #7 Dátum: 2013. Július 6. - 02:41:02 »
Sikerült olyanra csinálnom amilyenre szerettem volna :).

Íme: http://youtu.be/hOGnLj9NGgQ

Igazság szerint működhet a grafikus mód is, szerintem csak én bénáztam el a dolgot.
Az érzékenységet nem rontottam le.
Az interfészem a bal oldali slot-ra van bedrótozva, és az eredetinél kevesebb alkatrészt tartalmaz. A vonalmeghajtók kiválthatók MAX232-vel, nekem egy tálca NM232CD-m van, azt raktam bele. Gyakorlatilag 3 IC(74LS245 + 8251A + NM232CD) + a tápszűrés meg két LED ellenállással az RX TX vonalakon.
Majd ledokumentálom a programmal együtt.
Az egérre az RX,TX,RTS és a GND vannak bekötve. A TX és az RTS a táp miatt kell.
Egy csúnya fotó a csúnya gépemen, az újrahasznosított alkatrészekből készült csúnya áramkörről: http://retrohw.com/wp-content/uploads/2013/07/P1020433_640.jpg
« Utoljára szerkesztve: 2013. Július 6. - 02:49:38 írta RetroHW »
Konfiguráció: TVC 64K Basic 1.2, SAA1099P, soros interfész, soros egér, +128K NVSRAM RTC-vel.

Atka72

  • Full Member
  • ***
  • Hozzászólások: 110
  • Karma: +3/-0
    • Profil megtekintése
    • Atkalabor
Re:Soros vonal programozása
« Válasz #8 Dátum: 2013. Július 6. - 09:15:58 »
Megnéztem, a 3657,3658 os címek írás/olvasásával kiolvasható az aktuális kurzorpozíció, ill írásával oda helyezhető.
Kellene hozzá egy gépi kódú rutint írni a megszakításoz, ami figyeli a fényceruza pozíciót és oda helyezi akurzort, és kész is lenne a karakteres egér. A soros portos megoldás kétségtelenül profibb de így nem igényel szinte semmi erőforrást a géptől.
Azt hiszem annyi hiba van benne hogy 480 sorral számoltam de lehet csak 240 van valójában.

Kibővítettem az előbbi demót. Az egér bal klikkel a mutató alatti karakterre ugorhatunk a kurzorral.
A dolognak van egy kis szépséghibája, aki kipróbálja meglátja, azt még le kéne kezelni, de az is megoldható.
Graphics2 -es módban működik csak jól egyenlőre!
« Utoljára szerkesztve: 2013. Július 6. - 11:10:08 írta Atka72 »

RetroHW

  • Administrator
  • Jr. Member
  • *****
  • Hozzászólások: 76
  • Karma: +1/-0
    • Profil megtekintése
    • RetroHW
Re:Soros vonal programozása
« Válasz #9 Dátum: 2013. Július 6. - 13:11:56 »
Felülírod a képernyőpozíció tartalmát. Ha gyorsan kattintasz a képernyő adott pontjára, akkor kiirja a képpont számát, és ha áthúzod felette, akkor letörli.
Van egy CGA kártyám, REMIX-es ellenálláslétra van rajta, meg MT logó. A Műszertechnika gyártott ISA-s CGA kártyát? Csak azért érdekes mert van rajta kivezetve fénycerka csatlakozó, és ezt  kapcsolást akár alkalmazhatnánk is.
Az LPSTB jel ki van vezetve a B9-re a TVC bővítőcsatin. Megvan ma mit csinálok... :)
Atka kérlek csináld meg jól a cas fejlécet, hogy be tudjam tölteni az igazi gépbe is a progidat, ezt ki kell próbáljam :).
Konfiguráció: TVC 64K Basic 1.2, SAA1099P, soros interfész, soros egér, +128K NVSRAM RTC-vel.

Atka72

  • Full Member
  • ***
  • Hozzászólások: 110
  • Karma: +3/-0
    • Profil megtekintése
    • Atkalabor
Re:Soros vonal programozása
« Válasz #10 Dátum: 2013. Július 6. - 14:16:34 »
Ez csak 12 sor sima Basic program nem kell hozzá semmi más.
A cas átírása biztos tovább fog tartani, mint bepötyögni :)

Régen használtam az LPEN portot, egy lencsés fototranzisztor /talán BPW61/ volt egy filctoll elejébe építve.
Egy 10K ellenálláson keresztül fel volt kötve 5V-ra és egy 4011 kapujára kötve.
A kimenet invertálva vagy nem  azt már nem tudom, de simán rá volt kötve az LPEN bemenetre és működött.
Persze lehet jobb lenne egy 4093.
« Utoljára szerkesztve: 2013. Július 6. - 14:18:47 írta Atka72 »

RetroHW

  • Administrator
  • Jr. Member
  • *****
  • Hozzászólások: 76
  • Karma: +1/-0
    • Profil megtekintése
    • RetroHW
Re:Soros vonal programozása
« Válasz #11 Dátum: 2013. Július 6. - 16:21:25 »
Nem tudtam kilistázni, a casbas meg a fejléc miatt nem szedte ki belőle a listát :).
Kéne nyitni egy új témát a fénycerkával kapcsolatban, mert így keverednek a dolgok, meg az odavágó hozzászólásokat át kéne rakatni egy moderátorral oda.
Kellett kis idő míg leesett mit szeretnél kihozni a fénycerkából de mostmár értem :). Nekiülök, megírom assemblyben a kezelést.
Hamarosan jelentkezem.

Oh. Tanácstalan vagyok. A TVC hardverkönyvében a következő áll:
"A TVC bővítőcsatlakozóira ki van vezetve a CRTC ezen kivezetése. Használatához kérje ki a Videoton szervíz tanácsát!"
Ezen most elmosolyodtam, és muszáj volt kiemelnem, bocs :).
« Utoljára szerkesztve: 2013. Július 6. - 18:22:37 írta RetroHW »
Konfiguráció: TVC 64K Basic 1.2, SAA1099P, soros interfész, soros egér, +128K NVSRAM RTC-vel.

VaszicsApoca

  • Full Member
  • ***
  • Hozzászólások: 125
  • Karma: +5/-0
    • Profil megtekintése
Re:Soros vonal programozása
« Válasz #12 Dátum: 2013. Július 6. - 18:42:28 »
"Kibányáztam" a programot, valami miatt Atka72 programja, a Mousepos.cas, 59041 byte méretű és a casbas.exe hibás fejlécet jelez, de a WinTvc emu megette és onnan mentve már csak 487 byte a program (ha csak nincs más is elrejtve benne?...) Csatolom a szövege és cas file-t is.

RetroHW

  • Administrator
  • Jr. Member
  • *****
  • Hozzászólások: 76
  • Karma: +1/-0
    • Profil megtekintése
    • RetroHW
Re:Soros vonal programozása
« Válasz #13 Dátum: 2013. Július 6. - 19:26:46 »
Köszönöm szépen VaszicsApoca :)!

A srácok programjaiban van még némi kompatibilitási probléma, de idővel megoldódik majd. Hasonló gondom pl. A bin2cas-nál, hogy a pár soros programokat lefordítja ugyan cas-ra, de betöltésnél az eredeti TVC 231-es rendszerhibával leáll. Ezt úgy küszöböltem ki, hogy egy adatblokkot rakok a lefordítandó .asm file végére, ami legalább 1Kbyte.

Rendelkezel egyébiránt eredeti soros interfésszel és soros egérrel?
Ha esetleg van kedved(vagy lehetőséged) kicsit forrasztgatni, kipróbálhatnád a példaprogramomat, hogy nálad is működik-e. Így a kíváncsiságom  elmúlna :).
Konfiguráció: TVC 64K Basic 1.2, SAA1099P, soros interfész, soros egér, +128K NVSRAM RTC-vel.

Atka72

  • Full Member
  • ***
  • Hozzászólások: 110
  • Karma: +3/-0
    • Profil megtekintése
    • Atkalabor
Re:Soros vonal programozása
« Válasz #14 Dátum: 2013. Július 6. - 20:34:52 »
Írtam régen egy játékot ami egy primo átdolgozás, viszont a hang megoldása lehet most érdekes.
Átírtam a TVC megszakítás rutinját hogy 20 msec-enként olvassa be a következeő hanghoz tartozó időtartamot és frekvenciát és játssza a háttérben. A játék elindítása után Stop megnyomása vagy NEW parancs után is folyamatosan megy a zene , közben lehet bármit csinálni.Egyfajta TSR program:)  Szóval így lehetne sztem megoldani a háttérben futó dolgok kezelését, pl SAA zenelejátszás, egér mutató kezelés ...stb. Őszintén szólva már fogalmam sincs hogy csináltam de benne van a listában a gépi kódja. Ha lenne fejlesztve egy komolyabb memóriabővítő hardver a TVC-hez akkor akár nagyobb  dolgokba is bele lehetne vágni, de addig nincs sok értelme. Lapozható SRAM-ra gondoltam pár MB-ra.

/VaszicsApoca/ A cas file fejléce nincs felhasználva az emuban mindíg a teljes memóriát menti ki a cas-ba.
Próbáltam a méretet a Basic változók szerint beállítani, de úgy nem volt jó a méret valamiért.
A mouse.cas csak abból a 12  Basic sorból áll, annak is a fele csak a kiirkálás.


Ez volt az ominózus  "game":
« Utoljára szerkesztve: 2013. Július 6. - 23:49:16 írta Atka72 »