Changeset 68 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/BiosFile.asm
- Timestamp:
- Dec 9, 2010, 6:36:00 PM (14 years ago)
- google:author:
- aitotat
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/BiosFile.asm
r65 r68 2 2 ; Project name : XTIDE Univeral BIOS Configurator v2 3 3 ; Created date : 10.10.2010 4 ; Last update : 30.11.20104 ; Last update : 6.12.2010 5 5 ; Author : Tomi Tilli 6 6 ; Description : Functions for loading and saving BIOS image file. … … 23 23 push ds 24 24 25 call .OpenFileForLoadingFromDSSIandGetSizeTo CX26 jc SHORT .DisplayErrorMessage 27 call .LoadFileWithNameInDSSIhandleInBXandSizeIn CXtoRamBuffer25 call .OpenFileForLoadingFromDSSIandGetSizeToDXCX 26 jc SHORT .DisplayErrorMessage 27 call .LoadFileWithNameInDSSIhandleInBXandSizeInDXCXtoRamBuffer 28 28 jc SHORT .DisplayErrorMessage 29 29 30 30 mov ax, FLG_CFGVARS_FILELOADED 31 call Buffers_NewBiosWithSizeIn CXandSourceInAXhasBeenLoadedForConfiguration31 call Buffers_NewBiosWithSizeInDXCXandSourceInAXhasBeenLoadedForConfiguration 32 32 call DisplayFileLoadedSuccesfully 33 33 call FileIO_CloseUsingHandleFromBX … … 43 43 44 44 ;-------------------------------------------------------------------- 45 ; .OpenFileForLoadingFromDSSIandGetSize ToCX45 ; .OpenFileForLoadingFromDSSIandGetSizeInBytesToDXCX 46 46 ; Parameters: 47 47 ; DS:SI: Name of file to open 48 48 ; Returns: 49 49 ; BX: File handle (if succesfull) 50 ; CX:File size (if succesfull)50 ; DX:CX: File size (if succesfull) 51 51 ; CF: Clear if successfull 52 52 ; Set if error 53 53 ; Corrupts registers: 54 ; AX , DX55 ;-------------------------------------------------------------------- 56 ALIGN JUMP_ALIGN 57 .OpenFileForLoadingFromDSSIandGetSizeTo CX:54 ; AX 55 ;-------------------------------------------------------------------- 56 ALIGN JUMP_ALIGN 57 .OpenFileForLoadingFromDSSIandGetSizeToDXCX: 58 58 mov al, FILE_ACCESS.ReadOnly 59 59 call FileIO_OpenWithPathInDSSIandFileAccessInAL … … 62 62 jc SHORT .FileError 63 63 64 cmp dx, BYTE 1 ; File size over 65536 bytes?64 cmp dx, MAX_EEPROM_SIZE_IN_BYTES >> 16 65 65 ja SHORT .FileTooBig 66 jb SHORT .CopyFileSizeToCX 67 test ax, ax 68 jnz SHORT .FileTooBig 69 dec ax ; Prepare to load 65535 bytes 70 .CopyFileSizeToCX: 66 jb SHORT .FileNotTooBig 67 cmp ax, MAX_EEPROM_SIZE_IN_BYTES & 0FFFFh 68 ja SHORT .FileTooBig 69 .FileNotTooBig: 71 70 xchg cx, ax 72 71 clc … … 79 78 80 79 ;-------------------------------------------------------------------- 81 ; .LoadFileWithNameInDSSIhandleInBXandSizeIn CXtoRamBuffer80 ; .LoadFileWithNameInDSSIhandleInBXandSizeInDXCXtoRamBuffer 82 81 ; Parameters: 83 82 ; BX: File Handle 84 ; CX:File size83 ; DX:CX: File size 85 84 ; DS:SI: File name 86 85 ; Returns: … … 91 90 ;-------------------------------------------------------------------- 92 91 ALIGN JUMP_ALIGN 93 .LoadFileWithNameInDSSIhandleInBXandSizeIn CXtoRamBuffer:92 .LoadFileWithNameInDSSIhandleInBXandSizeInDXCXtoRamBuffer: 94 93 push es 95 94 96 95 call Buffers_GetFileBufferToESDI 97 96 call Registers_ExchangeDSSIwithESDI 98 call FileIO_Read CXbytesToDSSIusingHandleFromBX97 call FileIO_ReadDXCXbytesToDSSIusingHandleFromBX 99 98 jnc SHORT .StoreFileNameToCfgvarsFromESDI 100 99 … … 163 162 call Buffers_GetFileBufferToESDI 164 163 call Registers_CopyESDItoDSSI 164 xor dx, dx 165 165 mov cx, [cs:g_cfgVars+CFGVARS.wImageSizeInWords] 166 166 shl cx, 1 167 call FileIO_WriteCXbytesFromDSSIusingHandleFromBX 167 rcl dx, 1 ; WORDs to BYTEs 168 call FileIO_WriteDXCXbytesFromDSSIusingHandleFromBX 168 169 jc SHORT .DisplayErrorMessage 169 170
Note:
See TracChangeset
for help on using the changeset viewer.