3,083 questions
2 votes
2 answers
117 views
Printing to VGA in protected mode crashes system
As you can see down at bottom on my stage 2 boot loader, I have a VGA write thing (Prints out "Starting kernel...", but when I use it, the system starts to boot loop, I have no idea why this ...
4 votes
1 answer
108 views
nasm bios int 13h read sector issue [duplicate]
im trying to make a simple bootloader that loads a simple kernel and the problem is that the kernel code doesnt run i do see prints from the bootloader but not from the kernel here is my code: boot....
4 votes
1 answer
108 views
Did MS-DOS software rely on memory offset wrapping, in practice?
With the Intel 8088's segment:offset model, code and data reads will stay in the active segment unless the segment is changed. For example, take this instruction: ABCD:FFFF ADD AL,12 This ADD ...
4 votes
1 answer
150 views
Qemu Bios; Configuring VGA
I'm trying to write a simple hello world bios for Qemu as an academic exercise, and I've gotten Qemu to believe the display is initialized. I see a black screen upon boot, but writing to character ...
0 votes
0 answers
30 views
warning: word data exceeds bounds [-w+number-overflow] [duplicate]
I'm trying to start building an operating system from scratch but I don't know why I'm getting this warning on this code: [BITS 16] [ORG 0x7c00] start: mov ax, 0 mov ds, ax mov es, ax ...
4 votes
1 answer
191 views
Is 0x0000:0x7000 a unsafe address to load your kernel? Or is it just qemu annoying me
So I thought I'd try to make a DOS copy but it runs on a floppy and its just a simple plug and play with fat12 partition for user applications and drivers. I first attempted to load my kernel using ...
2 votes
2 answers
150 views
16-bit x86 Assembly Kernel getting stuck when calling input function
Well, I'm writing my own OS just for fun, and I thought it would have been cool to add a bytecode "language" interpreted by the kernel itself. I took inspiration mainly from Java, which is ...
4 votes
2 answers
191 views
MBR works in QEMU/BOCHS but not on real hardware
I threw together a makeshift MBR for a chainloader project I have been working on for sometime now. I tested on QEMU and BOCHS and no issues, besides throwing earlier 386 BIOS images into the mix (...
1 vote
1 answer
115 views
I'm writing an Assembly x86 bootloader, but the printing function doesn't print the given string correctly
I'm writing a bootloader in x86 Assembly for my operating system. Note that I have already wrote a few bootloaders and I never faced this problem. This is the code that I compile with NASM (precisely ...
3 votes
2 answers
112 views
How to detect the slave PIC in an old PC using assembly?
I am modifying the source code of a driver for an ISA card that uses IRQ2. The case, as we all know, IBM added a second PIC and chained it using IRQ2, and the IRQ2 present in the ISA bus was replaced ...
7 votes
1 answer
198 views
Replacing int 21h vector in DOS
I'm trying to replace the int 21h vector with a custom routine in MS-DOS. This method works for the timer tick interrupt (1Ch), but for some reason hangs after around 20 calls to 21h. My code is ...
2 votes
1 answer
104 views
Stuck on Second Stage Bootloader – Turbo C + TASM + DOSBox + QEMU Setup
I'm working on a retro programming project and running into trouble with my bootloader setup. I'm using: Turbo Assembler 4.01 for the first-stage bootloader (x86 Assembly) Turbo C 2.0 for the second-...
2 votes
0 answers
114 views
Mouse Cursor in 16-bit Assembly (NASM) Overwrites Screen Content in VGA Mode 0x12
I'm developing a PS/2 mouse driver in 16-bit assembly (NASM) for a custom operating system running in VGA mode 0x12 (640x480, 16 colors). The driver initializes the mouse, handles mouse events, and ...
-5 votes
2 answers
94 views
Why does my 32bit kernel randomly flicker?
For some reason every time I try entering 32bit protected mode.. it always FLICKERS AND FLICKERS FOR NO REASON.. I am using QEMU and my kernel is being assembled into a raw binary and then written ...
0 votes
1 answer
81 views
How can I prevent an infinite loop in my 8086 assembly program that displays even numbers from 00 to 98 on a 7-segment display? (smz32v50)
Exercise: Displays even numbers Example: 00, 02, 04, …., 98 This is based on an assembly 8086. The program uses seven display segment (port 02) to display even numbers where MSB is Most Significant ...