Hírek | Archívum | Fórum | IRC | Amiga | AmigaOS | FAQ | RSS

 - Fórumok - Keresés - Statisztika - Szabályzat - Pegasos.hu fórum
forum.amigaspirit.hu / Fejlesztés / Általános fejlesztési kérdések
<< 1 ... 18 . 19 .
Szerző Üzenet
anchor
Tag

# Elküldve: 2020. Jan. 31. 15:59


Yellow Dog cmpa.l #$0,a2 ... de ez hosszabb kódot eredményez :)
6 byte 4 helyett. emiatt nem garantált hogy a végrehajtása gyorsabb.

Yellow Dog
Tag

# Elküldve: 2020. Jan. 31. 21:12 - Szerkesztve: yellowdog


Quoting: anchor
cmpa.l #$0,a2 ... de ez hosszabb kódot eredményez

Köszönöm, jó tudni, hogy van ilyen is! Végül módosítottam a kódot, a visszatérési értéket D0-t tesztelem és csak azt követően, ha érvényes, adom át A2-be sz értéket, így még egyszerűbb is lett a kód.

Esetleg véleményezésre ide tenném, köszönöm:

; ---------------- get device name ----------------

move.l #5,d1 ;devices = 4, volumes = 8, assign = 16
CALLDOS LockDosList
move.l d0,a2

lea DeviceList(PC),a3 ;mutató a névlista első elem címére

DLLoop
move.l a2,d1
move.l #5,d2
CALLDOS NextDosEntry
tst.l d0 ;érvényes bejegyzés?
beq DLEndList ;ha nem, nincs több -> keresés vége
move.l d0,a2 ;ha igen, következő pointer eltárolása

move.l dol_Task(a2),d0 ;file system device?
tst.l d0
beq DLLoop ;ha nem, ugrás a következőre

lea DeviceNum(PC),a4 ;érvényes device-ok darabszáma +1
add.l #1,(a4)

move.l a3,d3 ;aktuális bejegyzés mutató tárolása
move.l d0,(a3)+ ;task pointer letárolása
move.l dol_Name(a2),d0 ;név pointer beolvasása és x4
lsl.l #2,d0
addq.l #1,d0 ;hossz érték tároló átlépése és
move.l d0,a4 ;mutató beállítása első karakterre

DLStoreChar
move.b (a4)+,(a3)+ ;név másolása
tst.b (a4) ;van még karakter?
bne DLStoreChar ;ha igen ugrás a következőre
move.b #$3a,(a3) ;utolsó karakter után : tárolása
move.l d3,a3 ;aktuális bejegyzés mutató visszatöltése
add #$10,a3 ;következő bejegyzés címe +$10
bra DLLoop ;következő keresése

DLEndList
move.l #5,d1
CALLDOS UnLockDosList

<< 1 ... 18 . 19 .
forum.amigaspirit.hu / Fejlesztés / Általános fejlesztési kérdések
 
 

Powered by forum software miniBB™ © 2001-2020