A new monthly release ...
for Solar_OS
Binary: http://www.oby.ro/os/files/sol_os_2006_07_12_bin.zip
Sources: http://www.oby.ro/os/files/sol_os_2006_07_12_src.zip
New Things:
1)Sol_Tris Game
----------------------
A graphical Tetris like game
so let me know your high scores.
Funny but Sol_OS did lacked games.
(I agree we need many other things)
3)ACT_NOTIFY callback
--------------------------
For backgrund tasks.
It allows applications to run when minimized
and/or are in another hidden desktop
without adding a timer or becoming a service.
Adds better sepparation of PAINT and RUN methods.
4)ListView control
-----------------------
You know, drag the headers...
I still have to add small icons and view modes to it
5)FDISK becomes more NTFS aware
-----------------------------------
In preparations for NTFS filesystem browse.
In FDISK APP if you press Enter on a NTFS partition
and read BPB in the upcoming Details window -->
then you will find some MFT and FileRecords info
But the transition is mainly internal since analysis and
functions are added in order to support NTFS.
Ah and hopefully I have fixed the bugs kindly found by Hutch in circle drawing routines.
Hi Bogdan
Nice to see a new release.
Are you still progressing with SolAsm? are you looking to compile Solar OS with SolAsm in the future?
Keep up the good work :clap:
Cheers Adam
Compiling with SolASM, I can't wait to be able to do that. I am looking forward to adding that assembler as an option in my package. I bet Hutch is looking forward to it, also.
Paul
Yes, i am still progressing with Sol_ASM also ;)
And it is indeed planned to switch Solar OS development from TASM to SOL_ASM in the future
And yes Sol_ASM is compatible with MASM syntax also...
Yerp,
It would be good to have a Bogdan assembler available. :U :U :U
What does YERP mean? Is that another OZ word or does it stand for, 'Yes, Eagerly Requesting Program'
Paul
Hi Bodgan, I tried SolarOS using Virtual PC 2004 on WinXP SP2 and it's cool! But it reports my CPU speed incorrectly (1034MHz instead of 1800MHz, AMD XP 2500+ 23-bit) and I couldn't find the Tetris game (probably something I did wrong.)
Hi Mark,
Thank you for testing!
1)The "tetris game" is in Sol->Applications->Sol_Tris_Game (or should be)
2) It is normal for VPC to report a smaller CPU frequency, because it does not dedicate the full CPU to the virtual machine.
IMHO on a real PC the frequency reported by SOL System_Info application should be the real one.
Hi Bogdan
Binary: http://www.oby.ro/os/files/sol_os_2006_07_12_bin.zip
Sources: http://www.oby.ro/os/files/sol_os_2006_07_12_src.zip
error this link
please send correct link...
thx
Thanks Bogdan :U
Oh well,
AT the time of this post...the sources have been available for free download...
Meanwhile, I have changed my mind and removed the sources from the package.
As it is today: only the binary is released (no sources)...
But then again I have changed my mind ...
so the above link for the sources is working OK.
Grab it as you still can ... :U
Thanks Bogdan
Hi Bogdan.
Please Help
I'm using Microsoft VirtualPC.
Your OS full work.
But my litle program not work in vesa lfb mode.
My program changing video mode in vesa 1024*768 with lfb. And filling varius color to screen area.
In native dos6.22 work correct
In emulator DosBox work correct.
In emulator VPC (in XP) changing mode but filling first 64K and halt
what a problem?
How to correct lfb mode use
thx
.386p
assume cs:x_code
assume ds:x_data
assume ss:x_stack
.model small, stdcall
option casemap :none
x_data segment para public 'DATA' use16
x_data ends
GDI_SetVideoMode PROTO :DWORD
GDI_VESA_640x400 equ 4100h ; 640x400x256
GDI_VESA_640x480 equ 4101h ; 640x480x256
GDI_VESA_800x600 equ 4103h ; 800x600x256
GDI_VESA_1024x768 equ 4105h ; 1024x768x256
GDI_VESA_1280x1024 equ 4107h ; 1280x1024x256
ModeInfoBlock struc
; Mandatory information for all VBE revisions
ModeAttributes dw ? ; mode attributes
WinAAttributes db ? ; window A attributes
WinBAttributes db ? ; window B attributes
WinGranularity dw ? ; window granularity
WinSize dw ? ; window size
WinASegment dw ? ; window A start segment
WinBSegment dw ? ; window B start segment
WinFuncPtr dd ? ; pointer to window function
BytesPerScanLine dw ? ; bytes per scan line
; Mandatory information for VBE 1.2 and above
XResolution dw ? ; horizontal resolution in pixels or chars
YResolution dw ? ; vertical resolution in pixels or chars
XCharSize db ? ; character cell width in pixels
YCharSize db ? ; character cell height in pixels
NumberOfPlanes db ? ; number of memory planes
BitsPerPixel db ? ; bits per pixel
NumberOfBanks db ? ; number of banks
MemoryModel db ? ; memory model type
BankSize db ? ; bank size in KB
NumberOfImagePages db ? ; number of images
Reserved1 db ? ; reserved for page function
; Direct Color fields (required for direct/6 and YUV/7 memory models)
RedMaskSize db ? ; size of direct color red mask in bits
RedFieldPosition db ? ; bit position of lsb of red mask
GreenMaskSize db ? ; size of direct color green mask in bits
GreenFieldPosition db ? ; bit position of lsb of green mask
BlueMaskSize db ? ; size of direct color blue mask in bits
BlueFieldPosition db ? ; bit position of lsb of blue mask
RsvdMaskSize db ? ; size of direct color reserved mask in bits
RsvdFieldPosition db ? ; bit position of lsb of reserved mask
DirectColorModeInfo db ? ; direct color mode attributes
; Mandatory information for VBE 2.0 and above
PhysBasePtr dd ? ; physical address for flat frame buffer
OffScreenMemOffset dd ? ; pointer to start of off screen memory
OffScreenMemSize dw ? ; amount of off screen memory in 1k units
Reserved2 db 206 dup (?) ; remainder of ModeInfoBlock
ModeInfoBlock ends
x_data segment para public 'DATA' use16
gdi_seg_id db 'GDI'
vesabuf db 1024 dup (0)
vesasign db 'VESA'
db 1024 dup (0)
x_data ends
x_code segment para public 'CODE' use16
GDI_ScreenAddr dd 0
assume ds:x_data
GDI_SetVideoMode proc mode:DWORD
mov es,cs:[x_data_seg]
mov eax,4f02h
mov ebx,[mode]
int 10h
mov ax,4f01h
mov ecx,[mode]
mov edi,offset vesabuf
int 10h
mov ebx,ModeInfoBlock.PhysBasePtr
mov edi,offset vesabuf
add edi,ebx
mov eax,[edi]
mov cs:[GDI_ScreenAddr],eax
ret
GDI_SetVideoMode endp
x_code ends
x_code segment para public 'CODE' use16
x_data_seg dw seg x_data
x_stack_seg dw seg x_stack
d_memory_seg dw seg memory
d_psp_seg dw 0
start:
mov cs:[d_psp_seg],ds
mov bx,cs:[d_memory_seg]
mov ax,ds
sub bx,ax
mov ax,4a00h
int 21h
mov ds,cs:[x_data_seg]
mov ax,cs:[x_stack_seg]
cli
mov ss,ax
mov sp,50000
sti
invoke GDI_SetVideoMode,GDI_VESA_1024x768
xor eax,eax
mov es,ax
toci:
mov ecx,1024*768/4
mov ebx,cs:[GDI_ScreenAddr]
xx:
mov es:[ebx],eax
add ebx,4
dec ecx
jnz xx
add eax,010101010h
jmp toci
x_code ends
x_stack segment public 'STACK' use16
dw 25000 dup (?)
stack_pointer label word
x_stack ends
memory segment para memory 'memmory' use16
memory ends
end start
end
Sorry...
But I am not in the bussiness of correcting other people's code... not DOS 16 bits code anyway :D
You have my version that is working, and yours that is not... work it out compare results and find out why!
This is an important skill for somebody that wants to write OS or low level software...
othwerwise you will "get by" for now and hit a harder wall later on.
Usually (in this line of work) you DO NOT have a sample that is working to compare with :D
A very quick glance shows me this:
===========================
- exotic definition and usage of program segments... do you really need that?
and why is video address placed into a "code" segment?
- do you check the results of VESA BIOS calls?
Maybe the mode setup failed because some parameter was wrong
real mode 16bits code knows nothing about EBX, ESI, EDI and stuff ... use only 16bits registers :P
-From your description it looks like you have setup a BANK mode and not a LFB mode...
What is the address where you can only write 64K? is it A0000 ?
- What is the mode that fails? all? only one? do others work? lower ones like 640x480?
- int21h ? are you using DOS? do you have DOS installed in VPC?
- do you know the limits of the video board emulated by VPC?
You really need to learn to test and debug your programand and then describe a problem much better...
Throwing code at us and expecting that somebody will READ, UNDERSTAND and FIX it for you ...
is NAIVE and not well mannered at all.
And how is this related to the thread's title and SOL OS release?
The nice way to go is to create a new thread with a relevand title (like: "Failing to setup VESA mode XXX") and describe the problem as accurate as possible.
Do not worry ;) I am just amazed...not aggravated
Work it out and come back with a much better (and simpler) description of your problem.
Who has kept the last one available source SolarOS? ::)
Quote from: 0x401000 on February 02, 2009, 04:00:03 PM
Who has kept the last one available source SolarOS? ::)
I have stated that I have made a mistake by releasing Solar OS as open source. And I have kindly asked that this sources are not to be distributed, used or offered to or by anyone. I hope you will consider my request since I am the original author of this software.
There are other free an open source OS available out there or you can write your own original one .... please do respect my kind request if possible.
I am well known to be against Open source and mainly against the GPL movement and part of this is because the way the GPL movement is stealing and managing people's code and original creations.
Another part is because I have analyzed their actions and have found that they do trick innovative people or people with free time into becoming slaves that produce free software and that "creation" is for the benefit of corporations mainly. A trick to convince poeple to work for free while other things do cost money.
Give away your creation for free and for an idealistic purpose while we ask you for money for bread, house and every other item you are not producing yourself. IMHO this is a successful manipulation where the stolen people dream of beeing free while working for free for their masters.
And unfortunately this also kills any chances of independent software developers to gain money from their creation and not from "service".
And again by copy and paste from other people's work you might be closer to a goal BUT you are also limiting your own mind capabilities to develop original code. I am sure that by creating your own you will become more inteligent and this matters more than a fast "empty" goal.
I am open to discussions and guidance to make your own OS but I will not offer "free" or "open" source code.
I do not expect you to agree with me since the GPL movement has tremendous momentum and it is backed up by potent corporations and propaganda but at least I hope that I can get you to try to think about it on your own.
A discussion about this might get out of hands fast hence I guess you can also take it to my Solar OS forums... ;)