VERSENY! (kkrieger copy)
2006-10-18T23:51:24+02:00
2008-06-20T04:02:11+02:00
2022-07-25T23:27:26+02:00
  • Ez az info viszont tök jó, köszi, ezzel szerintem el leszek egy darabig:)
    Mutasd a teljes hozzászólást!
  • Mindig -> múltban, most, közeljövőben alkalmazható a módszer -> persze, csak megfelelő privilegizáltsági szinten futó programnak. Elvégre, ezért (is) védett mód.
    Mutasd a teljes hozzászólást!
  • A portos módszer viszont, mindig és mindenütt alkalmazható


    Ezek szerint, ha akármilyen operációs rendszer alatt akármikor lehet piszkálni a billentyűzetvezérlő portjait, akkor ha valaki ír egy kis programot, ami tiltja ezen portok segítségével az A20-as címvonalat, akkor igen izgalmassá tehető a win/linux/egyéb védett módú PC OS felhasználók élete.
    Mutasd a teljes hozzászólást!
  • Kedves Lalli!
    Provokálsz, hülyeségeket írsz, ahelyett, hogy próbálnád megérteni, majd megköszönni.
    A rutin éppen azt csinálja, amit a bios vagy a bios-t már mellőző összes operációs rendszer: közvetlenül, a megfelelő portokon keresztül kommunikál a billentyűzettel. Az általad említett $40:$97 memóriacímet a bios használja állapottárolásra. Ha ezen bájt bitjeit megváltoztatod, akkor a ciklikusan lefutó timer(8) vagy a billentyűzet(9) hw megszakítások, a bájt értékét a memóriából kiolvasva, a bemásolthoz nagyon hasonló rutint fognak meghívni a ledek állapotának beállításához. Ez a módszer ($40:$97 piszkálása) _csak_ akkor működőképes, ha a bios megfelelő rutinjai is működnek, azaz meghívásra kerülnek (pl. valós módú dos alatt vagy v86 dos módban). A portos módszer viszont, mindig és mindenütt alkalmazható, és igen, "akár" XP alatt is működőképes.
    Ha megengeded, kezdd talán ezzel az ismeretszerzést.
    Mutasd a teljes hozzászólást!
  • Csak az nincs leírva, hogy a rutinok belseje mi.
    Akkor az enyém ilyemi lenne.
    uses windows,keyboard,usb,nouseof; begin init; villogtat; closeeverithing; application.terminate; {ezzel sarki_rokát szeretném piszkálni:P} end.

    Félre ne érts, köszönöm a tippet, de a lényeg nincs benne, mert az valamelyik rutinban van...

    Mellesleg az a másik keyboard led izé a memóriában a $40:$97 lenne, de természetesen abba se nyúlhat bele az ember XP-n keresztül...

    Ami meg a kódokat illeti lejjebb, irány a NASA, hekkeljük meg és fenyítsük be az USA-t, hogy mi jobbak vagyunk.
    mert aki másnak vermet ás...( az az sp regiszter... )
    Mutasd a teljes hozzászólást!
  • Egykoron ezzel villogtattam egyszerre a 3 ledet.

    Blink proc near dec w Slower jnz s wal3 mov ax,DefSlower mov Slower,ax mov ah,BlinkState xor b BlinkState,7 call WaitFlush jnz s wal3 mov al,0edh ;set/reset LEDS command out 60h,al call WaitACK call WaitFlush jnz s wal3 mov al,ah ;write value out 60h,al call WaitACK ;-------- WaitFlush: mov cx,2000h wal1: in al,64h call Return test al,2 loopnz s wal1 ret ;-------- WaitACK: xor cx,cx wal2: in al,64h call Return test al,1 loopz s wal2 jz s wal3 in al,60h cmp al,0fah ;ACK? jne s wal2 wal3: ret Blink endp
    Mutasd a teljes hozzászólást!
  • Na jó, akkor megint előszedném a knightriderező ledeket. Akárhol nézem a gugliban, minden program ami a billentyűzet ledet kotorná meg, az a $40:$17-es shift statusz byte, amit persze XP alatt csak olvashatunk. Valahol az Agárdi Gábor féle Assembly könyvek függeléke végén ír még egy helyet a memóriában, ahol lehet manipulálni a ledeket, de azokra se reagál a pascal progim, gondolom mert windows xp. Szóval ha én továbbra is a pascalnál vagy assembly valós módnál maradnék, akkor milyen módon lehetne manipulálni szoftveresen a billentyűzet ledjeit, gondolom akkor csak a PS/2-es billentyűzeteknél lenne érvényben ugyan, de érdekelne a téma.
    Mutasd a teljes hozzászólást!
  • Hát csúcs. Nem hagyhattam, hoy ez legyen az utolsó hozzászólás, szóval írok.
    Nem hioszem el, hogy nincs igény assembly programozók iránt. Megnéztem az állás részleget a társalgóba és utána lecsökkentettem azt a 1000< hsz-t és erre csak 6 assemblys állásos topikféle van.
    vicc...
    Mutasd a teljes hozzászólást!
  • Mutasd a teljes hozzászólást!
  • Hát...
    Lehet, hogy 19 byte, különösebb értelmet nem vélek felfedezni benne, sőt...
    Mutasd a teljes hozzászólást!
  • Én most a céges progink játék verzióját készítem és azzal vagyok megrekedve.
    Mellesleg nagyon teccik, hogy nem kell asm-ot, meg pascal-t előszednem, ha valami int-ekből álló kis semmilyen progit kell írni( pl cicának valami idegesítő progi, ami megjeleníti a kurzort és egérrel mozgathatja a gazdi, a ciccancs meg széttapizza a monitort) és még csak 19 bájt.
    mov al,13h int 10h mov ax,3 int 10h mov ax,1 int 33h xor ax,ax int 16h ret

    és ezt mind lehet copy conn-al!
    Szóval határ a csilla....
    anyós.jpg
    Mutasd a teljes hozzászólást!
  • ...Hmmm... Miért halódik ez a topic?
    Sajnálatos, hogy a "Tudástár"-ban megszűnt az asm fül (miért is?), de azért remélem, sokan foglalkoznak még ilyen holmi múltbarekedt dolgokkal is - és nem csupán kényszerből. Avagy nem pusztán azért, mert holmi oktatási intézményekben a "szükséges rossz" kategória.
    Nos, amőbá-s topicon magam is felbuzdulva (régen foglalkoztam utoljára ilyesmivel), ez itt az évszámunkhoz hűen éppen 2007 byte.
    Hogy mennyire játszik jól/rosszul, majd eldöntitek.
    Azt sem tagadom, javarészt a "turbo gomoku"-n, illetve annak forráskódján alapul.
    Sok időm van mi? Pedig nem is annyira, de azért jót szórakoztam vele.
    Sejtelmem szerint holmi sallangokat elfeledve írható ilyesmi akár 1k-ban is. Márminthogy írható tűrhetően játszó amőba program amely 1k, vagy akár még ennél is kisebb.
    Ja, és persze teljes képernyős parancssorban futtatandó.
    Üdv:
    Mutasd a teljes hozzászólást!
    Csatolt állomány
  • Minap láttam, újabb "nekibuzdulások" vannak mátrix ügyben. Sajnálom, hogy annakidején Eső pascalos programja elkerülte figyelmemet, nagyon remek!
    Ezt most csak azért, hogy legyen egy assembly-s változat is.
    233 byte, teljesképernyős DOS ablakban működik.
    Sziasztok!
    Mutasd a teljes hozzászólást!
    Csatolt állomány
  • 3D-s legyen, az a rendszeresminimum!!!!
    Mutasd a teljes hozzászólást!

  • Köszönöm a sok kedves népeknek a támogatást, hogy a célomat elérjem, egy sima szöveges fájl készítése.
    Mutasd a teljes hozzászólást!
  • és betömörítettem két bájtba:

    Én meg 0 bájtba tömörítettem, csak még a kitömörítő algoritmust nem írtam meg hozzá.
    Mutasd a teljes hozzászólást!
  • Na, én megcsináltam a lalli_oprendszer_bootable.iso-t, és betömörítettem két bájtba:
    0xfa 0x25
    Nézd meg, egész jó lett!
    Mutasd a teljes hozzászólást!
  • meg fogja csinálni tuti...

    link
    Mutasd a teljes hozzászólást!
  • Továbbá családi fotó készítése:
    copy con anyosom.jpg
    Mutasd a teljes hozzászólást!
  • Aztán meg ez:

    copy con lalli_oprendszer_bootable.iso

    Mutasd a teljes hozzászólást!
  • Akkor johet a kovetkezo szint:

    copy con lalli.zip

    Mutasd a teljes hozzászólást!
  • ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
    ÚRISTEN!!!
    MEGVAN!
    a 2. szám az decben 16, de hexába csak 10, nekem hexába 16 kellene, ami ebben az esetben 22.
    Mutasd a teljes hozzászólást!
  • Nép! Most egy olyat találtam ki újonan, hogy gépi kód és nem editorral, hanem notpad rulz!

    az eddig ismeretes 3bájtos com progit kéne beprüntyögnöm jegyzettömbbe, vagy valami egyéb módon, de nem fordítóval.
    copy con lalli.com alt+205 alt+16 alt+195 ctrl+z enter

    Ha lefuttatom, rögtön kilép. Tipp?
    Mutasd a teljes hozzászólást!
  • Pascal hívási konvenció:
    Lásd pl. itt.
    Mutasd a teljes hozzászólást!
  • Ha nem cím szerint adod át, akkor nem.
    Mutasd a teljes hozzászólást!
  • De ha az eljárás x,y-jába változókkal adom át a paramétereket, akkor a változókat( ami a programban van ), azt nem változtatja meg? Magyarán ilyesmire gondolok, ha mellőzöm az fx és fy változókat...
    var karx,kary:integer; begin ... TCutKirajz(karx,kary,@textura); ... end.
    Akkor az eljárás végére nem lenne más a karx és kary értéke? Mivel úgymond azokat változtatom az eljárásban...
    Mutasd a teljes hozzászólást!
  • Ahogy nézem, valóban nincs szükség erre a két változóra. X-et és Y-t a rutin elején csak arra használod, hogy ES:DX-be kiszámold a képernyőn az offset címet, utána már mindegy az értékük - akár el is ronthatod. Használhatod egyszerűen az X-et és az Y-t az FX, FY helyett (amelyek mint átadott paraméterek egyébként a stackben vannak, ha jól számolom, ss:[bp + 10] és ss:[bp + 12] címeken).
    Üdv:
    Mutasd a teljes hozzászólást!
  • Ámberek, van egy gondom!!!
    Íme a kód, utána a gond...
    Procedure TCutKirajz(x,y:integer;source:pointer);assembler; var fx,fy:integer; asm push x {x m sol sa} pop fx {a vermen keresztl} push y {y m sol sa} pop fy {a vermen keresztl} push ds cld mov ES,Buffer mov ax,320 mul y add ax,x mov dx,ax lds si,source mov bx,16 @rows: push fx {mentjk az fx &#8218;rt&#8218;k&#8218;t} mov di,dx mov cx,16 @pixels: lodsb test al,al jz @skip cmp fy,0 {pixel y koordja<0?} jl @skip {akkor kihagy} cmp fy,199 {pixel y koordja>199?} jg @skip {akkor kihagy} cmp fx,0 {pixel x koordja<0?} jl @skip {akkor kihagy} cmp fx,319 {pixel x koordja>319?} jg @skip {akkor kihagy} mov ES:[di],al @skip: inc di inc fx {n"veljk az fx &#8218;rt&#8218;k&#8218;t} loop @pixels pop fx {fx-nek visszat"ltjk az eredeti &#8218;rt&#8218;k&#8218;t} inc fy {n"veljk fy &#8218;rt&#8218;k&#8218;t} add dx,320 dec bx jnz @rows pop ds end;
    No. Ez egy 16*16-os rajzot másol egy bufferba a memóriából. Annyit lehet rajta optimalizálni, hogy ne kelljen bele az fx és fy változó? Ha a pixel 0 színű, akkor azt nem másolja, hanem kihagyja, mert az számít az átlátszónak... Az fx és fy változókat azért vezettem be, hogy az éppen kirajzolandó pixel koordinátája is ott legyen a kiíratáskor és ha a 320*200-as képről kilóg, akkor szintén nem rajzolódik ki... Viszont örülök magamnak, mert legalább ennyit bele tudtam csempészni egy progiba, hogy vágja meg a képet... Olyan büszke vagyok magamra!!!
    Mutasd a teljes hozzászólást!
  • Hi!

    Nem értem a kódodat.

    En sem leirtam, hogy pelda!

    de a cpu prefetch miatt

    Ezt újra KELLENE olvasnia, de a SP-t nem így kezeli.
    A processzor kódoptimalizálása és a megváltozott szegmes újraolvasása között van egy kis különbség! Tetccik
    Mutasd a teljes hozzászólást!
  • Kapcsolódva még az önmódosító kódhoz: igen, ritkán van szükség rá, esetleg, ha védelmet vagy mutációs motort írsz.


    Meg még jónéhány esetben hasznos lehet. Pl. lehet optimalizációra is használni, sokat javíthat a teljesítményen (és sokat ronthat az olvashatóságon). Anno a sw-renderes időkben pl. a leggyorsabb háromszög-fillező rutinok is tartalmaztak önmódosító kódot.
    Mutasd a teljes hozzászólást!
abcd