
ms dos - How does the BIOS distinguish Interrupt(08h-12h) from …
2022年5月26日 · The BIOS assigned INT 08H+ for their own interrupt handlers, for instance int 10H for VGA MODE switch, or int 13H for hard drive services. (Table of software-interrupt numbers) But, as we can see in the Intel® 64 and IA-32 Architectures Software Developer Manuals, we know that there are also many real-address exceptions that can trigger ...
Detecting if a video mode is supported by INT 0x10
2023年9月17日 · The point is, if your switches is set to MDA, it gets stored into Equipment Flag bits, and when setting a new mode with Int 10h, the Equipment Flags are checked for display type. If the Flags indicate your swiches are set to MDA, then, no matter what mode number you request, the mode 7 parameters will be set to the MDA card.
BIOS Video Service INT 10H (functions 9 and 13H) functionality
2017年6月28日 · On the way to protected or long modes, real mode code needs to provide a lot of visual feedback. Video services INT 10H provide this functionality, but lack fluidity. This algorithm provides write character and attribute AH = 9 and write string AH = 13H functionality, reading NULL terminated strings. ENTER
Iterating string characters and passing them to a BIOS API
mov si, HelloString lodsw mov cx,ax mov ah,0eh .repeat: lodsb int 10h loop .repeat ; .done: ret Beware that the above may not be the fastest way to loop, anymore. I once read that the more complicated opcodes (like loop) perform more slowly on modern CPUs than using several primitive instructions (e.g. dec cx and jnz).
How to use the "darker" CGA palette using x86 Assembly?
2019年1月4日 · Your code is correct; a yellow prompt means that you’re using the red/green/brown palette. However, to get the low intensity variant, you also need to call interrupt 10h service 0Bh with BX set to 0 (black background, low intensity; strictly speaking, you can have any background — the bottom four bits, 3–0 — and the fifth bit, bit 4, controls the intensity; this maps to register 03D9h ...
c - How did early x86 BIOS programmers manage to program full …
2019年5月26日 · INT 10h/AH=06h and INT 10h/AH=07h can be used either to scroll a rectangular region of the screen or to clear the screen to a specified foreground/background colour combination. INT 10h/AH=09h can be used to tile a character like ═ horizontally, or to fill the screen with a character like before drawing on top of it, both in a single BIOS call.
x86 - BIOS interrupts vs Hardware interrupts - Retrocomputing …
2020年10月12日 · Since the original IBM PC only supported 8 hardware interrupts, this meant that vectors 8 through 15 were used for hardware interrupts. IBM then started assigning BIOS services starting with vector 16 (10h), to be invoked using software interrupts. In addition, vector 5 was used to implement a print screen function.
How can a protected-mode Watcom C program access memory …
2021年8月4日 · How does the BIOS distinguish Interrupt(08h-12h) from INT instructions, vs. actual exceptions inside the CPU? 25 How can a 32-bit x86 CPU start with reset vector 0xFFFFFFF0 even though it starts in 16-bit real mode?
Moving a cursor with the keyboard in assembly
2017年2月25日 · bits 16 mov dl, 0 ; Cursor position column mov dh, 0 ; Cursor position row ; Draw a really simple UI ; Draws a blue background mov ah, 09h mov al, 32 mov bl, 10h mov cx, 1000h int 10h ; Draws a gray bar mov ah, 09h mov al, 32 mov bl, 70h mov cx, 160d int 10h main: ; Waits for a key press mov ah, 00h int 16h ; Compare the al register to see what ...
ibm pc - Which is the minimum set of interrupts/functions I should ...
2020年6月18日 · INT 10h function 14; INT 11h; INT 13h function 0, 2, 3; INT 14h function 0, 1, 2; INT 16h function 0, 1; INT 17h function 0, 1; But there are also calls to. INT 23h; INT 21h function 15, 26, 39; For DOS 2.0 (and each version thereafter) you need to disassemble and analyze its IBMBIO.COM again. Is there a (basically) free BIOS