Bscmd.inc
[ Return to Browse Source Page ]
bscmdland:
test al,al
jz bscmd1
test al,2
jnz bscmd3
bscmd2:
call clearscreen
mov edi,offset hd_buffer
mov ebx,ds:[bscmd_var]
inc ebx
mov ds:[bscmd_var],ebx
dec ebx
mov eax,ebx
call print_hex_32
mov al,020h
call print_char
mov eax,dword ptr ds:[hd_i0]
call print_hex_32
xor eax,eax
call read_sector
jc pausereset
mov edx,16
push es
mov ax,os_vram
mov edi,(4*(80*2) + 24*2)
mov esi,offset hd_buffer
mov es,ax
bscmd2_o:
mov ecx,32
bscmd2_i:
mov al,[esi]
dec ecx
lea esi,[esi+1]
mov es:[edi],al
lea edi,[edi+2]
jnz bscmd2_i
dec edx
lea edi,[edi + (24*2*2)]
jnz bscmd2_o
mov ax,23*256
call set_cursor
pop es
ret
;mov esi,offset bscmdmsg2
;call print
;call do_short_delay
;ret
;bscmd1:
mov ebx,-1
bscmd1loop:
inc ebx
xor eax,eax
mov edi,offset hd_buffer
call read_sector
mov al,byte ptr ds:[offset hd_dsc + 2]
xor al,040h
mov byte ptr ds:[offset hd_dsc + 2],al
mov ebp,dword ptr ds:[hd_buffer]
push ebp
xor eax,eax
mov edi,offset hd_buffer
call read_sector
mov al,byte ptr ds:[offset hd_dsc + 2]
xor al,040h
mov byte ptr ds:[offset hd_dsc + 2],al
pop ebp
sub ebp,dword ptr ds:[hd_buffer]
jnz bscmd1break
call get_key
jc bscmd1loop
bscmd1break:
mov eax,ebx
call print_hex_32
call do_crlf
bscmd1:
xor ebx,ebx
mov ds:[bscmd_var],ebx
mov ebp,ds:[hd_units]
xor edx,edx
or ebp,ebp
mov esi,offset hd_dsc + 2
jz bscmd1leave
bscmd1stay:
mov eax,edx
call print_num
mov al,':'
call print_char
mov bl,[esi]
lea esi,[esi+16]
test bl,01000000b
mov al,'l'
jz bscmd1_c1
call print_char
bscmd1_c1:
test bl,0100b
mov al,'p'
jz bscmd1_c2
call print_char
bscmd1_c2:
call do_crlf
dec ebp
lea edx,[edx+1]
jnz bscmd1stay
bscmd1leave:
ret
;call clearscreen
;mov esi,offset bscmdmsg1
;call print
;call do_short_delay
;ret
;bscmd3:
xor ebx,ebx
mov edi,offset hd_buffer
bscmd3__1:
xor eax,eax
call read_sector
jc pausereset
lea ebx,[ebx+1]
call get_key
jc bscmd3__1
call clearscreen
jmp bscmd3__2
bscmd3:
call clearscreen
bscmd3_1:
mov edi,offset hd_buffer
mov ebx,ds:[bscmd_var]
inc ebx
mov ds:[bscmd_var],ebx
dec ebx
bscmd3__2:
mov eax,ebx
call print_hex_32
mov al,020h
call print_char
mov eax,dword ptr ds:[hd_i0]
call print_hex_32
xor eax,eax
call set_cursor
call read_sector
jc pausereset
mov edx,16
push es
mov ax,os_vram
mov edi,(4*(80*2) + 24*2)
mov esi,offset hd_buffer
mov es,ax
bscmd3_o:
mov ecx,32
bscmd3_i:
mov al,[esi]
dec ecx
lea esi,[esi+1]
mov es:[edi],al
lea edi,[edi+2]
jnz bscmd3_i
dec edx
lea edi,[edi + (24*2*2)]
jnz bscmd3_o
pop es
call get_key
jc bscmd3_1
mov ax,23*256
call set_cursor
ret
;call clearscreen
;mov esi,offset bscmdmsg3
;call print
;call do_short_delay
;mov esi,offset bscmdmsg32
;call print
;call do_short_delay
;mov esi,offset bscmdmsg33
;call print
;call do_short_delay
;ret
do_short_delay:
mov ecx,100
call common_delay_2
ret
Download this file.
[ Return to Browse Source Page ]
Copyright 2000, Ed Pizzi