nkeck720 / nos

A command-line based OS written in FASM syntax for i386 and above.
GNU General Public License v2.0
9 stars 5 forks source link

FASM board issue 33 #34

Closed nkeck720 closed 8 years ago

nkeck720 commented 8 years ago

FASM can't use an instruction like "mov ah, byte ptr [9000h:0FFFFh]". You must transfer the segment part to a segment register first:

Code:

push ds 
push 9000h 
pop  ds 
mov  ah, [0FFFFh] 
pop  ds 

Please note that this memory address most probably belongs to the BIOS. It has its Extended BIOS Data Area (EBDA) here. You can use BIOS function C1h on int 15h to retrieve the start of the EBDA and then use the byte immediately below this area for your purposes.

nkeck720 commented 8 years ago

I already have fixed the first part here, will have to do research on the EBDA and then rewrite as necessary.

nkeck720 commented 8 years ago

I have solved this problem by adding HMA support and butting the command line stuff there.