Skip to content

Commit e3bfd6a

Browse files
ecm-pushbxPerditionC
authored andcommitted
boot32.asm: fix, reset full ax after int 10h function 0Eh
We discovered [1] that some ROM-BIOS implementations apparently corrupt the ah register contents upon running int 10h function 0Eh so that writing only al afterwards isn't certain to set up the registers for another function 0Eh call. In the talk about this I referenced an earlier problem [2] in which it was the al register, not ah, which got corrupted. So all in all the int 10h function 0Eh call should be expected to clobber the entirety of ax, alongside bp. (The bp corruption is stated in the Interrupt List [3].) [1]: SvarDOS/bugz#174 (comment) [2]: 977023f [3]: https://fd.lod.bz/rbil/interrup/video/100e.html
1 parent 56a86d2 commit e3bfd6a

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

boot/boot32.asm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ c6:
223223
boot_error:
224224
mov ax, 0E00h | '!'
225225
int 10h ; display the error sign
226-
mov al, 07h
226+
mov ax, 0E07h
227227
int 10h ; beep
228228
xor ah,ah
229229
int 0x16 ; wait for a key

0 commit comments

Comments
 (0)