www.pudn.com > czxtsycx1.zip > GET3BOOT.ASM


CODE        SEGMENT PARA USE16  
            ASSUME CS:CODE 
START:       
            CLI 
            MOV AX,SEG CODE 
            MOV SS,AX 
            MOV DS,AX 
            MOV ES,AX 
            STI 
            MOV AX,OFFSET STACK0 
            ADD AX,511 
            MOV SP,AX 
 
            MOV AX,0600H         ;clear screen 
            MOV BH,07H 
            MOV CX,0 
            MOV DX,184FH 
            INT 10H 
 
            MOV AX,1301H         ;display head 
            MOV DX,0217H 
            MOV BX,12H 
            MOV BP,OFFSET HEAD 
            MOV SI,BP 
            MOV CL,[SI] 
            XOR CH,CH 
            INC BP 
            INT 10H 
 
            MOV AX,1301H         ;display SELECT 
            MOV DX,0400H 
            MOV BX,07H 
            MOV BP,OFFSET SEL_PART 
            MOV SI,BP 
            MOV CL,[SI] 
            XOR CH,CH 
            INC BP 
            INT 10H 
 
KEY:        MOV AH,10H  
            INT 16H 
            CMP AL,33H 
            JE  READ_PRI 
            CMP AL,34H    ;up 
            JE  READ_PRI 
            JNE  KEY 
 
READ_PRI: 
            PUSH AX 
            ;;;;;;;;;;;;;;;;;;;;; read priboot use INT13H 02 
            MOV AX,SEG CODE 
            MOV DS,AX 
            MOV ES,AX 
            MOV BX,OFFSET PRIBOOT 
            MOV AH,2 
            MOV AL,1 
            MOV CH,0       ;cylinder 
            MOV CL,1       ;sector 
            MOV DH,0       ;head 
            MOV DL,80H     ;driver: hard disk 1 
            INT 13H        ;=bios 13h 
 
            MOV SI,OFFSET PRIBOOT 
            POP AX 
            CMP AL,33H 
            JE  P3 
                            ;   4 partition 
            ADD SI,1EEH 
p3:         ADD SI,1DEH     ;   3 partition 
            MOV DX,[SI] 
            MOV CX,[SI+2] 
            MOV DL,80H 
            ;;;;;;;;;;;;;;;;;;;;; read COSBoot use INT13H 02 
            MOV BX,OFFSET COSBOOT 
            MOV AH,2 
            MOV AL,1 
            INT 13H        ;=bios 13h 
             
            ;;;;;;;;;;;;;;;;;;;;; save COSboot to C:\TC\G\BOOT.COS 
            MOV DX,OFFSET FNAME 
            MOV CX,0 
            MOV AH,3CH     ;CREAT FILE 
            INT 21H 
            MOV AL,01H     ;FOR WRITE 
            MOV AH,3DH     ;OPEN FILE 
            INT 21H 
            MOV BX,AX      ;BX=FILE HANDLE 
            MOV DX,OFFSET COSBOOT 
            MOV CX,512 
            MOV AH,40H     ;WRITE FILE 
            INT 21H 
            MOV AH,3EH     ;CLOSE FILE 
            INT 21H 
 
            MOV AX,4C00H 
            INT 21H 
 
HEAD        DB 34,'Read partition BOOT sector Program' 
SEL_PART    DB 37,'Please select the partition(3 OR 4) :' 
FNAME       DB "C:\TC\G\BOOT.COS",0 
STACK0      DB 512 DUP(?) 
PRIBOOT     DB 512 DUP(0) 
COSBOOT     DB 512 DUP(0) 
CODE        ENDS 
END START