home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power-Programmierung
/
CD1.mdf
/
assemblr
/
disasm
/
re86
/
beispiel.a01
< prev
next >
Wrap
Text File
|
1993-07-27
|
9KB
|
284 lines
;--------------------------------------------------------------------------
; Änderungen gegenüber der von R86 erzeugten Datei BEISPIEL.A00:
;
; - Symbole durch Festwerte ersetzt
; - ASCII-Datendeklarationen zurechtgerückt
;
;--------------------------------------------------------------------------
jmp l047Ah
l0103h:
db 'DRV V2.00 (C) 1990-1992 Stefan Bion, enter DRV /H for help',0Dh,0Ah,0
l0140h:
db 'Invocation syntax: DRV [options]',0Dh,0Ah,0Dh,0Ah
db 'options: /H display this help information',0Dh,0Ah
db ' /P stop after each page',0Dh,0Ah,0Dh,0Ah
db 'DRV sends a listing of the installed device drivers to StdOut.',0Dh,0Ah
db 'If you redirect the output, option /P has no effect.',0Dh,0Ah,0
l0230h:
db 0Dh,0Ah
db ' ┌────────────────── CHR',0Dh,0Ah
db ' │┌───────────────── IOCTL',0Dh,0Ah
db ' ││┌──────────────── NONIBM',0Dh,0Ah
db ' │││┌─────────────── NETWORK',0Dh,0Ah
db ' ││││┌────────────── OCRM (OPEN DEVICE, CLOSE DEVIVE,',0Dh,0Ah
db ' │││││ REMOVABLE MEDIA)',0Dh,0Ah
db ' │││││ ┌───── CLOCK',0Dh,0Ah
db ' │││││reserved│┌──── NUL',0Dh,0Ah
db ' │││││ │ ││┌─── STDOUT',0Dh,0Ah
db ' │││││┌┬┬┴┬┬┬┐│││┌── STDIN',0Dh,0Ah
db ' ││││││││ ││││││││',0Dh,0Ah
db ' Header ││││││││ ││││││││ Strategy Interrupt'
db ' Name',0Dh,0Ah,0Dh,0Ah,0
l0444h db ' ',0
l0448h db ' Blockdr',0Dh,0Ah,0
l0453h db ' ',0Dh,0Ah,0
l045Eh db 0
l045Fh db 0
l0460h db 0
l0461h db 0Fh
l0462h db 'Interrupted',0Dh,0Ah,'$'
l0470h db ' - key -',0Dh,'$'
l047Ah: push dx
mov dx,offset l0103h
call l05C2h
pop dx
mov ax,2523h
mov dx,offset l0653h
int 21h
push ds
xor ax,ax
mov ds,ax
mov al,b[484h]
pop ds
mov b[l0460h],al
mov si,81h ;'ü'
cld
l049Ah: lodsb
cmp al,0Dh
je l04C0h
cmp al,2Fh ;'/'
jne l049Ah
lodsb
cmp al,0Dh
je l04C0h
and al,0DFh
cmp al,48h ;'H'
jne l04B5h
mov b[l045Eh],1
jmp short l049Ah
l04B5h: cmp al,50h ;'P'
jne l049Ah
mov b[l045Fh],1
jmp short l049Ah
l04C0h: cmp b[l045Eh],1
jne l04D4h
push dx
mov dx,offset l0140h
call l05C2h
pop dx
mov ax,4C00h
int 21h
l04D4h: push ds
mov bx,34h ;'4'
lds bx,d[bx]
cmp b[bx+1],1
pop ds
je l04E6h
mov b[l045Fh],0
l04E6h: push dx
mov dx,offset l0230h
call l05C2h
pop dx
mov ah,52h ;'R'
int 21h
add bx,22h ;'"'
jae l04FEh
mov ax,es
add ax,1000h
mov es,ax
l04FEh: call l0518h
es mov ax,w[bx]
cmp ax,-1
je l0513h
es mov dx,w[bx+2]
mov bx,ax
mov es,dx
jmp short l04FEh
l0513h: mov ax,4C00h
int 21h
l0518h: mov ax,es
call l05F9h
mov ah,2
mov dl,3Ah ;':'
int 21h
mov ax,bx
call l05F9h
push dx
mov dx,offset l0444h
call l05C2h
pop dx
es mov ax,w[bx+4]
xchg al,ah
call l0635h
push ax
mov ah,2
mov dl,20h ;' '
int 21h
pop ax
xchg al,ah
call l0635h
push dx
mov dx,offset l0444h
call l05C2h
pop dx
mov ax,es
call l05F9h
mov ah,2
mov dl,3Ah ;':'
int 21h
es mov ax,w[bx+6]
call l05F9h
push dx
mov dx,offset l0444h
call l05C2h
pop dx
mov ax,es
call l05F9h
mov ah,2
mov dl,3Ah ;':'
int 21h
es mov ax,w[bx+8]
call l05F9h
push dx
mov dx,offset l0444h
call l05C2h
pop dx
es mov ax,w[bx+4]
test ax,8000h
jne l05A0h
es mov al,b[bx+0Ah]
xor ah,ah
call l05D7h
push dx
mov dx,offset l0448h
call l05C2h
pop dx
call l0663h
ret
l05A0h: mov di,bx
add di,0Ah
mov si,offset l0453h
mov cx,4
l05ABh: es mov ax,w[di]
mov w[si],ax
inc di,di,si,si
loop l05ABh
push dx
mov dx,offset l0453h
call l05C2h
pop dx
call l0663h
ret
l05C2h: push ax,si
mov si,dx
mov ah,2
cld
l05C9h: lodsb
cmp al,0
je l05D4h
mov dl,al
int 21h
jmp short l05C9h
l05D4h: pop si,ax
ret
l05D7h: push ax,bx,cx,dx
mov bx,0Ah
xor cx,cx
l05E0h: xor dx,dx
div bx
add dl,30h ;'0'
push dx
inc cx
or ax,ax
jne l05E0h
mov ah,2
l05EFh: pop dx
int 21h
loop l05EFh
pop dx,cx,bx,ax
ret
l05F9h: push ax,bx,cx,dx,si
mov cx,4
l0601h: mov si,ax
and si,0Fh
mov bl,b[si+l0625h]
push bx
shr ax,1
shr ax,1
shr ax,1
shr ax,1
loop l0601h
mov cx,4
mov ah,2
l061Ah: pop dx
int 21h
loop l061Ah
pop si,dx,cx,bx,ax
ret
l0625h db '0123456789ABCDEF'
l0635h: push ax,bx,cx,dx
mov bl,al
mov cx,8
mov ah,2
l0640h: rcl bl,1
jb l0648h
mov dl,0F9h
jmp short l064Ah
l0648h: mov dl,31h ;'1'
l064Ah: int 21h
loop l0640h
pop dx,cx,bx,ax
l0652h: ret
l0653h: mov ax,cs
mov ds,ax
mov ah,9
mov dx,offset l0462h
int 21h
mov ax,4C01h
int 21h
l0663h: cmp b[l045Fh],0
je l0652h
inc b[l0461h]
mov al,b[l0461h]
cmp al,b[l0460h]
jb l0652h
mov b[l0461h],0
mov ah,9
mov dx,offset l0470h
int 21h
mov ah,8
int 21h
ret