flat assembler
Message board for the users of flat assembler.

Index > OS Construction > Latest ver of DexOS ver 6, is released

Goto page 1, 2  Next
Author
Thread Post new topic Reply to topic
Dex4u



Joined: 08 Feb 2005
Posts: 1601
Location: web
Dex4u 12 May 2012, 18:51
Thats right the latest ver of DexOS ver 6, is released.

New ver has much improved FAT support.
New GUI API's.
New and updated Apps.
Full TCP/IP stack updated .
Cleaned up code.
And a new layout, to make the whole OS fully module.

All source to OS and Apps included.

Now work starts on a full USB stack for DexOS.

Just download the DexOS.zip from web site:
http://www.dex-os.com/

This is a video of old ver (5) run on one of the worlds smallest, x86 PC :
http://www.youtube.com/watch?v=mYJx2zZK7c8
Post 12 May 2012, 18:51
View user's profile Send private message Reply with quote
Stephen



Joined: 13 Aug 2011
Posts: 30
Stephen 13 May 2012, 05:04
Yaaaaaaaaaaaaaaaaa!!!

Not much, but a couple games here:

http://home.comcast.net/~dex-os/
Post 13 May 2012, 05:04
View user's profile Send private message Visit poster's website Reply with quote
pabloreda



Joined: 24 Jan 2007
Posts: 116
Location: Argentina
pabloreda 13 May 2012, 14:48
long live to DexOS !!
Post 13 May 2012, 14:48
View user's profile Send private message Visit poster's website Reply with quote
Rusik



Joined: 09 Apr 2012
Posts: 21
Location: Ukraine, Kyiv
Rusik 13 May 2012, 15:51
Great work Dex4u!!! Unfortunately when I run DexOS on my computer, I could not see background image of OS, because instruction GUI was not working. But on video it looks perfectly.

By the way, I think that DexOS is actually the answer to my question in my post http://board.flatassembler.net/topic.php?t=14261. That`s why I want to ask questions. What file and library from source code are responsible for the output image on the display(as I understand it`s jpeg image)? I want to write simple boot loader with the image, but I am a beginner and I do not have any suitable examples Sad .
Post 13 May 2012, 15:51
View user's profile Send private message Reply with quote
Dex4u



Joined: 08 Feb 2005
Posts: 1601
Location: web
Dex4u 13 May 2012, 16:54
pabloreda wrote:
long live to DexOS !!

Thanks pabloreda and long live r4 Wink

@Rusik, Its seems your vesa does not support 800x600 24/32 mode.
You could try the very old ver of DexOS that users 640x480 24/32 mode.
See here: http://www.dex-os.com/old/index.htm

Anyway to your problem, DexOS can load jpegs, gifs, bmp's or Dif's.
DIF stands for (DexOS Image Format), Dif is the same as a jpeg, but with a
alpha channel, it does this by including a normal jpeg and a alpha ver of the jpeg in one file using Fasm.
examplw
Code:
;=========================================================;
; Dex Image Format  (DIF)                        02-04-09 ;
; Also can be used for (DFF)                              ;
;---------------------------------------------------------;
;                                                         ;
; (c) Craig Bamford                                       ;
;=========================================================;
use32

               org    0x0

               db     'DIF1'                  ; 4 byte id
               dd     Image1                  ; Normal image
               dd     Image2                  ; Alpha image + Normal Image size
               dd     Image2Size-Image2       ; Alpha image size
               dd     Image2Size              ; info

Image1:
file   'ScrMenu.jpg'                          ; NORMAL Jpeg
Image2:
file   'ScrMenuAA.jpg'                        ; ALPHA Jpeg
Image2Size:                                      
    


So thats the file formats supported by dex-os, but to try to help you, try to run this app (vesaDemo.zip) run from DexOS CLI to see if that works .
(Just add it to the DexOS disk)
If not let me know what vesa modes your PC supports (you will find test programs on the net) and i will send you a example.


Description:
Download
Filename: VesaDemo.zip
Filesize: 121.3 KB
Downloaded: 414 Time(s)



Last edited by Dex4u on 13 May 2012, 16:58; edited 1 time in total
Post 13 May 2012, 16:54
View user's profile Send private message Reply with quote
Stephen



Joined: 13 Aug 2011
Posts: 30
Stephen 13 May 2012, 16:57
If you go to: http://www.dex-os.com/

and download dexos.zip the jpeg stuff in located in the folder:

C:\DexOS\DexOS_v6\Gui_DexOS_2012\DexOSDash\Jpeg

The DexOS GUI requires a video card that supports VESA 2, 800 x 600 screen, 32 bit color, and a linear frame buffer. That's the hard part about newer pc video hardware, the only standard you can totaly count on is that they have a windows driver and they have a text mode so the system bios works. Other then that most support most of VESA 2. Most doesn't help if your card or the mode you want isn't part of what is supported
Post 13 May 2012, 16:57
View user's profile Send private message Visit poster's website Reply with quote
pabloreda



Joined: 24 Jan 2007
Posts: 116
Location: Argentina
pabloreda 13 May 2012, 17:54
thank Dex, any chance to run in this VM ?

http://bellard.org/jslinux/
Post 13 May 2012, 17:54
View user's profile Send private message Visit poster's website Reply with quote
Rusik



Joined: 09 Apr 2012
Posts: 21
Location: Ukraine, Kyiv
Rusik 13 May 2012, 18:26
Dex4u problem is that I do not know how add it to the DexOS disk. In folder \DexOS_v6\Gui_DexOS_2012\DexOSDash I find file Gui.asm where was the inclusion of jpeg images and I tried to write something like this
Code:
Format Binary
   org 31744
       mov  ax,cs               
       mov  ss,ax
       mov  es,ax
       mov  ds,ax
       mov  sp,$$
       push dx

       mov  ax, 3 
       int  10h             
       mov  ah,13h          
       xor  al,al
       mov  cx,LoaderMsgLength 
       mov  bl,4           
       xor  dx,dx            
       mov  bp,LoaderMsg       
       int  10h
       mov  eax,cr0
       test al,1              
       jz notVirtual86M

       mov  ah,13h
       xor  al,al
       mov  cx,V8086ModeLength
       mov  bl,1b
       xor  dx,dx
       mov  bp,V8086Mode
       int  10h
       hlt

       notVirtual86M:
                                 mov  ah,2                
                                 mov  bx,0x8000      
                                 pop  dx
                                 push dx                    
                                 mov  dh,0                  
                                 mov  ax,(@end-@begin)/512+1
                                 mov  cl,2               
               mov  ch,0              
                     int  13h                
                    jc   diskReadError      
       jmp  1536                       

       diskReadError:                            
                    mov  ah,13h                
                 xor  al,al                 
                 mov  cx,DiskReadErrorLength  
               mov  bl,100b               
                 xor  dx,dx                 
                 mov  dh,1
                   mov  bp,DiskReadErrorMsg   
                 int  10h                   
       hlt

       DiskReadErrorMsg db 'Disk read error'
       DiskReadErrorLength = $ - DiskReadErrorMsg
       LoaderMsg db 'Loader started'
       LoaderMsgLength = $ - LoaderMsg
       V8086Mode db "Processor in Virtual mode. Can't switch Protected Mode"
       V8086ModeLength = $ - V8086Mode

       times 510-($-$$) db 0
sign dw 43605
                                                  ;
      ORG 0x8000                                    ;* where our program is loaded to NOTE Its not 0x400000
       use32
MaxFileSize    = 1024*1024*10                            ;
BackGroundImage = 1                                        ; 1 = background image, 0 = Fade background
SkinTextColor  = 0x0052ba0d                              ; the text color for this skin limegreen (lighter green = 0x0093e65c)
ButtonColor  = 0x00111213                              ;
MenuStart        = 500                                     ; NOTE: CHANGE THIS TO 225 for 1024*768 mode

@begin:
       jmp   start                                       ; jump to the start of program.
   db    'GUI6'                                     ; We check for this, to make shore it a valid Dex4u file.
;=======================================================  ;
;  Start of program.                                      ;
;=======================================================  ;
start:                                                   ;
 mov   ax,18h                                      ;
 mov   ds,ax                                       ;
 mov   es,ax                                       ;
;=======================================================  ;
;  Get calltable address.                                 ;
;=======================================================  ;
    mov   edi,Functions                               ; this is the interrupt
   mov   al,0                                        ; we use to load the DexFunction.inc
      mov   ah,0x0a                                     ; with the address to DexOS functions.
    int   50h                                         ;
;=======================================================  ;
;  Test if fat module is loaded                           ;
;=======================================================  ;
    mov    esi,ID                                     ;
 call   [ModuleFunction]                           ;
 jc     NoFatMod                                   ;
 mov    [Fatmod],eax                               ;
NoFatMod:                                              ;
;-------------------------------------------------------  ;
; Do realmode int (vesa).                                 ;
; 0x4112 =  640 , 480 , 0                                 ;
; 0x4115 =  800 , 600 , 0                                 ;
; 0x4118 = 1024 , 768 , 0                                 ;
; 0x411B = 1280 ,1024 , 0                                 ;
;=======================================================  ;
;   set vesa up                                           ;
;=======================================================  ;
  mov    ax,4f00h                                   ;
 mov    bx,0x4115                                  ;
 mov    edi,Mode_Info                              ;
 call   [RealModeInt10h]                           ;
 jc     VesaErrorM2D                               ;
;=======================================================  ;
;   Setup vesa mouse.                                     ;
;=======================================================  ;
    ;call  SetUpMouseVesa                             ;
 ;jc    MouseErrorM2D                              ;
;=======================================================  ;
;   Setup .VesaBuffer address                             ;
;=======================================================  ;
    mov   esi,VesaBuffer                              ;
 call  VesaBufferSetM2D                            ;
;=======================================================  ;
;  Decode Dif                                    Menu     ;
;=======================================================  ;
    mov   esi,file_area_Menu                          ;
 mov   edi,Menu_Buffer                             ;
 mov   ecx,BufferTemp                              ;
 call  DIFdecoder                                  ;
 jc    VesaErrorM2D                                ;
;=======================================================  ;
;  Decode Dif                                     Bar     ;
;=======================================================  ;
    mov   esi,file_area_Bar                           ;
 mov   edi,Bar_Buffer                              ;
 mov   ecx,BufferTemp                              ;
 call  DIFdecoder                                  ;
 jc    VesaErrorM2D                                ;
;=======================================================  ;
;   Set vesa mode 24 or 32bit                             ;
;=======================================================  ;
    call  SetVesaModeSys                              ;
;=======================================================  ;
;   SpeedUp KeyBoard                                      ;
;=======================================================  ;
    call  SpeedUpKeyBoard                             ;
;=======================================================  ;
;   Draw BackGround                                       ;
;=======================================================  ;
    call  DrawMainMenu                                ;
;=======================================================  ;
;   Draw BottomMenu                                       ;
;=======================================================  ;
    call  BottomMenu                                  ;
;=======================================================  ;
;   Set app/folder image                                  ;
;=======================================================  ;
    call  SetFolder                                   ;
;=======================================================  ;
;   hook int40h                                           ;
;=======================================================  ;
    call  Hook_int40h                                 ;
;=======================================================  ;
;   Go to second start                                    ;
;=======================================================  ;
    jmp   START2                                      ;
;=======================================================  ;
;   ** Vesa mouse setup error **                          ;
;=======================================================  ;
MouseErrorM2D:                                            ;
       ; call  [SetMouseOff]                              ;
;=======================================================  ;
;   return to text mode                                   ;
;=======================================================  ;
     mov    ax,03h                                     ;  move the number of the mode to ax
      call   [RealModeInt10h]                           ;  and enter the mode using int 10h
       xor    eax,eax                                    ;
 call   [SetCursorPos]                             ;
 ret                                               ;
;=======================================================  ;
;   ** Vesa mouse setup error **                          ;
;=======================================================  ;
VesaErrorM2D:                                             ; you can print error message if you have the fonts inc
;=======================================================  ;
;   return to text mode                                   ;
;=======================================================  ;
      mov    ax,03h                                     ;  move the number of the mode to ax
      call   [RealModeInt10h]                           ;  and enter the mode using int 10h
       xor    eax,eax                                    ;
 call   [SetCursorPos]                             ;
 ret                                               ;
START2:                                                ;
 mov   [MenuBAR],1                                 ;
 call  BuffToScreen                                ;
 mov   eax,18                                      ;
 call  [SetDelay]                                  ;
noclose:                                               ;
 mov   ebx,3                                       ;
 cmp   [speed_flag],1                              ;
 jne   .skip                                       ;
 call  CHECK_FOR_EVENT_NO_WAIT_11                  ;
 jmp   .skip2                                      ;
.skip:                                                         ;
 call  WAIT_FOR_EVENT_WITH_TIMEOUT_23              ;
.skip2:                                                ;
 cmp   eax,1                                       ;
 je    noclose                                     ;
 cmp   eax,2                                       ;
 je    keytest                                     ;
 cmp   eax,3                                       ;
 je    noclose                                     ;
 jmp   noclose                                     ;
keytest:                                               ;
 call  GET_KEY_02                                  ;
 cmp   bl,0x4d                                     ;
 jne   TryLeftArrow                                ;
 cmp   [MenuBAR],2                                 ;
 jb    MoveBarRight                                ;
 mov   [MenuBAR],1                                 ;
 call  DrawMenuBar                                 ;
 call  BuffToScreen                                ;
 jmp   MenuKeyTestExit                             ;
MoveBarRight:                                                  ;
 inc   [MenuBAR]                                   ;
 call  DrawMenuBar                                 ;
 call  BuffToScreen                                ;
 jmp   MenuKeyTestExit                             ;
TryLeftArrow:                                                  ;
 cmp   bl,0x4b                                     ;
 jne   TryEnterKey                                 ;
 cmp   [MenuBAR],1                                 ;
 ja    MoveBarLeft                                 ;
 mov   [MenuBAR],2                                 ;
 call  DrawMenuBar                                 ;
 call  BuffToScreen                                ;
 jmp   MenuKeyTestExit                             ;
MoveBarLeft:                                           ;
 dec   [MenuBAR]                                   ;
 call  DrawMenuBar                                 ;
 call  BuffToScreen                                ;
 jmp   MenuKeyTestExit                             ;
TryEnterKey:                                           ;
 cmp   bl,0x1c                                     ;
 jne   MenuKeyTestExit                             ;
 cmp   [MenuBAR],1                                 ;
 jne   CommandLine                                 ;
 call  Test_Menu                                   ;
 jmp   MenuKeyTestExit                             ;
CommandLine:                                           ;
 cmp   [MenuBAR],2                                 ;
 jne   TryTurnOff                                  ;
 jmp   CLOSE_THIS_PROGRAM_x1                       ;
TryTurnOff:                                            ;
 jmp   MenuKeyTestExit                             ;
                                                   ;
MenuKeyTestExit:                                       ;
 jmp     noclose                                   ;
MenTestExit:                                           ;
 ; close this program                              ;
 jmp   CLOSE_THIS_PROGRAM_x1                       ;
Test_Menu:                                             ;
 pushad                                            ;
 mov     dword[BarAddOn_1],0                       ;
 mov     dword[BarAddOn],0                         ;
 mov     dword[BarAddOn_2],0                       ;
 mov     dword[BarAddOn_3],0                       ;
 call    SaveBackGroundMenu                        ;
 call    LoadMenu                                  ;
 call    SaveMenulist                              ;
 call    DrawMenu_Bar                              ;
 call    BuffToScreen                              ;
 cmp     dword[GetListFile_Count],15               ;
 jae     MoreThan15                                ;
 mov     ebx,dword[GetListFile_Count]              ;
 cmp     ebx,0                                     ;
 je      YesZero                                   ;
 dec     ebx                                       ;
YesZero:                                               ;
 mov     dword[List_Menu_Number],ebx               ;
 jmp     Menu_Key_TestExit                         ;
MoreThan15:                                            ;
 mov     dword[List_Menu_Number],15                ;
align 4                                            ;
Menu_Key_TestExit:                                     ;
 call    [WaitForKeyPress]                         ;
 cmp     al,0x1b                                   ;
 je      Menu_Exit                                 ;
 cmp     ah,0x50                                   ;
 jne     TryUpArrow_L_Menu                         ;
 mov     ebx,dword[List_Menu_Number]               ;
 cmp     dword[BarAddOn_1],ebx                     ;
 jb      MoveBarDown_L_Menu                        ;
 cmp     dword[GetListFile_Count],15               ;
 ja      UpDateKeyVar                              ;
 jmp     Menu_Key_TestExit                         ;
UpDateKeyVar:                                                  ;
 mov     ebx,dword[GetListFile_Count]              ;
 dec     ebx                                       ;
 cmp     dword[BarAddOn_2],ebx                     ;
 jae     Menu_Key_TestExit                         ;
 inc     dword[BarAddOn_2]                         ;
 add     dword[BarAddOn_3],15                      ;
 call    LoadMenu                                  ;
 call    SaveMenulist                              ;
 call    DrawMenu_Bar                              ;
 call    BuffToScreen                              ;
 jmp     Menu_Key_TestExit                         ;
MoveBarDown_L_Menu:                                    ;
 inc     dword[BarAddOn_1]                         ;
 inc     dword[BarAddOn_2]                         ;
 add     dword[BarAddOn],20                        ;
 call    RestoreMenuList                           ;
 call    DrawMenu_Bar                              ;
 call    BuffToScreen                              ;
 jmp     Menu_Key_TestExit                         ;
TryUpArrow_L_Menu:                                     ;
 cmp     ah,0x48                                   ;
 jne     Try_Enter_Key                             ;
 cmp     dword[BarAddOn],1                         ;
 ja      Move_Bar_Up                               ;
 cmp     dword[BarAddOn_3],0                       ;
 jbe     Menu_Key_TestExit                         ;
 dec     dword[BarAddOn_2]                         ;
 sub     dword[BarAddOn_3],15                      ;
 call    LoadMenu                                  ;
 call    SaveMenulist                              ;
 call    DrawMenu_Bar                              ;
 call    BuffToScreen                              ;
 jmp     Menu_Key_TestExit                         ;
Move_Bar_Up:                                           ;
 dec     dword[BarAddOn_2]                         ;
 dec     dword[BarAddOn_1]                         ;
 sub     dword[BarAddOn],20                        ;
 call    RestoreMenuList                           ;
 call    DrawMenu_Bar                              ;
 call    BuffToScreen                              ;
 jmp     Menu_Key_TestExit                         ;
Try_Enter_Key:                                                 ;
 cmp     ah,0x1c                                   ;
 jne     Menu_Key_TestExit                         ;
 mov     ebx,dword[BarAddOn_2]                     ;
 mov     eax,dword[BarAddOn_2]                     ;
 shl     eax,4                                     ;
 sub     eax,ebx                                   ;
 mov     esi,ListBuffer                            ;dword[GetListBufferAddress]
      add     esi,eax                                   ;
 mov     al,byte[esi]                              ;
 cmp     al,7h                                     ;
 je      WeHaveAfile                               ;
 call    ChangeDirLoad                             ;
 jc      FolderError                               ;
 mov     dword[BarAddOn_1],0                       ;
 mov     dword[BarAddOn],0                         ;
 mov     dword[BarAddOn_2],0                       ;
 mov     dword[BarAddOn_3],0                       ;
 call    LoadMenu                                  ;
 call    SaveMenulist                              ;
 call    DrawMenu_Bar                              ;
 call    BuffToScreen                              ;
 cmp     dword[GetListFile_Count],15               ;
 jae     MoreThan15_Folder                         ;
 mov     ebx,dword[GetListFile_Count]              ;
 cmp     ebx,0                                     ;
 je      YesZero_Folder                            ;
 dec     ebx                                       ;
YesZero_Folder:                                        ;
 mov     dword[List_Menu_Number],ebx               ;
 jmp     Menu_Key_TestExit                         ;
MoreThan15_Folder:                                     ;
 mov     dword[List_Menu_Number],15                ;
 jmp     Menu_Key_TestExit                         ;
                                                   ;
WeHaveAfile:                                           ;
;=======================================================  ;
; Load GUI.                                               ;
;=======================================================  ;
    mov     dword[ImageLoadAddrVar],0x1A00000         ; 26 MB
   add     esi,2                                     ;
 mov     edx,esi                                   ;
 mov     [FileAddress],esi                         ;
 call    open_FatMod                               ;
 jc      FolderError                               ;
 mov     dword[FileHandle2],ebx                    ;
 mov     edx,dword[ImageLoadAddrVar]               ;
 mov     ecx,MaxFileSize                           ;
 call    read_FatMod                               ;
 jc      FolderError1                              ;
 mov     ebx,dword[FileHandle2]                    ;
 call    close_FatMod                              ;
;=======================================================  ;
; Test gex file.                                          ;
;=======================================================  ;
    mov     esi,dword[ImageLoadAddrVar]               ;
 add     esi,2                                     ;
 cmp     dword[ds:esi],'GEX6'                        ;
 je      ItsaDexProg_GEX                           ;
 add     esi,3                                     ;
 cmp     dword[ds:esi],'GEX6'                        ;
 jne     FolderError                               ;
;=======================================================  ;
;  Restore menu background.                               ;
;=======================================================  ;
ItsaDexProg_GEX:
    call    RestoreBackGroundMenuNB                   ;
;=======================================================  ;
; Run GUI.                                                ;
;=======================================================  ; 
   mov     ax,18h                                    ;
 mov     ds,ax                                     ;
 mov     es,ax                                     ;
 xor     eax,eax                                   ;
 mov     ebx,eax                                   ;
 mov     ecx,eax                                   ;
 mov     edx,eax                                   ;
 mov     esi,eax                                   ;
 mov     edi,eax                                   ;
 call    dword[ImageLoadAddrVar]                   ;                          
       mov     ax,18h                                    ;             
    mov     ds,ax                                     ;
 mov     es,ax                                     ;
 xor     eax,eax                                   ;
 mov     esi,eax                                   ;
 mov     edi,eax                                   ;
 mov     ebx,eax                                   ;
 mov     ecx,eax                                   ;
 mov     edx,eax                                   ;
;=======================================================  ;
; Setup .VesaBuffer address                               ;
;=======================================================  ; 
   pushad                                            ;
 mov     esi,VesaBuffer                            ;
 call    VesaBufferSetM2D                          ;
 popad                                             ;
 jmp     Menu_Exit1                                ;
FolderError1:                                                  ;
 mov     ebx,dword[FileHandle2]                    ;
 call    close_FatMod                              ;
FolderError:                                           ;
 jmp     Menu_Key_TestExit                         ;
Menu_Exit:                                             ;
 call    RestoreBackGroundMenuNB                   ;
Menu_Exit1:                                            ;
 call    BuffToScreen                              ;
 popad                                             ;
 ret                                               ;
;=======================================================  ;
;  We come here, if no fat module available               ;
;=======================================================  ;
FatmodError:                                              ;
 stc                                               ;
 ret                                               ;
;=======================================================  ;
;  Includes                                               ;
;=======================================================  ;
include 'Men2Dex\Men2Dex.inc'                              ;
;=======================================================  ;
; Data                                                    ;
;=======================================================  ;
ID                  db 'DEXOSFAT',0                 ;
Fatmod                   dd   FatmodError                  ;
FileHandle2       dd 0                                     ;
ImageLoadAddrVar dd 0                                      ;
speed_flag db  1                                   ;
StartMenuOpenClose       db      0                         ;
align 4                                            ;
file_area_arrow:                                       ;
file   'BGimage\Arrow.jpg'                              ;
FileEnd_arrow:                                                 ;
rd 1                                                       ;
align 4                                            ;
file_area_App:                                                 ;
file   'BGimage\App.jpg'                                ;
FileEnd_App:                                           ;
rd 1                                                       ;
align 4                                            ;
file_area_folder:                                      ;
file   'BGimage\Folder.jpg'                             ;
FileEnd_folder:                                        ;
rd 1                                                       ;
align 4                                            ;
file_area:                                             ;
file   'BGimage\Cod800.jpg'                             ;
FileEnd:                                               ;
rd 1                                                       ;
align 4                                            ;
file_area_BottomMenu:                                          ;
file   'BGimage\BottomMenu.jpg'                         ;
FileEnd_BottomMenu:                                    ;
rd 1                                                       ;
align 4                                            ;
file_area_Menu:                                        ;
file   'Skins\Menu.dif'                                 ;
file_area_Menu_FileEnd:                                ;
rd 1                                                       ;
align 4                                            ;
file_area_Bar:                                                 ;
file   'Skins\Bar.dif'                                          ;
file_area_Bar_FileEnd:                                         ;
rd 1                                                       ;
align 4                                            ;
include 'Dif\Dif.inc'                                   ;
align 4                                            ;
include 'Functions\Convert.inc'                         ;
align 4                                            ;
include 'Mouse\MouseData.inc'                           ;
align 4                                            ;
include 'Mouse\MouseLib.inc'                            ;
align 4                                            ;
include 'Mouse\MouseDraw.inc'                           ;
align 4                                            ;
include 'Text\VesaText.inc'                             ;
align 4                                            ;
include 'Text\Font16.inc'                               ;
align 4                                            ;
include 'Text\Font8.inc'                                ;
align 4                                            ;
include 'Graphic\Graphic.inc'                           ;
align 4                                            ;
include 'Graphic\Line.inc'                              ;
align 4                                            ;
include 'Beep\Beep.inc'                                 ;
align 4                                            ;
include 'WinStructList\WinStructList.inc'               ;
align 4                                            ;
include 'ButtonList\ButtonList.inc'                     ;
align 4                                            ;
include 'Dash\Dash.inc'                                 ;
align 4                                            ;
include 'Int40h\Int40h.inc'                             ;
align 4                                            ;
include 'Time\Time.inc'                                 ;
align 4                                            ;
include 'Jpeg\Filelib.inc'                              ;
align 4                                            ;
include 'Jpeg\Memlib.inc'                               ;
align 4                                            ;
include 'Jpeg\Jpeglib.inc'                              ;
align 4                                            ;
include 'Jpeg\JpegGraphics.inc'                         ;
align 4                                            ;
include 'Jpeg\Jpegdat.inc'                              ;
align 4                                            ;
include 'Jpeg\Rdata.inc'                                ; NOTE: Must be last in list as contains rd, rw, rd,
align 4                                             ;
include 'Temp.inc'                                       ;
align 4                                            ;
include 'Dex.inc'                                        ;
align 4                                            ;
BackGroundBuffer:                    rd  1024*1024+2   ; buffer for background image
align 4                                                ;
BufferTemp:                          rd  1024*1024     ;
align 4                                            ;
Menu_Buffer:                         rd  400*384+2     ;
align 4                                            ;
Bar_Buffer:                          rd  32*336+2      ;
align 4                                            ;
MenBar800_Store_Buffer:              rd  100*800+2     ;
align 4                                            ;
Menu_Store_Buffer:                   rd  400*384+2     ;
align 4                                            ;
Menu_List_Buffer:                    rd  400*384+2     ;
align 4                                            ;
BottonMenu_Buffer:                   rd  96*800+2      ;
align 4                                            ;
Arrow_Buffer:                                rd  16*16+2       ;
align 4                                            ;
Folder_Buffer:                               rd  16*16+2       ;
align 4                                            ;
App_Buffer:                          rd  16*16+2       ;
align 4                                            ;
ListBuffer                               rb  1024*15       ;
align 4                                            ;
VesaBuffer:                                            ;
                                 rb   1024*1024*4  ;
@end:
    

compile it and put *.bin file to boot sector of my USB flash, but of course it did not work. I get message only Loader started. Disk read error. Is it possible to do similar to the following principles?
Post 13 May 2012, 18:26
View user's profile Send private message Reply with quote
Dex4u



Joined: 08 Feb 2005
Posts: 1601
Location: web
Dex4u 13 May 2012, 18:49
Yes DexOS was one of the first OS's after Dos to run in JS emulator, many yeas ago, it was set up by a DexOS team member, but its down now.

See here: http://board.flatassembler.net/topic.php?t=7172
Post 13 May 2012, 18:49
View user's profile Send private message Reply with quote
Dex4u



Joined: 08 Feb 2005
Posts: 1601
Location: web
Dex4u 13 May 2012, 18:59
Rusik wrote:
Dex4u problem is that I do not know how add it to the DexOS disk. In folder \DexOS_v6\Gui_DexOS_2012\DexOSDash I find file Gui.asm where was the inclusion of jpeg images and I tried to write something
compile it and put *.bin file to boot sector of my USB flash, but of course it did not work. I get message only Loader started. Disk read error. Is it possible to do similar to the following principles?

That's never going to work, it uses alot of stuff thats in kernel32.exe.

Did you try the app for DexOS i posted above ?.

Or try and replace kernel32.exe from the DexOS disk with this kernel32.exe which is a simple boot a bmp image demo.


Description:
Download
Filename: BmpView.zip
Filesize: 426.53 KB
Downloaded: 421 Time(s)

Post 13 May 2012, 18:59
View user's profile Send private message Reply with quote
Rusik



Joined: 09 Apr 2012
Posts: 21
Location: Ukraine, Kyiv
Rusik 13 May 2012, 19:11
Thanks Dex. But is it possible to rewrite BmpView.asm from format MZ to format bin or img and change 8-bit bmp to 24-bit?
Post 13 May 2012, 19:11
View user's profile Send private message Reply with quote
Dex4u



Joined: 08 Feb 2005
Posts: 1601
Location: web
Dex4u 13 May 2012, 20:28
Rusik wrote:
Thanks Dex. But is it possible to rewrite BmpView.asm from format MZ to format bin or img and change 8-bit bmp to 24-bit?

Yes, but does your vesa mode support 24bits ?.

Also mz format can be tested in Dos or it can be loaded using bootprog or by replacing the kernel32.exe in any DexOS boot disk (must be called kernel32.exe).

See here for bootprog http://wiki.osdev.org/BootProg
Post 13 May 2012, 20:28
View user's profile Send private message Reply with quote
Rusik



Joined: 09 Apr 2012
Posts: 21
Location: Ukraine, Kyiv
Rusik 14 May 2012, 11:17
Dex4u wrote:
Rusik wrote:
Thanks Dex. But is it possible to rewrite BmpView.asm from format MZ to format bin or img and change 8-bit bmp to 24-bit?

Yes, but does your vesa mode support 24bits ?.

Also mz format can be tested in Dos or it can be loaded using bootprog or by replacing the kernel32.exe in any DexOS boot disk (must be called kernel32.exe).

See here for bootprog http://wiki.osdev.org/BootProg


As I know VESA standard is not specified a mandatory back-up byte code point. Therefore, the video card, for which he is absent, and the code points in just 24 bits, which formally correspond to the requirements of the standard VBE 1.2. As I said I tested the example by Madis731 http://board.flatassembler.net/topic.php?t=11609, there is used a small background bmp 24-bits per pixel and it works correctly. But this bmp multiplied on full screen and I want one big image on full screen. I tried to change the image, but because it was unable to compile the code (perhaps because the file size went beyond 1.44 Mb).

By the way Dex as I understand your background image in the DexOS increased to fit the screen and it prevents the withdrawal of one image pixel on the display. For example the background image is one pixel red. During the withdrawal of this pixel is displayed by a group of pixels of red color. Right?
Post 14 May 2012, 11:17
View user's profile Send private message Reply with quote
Dex4u



Joined: 08 Feb 2005
Posts: 1601
Location: web
Dex4u 14 May 2012, 12:01
I will answer any ? about your boot loader, in your post.
Post 14 May 2012, 12:01
View user's profile Send private message Reply with quote
Dex4u



Joined: 08 Feb 2005
Posts: 1601
Location: web
Dex4u 15 May 2012, 19:01
This is a demo of DexOS's TCP/IP stack in action, running DexOS web server on local lan
http://www.youtube.com/watch?v=LdXhuZ0sAD4

Also DexOS running space invaders, ide etc.
http://www.youtube.com/watch?v=p-XXCSxlUng
Post 15 May 2012, 19:01
View user's profile Send private message Reply with quote
AsmGuru62



Joined: 28 Jan 2004
Posts: 1659
Location: Toronto, Canada
AsmGuru62 15 May 2012, 19:03
Awesome stuff!
Post 15 May 2012, 19:03
View user's profile Send private message Send e-mail Reply with quote
Dex4u



Joined: 08 Feb 2005
Posts: 1601
Location: web
Dex4u 15 May 2012, 19:19
AsmGuru62 wrote:
Awesome stuff!
Thanks AsmGuru62.
Post 15 May 2012, 19:19
View user's profile Send private message Reply with quote
bubach



Joined: 17 Sep 2004
Posts: 341
Location: Trollhättan, Sweden
bubach 15 May 2012, 21:54
I have to agree, you have done a great job cleaning up the source, integrating all the old functionality and just made it much more modular and complete. Smile
Post 15 May 2012, 21:54
View user's profile Send private message Reply with quote
Dex4u



Joined: 08 Feb 2005
Posts: 1601
Location: web
Dex4u 16 May 2012, 12:37
bubach wrote:
I have to agree, you have done a great job cleaning up the source, integrating all the old functionality and just made it much more modular and complete. Smile

Thanks bubach Smile

I think DexOS and BOS where a head of there times, because if you take a look at the so called modern OS's like whats on the I-Pod, I-Pad or the coming win8, not only are they moving to a more single tasking, one app full screen, but also the GUI is more like a game console menu, like DexOS was in 2004 Wink .

The best part was, i was going to call DexOS the 'Game Pod' in 2002, but my girl friend said the Pod part did not sound right, the rest is history Crying or Very sad
Post 16 May 2012, 12:37
View user's profile Send private message Reply with quote
bzdashek



Joined: 15 Feb 2012
Posts: 147
Location: Tolstokvashino, Russia
bzdashek 16 May 2012, 18:59
Hardcore stuff, Dex!

Do not regret the past, look into the future
Post 16 May 2012, 18:59
View user's profile Send private message Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page 1, 2  Next

< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.