; Name    : COMPARE.ASM
; Aufgabe : Hilfsprogramm fr Diskcopy zum Diskettencompare.
;         : Assemblieren mit MASM ab 4.0 o.. zu COMPARE.OBJ
;         : Wird dann von Turbo-Pascal mit DCC
;         : zusammengelinkt.

code            segment
                assume  cs:code

; Parameter (Offset +2 wegen push bp)

spuffer         equ     dword ptr ss:[bp+12]
dpuffer         equ     dword ptr ss:[bp+8]
anzsektor       equ     byte  ptr ss:[bp+6]

vergleich       proc    far
                public  vergleich
                mov     dx, ds      ;Datensegment retten
                push    bp
                mov     bp, sp      ;Zeiger auf Stack
                lds     si, spuffer ;Adresse der Sourcedaten
                les     di, dpuffer ;Adresse der Destinationdaten
                mov     bh, 0
                mov     bl, anzsektor ;Anzahl der Comparesektoren
                mov     cl, 8
                sal     bx, cl      ;*256 = Anzahl der Wrter
                mov     cx, bx      ;Als Zhler verwenden
                cld                 ;nach oben vergleichen
                repe    cmpsw       ;Vergleich der Daten
                cmp     cx, 0       ;Alle Daten verglichen?
                je      weiter      ;Ja
                mov     ax, 1       ;Fehler bei Vergleich
                jmp     short ende
weiter:
                mov     ax, 0       ;Kein Fehler aufgetreten

ende:
                mov     ds, dx      ;DS von Turbo wiederherstellen
                pop     bp
                ret     10
vergleich       endp
code            ends
                end
