home *** CD-ROM | disk | FTP | other *** search
- /*
- * ChQuit.c
- *
- * QUIT CHCS SYSTEM
- *
- */
-
- #pragma inline
-
- static unsigned char ver[9] = "\x0d\x0a\x09\CHCS";
-
- void Error(char *str)
- {
- asm {
- mov ah, 09h
- mov dx, str
- int 21h
- mov ax, 4cffh
- int 21h
- }
- }
-
- void Message(char *str)
- {
- asm {
- mov ah, 09h
- mov dx, str
- int 21h
- mov ax, 4c00h
- int 21h
- }
- }
-
- void main()
- {
- asm {
- push es
- push di
- mov ax, 3f00h
- int 16h // es:bx = ver
- mov al, es:[bx+5]
- mov di, bx
- lea si, ver
- mov cx, 5
- cld
- repz cmpsb
- pop di
- pop es
- jnz NoCHCS
- jmp Quit
- }
-
- NoCHCS: Error("CHCS/CHIS not loaded !\x0d\x0a$");
- ISQuit: Message("│╔╚╗┬δ╩Σ╚δ╧╡═│ CHIS ═╦│÷═Ω▒╧.\x0d\x0a$");
-
- Quit:
- asm {
- push ax
- mov ah, 81h
- int 16h
- cmp ax, 0
- pop ax
- jne NotQuit
- cmp al, 'C'
- jne ISQuit
- mov ah, 0fh
- int 10h
- cmp al, 3
- je ret0
- mov ax, 3
- int 10h
- }
- ret0: exit(0);
- NotQuit: Error("\x07╙╨│╠╨≥╫ñ┴⌠─┌┤µ, ▓╗─▄│╖│²│╔╚╗┬δ╧╡═│ !\x0d\x0a$");
- }
-