home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Simtel MSDOS 1992 September
/
Simtel20_Sept92.cdr
/
msdos
/
comptbls
/
ckcompaq.asm
< prev
next >
Wrap
Assembly Source File
|
1992-09-08
|
2KB
|
76 lines
PAGE 60,132
;
; CKCOMPAQ : A program to check for the COMPAQ copyright notice in the BIOS ROM.
;
; Tom Brengle (BRENGLE%LLL@LLL.MFE)
;
; Lawrence Livermore National Laboratory
; P. O. Box 5511, L-630
; Livermore, California 94550
;
; CKCOMPAQ checks for COMPAQ Corp's copyright notice in the BIOS ROM. If it
; finds the correct notice, the program sets the ERRORLEVEL to zero and exits.
; Otherwise, it sets the ERRORLEVEL to one and exits. This program is useful
; for controlling the installation of hardware-dependent software at boot-up
; time through the use of IF ERRORLEVEL commands in the AUTOEXEC.BAT file.
;
; To build CKCOMPAQ :
;
; 1. Assemble CKCOMPAQ.
;
; MASM CKCOMPAQ;
;
; 2. Link CKCOMPAQ;
;
; LINK CKCOMPAQ;
;
; 3. Convert CKCOMPAQ.EXE to CKCOMPAQ.COM;
;
; EXE2BIN CKCOMPAQ.EXE CKCOMPAQ.COM
;
;
ROM_BIOS_Code segment at 0F000h ; Locate the ROM BIOS code segment.
org 0A000h
ROM_Notice db 69d dup (?)
ROM_BIOS_Code ends
code_seg segment
assume cs:code_seg
org 100h
Begin: jmp CkCOMPAQ
COMPAQ_Notice db '(C) Copyright COMPAQ Computer Corporation, 1982, All rights reserved.',0
CkCOMPAQ proc near
assume ds:ROM_BIOS_Code ; Set up ROM BIOS data segment.
mov bx,ROM_BIOS_Code
mov ds,bx
mov si,offset COMPAQ_Notice ; Set up pointers to the two strings.
mov di,offset ROM_Notice
Loop: mov al,cs:[si] ; Get the next char of the COMPAQ notice.
cmp al,0 ; Is it the trailing null?
je COMPAQ_OK ; Yes, then the strings match.
cmp al,ds:[di] ; Otherwise, check it against the next char of the ROM notice.
jne Not_COMPAQ ; If not the same, the strings are different.
inc si ; Increment pointers...
inc di
jmp Loop ; ... and loop back for next char.
Not_COMPAQ: ; Here if strings don't match.
mov al,1 ; Set the error level to one.
mov ah,4Ch ; Exit to DOS.
int 21h
COMPAQ_OK: ; Here if strings match.
mov al,0 ; Set the error level to zero.
mov ah,4Ch ; Exit to DOS.
int 21h
CkCOMPAQ endp
code_seg ends
end Begin