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