diff options
Diffstat (limited to 'contrib/syslinux/latest/com32/gfxboot/realmode_callback.asm')
-rw-r--r-- | contrib/syslinux/latest/com32/gfxboot/realmode_callback.asm | 190 |
1 files changed, 0 insertions, 190 deletions
diff --git a/contrib/syslinux/latest/com32/gfxboot/realmode_callback.asm b/contrib/syslinux/latest/com32/gfxboot/realmode_callback.asm deleted file mode 100644 index 2ff30f2..0000000 --- a/contrib/syslinux/latest/com32/gfxboot/realmode_callback.asm +++ /dev/null @@ -1,190 +0,0 @@ - bits 16 - - section .text - - ; must be filled in -f_buf_size dw 0 -f_buf_seg dw 0 - - -; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -gfx_cb: - push cs - pop ds - - cmp al,cb_len - jae gfx_cb_80 - - movzx bx,al - add bx,bx - call word [bx+cb_table] - jmp gfx_cb_90 - -gfx_cb_80: - mov al,0ffh -gfx_cb_90: - retf - - -; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -; Return status info. -; -; return: -; edx filename buffer (64 bytes) -; -cb_status: - mov edx,cs - shl edx,4 - add edx,f_name - xor al,al - ret - - -; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -; Open file. -; -; return: -; al 0: ok, 1: file not found -; ecx file length (al = 0) -; -cb_fopen: - mov si,f_name - push ds - pop es - mov ax,6 - int 22h - xchg edx,eax - mov al,1 - jc cb_fopen_90 - cmp cx,[f_buf_size] - ja cb_fopen_90 - or cx,cx - jz cb_fopen_90 - mov [f_block_size],cx - or edx,edx - jz cb_fopen_90 - mov [f_handle],si - mov [f_size],edx - mov ecx,edx - mov ax,[f_buf_size] - cwd - div word [f_block_size] - mov [f_blocks],ax - - xor al,al -cb_fopen_90: - ret - - -; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -; Read next chunk. -; -; return: -; edx buffer address (linear) -; ecx data length (< 64k) -; -cb_fread: - xor ecx,ecx - mov si,[f_handle] - or si,si - jz cb_fread_80 - mov cx,[f_blocks] - mov es,[f_buf_seg] - xor bx,bx - mov ax,7 - int 22h - mov [f_handle],si - mov al,1 - jc cb_fread_90 -cb_fread_80: - xor al,al -cb_fread_90: - movzx edx,word [f_buf_seg] - shl edx,4 - ret - - -; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -; Return current working directory. -; -; return: -; edx filename -; -cb_getcwd: - mov ax,1fh - int 22h - mov edx,es - shl edx,4 - movzx ebx,bx - add edx,ebx - xor al,al - ret - - -; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -; Set current working directory. -; -cb_chdir: - mov bx,f_name - push ds - pop es - mov ax,25h - int 22h - xor al,al - ret - - -; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -; read sector -; -; edx sector -; -; return: -; edx buffer (linear address) -; -; Note: does not return on error! -; -cb_readsector: - xor edi,edi - xor esi,esi - mov cx,1 - mov es,[f_buf_seg] - xor bx,bx - mov ax,19h - int 22h - movzx edx,word [f_buf_seg] - shl edx,4 - xor al,al - ret - - -; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -; Re-read fs structures. -; -cb_mount: - mov ax,26h - int 22h - setc al - ret - - -; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -; - align 2, db 0 - -cb_table dw cb_status - dw cb_fopen - dw cb_fread - dw cb_getcwd - dw cb_chdir - dw cb_readsector - dw cb_mount -cb_len equ ($-cb_table)/2 - -f_handle dw 0 -f_block_size dw 0 -f_blocks dw 0 -f_size dd 0 -f_name times 64 db 0 -f_name_len equ $ - f_name - |