opcode-projects/80286/BIOS/Unsorted/txt/Offset Calculator Scratchpad

43 lines
1.1 KiB
Plaintext

Steps:
Pointer Database Correction
Initialize Registers
| Loop: BX < Pointer DB End
| AL = 0x0
| * Next Field (Pointer)
AL < 0x2
Zero DH, Increment BX, Move [BX] to DL, Decrement BX
Add Displacement (CX) to DX
Decrement AL, Add AL to Displacement
Convert Byte-To-Word
Range Database Check
Initialize Registers
Move BX to DX
Move Range DB Start to BX
Loop: BX < Range DB End
Type not 0x2
* Next Field (Range)
Add Displacement End to Displacement Value in CX
Range End > CX
Range Start < CX
Subtract Displacement End from Displacement Value in CX
Add Range End to
Next Field (Range)
Finished
* Initialize Registers
No
* Next Field (Pointer)
0x3, 0x4
Subtract Type-0x3 from Displacement
Word-To-Byte Check
Yes
Convert Word-To-Byte
* Initialize Registers
No
* Next Field (Pointer)
| Next Field (Pointer)
Finished! Perform Changes