Changeset 621 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Buffers.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/Buffers.asm
r620 r621 49 49 ALIGN JUMP_ALIGN 50 50 Buffers_IsXtideUniversalBiosLoaded: 51 test BYTE [ cs:g_cfgVars+CFGVARS.wFlags], FLG_CFGVARS_FILELOADED | FLG_CFGVARS_ROMLOADED51 test BYTE [g_cfgVars+CFGVARS.wFlags], FLG_CFGVARS_FILELOADED | FLG_CFGVARS_ROMLOADED 52 52 jnz SHORT .FileOrBiosLoaded 53 53 test sp, sp ; Clear ZF … … 120 120 ALIGN JUMP_ALIGN 121 121 Buffers_NewBiosWithSizeInDXCXandSourceInALhasBeenLoadedForConfiguration: 122 and BYTE [ cs:g_cfgVars+CFGVARS.wFlags], ~(FLG_CFGVARS_FILELOADED | FLG_CFGVARS_ROMLOADED | FLG_CFGVARS_UNSAVED)123 or [ cs:g_cfgVars+CFGVARS.wFlags], al122 and BYTE [g_cfgVars+CFGVARS.wFlags], ~(FLG_CFGVARS_FILELOADED | FLG_CFGVARS_ROMLOADED | FLG_CFGVARS_UNSAVED) 123 or [g_cfgVars+CFGVARS.wFlags], al 124 124 shr dx, 1 125 125 rcr cx, 1 126 126 adc cx, BYTE 0 ; Round up to next WORD 127 mov [ cs:g_cfgVars+CFGVARS.wImageSizeInWords], cx127 mov [g_cfgVars+CFGVARS.wImageSizeInWords], cx 128 128 ret 129 129 … … 141 141 ALIGN JUMP_ALIGN 142 142 Buffers_SetUnsavedChanges: 143 or BYTE [ cs:g_cfgVars+CFGVARS.wFlags], FLG_CFGVARS_UNSAVED143 or BYTE [g_cfgVars+CFGVARS.wFlags], FLG_CFGVARS_UNSAVED 144 144 ret 145 145 146 146 ALIGN JUMP_ALIGN 147 147 Buffers_ClearUnsavedChanges: 148 and BYTE [ cs:g_cfgVars+CFGVARS.wFlags], ~FLG_CFGVARS_UNSAVED148 and BYTE [g_cfgVars+CFGVARS.wFlags], ~FLG_CFGVARS_UNSAVED 149 149 ret 150 150 … … 161 161 ALIGN JUMP_ALIGN 162 162 Buffers_SaveChangesIfFileLoaded: 163 mov al, [cs:g_cfgVars+CFGVARS.wFlags] 164 and al, FLG_CFGVARS_FILELOADED | FLG_CFGVARS_UNSAVED 163 test BYTE [g_cfgVars+CFGVARS.wFlags], FLG_CFGVARS_FILELOADED | FLG_CFGVARS_UNSAVED 165 164 jz SHORT .NothingToSave 166 165 jpo SHORT .NothingToSave … … 184 183 ALIGN JUMP_ALIGN 185 184 Buffers_GetSelectedEepromSizeInWordsToAX: 186 eMOVZX bx, [ cs:g_cfgVars+CFGVARS.bEepromType]187 mov ax, [ cs:bx+g_rgwEepromTypeToSizeInWords]185 eMOVZX bx, [g_cfgVars+CFGVARS.bEepromType] 186 mov ax, [bx+g_rgwEepromTypeToSizeInWords] 188 187 189 188 cmp bl, EEPROM_TYPE.SST_39SF 190 jn zSHORT .HaveEepromSize191 cmp ax, [ cs:g_cfgVars+CFGVARS.wImageSizeInWords]192 jae SHORT .HaveEepromSize 193 shl ax, 1; Auto-double SST size when too small.189 jne SHORT .HaveEepromSize 190 cmp ax, [g_cfgVars+CFGVARS.wImageSizeInWords] 191 jae SHORT .HaveEepromSize 192 eSHL_IM ax, 1 ; Auto-double SST size when too small. 194 193 .HaveEepromSize: 195 194 ret … … 206 205 ALIGN JUMP_ALIGN 207 206 Buffers_AppendZeroesIfNeeded: 207 call Buffers_GetSelectedEepromSizeInWordsToAX 208 mov cx, [g_cfgVars+CFGVARS.wImageSizeInWords] 209 sub ax, cx ; AX = WORDs to append 210 jbe SHORT .NoNeedToAppendZeroes 211 212 eSHL_IM cx, 1 208 213 push es 209 210 call Buffers_GetSelectedEepromSizeInWordsToAX 211 mov cx, ax 212 sub cx, [cs:g_cfgVars+CFGVARS.wImageSizeInWords] ; CX = WORDs to append 213 jbe SHORT .NoNeedToAppendZeroes 214 215 call Buffers_GetFileBufferToESDI 216 mov ax, [cs:g_cfgVars+CFGVARS.wImageSizeInWords] 217 eSHL_IM ax, 1 218 add di, ax ; ES:DI now point first unused image byte 219 xor ax, ax 214 call Buffers_GetFileBufferToESDI 215 add di, cx ; ES:DI now point first unused image byte 216 xor cx, cx 217 xchg cx, ax 220 218 %ifdef CLD_NEEDED 221 219 cld 222 220 %endif 223 221 rep stosw 224 ALIGN JUMP_ALIGN 222 pop es 225 223 .NoNeedToAppendZeroes: 226 pop es227 224 ret 228 225
Note:
See TracChangeset
for help on using the changeset viewer.