              <<< ISVNET::DISK$OTHER:[NOTES$LIBRARY]VMS.NOTE;1 >>>
                           -< VMS Operating System >-
================================================================================
Note 307.4                      Undelete utility?                         4 of 4
XLIB::SCHAFER "Mark Schafer, ISV Tech. Support"      18 lines  16-DEC-1991 16:36
                                -< checkr.mar >-
--------------------------------------------------------------------------------

       .TITLE CHECKR
;
; SUBROUTINE WHEN PASSED A HEADER OF 512 BYTES, IT GETS EACH CONSECUTIVE


; WORD AND ADDS IT TO AN UNSIGNED WORD.  INGORE OVERFLOW AND LOST BITS.
; PUT THE WORD IN THE LAST 2 BYTES OF THE HEADER AND PASS IT BACK.
;
       .ENTRY CHECKR,^M<R2> ; PULL IN THE HEADER RECORD ADDRESS THRU R2
       CLRL   R1            ; R1 IS CHECKSUM
       MOVL   4(AP),R2      ; R2 IS HEADER RECORD ADDRESS
       MOVZBL #255,R0       ; R0 IS COUNTER
10$:   ADDW2  (R2)+, R1     ; ADD LWORD TO R1. NEXT TIME LOOK + A WORD
       SOBGTR R0, 10$       ; DO THIS 254 TIMES
       MOVW   R1, (R2)      ; PUT THE CHECKSUM IN LAST LONGWORD OF RECORD
       RET                  ; PASS THE NEW CHECKR RECORD BACK TO UNDL
       .END
