flat assembler
Message board for the users of flat assembler.

Index > OS Construction > use FASMLIB in your OSes

Author
Thread Post new topic Reply to topic
vid
Verbosity in development


Joined: 05 Sep 2003
Posts: 7105
Location: Slovakia
vid 25 Dec 2006, 10:44
hi OS-writing guys.

Don't you think it would be nice to use FASMLIB in your 32bit OSes? You could provide nicer API to users (standardized I/O routines, string handling), and FASMLIB will get more uses.

You could just directly include some modules of FASMLIB (conversions, string handling) and provide them to user.

Or, you can do some extra coding, and implement full-featured FASMLIB.

If anyone would be interested, let me know
Post 25 Dec 2006, 10:44
View user's profile Send private message Visit poster's website AIM Address MSN Messenger ICQ Number Reply with quote
Remy Vincent



Joined: 16 Sep 2005
Posts: 155
Location: France
Remy Vincent 25 Dec 2006, 18:00
Hello vid, I am sorry, but I have not started any O.S. yet. Merry Chrismas anyway!!! May be next year I could be able to use your """FASMLIB Vx.y.z""" for an "My small Operating System"... Who knows!!
Post 25 Dec 2006, 18:00
View user's profile Send private message Visit poster's website Reply with quote
Dex4u



Joined: 08 Feb 2005
Posts: 1601
Location: web
Dex4u 25 Dec 2006, 18:23
@vid, i will be porting FASMLIB to DexOS, i just needed to finish some small jobs, i should be ready in the new year. Nice jobs with FASMLIB.
Regards Dex.
Post 25 Dec 2006, 18:23
View user's profile Send private message Reply with quote
vid
Verbosity in development


Joined: 05 Sep 2003
Posts: 7105
Location: Slovakia
vid 26 Dec 2006, 00:29
thanks. be sure to let me know then.
Post 26 Dec 2006, 00:29
View user's profile Send private message Visit poster's website AIM Address MSN Messenger ICQ Number Reply with quote
AmbroXio



Joined: 09 Jan 2007
Posts: 13
Location: Guatemala
AmbroXio 12 Jan 2007, 05:17
Hi vid...

i'm interested ..... tell me more about it ..... please Wink ..... (i dont know how to say this in english) <-- a pesar de que aun no tengo un sistema operativo completo y funcional todavia... a decir verdad me falta bastante, pero igual, estoy interesado en esto de la FASMLIB ... un saludo ! .. -->
Post 12 Jan 2007, 05:17
View user's profile Send private message Visit poster's website MSN Messenger Reply with quote
vid
Verbosity in development


Joined: 05 Sep 2003
Posts: 7105
Location: Slovakia
vid 12 Jan 2007, 06:19
someone translate the rest for me please.

FASMLIB is library providing basic library functions: conversions, string library, formatting input and output, memory management.

what more you need to know?
Post 12 Jan 2007, 06:19
View user's profile Send private message Visit poster's website AIM Address MSN Messenger ICQ Number Reply with quote
Octavio



Joined: 21 Jun 2003
Posts: 366
Location: Spain
Octavio 12 Jan 2007, 10:58
AmbroXio wrote:
Hi vid...

i'm interested ..... tell me more about it ..... please Wink ..... (i dont know how to say this in english) <-- a pesar de que aun no tengo un sistema operativo completo y funcional todavia... a decir verdad me falta bastante, pero igual, estoy interesado en esto de la FASMLIB ... un saludo ! .. -->

translation:
I'm far from having a complete and functional OS but anyway i'm interested
in the FASMLIB project.

Vid ,did you try web translators?
i tested them with some russian pages but the translation is pretty bad.
Post 12 Jan 2007, 10:58
View user's profile Send private message Visit poster's website Reply with quote
vid
Verbosity in development


Joined: 05 Sep 2003
Posts: 7105
Location: Slovakia
vid 12 Jan 2007, 11:36
nope, didn't try any, because i don't know any. thanks anyway.
Post 12 Jan 2007, 11:36
View user's profile Send private message Visit poster's website AIM Address MSN Messenger ICQ Number Reply with quote
Raedwulf



Joined: 13 Jul 2005
Posts: 375
Location: United Kingdom
Raedwulf 12 Jan 2007, 12:10
Remy Vincent wrote:
May be next year I could be able to use your """FASMLIB Vx.y.z""" for an "My small Operating System"... Who knows!!


Slightly offtopic, - just thought about an acronym for "My small Operating System" as MYSOS.

Well at first, I laughed because 'sos' means sauce in Malay (Yes I learned it when I lived in Brunei - compulsory in school) so My Sauce Razz.
Then I thought about it in English, My, Save Our Souls!

All I can say, due to a lack of Malay-speaking folk (except I've seen one on the FASM forums - Malaysian) - the joke falls short Razz

I wish I had the time to implement an OS, only problem with writing your own OS, is that not many people will ever use it as it is not compatible with most Software, unless 'FASMOS' has the same goals as Reactos...

Cheers.

_________________
Raedwulf
Post 12 Jan 2007, 12:10
View user's profile Send private message MSN Messenger Reply with quote
vid
Verbosity in development


Joined: 05 Sep 2003
Posts: 7105
Location: Slovakia
vid 12 Jan 2007, 12:49
writing an OS definitively became an hobby now. Unless you spend many years, to write completely uninnovative OS conforming to those antique POSIX? standards. sad but true.
Post 12 Jan 2007, 12:49
View user's profile Send private message Visit poster's website AIM Address MSN Messenger ICQ Number Reply with quote
LocoDelAssembly
Your code has a bug


Joined: 06 May 2005
Posts: 4624
Location: Argentina
LocoDelAssembly 12 Jan 2007, 17:08
Quote:

nope, didn't try any, because i don't know any. thanks anyway.

http://www.google.com/language_tools?hl=en
Post 12 Jan 2007, 17:08
View user's profile Send private message Reply with quote
AmbroXio



Joined: 09 Jan 2007
Posts: 13
Location: Guatemala
AmbroXio 12 Jan 2007, 21:12
thanks for translation octavio !... BTW, i believe i've seen you at the hispabyte forum right ? .....

.... ok, vid, well, its definitively a hobby, since i'm no profesional at it (like a lot of people...)... but i really wanna get something useful.......... anyway, i guess, there should be some kind of list of the functions or procedures that are gonna be in this FASMLIB..... thats what i want to know... do you have this "list" allready ???.......


un saludo !!

(PD: jeje parece q no soy tan malo con el ingles Very Happy ... espero no haber dicho nada mal....)
Post 12 Jan 2007, 21:12
View user's profile Send private message Visit poster's website MSN Messenger Reply with quote
vid
Verbosity in development


Joined: 05 Sep 2003
Posts: 7105
Location: Slovakia
vid 12 Jan 2007, 21:54
ambroxio: i can write you list what i already have now. but some thing depend on your system supporting them. i will try to provide something. i attach listing of MASM prototypes, because they are only list i have with arguments listed

- system independent:
conversion, string library:
Code:
str_copy        PROTO dest:DWORD, destlen:DWORD, src:DWORD, srclen:DWORD
str_cat         PROTO dest:DWORD, destlen:DWORD, src:DWORD, srclen:DWORD
str_catchar     PROTO string:DWORD, buflen:DWORD, char:DWORD
str_ins         PROTO dest:DWORD, destlen:DWORD, src:DWORD, srclen:DWORD
str_inschar     PROTO dest:DWORD, destlen:DWORD, char:DWORD, pos:DWORD
str_sub         PROTO dest:DWORD, destlen:DWORD, src:DWORD, srclen:DWORD
str_lowcase     PROTO string:DWORD, buflen:DWORD
str_upcase      PROTO string:DWORD, buflen:DWORD
str_len         PROTO string:DWORD, buflen:DWORD
str_cmp         PROTO str1:DWORD, str1len:DWORD, str2:DWORD, str2len:DWORD
str_cmpi        PROTO str1:DWORD, str1len:DWORD, str2:DWORD, str2len:DWORD
str_pos         PROTO string:DWORD, buflen:DWORD, pattern:DWORD, patlen:DWORD
str_poschar     PROTO string:DWORD, buflen:DWORD, char:DWORD
conv_b2hex      PROTO dest:DWORD, destlen:DWORD, value:DWORD
conv_w2hex      PROTO dest:DWORD, destlen:DWORD, value:DWORD
conv_d2hex      PROTO dest:DWORD, destlen:DWORD, value:DWORD
conv_b2dec      PROTO dest:DWORD, destlen:DWORD, value:DWORD
conv_w2dec      PROTO dest:DWORD, destlen:DWORD, value:DWORD
conv_d2dec      PROTO dest:DWORD, destlen:DWORD, value:DWORD
conv_hex2b      PROTO string:DWORD, strlen:DWORD
conv_hex2w      PROTO string:DWORD, strlen:DWORD
conv_hex2d      PROTO string:DWORD, strlen:DWORD
conv_dec2b      PROTO string:DWORD, strlen:DWORD
conv_dec2w      PROTO string:DWORD, strlen:DWORD
conv_dec2d      PROTO string:DWORD, strlen:DWORD
extconv_b2hex   PROTO dest:DWORD, destlen:DWORD, value:DWORD, minlen:DWORD, len:DWORD
extconv_w2hex   PROTO dest:DWORD, destlen:DWORD, value:DWORD, minlen:DWORD, len:DWORD
extconv_d2hex   PROTO dest:DWORD, destlen:DWORD, value:DWORD, minlen:DWORD, len:DWORD
extconv_b2dec   PROTO dest:DWORD, destlen:DWORD, value:DWORD, minlen:DWORD, len:DWORD
extconv_w2dec   PROTO dest:DWORD, destlen:DWORD, value:DWORD, minlen:DWORD, len:DWORD
extconv_d2dec   PROTO dest:DWORD, destlen:DWORD, value:DWORD, minlen:DWORD, len:DWORD
extconv_hex2b   PROTO string:DWORD, strlen:DWORD, len:DWORD
extconv_hex2w   PROTO string:DWORD, strlen:DWORD, len:DWORD
extconv_hex2d   PROTO string:DWORD, strlen:DWORD, len:DWORD
extconv_dec2b   PROTO string:DWORD, strlen:DWORD, len:DWORD
extconv_dec2w   PROTO string:DWORD, strlen:DWORD, len:DWORD
extconv_dec2d   PROTO string:DWORD, strlen:DWORD, len:DWORD    


- if system has console I/O
formatted console I/O
Code:
text_write              PROTO stream:DWORD, string:DWORD
text_write_str          PROTO stream:DWORD, string:DWORD, buflen:DWORD
text_write_b2hex        PROTO stream:DWORD, value:DWORD
text_write_w2hex        PROTO stream:DWORD, value:DWORD
text_write_d2hex        PROTO stream:DWORD, value:DWORD
text_write_b2dec        PROTO stream:DWORD, value:DWORD
text_write_w2dec        PROTO stream:DWORD, value:DWORD
text_write_d2dec        PROTO stream:DWORD, value:DWORD
text_read_char          PROTO stream:DWORD
text_read_chars         PROTO stream:DWORD, buffer:DWORD, buflen:DWORD, charlist:DWORD
text_read_until         PROTO stream:DWORD, buffer:DWORD, buflen:DWORD, charlist:DWORD
text_read_line          PROTO stream:DWORD, buffer:DWORD, buflen:DWORD
text_read_hex2b         PROTO stream:DWORD
text_read_hex2w         PROTO stream:DWORD
text_read_hex2d         PROTO stream:DWORD
text_read_dec2b         PROTO stream:DWORD
text_read_dec2w         PROTO stream:DWORD
text_read_dec2d         PROTO stream:DWORD
text_fetch              PROTO stream:DWORD, string:DWORD
text_fetch_str          PROTO stream:DWORD, string:DWORD, buflen:DWORD
text_fetch_char         PROTO stream:DWORD, char:DWORD
text_skip_chars         PROTO stream:DWORD, charlist:DWORD
text_skip_until         PROTO stream:DWORD, charlist:DWORD
text_skip_hex           PROTO stream:DWORD
text_skip_dec           PROTO stream:DWORD
text_extwrite_b2hex     PROTO stream:DWORD, value:DWORD, minlen:DWORD
text_extwrite_w2hex     PROTO stream:DWORD, value:DWORD, minlen:DWORD
text_extwrite_d2hex     PROTO stream:DWORD, value:DWORD, minlen:DWORD
text_extwrite_b2dec     PROTO stream:DWORD, value:DWORD, minlen:DWORD
text_extwrite_w2dec     PROTO stream:DWORD, value:DWORD, minlen:DWORD
text_extwrite_d2dec     PROTO stream:DWORD, value:DWORD, minlen:DWORD
text_extread_chars      PROTO stream:DWORD, buffer:DWORD, buflen:DWORD, charlist:DWORD, maxlen:DWORD, len:DWORD
text_extread_until      PROTO stream:DWORD, buffer:DWORD, buflen:DWORD, charlist:DWORD, maxlen:DWORD, len:DWORD
text_extread_line       PROTO stream:DWORD, buffer:DWORD, buflen:DWORD, maxlen:DWORD, len:DWORD
text_extread_hex2b      PROTO stream:DWORD, maxlen:DWORD, len:DWORD, skipbl:DWORD
text_extread_hex2w      PROTO stream:DWORD, maxlen:DWORD, len:DWORD, skipbl:DWORD
text_extread_hex2d      PROTO stream:DWORD, maxlen:DWORD, len:DWORD, skipbl:DWORD
text_extread_dec2b      PROTO stream:DWORD, maxlen:DWORD, len:DWORD, skipbl:DWORD
text_extread_dec2w      PROTO stream:DWORD, maxlen:DWORD, len:DWORD, skipbl:DWORD
text_extread_dec2d      PROTO stream:DWORD, maxlen:DWORD, len:DWORD, skipbl:DWORD
text_extskip_chars      PROTO stream:DWORD, charlist:DWORD, maxlen:DWORD
text_extskip_until      PROTO stream:DWORD, charlist:DWORD, maxlen:DWORD
text_extskip_hex        PROTO stream:DWORD, maxlen:DWORD
text_extskip_dec        PROTO stream:DWORD, maxlen:DWORD    


- if OS provides file I/O
file I/O wrappers:
Code:
file_open       PROTO name_:DWORD, mode:DWORD
file_create     PROTO name_:DWORD, mode:DWORD
file_seek       PROTO handle:DWORD, dist:DWORD, mode:DWORD
file_read       PROTO handle:DWORD, buffer:DWORD, count:DWORD
file_write      PROTO handle:DWORD, buffer:DWORD, count:DWORD
file_close      PROTO handle:DWORD    
(more planned in future)

plus all "text_" functions listed in console I/O work for text files too. these functions also can be used to write/read text in memory.

- if OS provides heap memory allocation
FASMLIB has wrapper for it. own heap manager is planned soon
Post 12 Jan 2007, 21:54
View user's profile Send private message Visit poster's website AIM Address MSN Messenger ICQ Number Reply with quote
AmbroXio



Joined: 09 Jan 2007
Posts: 13
Location: Guatemala
AmbroXio 12 Jan 2007, 22:26
ok...... looks great.................... i didnt understand this:

- if OS provides heap memory allocation
FASMLIB has wrapper for it. own heap manager is planned soon




what is that heap thing ???, and what is a wrapper ??.... sorry about my ignorance (and about my bad english in any case...)........
Post 12 Jan 2007, 22:26
View user's profile Send private message Visit poster's website MSN Messenger Reply with quote
tantrikwizard



Joined: 13 Dec 2006
Posts: 142
tantrikwizard 12 Jan 2007, 23:59
AmbroXio wrote:
what is that heap thing ???


A heap is a chunk of memory allocate per process. When a process wants to allocate memory it normally does so out of it's own dedicated heap instead of from global memory. Normally the OS creates a 'heap' of memory that the process uses, sometimes the process allocates its own heap.
AmbroXio wrote:
and what is a wrapper ??

A wrapper is normally a standard interface to non-standard implementations. In this case two or more wrappers are created, one for each operating system to 'wrap' the operating system specific details or a single wrapper is built that has all the different OS specific implementations accounted for. Wrappers make writing cross platform code easier. Instead of writing seperate code for each OS, one can code to a wrapper then the wrapper has OS specific implementations.
Post 12 Jan 2007, 23:59
View user's profile Send private message Visit poster's website Yahoo Messenger MSN Messenger Reply with quote
AmbroXio



Joined: 09 Jan 2007
Posts: 13
Location: Guatemala
AmbroXio 13 Jan 2007, 04:18
oooohh i see..... thanks fot the info tantrikwizard !
Post 13 Jan 2007, 04:18
View user's profile Send private message Visit poster's website MSN Messenger Reply with quote
vid
Verbosity in development


Joined: 05 Sep 2003
Posts: 7105
Location: Slovakia
vid 13 Jan 2007, 10:11
in case of FASMLIB, this "wrapper" puts system services of different OSes under common interface. Naturally, system service to open file under win32 has diferent interface than such system service under linux. FASMLIBs "wraps" them, and provides them to FASMLIB caller under same interface on both operating systems
Post 13 Jan 2007, 10:11
View user's profile Send private message Visit poster's website AIM Address MSN Messenger ICQ Number Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  


< 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-2025, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.