Changeset 621 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/BiosFile.asm
- Timestamp:
- Nov 21, 2021, 2:15:32 PM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/BiosFile.asm
r596 r621 33 33 ALIGN JUMP_ALIGN 34 34 BiosFile_LoadFileFromDSSItoRamBuffer: 35 push ds 36 37 call .OpenFileForLoadingFromDSSIandGetSizeToDXCX 35 mov al, FILE_ACCESS.ReadOnly 36 call FileIO_OpenWithPathInDSSIandFileAccessInAL 38 37 jc SHORT .DisplayErrorMessage 38 39 call FileIO_GetFileSizeToDXAXusingHandleFromBXandResetFilePosition 40 jc SHORT .CloseUsingHandleFromBXandDisplayErrorMessage 41 42 cmp dx, MAX_EEPROM_SIZE_IN_BYTES >> 16 43 jb SHORT .FileNotTooBig 44 ja SHORT .FileTooBig 45 %if (MAX_EEPROM_SIZE_IN_BYTES & 0FFFFh) = 0 46 test ax, ax 47 jnz SHORT .FileTooBig 48 %else 49 cmp ax, MAX_EEPROM_SIZE_IN_BYTES & 0FFFFh 50 ja SHORT .FileTooBig 51 %endif 52 .FileNotTooBig: 53 xchg cx, ax 54 39 55 call .LoadFileWithNameInDSSIhandleInBXandSizeInDXCXtoRamBuffer 40 jc SHORT . DisplayErrorMessage56 jc SHORT .CloseUsingHandleFromBXandDisplayErrorMessage 41 57 42 58 mov al, FLG_CFGVARS_FILELOADED 43 59 call Buffers_NewBiosWithSizeInDXCXandSourceInALhasBeenLoadedForConfiguration 44 60 call FileIO_CloseUsingHandleFromBX 45 call DisplayFileLoadedSuccessfully 46 pop ds 47 ret 48 49 .DisplayErrorMessage: 50 call FileIO_CloseUsingHandleFromBX 51 call DisplayFailedToLoadFile 52 pop ds 53 ret 54 55 ;-------------------------------------------------------------------- 56 ; .OpenFileForLoadingFromDSSIandGetSizeInBytesToDXCX 57 ; Parameters: 58 ; DS:SI: Name of file to open 59 ; Returns: 60 ; BX: File handle (if successful) 61 ; DX:CX: File size (if successful) 62 ; CF: Clear if successful 63 ; Set if error 64 ; Corrupts registers: 65 ; AX 66 ;-------------------------------------------------------------------- 67 ALIGN JUMP_ALIGN 68 .OpenFileForLoadingFromDSSIandGetSizeToDXCX: 69 mov al, FILE_ACCESS.ReadOnly 70 call FileIO_OpenWithPathInDSSIandFileAccessInAL 71 jc SHORT .FileError 72 call FileIO_GetFileSizeToDXAXusingHandleFromBXandResetFilePosition 73 jc SHORT .FileError 74 75 cmp dx, MAX_EEPROM_SIZE_IN_BYTES >> 16 76 jb SHORT .FileNotTooBig 77 ja SHORT .FileTooBig 78 cmp ax, MAX_EEPROM_SIZE_IN_BYTES & 0FFFFh 79 ja SHORT .FileTooBig 80 .FileNotTooBig: 81 xchg cx, ax 82 clc 83 ret 61 jmp SHORT DisplayFileLoadedSuccessfully 62 84 63 .FileTooBig: 85 64 call DisplayFileTooBig 86 stc 87 .FileError: 88 ret 65 .CloseUsingHandleFromBXandDisplayErrorMessage: 66 call FileIO_CloseUsingHandleFromBX 67 .DisplayErrorMessage: 68 jmp SHORT DisplayFailedToLoadFile 69 89 70 90 71 ;-------------------------------------------------------------------- … … 112 93 push cx 113 94 114 call Registers_CopyESDItoDSSI ; File name in DS:SI95 call Registers_CopyESDItoDSSI ; File name in DS:SI 115 96 push cs 116 97 pop es … … 119 100 cld 120 101 %endif 121 call String_CopyDSSItoESDIandGetLengthToCX 122 clc 102 call String_CopyDSSItoESDIandGetLengthToCX ; Returns with CF cleared 123 103 124 104 pop cx … … 164 144 BiosFile_SaveRamBufferToFileInDSSI: 165 145 push es 166 push ds167 146 168 147 call Buffers_GenerateChecksum … … 174 153 jc SHORT .DisplayErrorMessage 175 154 155 push ds 176 156 call Registers_CopyESDItoDSSI 177 157 call FileIO_WriteDXCXbytesFromDSSIusingHandleFromBX 158 pop ds 159 pushf 160 call FileIO_CloseUsingHandleFromBX 161 popf 178 162 jc SHORT .DisplayErrorMessage 179 163 180 call FileIO_CloseUsingHandleFromBX181 164 call Buffers_ClearUnsavedChanges 182 call DisplayFileSavedSuccessfully183 jmp SHORT .Return165 pop es 166 jmp SHORT DisplayFileSavedSuccessfully 184 167 185 168 .DisplayErrorMessage: 186 call FileIO_CloseUsingHandleFromBX 187 call DisplayFailedToSaveFile 188 ALIGN JUMP_ALIGN 189 .Return: 190 pop ds 191 pop es 192 ret 169 pop es 170 jmp SHORT DisplayFailedToSaveFile 193 171 194 172
Note:
See TracChangeset
for help on using the changeset viewer.