Create Operating System with FASM! - loading photo!!
-
- Posts: 5
- Joined: Tue Jul 28, 2009 6:31 pm
Create Operating System with FASM! - loading photo!!
Hi @all guys,
i want to know about loading image or pixel. like this logo. example BootLoader by Ubuntu 9.04
If my bootloader loads bitmap or image than bootloader will to prompt once loading boot.
I have been found from emu8086 assemblier for fasm from internet.
Please tell about assemblier or c script will load image / pixel from currect drive!
Important files for created operating system
Where is api include packs for unix version?
examples:
windows.h
button.h
sticky.h
and more headers and c scripts
Howto Does boot load binaries like. myboot.bin loads myos.mb or myos mb = mybinary like an example for..
How do i know about loading binary from boot???
Regards SnakeMedia
i want to know about loading image or pixel. like this logo. example BootLoader by Ubuntu 9.04
If my bootloader loads bitmap or image than bootloader will to prompt once loading boot.
I have been found from emu8086 assemblier for fasm from internet.
Please tell about assemblier or c script will load image / pixel from currect drive!
Important files for created operating system
Where is api include packs for unix version?
examples:
windows.h
button.h
sticky.h
and more headers and c scripts
Howto Does boot load binaries like. myboot.bin loads myos.mb or myos mb = mybinary like an example for..
How do i know about loading binary from boot???
Regards SnakeMedia
Code: Select all
package flexos
{
import flexos.system.*;
import flexos.apps.*;
import mx.controls.*;
import flash.events.*;
public class flexos_bootloader extends boot
{
// That is Actionscript 3 with Flex Builder... \oOo/
}
}
Re: Create Operating System with FASM! - loading photo!!
Was this mail actually composed by a naive artificially intellegent program ?
If yes, good. If No....
If yes, good. If No....
complexity is the core of simplicity
Re: Create Operating System with FASM! - loading photo!!
I honestly understand little of what you are saying, but it appears to me as you want this:
Before attempting point 2 I would make sure your bootloader works correctly and can load binaries. If it does that, I believe (but I'm not sure) a way to display an image would be using BIOS interrupts.
I'm not sure about point 3.
- Make a bootloader in FASM.
- Load some sort of bitmap as boot image from the floppy (like Ubuntu has).
- A load of other people's code in C whilst you're coding in Assembly to get you going...
- Find out how to load binaries from the floppy through a bootloader.
Before attempting point 2 I would make sure your bootloader works correctly and can load binaries. If it does that, I believe (but I'm not sure) a way to display an image would be using BIOS interrupts.
I'm not sure about point 3.
When the chance of succeeding is 99%, there is still a 50% chance of that success happening.
-
- Posts: 5
- Joined: Tue Jul 28, 2009 6:31 pm
Re: Create Operating System with FASM! - loading photo!!
Hi @mosman and @Creature:
Sorry: I will make a boot in fasm and my boot shoulds to load image.
But i can not find from google because my boot loads image or picture. like this Windows Logo Ubuntu Logo or Apple Logo from BootLoader. Well, i want to try.. Can you show an example for bootloader with image/pixel and loading binary?
Thank you!
Remark:
I do not know because you are advanced coders for Operating System Coding.... xD
Regards, SnakeMedia
Sorry: I will make a boot in fasm and my boot shoulds to load image.
But i can not find from google because my boot loads image or picture. like this Windows Logo Ubuntu Logo or Apple Logo from BootLoader. Well, i want to try.. Can you show an example for bootloader with image/pixel and loading binary?
Thank you!
Remark:
I do not know because you are advanced coders for Operating System Coding.... xD
Regards, SnakeMedia
Code: Select all
package flexos
{
import flexos.system.*;
import flexos.apps.*;
import mx.controls.*;
import flash.events.*;
public class flexos_bootloader extends boot
{
// That is Actionscript 3 with Flex Builder... \oOo/
}
}
Re: Create Operating System with FASM! - loading photo!!
Hi snakemedia,snakemedia wrote:Hi @mosman and @Creature:
Sorry: I will make a boot in fasm and my boot shoulds to load image.
But i can not find from google because my boot loads image or picture. like this Windows Logo Ubuntu Logo or Apple Logo from BootLoader. Well, i want to try.. Can you show an example for bootloader with image/pixel and loading binary?
it's hard to understand what you're trying to say.
You can switch to VGA 0x13 video mode and draw your image pixel-by-pixel.
I think if you wanna read your image from FD you must make a second-stage bootloader.
Maybe you should read wiki or tutorials?
Re: Create Operating System with FASM! - loading photo!!
Is something like this what you're looking for?snakemedia wrote:Hi @mosman and @Creature:
Sorry: I will make a boot in fasm and my boot shoulds to load image.
But i can not find from google because my boot loads image or picture. like this Windows Logo Ubuntu Logo or Apple Logo from BootLoader. Well, i want to try.. Can you show an example for bootloader with image/pixel and loading binary?
Thank you!
Remark:
I do not know because you are advanced coders for Operating System Coding.... xD
Regards, SnakeMedia
Like the FreeDOS screen or this:
? Cause if that's what you want, I believe you have to switch to graphics mode and simply draw the image on the background and then draw whatever you want. Sort of like a mini-GUI. I believe it's also possible to combine text mode and VGA mode like FreeDOS does (I'm not sure about that though).
When the chance of succeeding is 99%, there is still a 50% chance of that success happening.
Re: Create Operating System with FASM! - loading photo!!
Its simple you just
Kernel32.asm
vesainfo.inc
And you endup with
test.bmp
Note: you need to get bootprog to load the mz exe once assembled.
Kernel32.asm
Code: Select all
;**************************************************;
; DISPLAY 640x480 IMAGE DEMO. ;
; ;
; by Dex (of DexOS fame.) ;
; ;
; It can be assembled with fasm and maybe ;
; nasm ?.To assemble do this: ;
; (c:\fasm BmpView.asm kernel32.exe) ;
; just change "test.bmp" before assembling to ;
; change image,(NOTE: most be 640x480 256 colors) ;
; ;
; You can run it from pure dos or from bootprog ;
; by Alexei A. Frounze (http://alexfru.chat.ru) ;
; ;
; On running it, it sets up vesa mode 640x480 8bpp ;
; goes to pmode and diplays a 640x480 8bpp bmp ;
; image "test.bmp", it prints error if no vesa2 ;
; ;
; Thanks to Tomasz Grysztar (for fasm),Christopher ;
; Giese,and any one else who has helped me. ;
; ;
; More Demos, tut and DexOS, can be found at ;
; ;
; www.dex4u.com ;
; ;
;**************************************************;
format MZ
use16
jmp start
header equ [ModeInfo_PhysBasePtr]
linear_sel equ linear_sel_1-gdt
sys_code equ sys_code_1-gdt
sys_data equ sys_data_1-gdt
Real_code equ Real_code_1-gdt
Real_data equ Real_data_1-gdt
include 'vesainfo.inc' ; VESA information block,we need the for Vesa info
;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';
; This sets vesa info ;
;..............................................................................................;
start:
push cs
pop ds
mov ax,ds
mov es,ax
;------------------------------------------------------------
; Purpose: Checks to see if VESA is available and if the desired mode is
; available.
; Inputs: None
; Outputs: VESAInfo and VESA_Info structures filled (if successful)
;------------------------------------------------------------
mov dword [VESAInfo_Signature],'VBE2'
mov ax,4f00h ; Is Vesa installed ?
mov di,VESA_Info ; This is the address of how info block.
int 10h
cmp ax,004Fh ; Is vesa installed ?,
jne near NoVesa2 ; If not print a mesage & quit.
mov ax,4f01h ; Get Vesa Mode information.
mov di,Mode_Info ; This is the address of how info block.
mov cx,0x4101 ;0x4112 ; 4112h = 32/24bit ; 0x4101 = 256bit ;4111h = 65535bit (640*480)
and cx,0xfff
int 10h
cmp dword [VESAInfo_Signature], 'VESA'
jne near NoVesa2
cmp byte [VESAInfo_Version+1], 2
jb NoVesa2 ; VESA version below 2.0
mov ax,4f02h ; set vesa screen mode
mov bx,0x4101 ; 4101h = 640x480 256
int 10h
cmp ax,004Fh
jne NoVesa2 ; jump if no vesa 2
;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';
; This sets up going into pmode ;
;..............................................................................................;
call enable_A20
xor ebx,ebx
mov bx,ds ; BX=segment
shl ebx,4 ; BX="linear" address of segment base
mov eax,ebx
mov [sys_code_1 + 2],ax ; set base address of 32-bit segments
mov [sys_data_1 + 2],ax
mov [Real_code_1 + 2],ax ; set base address of 16-bit segments
mov [Real_data_1 + 2],ax
shr eax,16
mov [sys_code_1 + 4],al
mov [sys_data_1 + 4],al
mov [Real_code_1 + 4],al
mov [Real_data_1 + 4],al
mov [sys_code_1 + 7],ah
mov [sys_data_1 + 7],ah
mov [Real_code_1 + 7],ah
mov [Real_data_1 + 7],ah
add ebx,gdt ; EBX=linear address of gdt
mov [gdtr + 2],ebx
cli ; Disable interrupts,
mov ax,cs
mov [RealModeCS],ax
lgdt [gdtr] ; Load the GDT descriptor
mov eax, cr0 ; Copy the contents of CR0 into EAX
or eax, 1 ; Set bit 0
mov cr0, eax ; Copy the contents of EAX into CR0
jmp 10h:clear_pipe ; Jump to code segment, offset clear_pipe
NoVesa2:
mov ax,0xB800
mov es,ax
lea si,[NoVesa2Msg] ; Just print's a error mesage and end's.
mov di,(80 * 5 + 6) * 2
mov cx,58
cld
rep movsb
NoVesa2End:
jmp NoVesa2End
USE32 ; We now need 32-bit instructions
clear_pipe:
;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';
; We are in pmode ;
;..............................................................................................;
xor edi,edi
xor esi,esi
mov ax, 18h ; Save data segment identifyer
mov ds, ax ; Move a valid data segment into the data segment register
mov ss, ax ; Move a valid data segment into the stack segment register
mov es,ax
nop
mov es,ax
mov fs,ax
mov gs,ax
mainloop:
call Fdd_motor_off
call DisplayBMP
jmp $
;**********************************************************************************************;
; Procedure's ;
;**********************************************************************************************;
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;
; load image to screen ;
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;
;----------------------------------------------------;
; Check valid bmp. ;
;----------------------------------------------------;
DisplayBMP:
mov esi,LoadMeHere
cmp word [ds:esi],'BM'
jnz bmp_error
mov bx,[ds:esi + 18] ; picture width 12
mov ebp,[ds:esi + 22] ; picture depth 16
cmp bx,640 ; W
ja bmp_error
cmp ebp,480 ; H
ja bmp_error
cmp word [ds:esi + 28],8 ; bits per pixel
jnz bmp_error
;----------------------------------------------------;
; Set pal. ;
;----------------------------------------------------;
add esi,0x36 ; start of palette
xor ecx,ecx
mov cx,256 ; number of colors
mov dx,0x03c8
mov al,0
out dx,al
inc dx
set_pal: ; Convert 4 byte BGR -> 3 byte RGB
mov al,[esi+2] ; red
shr al,2
out dx,al
mov al,[esi+1] ; green
shr al,2
out dx,al
mov al,[esi] ; blue
shr al,2
out dx,al
add esi,4
loop set_pal
lea dx,[bx+3] ; round bmp width
and dx,-4
imul edi,ebp,640
add edi,[ModeInfo_PhysBasePtr]
mov ax,08h
mov es,ax
add edi,640
new_line:
sub edi,640
pushad
mov cx,bx ; columns
rep movsb
popad
add esi,edx ; start of next bmp line
dec ebp
jnz new_line
jmp @f
;----------------------------------------------------;
; Error message. ;
;----------------------------------------------------;
bmp_error:
;----------------------------------------------------;
; wait for key press ;
;----------------------------------------------------;
@@:
ret
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;
; enable A20 line ;
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;
enable_A20:
pusha
cli ; Disable all irqs
cld
mov al,255 ; Mask all irqs
out 0xa1,al
out 0x21,al
l.5: in al,0x64 ; Enable A20
test al,2 ; Test the buffer full flag
jnz l.5 ; Loop until buffer is empty
mov al,0xD1 ; Keyboard: write to output port
out 0x64,al ; Output command to keyboard
l.6: in al,0x64
test al,2
jnz l.6 ; Wait 'till buffer is empty again
mov al,0xDF ; keyboard: set A20
out 0x60,al ; Send it to the keyboard controller
mov cx,14h
l.7: ; this is approx. a 25uS delay to wait
out 0edh,ax ; for the kb controler to execute our
loop l.7 ; command.
sti
popa
ret
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;
; Turn floppy motor off. ;
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;
Fdd_motor_off:
mov dx,0x3f2
mov al,0
out dx,al
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Proc End ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
NoVesa2Msg: db "Y O U N E E D V E S A 2 F O R T H I S D E M O ! "
JustInCase:
dd 0
RealModeCS:
dw 0
ridtr: dw 0xFFFF ; limit=0xFFFF
dd 0 ; base=0
count1: dw 0
count: db 0
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;
; GDT ;
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;
gdtr: dw gdt_end - gdt - 1 ; GDT limit
dd gdt ; (GDT base gets set above)
gdt: ; Address for the gdt
dw 0 ; limit 15:0 (0h) Null Segment
dw 0 ; base 15:0
db 0 ; base 23:16
db 0 ; type
db 0 ; limit 19:16, flags
db 0 ; base 31:24
linear_sel_1:
dw 0xFFFF ; (8h) linear Data segment, read/write, expand down
dw 0
db 0
db 10010010b
db 11001111b
db 0
sys_code_1: ; (10h) Code segment, read/execute, nonconforming
dw 0FFFFh
dw 0
db 0
db 10011010b
db 11001111b
db 0
sys_data_1: ; (18h) Data segment, read/write, expand down
dw 0FFFFh
dw 0
db 0
db 10010010b
db 11001111b
db 0
Real_code_1: ; (20h) Real mode code segment
dw 0xFFFF
dw 0
db 0
db 10011010b
db 0
db 0
Real_data_1: ; (28h) Real mode data segment
dw 0xFFFF
dw 0
db 0
db 10010010b
db 0
db 0
gdt_end: ; Used to calculate the size of the GDT
LoadMeHere:
file 'test.bmp'
Code: Select all
;=========================================================;
; Vesa Information Block 11/12/03 ;
;---------------------------------------------------------;
; DOS EXTREME OS V0.01 (DexOS) ;
; ;
; ;
;=========================================================;
;-------------------------------- FASM VESA INFORMATION BLOCK -----------------------------------
VESA_Info:
VESAInfo_Signature rb 4 ; VBE Signature
VESAInfo_Version rw 1 ; VBE Version
VESAInfo_OEMStringPtr rd 1 ; VbeFarPtr to OEM String
VESAInfo_Capabilities rb 4 ; Capabilities of graphics controller
VESAInfo_VideoModePtr rd 1 ; VbeFarPtr to VideoModeList
VESAInfo_TotalMemory rw 1 ; Number of 64kb memory blocks
VESAInfo_OEMSoftwareRev rw 1 ; VBE implementation Software revision
VESAInfo_OEMVendorNamePtr rd 1 ; VbeFarPtr to Vendor Name String
VESAInfo_OEMProductNamePtr rd 1 ; VbeFarPtr to Product Name String
VESAInfo_OEMProductRevPtr rd 1 ; VbeFarPtr to Product Revision String
VESAInfo_Reserved rb 222 ; Reserved for VBE implementation scratch area
VESAInfo_OEMData rb 256 ; Data Area for OEM Strings
;============================== VESA MODE INFORMATION ===========================================
Mode_Info:
ModeInfo_ModeAttributes rw 1 ; mode attributes
ModeInfo_WinAAttributes rb 1 ; window A attributes
ModeInfo_WinBAttributes rb 1 ; window B attributes
ModeInfo_WinGranularity rw 1 ; window granularity
ModeInfo_WinSize rw 1 ; window size
ModeInfo_WinASegment rw 1 ; window A start segment
ModeInfo_WinBSegment rw 1 ; window B start segment
ModeInfo_WinFuncPtr rd 1 ; real mode pointer to window function
ModeInfo_BytesPerScanLine rw 1 ; bytes per scan line
ModeInfo_XResolution rw 1 ; horizontal resolution in pixels or characters
ModeInfo_YResolution rw 1 ; vertical resolution in pixels or characters
ModeInfo_XCharSize rb 1 ; character cell width in pixels
ModeInfo_YCharSize rb 1 ; character cell height in pixels
ModeInfo_NumberOfPlanes rb 1 ; number of memory planes
ModeInfo_BitsPerPixel rb 1 ; bits per pixel
ModeInfo_NumberOfBanks rb 1 ; number of banks
ModeInfo_MemoryModel rb 1 ; memory model type
ModeInfo_BankSize rb 1 ; bank size in KB
ModeInfo_NumberOfImagePages rb 1 ; number of images
ModeInfo_Reserved_page rb 1 ; reserved for page function
ModeInfo_RedMaskSize rb 1 ; size of direct color red mask in bits
ModeInfo_RedMaskPos rb 1 ; bit position of lsb of red mask
ModeInfo_GreenMaskSize rb 1 ; size of direct color green mask in bits
ModeInfo_GreenMaskPos rb 1 ; bit position of lsb of green mask
ModeInfo_BlueMaskSize rb 1 ; size of direct color blue mask in bits
ModeInfo_BlueMaskPos rb 1 ; bit position of lsb of blue mask
ModeInfo_ReservedMaskSize rb 1 ; size of direct color reserved mask in bits
ModeInfo_ReservedMaskPos rb 1 ; bit position of lsb of reserved mask
ModeInfo_DirectColorModeInfo rb 1 ; direct color mode attributes
; VBE 2.0 extensions
ModeInfo_PhysBasePtr rd 1 ; *physical address for flat memory frame buffer*
ModeInfo_OffScreenMemOffset rd 1 ; Reserved - always set to 0
ModeInfo_OffScreenMemSize rw 1 ; Reserved - always set to 0
; VBE 3.0 extensions
ModeInfo_LinBytesPerScanLine rw 1 ; bytes per scan line for linear modes
ModeInfo_BnkNumberOfPages rb 1 ; number of images for banked modes
ModeInfo_LinNumberOfPages rb 1 ; number of images for linear modes
ModeInfo_LinRedMaskSize rb 1 ; size of direct color red mask (linear modes)
ModeInfo_LinRedFieldPos rb 1 ; bit position of lsb of red mask (linear modes)
ModeInfo_LinGreenMaskSize rb 1 ; size of direct color green mask (linear modes)
ModeInfo_LinGreenFieldPos rb 1 ; bit position of lsb of green mask (linear modes)
ModeInfo_LinBlueMaskSize rb 1 ; size of direct color blue mask (linear modes)
ModeInfo_LinBlueFieldPos rb 1 ; bit position of lsb of blue mask (linear modes)
ModeInfo_LinRsvdMaskSize rb 1 ; size of direct color reserved mask (linear modes)
ModeInfo_LinRsvdFieldPos rb 1 ; bit position of lsb of reserved mask (linear modes)
ModeInfo_MaxPixelClock rd 1 ; maximum pixel clock (in Hz) for graphics mode
; Reserved
ModeInfo_Reserved rb 190 ; remainder of ModeInfoBlock
;======================================= START OF PROGRAM ======================================
test.bmp
Note: you need to get bootprog to load the mz exe once assembled.
Last edited by Dex on Thu Jul 30, 2009 4:34 am, edited 1 time in total.
-
- Posts: 5
- Joined: Tue Jul 28, 2009 6:31 pm
Re: Create Operating System with FASM! - loading photo!!
Hi @Dex, wow nice Idea!
A lot of thanks! I try now.. When i try a sample bootloader with image Flex OS.
@Creature, That is an example bootloader with image. Thank you.
I give you $$$$ money because you work long... sorry i do not fake you. I want to help for you. When you work good than you can go my company .
Thanks I give a lot of thanks
Edit:
But it does not show in VirtualBox 3.0x
I am trying with bootloader with image. I have been compiled:
Directory: C:\FlexOS-Src\
boot.asm
test.bmp
vesainfo.inc
To asembling:
fasm boot.asm boot.bin
Show no error and no illegal...
copy boot.bin+test.bmp+vesainfo.inc boot.img
I try into VirtualBox 3.0x with boot.img.
I see Emulator of VirtualBox. But my boot.img is not working because it is unbootabled... Why?? Same did you use under linux?
Regards, SnakeMedia
A lot of thanks! I try now.. When i try a sample bootloader with image Flex OS.
@Creature, That is an example bootloader with image. Thank you.
I give you $$$$ money because you work long... sorry i do not fake you. I want to help for you. When you work good than you can go my company .
Thanks I give a lot of thanks
Edit:
But it does not show in VirtualBox 3.0x
I am trying with bootloader with image. I have been compiled:
Directory: C:\FlexOS-Src\
boot.asm
test.bmp
vesainfo.inc
To asembling:
fasm boot.asm boot.bin
Show no error and no illegal...
copy boot.bin+test.bmp+vesainfo.inc boot.img
I try into VirtualBox 3.0x with boot.img.
I see Emulator of VirtualBox. But my boot.img is not working because it is unbootabled... Why?? Same did you use under linux?
Regards, SnakeMedia
Code: Select all
package flexos
{
import flexos.system.*;
import flexos.apps.*;
import mx.controls.*;
import flash.events.*;
public class flexos_bootloader extends boot
{
// That is Actionscript 3 with Flex Builder... \oOo/
}
}
Re: Create Operating System with FASM! - loading photo!!
You need to copy the stage 1 bootloader to the bootsector of the floppy in order to make it bootable.
Vancouver Canucks fan for life
- Troy Martin
- Member
- Posts: 1686
- Joined: Fri Apr 18, 2008 4:40 pm
- Location: Langley, Vancouver, BC, Canada
- Contact:
Re: Create Operating System with FASM! - loading photo!!
Uhhh, I call troll on this. Or someone that hasn't read the Beginner Mistakes...snakemedia wrote:I give you $$$$ money because you work long... sorry i do not fake you. I want to help for you. When you work good than you can go my company .
-
- Posts: 5
- Joined: Tue Jul 28, 2009 6:31 pm
Re: Create Operating System with FASM! - loading photo!!
Hi
@Thor, are you sure? I do not believe it, Okay I copy with stage1 i can understand now. Why does pinguin need only important folders or files to imports?? I do not believe this. Sorry i retry now.
Regards, SnakeMedia
@Thor, are you sure? I do not believe it, Okay I copy with stage1 i can understand now. Why does pinguin need only important folders or files to imports?? I do not believe this. Sorry i retry now.
Regards, SnakeMedia
Code: Select all
package flexos
{
import flexos.system.*;
import flexos.apps.*;
import mx.controls.*;
import flash.events.*;
public class flexos_bootloader extends boot
{
// That is Actionscript 3 with Flex Builder... \oOo/
}
}
Re: Create Operating System with FASM! - loading photo!!
Do you not read the how to assemble ?, you take "kernel32.asm" make sure that "vesainfo.inc" and "test.bmp" are in the same dir, then assemble like this:
fasm kernel32.asm kernel32.exe <enter>
Then as it say you need to get "bootprog"
http://alexfru.chat.ru/epm.html#bootprog
Once you have a floppy with bootprog on you just put the kernel32.exe on the floppy and boot.
If you are using emulators you need to set for vesa uses.
In here is a self extracting exe that will do it all for you, you need a floppy and windows
The file is "ImageView.exe"
http://dex4u.com/code/BmpView.zip
fasm kernel32.asm kernel32.exe <enter>
Then as it say you need to get "bootprog"
http://alexfru.chat.ru/epm.html#bootprog
Once you have a floppy with bootprog on you just put the kernel32.exe on the floppy and boot.
If you are using emulators you need to set for vesa uses.
In here is a self extracting exe that will do it all for you, you need a floppy and windows
The file is "ImageView.exe"
http://dex4u.com/code/BmpView.zip
Re: Create Operating System with FASM! - loading photo!!
@Dex: true, if you are using Fasm for DOS, but if he have fasm for win32 he would have to edit the include tag. and copy and paste the kernel into into fasm and click Run > Compile (or CTRL + F9)
Code: Select all
Include 'C:\files\vesainfo.inc'
My hero, is Mel.
- gravaera
- Member
- Posts: 737
- Joined: Tue Jun 02, 2009 4:35 pm
- Location: Supporting the cause: Use \tabs to indent code. NOT \x20 spaces.
Re: Create Operating System with FASM! - loading photo!!
About the money thing...I think it would have been better if you just offered him a fee via paypal or something.snakemedia wrote:Hi @Dex, wow nice Idea!
A lot of thanks! I try now.. When i try a sample bootloader with image Flex OS.
I give you $$$$ money because you work long... sorry i do not fake you. I want to help for you. When you work good than you can go my company .
Thanks I give a lot of thanks
Edit:
But it does not show in VirtualBox 3.0x
I am trying with bootloader with image. I have been compiled:
Directory: C:\FlexOS-Src\
boot.asm
test.bmp
vesainfo.inc
To asembling:
fasm boot.asm boot.bin
Show no error and no illegal...
copy boot.bin+test.bmp+vesainfo.inc boot.img
I try into VirtualBox 3.0x with boot.img.
I see Emulator of VirtualBox. But my boot.img is not working because it is unbootabled... Why?? Same did you use under linux?
Regards, SnakeMedia
17:56 < sortie> Paging is called paging because you need to draw it on pages in your notebook to succeed at it.