summaryrefslogtreecommitdiffstats
path: root/contrib/syslinux/latest/com32/gfxboot/realmode_callback.asm
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/syslinux/latest/com32/gfxboot/realmode_callback.asm')
-rw-r--r--contrib/syslinux/latest/com32/gfxboot/realmode_callback.asm190
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
-