Changeset 602 in xtideuniversalbios for trunk/Assembly_Library
- Timestamp:
- May 9, 2019, 8:11:46 PM (6 years ago)
- Location:
- trunk/Assembly_Library
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Assembly_Library/Inc/Macros.inc
r596 r602 4 4 %ifndef MACROS_INC 5 5 %define MACROS_INC 6 7 8 ;-------------------------------------------------------------------- 9 ; Skips the immediately following 1 byte instruction by using it 10 ; as an immediate value to a dummy instruction. 11 ; Destroys the contents of %1. 12 ; 13 ; SKIP1B 14 ; Parameters: 15 ; %1: Any 8 bit general purpose register or F for flags. 16 ; Returns: 17 ; Nothing 18 ; Corrupts registers: 19 ; %1 20 ;-------------------------------------------------------------------- 21 %macro SKIP1B 1.nolist 22 %ifidni %1, f 23 db 03Ch ; Opcode byte for CMP AL, <immed> 24 ;db 0A8h ; Alt. version TEST AL, <immed> 25 %elifidni %1, al 26 db 0B0h ; Opcode byte for MOV AL, <immed> 27 %elifidni %1, ah 28 db 0B4h ; Opcode byte for MOV AH, <immed> 29 %elifidni %1, bl 30 db 0B3h ; Opcode byte for MOV BL, <immed> 31 %elifidni %1, bh 32 db 0B7h ; Opcode byte for MOV BH, <immed> 33 %elifidni %1, cl 34 db 0B1h ; Opcode byte for MOV CL, <immed> 35 %elifidni %1, ch 36 db 0B5h ; Opcode byte for MOV CH, <immed> 37 %elifidni %1, dl 38 db 0B2h ; Opcode byte for MOV DL, <immed> 39 %elifidni %1, dh 40 db 0B6h ; Opcode byte for MOV DH, <immed> 41 %else 42 %error "Invalid parameter passed to SKIP1B" 43 %endif 44 %endmacro 6 45 7 46 ;-------------------------------------------------------------------- -
trunk/Assembly_Library/Src/Keyboard/Keyboard.asm
r592 r602 44 44 push cx 45 45 46 mov c x, BUFFER_SIZE_FOR_WORD_INPUT47 call Memory_ReserveC XbytesFromStackToDSSI46 mov cl, BUFFER_SIZE_FOR_WORD_INPUT 47 call Memory_ReserveCLbytesFromStackToDSSI 48 48 49 49 call Char_GetFilterFunctionToDXforNumericBaseInBX -
trunk/Assembly_Library/Src/Menu/Dialog/DialogFile.asm
r601 r602 612 612 jz SHORT ReturnWithoutHandlingKeystroke 613 613 614 mov c x, STRING_DIALOG_IO_size615 call Memory_ReserveC XbytesFromStackToDSSI614 mov cl, STRING_DIALOG_IO_size 615 call Memory_ReserveCLbytesFromStackToDSSI 616 616 617 617 ;;; InitializeStringDialogIoInDSSIforInputtingFileName … … 682 682 683 683 call DisplayLoadingMessageInInformationArea 684 mov c x, DRIVE_DIALOG_IO_size685 call Memory_ReserveC XbytesFromStackToDSSI684 mov cl, DRIVE_DIALOG_IO_size 685 call Memory_ReserveCLbytesFromStackToDSSI 686 686 call .DisplayDriveSelectionDialogWithIoInDSSI 687 687 call .ChangeDriveToUserSelectionFromIoInDSSI … … 741 741 push ss 742 742 pop ds 743 ePUSH_T ax, CURRENTDIR_CHARACTERS 743 ePUSH_T ax, CURRENTDIR_CHARACTERS ; The high byte is zero 744 744 mov cx, FLG_FILEATTR_DIRECTORY 745 745 mov dx, sp -
trunk/Assembly_Library/Src/Util/Memory.asm
r592 r602 122 122 123 123 ;-------------------------------------------------------------------- 124 ; Memory_ReserveCLbytesFromStackToDSSI 124 125 ; Memory_ReserveCXbytesFromStackToDSSI 125 126 ; Parameters 126 ; C X:Number of bytes to reserve127 ; CL/CX: Number of bytes to reserve 127 128 ; Returns: 128 129 ; DS:SI: Ptr to reserved buffer … … 132 133 %ifndef EXCLUDE_FROM_XUB 133 134 ALIGN JUMP_ALIGN 135 Memory_ReserveCLbytesFromStackToDSSI: 136 xor ch, ch 134 137 Memory_ReserveCXbytesFromStackToDSSI: 135 138 pop ax -
trunk/Assembly_Library/Src/Util/Sort.asm
r592 r602 32 32 ; ES:DI: Ptr to second item to compare 33 33 ; Returns: 34 ; FLAGS: Signed compari tion between first and second item34 ; FLAGS: Signed comparison between first and second item 35 35 ; Corrupts registers: 36 36 ; Nothing … … 56 56 Sort_ItemsFromDSSIwithCountInDXsizeInCXandComparatorInBX: 57 57 push es 58 push di 59 mov di, cx 60 eSHL_IM cx, 1 ; Reserve temp and pivot items 61 add cx, BYTE QSORT_PARAMS_size 62 eENTER_STRUCT cx 63 push cx 58 mov ax, cx 59 eSHL_IM ax, 1 ; Reserve temp and pivot items 60 add ax, BYTE QSORT_PARAMS_size 61 eENTER_STRUCT ax 62 push ax 64 63 65 64 %ifdef CLD_NEEDED 66 65 cld 67 66 %endif 68 mov cx, di ; Restore item size to CX69 67 xor ax, ax ; Zero starting index 70 68 dec dx ; Count to index of last item … … 76 74 pop ax 77 75 eLEAVE_STRUCT ax 78 pop di79 76 pop es 80 77 ret
Note:
See TracChangeset
for help on using the changeset viewer.