Welcome, Guest. Please login or register.


Author Topic: Assembly programozás (Read 146887 times)

Offline lgb

  • EP addict
  • *
  • Posts: 3496
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 26.0.1410.40 Chrome 26.0.1410.40
    • View Profile
    • http://lgb.hu/
Re: Assembly programozás
« Reply #390 on: 2013.March.26. 10:07:43 »
Quote from: Z80System
Fura, hogy ezt kerded, annyira trivialis, hogy nem ertem nalad hogyhogy maskepp van ...

Mondjuk a masik allaspont is ertheto: ha valaki pl EP-en (vagy C64-en, mind1) fejlesztett, nyilvan nem szokta meg annyira a cross-platform fejlesztesnel eloallo dolgokat, ami "nagyobb" rendszereken mar termeszetes, ezert nem is hianyoznak neki ilyen feature-ok.

Offline PiotrSoft

  • EP fan
  • *
  • Posts: 230
  • Country: hu
  • Fõhajtást a hõsöknek, könnycseppet az áldozatoknak
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 25.0.1364.172 Chrome 25.0.1364.172
    • View Profile
    • nem teljesen rollam szól de mégis rollam szól, ha megnézed megérted
Re: Assembly programozás
« Reply #391 on: 2013.March.27. 12:56:44 »
Így igaz!

Mind addig, ameddig a memória és a háttértároló kapacitás és elérési sebesség gátjaiba ütköztünk, kellett a komplett  egy kódban történt megoldás. Megannyi trükkel subrutinokka, de manapság szerencsére sem a háttértár elérése, sem a gép belső írható olvasható tárkapacitási is gyakorlatilag "végtelen".

Nincs szükség olvashatatlan hosszú, és értelmezhetetlen ide-oda hívásokkal operálni. 

De tény, hogy anno ez nem állt rendelkezésre. 

S nem egy demó és játék programkódja kiemelkedőre sikerült a mai szemmel is!
Medgyesegyháza s Mezõkovácsháza után, Budapestre vetett a sors.Itt tanultam, dolgoztam mígnem megházasodtam s Budakalászra költöztem.Voltam programozó, jármû-villamossági szerelõ,jelenleg látványtechnikus és tûzoltó, de ami a legfontosabb 3 gyermek apja!

Offline lgb

  • EP addict
  • *
  • Posts: 3496
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 26.0.1410.43 Chrome 26.0.1410.43
    • View Profile
    • http://lgb.hu/
Re: Assembly programozás
« Reply #392 on: 2013.March.28. 16:15:20 »
Kovetkezo problemam :) Nyitottam egy video csatit, minden mux, tudok ra (EXOS funkcioval) irni, no problem. Most amit probalnek, hogy en "manualisan" irok ra. Tehat kellene a video ram cime. Azt tudom, hol tarolja az LPT-t az EXOS, tehat az alapjan az LD1-bol ki tudnam nyeri, de ez macera. Nem lehet megtudni, hol a video ram valahogy? Amit talaltam az EXOS 11-es hivas, B=3 spec funkcio. Erre azt irja a dox, hogy a visszaadott ertek az nick cim, tehat szepen konvertalom, hogy a kettes lapra belapozva a megfelelo video szegmenst tudjam ott manipulalni a megjelenitett tartalmat. Ez azonban nem akar osszejonni, ha utana irok vmit vagy fagy a gep, vagy semmi nem latszik. Gondolom rossz helyre irok, csak nem tudok rajonni hogy hol a gond. Illetve meg egy dolog: a video ram az keresztezhet szegmens hatart? Mert az kicsit gaz nekem, en szeretnem szep egyben tudni, hogy ne kelljen lapozgatnom, hanem az egesz screen-t meg tudjam cimezni direktben. Raadasul harom lapom mar foglalt, tehat csak egyet tudok erre "aldozni" kozben, az elobb irt poziciotol fuggo lapozgatast viszont elkerulnem (ha lehet). Ezert nem szeretnek sajat LPT-t stb irni, ha egyszer az EXOS remekul alkalmas egy video csatorna/lap letrehozasara es megjelenitesere amugy.

Esetleg erre egy pelda nincs valakinel? Sima, hw text kepernyo, semmi faxni jelen esetben! Koszi elore is!
« Last Edit: 2013.March.28. 16:35:40 by lgb »

Offline PiotrSoft

  • EP fan
  • *
  • Posts: 230
  • Country: hu
  • Fõhajtást a hõsöknek, könnycseppet az áldozatoknak
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 25.0.1364.172 Chrome 25.0.1364.172
    • View Profile
    • nem teljesen rollam szól de mégis rollam szól, ha megnézed megérted
Re: Assembly programozás
« Reply #393 on: 2013.March.28. 20:10:54 »
Keress utána text80 módnak. 

Ha nem tévedek nagyot, az is emulált karakteres állapot, valójában grafikus lpt-t használ. Legalábbis valami hasonló emlékeim vannak felőle.

Zozo, tévedek?  Ha igen akkor bocsi.
Medgyesegyháza s Mezõkovácsháza után, Budapestre vetett a sors.Itt tanultam, dolgoztam mígnem megházasodtam s Budakalászra költöztem.Voltam programozó, jármû-villamossági szerelõ,jelenleg látványtechnikus és tûzoltó, de ami a legfontosabb 3 gyermek apja!

Offline geco

  • EP addict
  • *
  • Posts: 5430
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 17.0 Firefox 17.0
    • View Profile
Re: Assembly programozás
« Reply #394 on: 2013.March.28. 20:12:27 »
Sajnos a kép keresztezhet szegmenshatárt, bár sima text módban erre nem hinném, hogy nagy esély van :D
Küldd el a forrást, abból kiderül, hogy hol a gebasz.

Offline lgb

  • EP addict
  • *
  • Posts: 3496
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 26.0.1410.43 Chrome 26.0.1410.43
    • View Profile
    • http://lgb.hu/
Re: Assembly programozás
« Reply #395 on: 2013.March.28. 20:24:13 »
Quote from: PiotrSoft
Ha nem tévedek nagyot, az is emulált karakteres állapot, valójában grafikus lpt-t használ. Legalábbis valami hasonló emlékeim vannak felőle.

Igazad vagyon, amde mint irtam az en esetemben hw text-rol van szo, 40 (esetemben egesz pontosan 42) karakteres vizszintes felbontassal. Amugy nem az LPT a kerdes az igazan, hanem hogy az altala mutatott video memoria hol van, es hogyan lehet "szepen" lekerdezni majd ezt direktben manipulalni. Ahogy nezem, amugy grafikus modban is 9 pixelenkent egy LPB alapu LPT-t allit elo az EXOS, karakteres modban meg nyilvan. De ez nem is erdekes, amig az LD1-ek "folyamatosak", akkor elvileg ugye eleg az elso, es kvazi egyben latom a dolgokat.

Azert erdekes a dolog, mert nem hinnem, hogy minden program EXOS funkciokon at manipulalja a kep tartalmat, az enyhen szolva lassu :) Lasd pl primo emulatoromban, amikor az elejen kirakja azt a text-et (az is hwtext). Viszont nem teljesen vagyok kepben, hogy szokas "szepen" csinalni ezt. Valoszinu, h en szurok el vmit, es elobb vagy utobb rajovok a gondra, de a kerdes tovabbra is all, hogy ettol a megoldasom lehet nagyon "ronda", ezert erdekelne, hogy szokas ezt csinalni.

Offline Z80System

  • EP addict
  • *
  • Posts: 3926
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 25.0.1364.172 Chrome 25.0.1364.172
    • View Profile
Re: Assembly programozás
« Reply #396 on: 2013.March.29. 00:41:42 »
Sztm atloghatnak szegmens hatarokon a videolap teruletek, es szerintem folyamatos a memoriakiosztas. Ha nem az lenne, akkor lenne olyan exos funkcio, amelyikkel soronkent lehet megkapni a cimet, vagy ilyesmi. Lekerdezesre meg tok jo az a funkcio amit mondtal, az a mindenkori csatarnanak megmondja a memoria kezdetet, onnantol az egyeb csatorna parameterek (video mod, szelesseg, mittudomenmivanmeg) alapjan lehet szamolni a video lapon (csatornan) valo cimeket.

Ha az adott lap meg atlog 3 szegmensen, akkor atlog, a te feladatod hogy belapozd oket, es olyan z80 cimeket szamolj hozzajuk, ahova belapoztad.
Z80 System

Offline lgb

  • EP addict
  • *
  • Posts: 3496
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 26.0.1410.43 Chrome 26.0.1410.43
    • View Profile
    • http://lgb.hu/
Re: Assembly programozás
« Reply #397 on: 2013.March.29. 07:14:28 »
Quote from: Z80System
Sztm atloghatnak szegmens hatarokon a videolap teruletek, es szerintem folyamatos a memoriakiosztas. Ha nem az lenne, akkor lenne olyan exos funkcio, amelyikkel soronkent lehet megkapni a cimet, vagy ilyesmi. Lekerdezesre meg tok jo az a funkcio amit mondtal, az a mindenkori csatarnanak megmondja a memoria kezdetet, onnantol az egyeb csatorna parameterek (video mod, szelesseg, mittudomenmivanmeg) alapjan lehet szamolni a video lapon (csatornan) valo cimeket.

Az pedig biztos, hogy 9 pixelenkent van egy LPB by default, mert talalkoztam konkretan vele, elsore meg is lepodtem :) Ami erdekes, hogy raadasul grafikus modban is ilyet hoz letre, ahol fuggolegesen 9 pixelenkent van egy LPB szepen egymas utan. Ezt konkretan ki is hasznalom az emulatoromban peldaul. Amugy hwtext modban meg logikus is, ha jol gondolom hirtelen ott maskepp nem is mukodhetne, minden karakter sorhoz kulon LPB kell, mivel egy karakter magassagat az LPB irja le, igy uj sorhoz uj kell. Azaz ha hwtext modban pl van 25 sorod, akkor az 25db LPB, plusz persze a tobbi (az elso EXOS eseteben ugye a statusz-sor, de nyilvan ott van meg a vegen a tobbi, blank, meg vsync ....).

Itt irja is amugy:

"Initially the ASCII map starts with the top left character of the page and continues across the first line followed by the second line and so on down the page. However once any scrolling operations have been performed the ordering of lines on the page will be different so the first byte of the ASCII map will be the first character of a line but not necessarily the top line. The lines can end up in any arbitrary order and even clearing the page will not re­order them."

En csak abbol indulok ki, hogy a csatorna megnyitasa/ videolap megjelenitese utan _elso_ alkalommal folyamatos es linearis a video memoria kiosztasa, ha kozben nem irok ra, nem scrollozom stb.
« Last Edit: 2013.March.29. 07:27:23 by lgb »

Offline Z80System

  • EP addict
  • *
  • Posts: 3926
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 25.0.1364.172 Chrome 25.0.1364.172
    • View Profile
Re: Assembly programozás
« Reply #398 on: 2013.March.29. 08:20:12 »
Igen, 9 pixelenkent van az lpt blokkokra osztva, en anno utaltam, hogy nem 8 pixeles egy sor, milyen hulyeseg mar hogy egy karakter nem 8X8- as hanem 8X9- es, de sokan meg imadtak, de hat ugyis sajat lpt- t hasznaltam mindig, amint megertettem hogy az exos hivasokkal operalas meg nem a teljes sebessegu hasznalata a hardvernek az en celjaimra.

De az hogy hany pixelenkent vannak a blokkok fuggetlen kerdes a memoria kiosztasatol.

Amit pedig irsz a scrollozodasrol, az meg azt jelenti sztm hogy hardverbol scrolloz, tehat mikor scrollozni kell egy lapot, akkor az lpt (9 pixelenkenti, ami 1 karakter karakteres modban) blokkjaiban a memoria cimeket atirva scrolloz, nem a tenyleges lapmemoriaban masol.

Tehat kepes vagy nagyobb video lapokat letrehozni mint a kepernyo, amiket a kepernyore kulon utasitassal teszel ki, es fuggolegesen tetszoleges pozicioba. Azt hogy melyik lap melyik reszletet tetted a kepen hova, azt neked kell nyilvantartani, es a korabban irt cimhez kepest kiszamolni a teruleteit, ha figyelembe kell venni.

Ebbol persze az is kovetkezne, hogy akkor az exos is megteszi ezt a nyilvantartast, tehat valahol fellelheto kell legyen benne, de nem tudom hol van, viszont lehet hogy ez neked nem is kell ...
Z80 System

Offline lgb

  • EP addict
  • *
  • Posts: 3496
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 26.0.1410.43 Chrome 26.0.1410.43
    • View Profile
    • http://lgb.hu/
Re: Assembly programozás
« Reply #399 on: 2013.March.29. 09:08:46 »
Quote from: Z80System
Igen, 9 pixelenkent van az lpt blokkokra osztva, en anno utaltam, hogy nem 8 pixeles egy sor, milyen hulyeseg mar hogy egy karakter nem 8X8- as hanem 8X9- es, de sokan meg imadtak, de hat ugyis sajat lpt- t hasznaltam mindig, amint megertettem hogy az exos hivasokkal operalas meg nem a teljes sebessegu hasznalata a hardvernek az en celjaimra.

Na igen, nekem is pont ez a bajom. Amde megse szeretnek sajat LPT-t hasznalni, ennek memoria okai vannak: akkor nekem kell kerni egy plusz szegmenst, es mar 128K-s gepen szukeben vagyok ennek pl :( Azert is gondoltam, hogy inkabb az EXOS-ra bizom, gondolvan hogy o nem feltetlen foglal egy karakteres kepernyo miatt uj szegmenst, ha pl a system segmentbe belefer, bar nem tudom igy van-e es pontosan hova pakolja a video ram-ot (az lpt-t a system segmensbe, legalabbis imho, de most a videoramrol van szo). Illetve egyszerubb is, ha nem en "szenvedek" az LPT felepitesevel, es szamolom hogy miket kell irni az LD1-be stb, hanem az EXOS-ra bizom. Ezek utan csak annyi, hogy max kellene nekem a cim hogy vegulis hova rakta a video RAM-ot, es innentol ugyis magam fogok direktbe irkalni, nem az EXOS-on at. Foleg mivel amugy sima hw text, semmi extra, viszont exos-on at irni ra meg igy is keservesen lassunak tunik szamomra :(

Quote
Amit pedig irsz a scrollozodasrol, az meg azt jelenti sztm hogy hardverbol scrolloz, tehat mikor scrollozni kell egy lapot, akkor az lpt (9 pixelenkenti, ami 1 karakter karakteres modban) blokkjaiban a memoria cimeket atirva scrolloz, nem a tenyleges lapmemoriaban masol.

Pontosan! De ezert mondtam, hogy nem lehet arra szamitani - altalanos esetben - hogy a memoriaban direktbe elerve a "video RAM"-ot az folyamatos, mint mas gepnel. Mondjuk ez kevesbe zavar engem, mivel csak en irnek ra, igy az EXOS-nak nincs alkalma, hogy atrendezze pl scroll hatasara, alapbol a videolap letrehozasa utan meg amugy linearis szokott lenni (remelem legalabbis)

Offline geco

  • EP addict
  • *
  • Posts: 5430
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 17.0 Firefox 17.0
    • View Profile
Re: Assembly programozás
« Reply #400 on: 2013.March.29. 09:31:38 »
Miért nem írod felül az LD1-es értékeit az EXOS LPT-nek? Kérsz egy videólapot, vagy egy user boundaryt az FF szegmensen, és annak megfelelően állítod be a magad kis videólapcímeit, akkor biztos folytonos lesz a címzés.

Offline lgb

  • EP addict
  • *
  • Posts: 3496
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 26.0.1410.43 Chrome 26.0.1410.43
    • View Profile
    • http://lgb.hu/
Re: Assembly programozás
« Reply #401 on: 2013.March.29. 09:54:12 »
Quote from: geco
Miért nem írod felül az LD1-es értékeit az EXOS LPT-nek? Kérsz egy videólapot, vagy egy user boundaryt az FF szegmensen, és annak megfelelően állítod be a magad kis videólapcímeit, akkor biztos folytonos lesz a címzés.

Igen, ez igaz, sot a primo emu primo kepernyo reszenel pl pont ezt csinalom, ott az LD1 ugy van atirva hogy az emulalt primo megfelelo ram poziciojara mutasson. Amugy lehet hogy ez lesz itt is akkor, csak egyreszt erdekelt volna a megoldas, masreszt nem akartam meg egy szegmenst foglalni csak emiatt, ha mar az EXOS amugy is kepes adott videolapot letrehozni, akkor miert duplikaljam le, ami a ROM-ban mar meg van irva? :) Mondjuk abban igazad van h memoria miatt nem feltetlen kene aggodnom: az emu tobb reszenek teljes szegmens kell. Ha el is fogy kozben a memoriam, a shared szegmens meg megkaphato, ott meg ugysem kene teljes szegmens nekem, eleg csak 42*27 byte ugy saccra :)

De amugy biztos en szurok el vmit, mert szerintem az en megoldasom (lekerdezem az exos-tol a video ram cimet) is mukodkepes kene hogy legyen! Kozben rajottem viszont hogy "hulye vagyok" a Z80 bit eltolas/forgatas opcode-okhoz mindig total keverem hogy melyik mit csinal, es van egy jo rakas. Ha pl az a feladat hogy mondjuk az A >> 6 muveletet csinaljam meg, mindig nezek butan egy idore, hogy most akkor melyik utasits is kell a 6 bittel jobbra tolashoz, hogy az uj bejovo bitek balrol 0-ak legyenek pl. Illetve ugyanez a masik iranyba tolasnal. Ez ugyben vki kisegitene? Lusta vagyok elolvasni, Z80 assembly-t meg igazan komolyabban (bezzeg disassemblert tudok irni hozza, hehehehehee) eddig nem probaltam, ez a primo emus cucc az elso :)

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13517
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 19.0 Firefox 19.0
    • View Profile
    • http://enterprise.iko.hu/
Re: Assembly programozás
« Reply #402 on: 2013.March.29. 09:54:28 »
Quote from: lgb
 Ahogy nezem, amugy grafikus modban is 9 pixelenkent egy LPB alapu LPT-t allit elo az EXOS, karakteres modban meg nyilvan.
Igen, mert a karakter méretnyi terület az alapegység az EXOS videólap kezelésénél.

Quote
nem teljesen vagyok kepben, hogy szokas "szepen" csinalni ezt.
Leginkább saját videómemóriával és LPT-vel :-)

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13517
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 19.0 Firefox 19.0
    • View Profile
    • http://enterprise.iko.hu/
Re: Assembly programozás
« Reply #403 on: 2013.March.29. 09:59:42 »
Quote from: Z80System
Ha az adott lap meg atlog 3 szegmensen, akkor atlog, a te feladatod hogy belapozd oket, es olyan z80 cimeket szamolj hozzajuk, ahova belapoztad.
Így van. Annyit még hozzá tennék a dologhoz, hogy bizonyos EXOS műveleteknél el is mozdulhat az adott terület a videó memóriában! Az EXOS igyekszik a szabad területet összefüggően tárolni, így ha pl van két videólap, és a korábbit bezárod, akkor a másodikat felmozgatja, hogy egyben legyen a szabad terület. Ez BASIC-ben néha látható is, hogy egy picit villan a kép.

Offline lgb

  • EP addict
  • *
  • Posts: 3496
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 26.0.1410.43 Chrome 26.0.1410.43
    • View Profile
    • http://lgb.hu/
Re: Assembly programozás
« Reply #404 on: 2013.March.29. 10:01:00 »
Quote from: Zozosoft
Leginkább saját videómemóriával és LPT-vel :-)

Hat jo, tudom en vagyok tul lusta, csak eppen egy szem hwtext sima kepernyo miatt ezt kicsit agyuval a verebre effektnek erzem, de legyen :) Foleg, mivel mas geppel ellentetben az EP-nek van szep es szexi :) oprendszere, akkor szeretnem is azt hasznalni, olyat mar csinaltam regebben is, hogy magam gyartok LPT-t nullarol meg minden.