flat assembler
Message board for the users of flat assembler.

Index > OS Construction > FASM Challenge - For all users

Goto page Previous  1, 2, 3 ... 11, 12, 13, 14, 15  Next
Author
Thread Post new topic Reply to topic
edfed



Joined: 20 Feb 2006
Posts: 4242
Location: 2018
edfed
the html and the IEEE 802.3 spec have the same structures.

tags in html are headers in IEEE, then, the code for both will be very similar.

we can inspirate from FASM parser, in the macro builder part. as it is the same principle, { to open, } to close.

this is the 320*200 real mode version, for dos testings. can boot and need some little changes for PM and vesa.
see what can do the gui.
Image


Last edited by edfed on 01 Apr 2008, 22:32; edited 10 times in total
Post 10 Mar 2008, 14:07
View user's profile Send private message Visit poster's website Reply with quote
dosin



Joined: 24 Aug 2007
Posts: 337
dosin
Quote:
but it does nothing


True, it just goes throught the tags if finds a match.. skips it and and then continues... In order for it to do the proper graphics.. functions for the graphics would need to be finished... The prob is html is built of an existing gui... If this was the case it would be more complete..

The focus here is lost.... It would take months.. or longer to build all that is needed for the gui.. and as of now we can't connect or load anything..

I think we need to focus on the connect to the net - get page and diplay it.. in text format and after serveral drivers are made for different cards.. then focus on the graphics...

This one I uploaded is for adding too... for example find the <b> function .. set font to bold..


Code:
bold:           ;<-set bold font..
                               
 mov txt.bold,1 ;sets font bold
         pbold:                                              
            mov  eax,dword[esi + edx]    
                       inc edx
             cmp al,'<'                                        ;this is here because we dont want to print the '<' to screen
           je nxt
              call    put_char
            nxt:
            cmp eax,'</b>'
              jne pbold
           add edx,3
           ;<-reset text to prev...or default 
                                
mov txt.bold,0 ;turn bold off
         ret
    


txt.bold would be added to the txt. function.. I did this and it worked..
but removed for now until all tags and conditions were completed...

When work slows down I will rewrite.. to simplify it more... and finish it...


It works.. but all gui fuctions are not added /tags.. it will just narrow down to plain text... there is a complete list of tags in the html.inc..
This is the one that will be used in my next version..

but all its going to do is remove the tags and print plain text..
the gui will need to be added...
Post 10 Mar 2008, 19:55
View user's profile Send private message Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4242
Location: 2018
edfed
Now, let speak about the gui. i'm sure we can code a gui with a html file, then, no need of any other lib than the html one.

But before, we need to have html parsing complete and networking (remember the goal of this project)...

Interpret html in my opinion is not really hard, but before, we would have an other coding style, oriented not open/end but open/close.

For exemple, <html> when crossed, the parser will seek the </html> tag, and then, virtual limit the file to what is between the two tags, and call the tag module.

The main called function is the char read and interpret, the secondary functions are all that set some parameters or flags into the html engine.
These flags wil be virtual. not in memory, just in mind. the f.asm object will reset some parameters in order to make the initialisation of the environment.
In this way, <title> will clear the "TITLE" destination avoiding the redifinition of new titles.

For example, table, it will set the table flag, that is tested at main level, and will execute a specific table algorythm, with the main one who read and parse. i feel i'll soon find the way to do that. possibly i'll have some working parsing tonight.

I've made a basic vector font, then, we can set the style easy. like bold is just a larger font lines, and italic is an oblic line. then, no need of bold or italic flags, just two parameters: angle and stretch.
color, stretch, angle and dressing if we want to add drawings or effects to the font.


Last edited by edfed on 10 Apr 2008, 01:05; edited 1 time in total
Post 10 Mar 2008, 20:06
View user's profile Send private message Visit poster's website Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4242
Location: 2018
edfed
the main component is ok, ready for tests and expansion.
Image
this is the current achievement on parser.
a gui is ready for easy tests.
for the moment, the parser only output to a unique string.
will write to multiple strings, to create text zones.
Code:

set end and start of the INPUT and OUTPUT

PARSE:

INPUT from the html file.
    if the char is '<', tezt if it is a tag.
          if the tag is valid, then, call tag function
                 if tag function is ok, goto INPUT
            
is it a special char?
    convert it to OUTPUT.
   multiple spaces, tabs, CR are concsidered as one unique space

OUTPUT char

ret
    


the parser, XHTML.inc, is a function to convert a XHTML file to a string.
there is no item building for the moment.

the idea is to assign for each tag a function.
the function will have many parameters, named attributes.
seek the attributes, set them, and create an item if needed.


for example, the <br> tag, it will execute this:
Code:
.br:
@@:
        call seek.openend
        jnc @f
        mov word[edi],0a0dh
        add edi,2
        stc
@@:
        ret
    


in the future, the function will be layered, then, they will play with a variable size inputs and outputs. fixing the end of input or output buffer for tag execution.

edit: hey, if it don't interrest anybody, it will die... ! Crying or Very sad


Last edited by edfed on 01 Apr 2008, 03:08; edited 4 times in total
Post 20 Mar 2008, 03:46
View user's profile Send private message Visit poster's website Reply with quote
Dex4u



Joined: 08 Feb 2005
Posts: 1601
Location: web
Dex4u
Nice work edfed, i am still very interested, but as i posted just got to get the latest DexOS ver released first, then i will add the browser to DexOS (much simpler for testing and using DexOS tcp/ip stack functions), once it working right i will add it to the FAB.
Post 20 Mar 2008, 21:12
View user's profile Send private message Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4242
Location: 2018
edfed
i saw, you are working on dex os.
if you want, u can add this (xhtml.zip) to dexos. it will work! it is for real mode 320*200.it don't know dos interrupts.


Code:
to make:
--- title don't work 
--- p simulate paragraph by CR
--- br don't depend on colse tag
--- table, td, and a simulate their zones with a CR
--- all the other tags are empty.
    

how to code a tag interpret function?
Code:
create it's name and funtion pointer at:
t:  
...
.tag%  
dd  f€uro.tag%  ; function pointer
dd  t€uro.tag%  ; tag name pointer
...
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
f€uro:
...
.tag% db 'tag%',0
...
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
t€uro:
...
.tag%:
; esi point to current char in input file
; edx point just before the tag
; edi point to output buffer
; play with eax, ebx ecx edx esi edi and ebp to obtain the desired effect.
      call seek.openend  ; to find the end of open tag
      jnc @f     ; if carry not set, then, it wasn't a good tag 
      stc  ; set the carry flag to say it was a good tag, and all goes well
      ret  ; as result, the tag will disapear of the output
@@:      
      ctc  ; clear carry to say it wasn't a valid tag
      ret  ; as result, the tag will be in the output
    


need to add a lot of things :warmteapot-head: Laughing


Last edited by edfed on 09 Apr 2008, 01:47; edited 1 time in total
Post 20 Mar 2008, 21:41
View user's profile Send private message Visit poster's website Reply with quote
Dex4u



Joined: 08 Feb 2005
Posts: 1601
Location: web
Dex4u
edfed wrote:
need to add a lot of things :warmteapot-head: Laughing

Laughing you can not beat a nice cup of tea Smile and thanks i will use it in DexOS.
Post 21 Mar 2008, 12:23
View user's profile Send private message Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4242
Location: 2018
edfed
He he, it start to be interresting.

The only things to do now, are the network driver and the tag modules.

Each tags have it's own module for executing, like if it was commands. And the mechanism can be used as a command line interpreter. All depend on the modules.

For the moment, it's a pure dumb xml parser because it take care of < >. But by replacing it by [](/b] it can become a BBcode interpret. with[b] / or \ it can be a file system interpret. etc...

A list of OK tags ( a list of non ok tags wil be too long):

<title>; creates the title without any problem </title>
<br> will make a CR. need to be xhtml now, like this: <br/>
<pre> will output the file as it is , no intra tags for the moment </pre>
<!-- comments are ignored, the comment routine jump over the comments -->
Special ASCII chars OK, &abc; &# 123; &#xA0;

Many other tags use the <br> function, to simulate the sections, like <table>, <option>, <p> etc.

note: if we make a good browser for 320*200, with a sweet and optimal presentation, just imagine what can be the result in high resolutions...

advantage of 320*200 .COM executables are various: ease of programming, boot compatibiliity, simple to understand, fast...

inconvenients are only two: palette limitation and low resolution.

added a strange page: gerror.html , if somebody can explain why i had this one?


Last edited by edfed on 10 Apr 2008, 00:54; edited 3 times in total
Post 29 Mar 2008, 17:13
View user's profile Send private message Visit poster's website Reply with quote
System86



Joined: 15 Aug 2007
Posts: 77
System86
For palette limitation in mode 13h, you can reprogram the palette using ports 3C8h/3C9h. Of course you can only display 256 colors at a time, but this is the best standard VGA can do. If you want more colors you need to use VESA.
Post 07 Apr 2008, 22:56
View user's profile Send private message Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4242
Location: 2018
edfed
thanks System86 for the suggestion, but i still know that.

now, lets go for the network layers.
Shocked ho my god, how it is hard! Crying or Very sad

if anybody have a link to the accton EN2242 specs and a very good tutorial about network layers, thanks. Sad

the bootloader (comload.asm) will be a separate file.
the .com executable will be loaded "as is" from the second sector.

each packages have one different version of the BW05.com utility.

comload will be put on the 1st sector
.com binary will be writen from 2nd sector.


Description: here will be the update of my advancements. always in my last post.
Download
Filename: XHTML.zip
Filesize: 73.63 KB
Downloaded: 99 Time(s)

Post 08 Apr 2008, 14:27
View user's profile Send private message Visit poster's website Reply with quote
craciun



Joined: 11 Apr 2006
Posts: 7
craciun
hi, i'm writing an educational operating system at the moment, it is in 2nd stage boot loader and will advance shortly, i expect it to be compatibile with real-mode, protected-mode and long-mode, user-switchable and also multitasking with a different concept than windows and linux use for displayng the so called windows. it will use two GUI 2d and 3d, and i need some help here. i've been looking for a server to make a homepage but didn't found yet.
Post 07 Jul 2008, 14:13
View user's profile Send private message Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4242
Location: 2018
edfed
there is no network layer for the moment.

i don't know how to code it now, but i found some cards to try.

Ethernet cards:
Realtek RTL8019A, with BNC and RJ45 connectors.
D-Link FDE-530TX with RJ45 connector.

Modem card:
Conexant RS56-PCI R6793-12

i hope to find some code in ASM to control them,n and then, access the network.

it is the condition to obtain a strong network layer, i think...

and maybe one day, we'll have something bootable, able to navigate on the web, make a server, a client, and build local networks.

but for the moment, it is in standby, need some boost and time.
[cracium]have you posted a little demo of your os?
Post 07 Jul 2008, 20:58
View user's profile Send private message Visit poster's website Reply with quote
Dex4u



Joined: 08 Feb 2005
Posts: 1601
Location: web
Dex4u
I am still working on this project, but i am deving it in side DexOS, to run as a user program, i can boot and auto load the program in two seconds.
So it still for fills the rules of the Challenge.
First thing we need to do is boot and load a "hello world!" htm page from the internet.
Then we move on.
Post 08 Jul 2008, 16:16
View user's profile Send private message Reply with quote
tom tobias



Joined: 09 Sep 2003
Posts: 1320
Location: usa
tom tobias
Dex4u wrote:
I am still working on this project...
Hurrah! Very Happy Very Happy Very Happy
edfed wrote:

there is no network layer for the moment... ... (we need) a very good tutorial about network layers...

Sad Sad Sad
Different people mean different things when discussing network protocols. For example, in universities, the 7 layer OSI model is followed, however, in commerce, it is my understanding, that the older 4 layer model is employed. The "Network" layer, found in both models, is somewhat different, i.e. they are not precisely synonymous, although the same word, "network" is applied to a particular layer in both models.
Sad Sad Sad
Further, some people write "network", and perhaps do not fully realize that this word refers to ONE layer of the several layers of protocol, or alternatively, when writing "network", some people intend to describe ALL the layers, not just the "network" layer of either the 4 layer model, or the 7 layer model.
Here are some references. I assume, perhaps incorrectly,
Confused Confused Confused
that it is desirable to access a tutorial explaining the different bit fields of THE NETWORK layer of the 4 layer model. But, as not too infrequently, I may be completely wrong, if so, my sincere apologies.
Sad Sad

4 layer internet model, compared with 7 layer OSI model (only definitions,...)
40 pdf files free download, OSI based.
explanation of X.25 (of OSI NETWORK layer) i.e. NOT the same as Network layer of 4 layer internet model...
C program for Internet Network protocol layer, with code
tiny fragment of a book please advise if this book seems useful--I will procure it, if so.
another tutorial with definitions
http://www.softpanorama.org/Net/Articles/osi_protocol_layers_tutorial.shtml
http://www.pcsupportadvisor.com/TCP_IP_tutorial_page2.htm
ISO/IEC TR 9577
address resolution, very high level and probably not too helpful
Post 09 Jul 2008, 09:33
View user's profile Send private message Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4242
Location: 2018
edfed
too difficult.
Sad
Post 27 Aug 2008, 19:13
View user's profile Send private message Visit poster's website Reply with quote
Dex4u



Joined: 08 Feb 2005
Posts: 1601
Location: web
Dex4u
Try this ServerImage.zip from my web site http://dex4u.com/download.htm
You will need a rtl8139 and a DHCP server on the network or you can set it up manual.
If that works then you have a stack.
See the ReadMe file for setting up info.
Post 27 Aug 2008, 20:43
View user's profile Send private message Reply with quote
dosin



Joined: 24 Aug 2007
Posts: 337
dosin
Good to see this project is still alive... Very Happy

I needed a brake from it for a while for a new/fresh look at things...
I am starting back up with the parser...

It gets frustrating with all thats left to right .. more or less overwelming...
I am taking it step by step until the parser is done!!!

any sugestions are welcome! Very Happy
Post 10 Sep 2008, 02:12
View user's profile Send private message Reply with quote
Dex4u



Joined: 08 Feb 2005
Posts: 1601
Location: web
Dex4u
Hi dosin, nice to hear your back, maybe you could take a look at the source of fasm.
Post 10 Sep 2008, 13:21
View user's profile Send private message Reply with quote
dosin



Joined: 24 Aug 2007
Posts: 337
dosin
Small shot of the FBrowser Project New Desktop:
Image
Post 11 Sep 2008, 03:51
View user's profile Send private message Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4242
Location: 2018
edfed
fine, very beautyfull background.

maybe used as a little artistic feature.
if no site or file available, then, it will display it in background and a little scrolling message in the sky to say there is nothing to view.

or at the startup, a sort of fall on the sea from the sky, very fast ( monitor of startup) diving into the water, and when it's ok, it shows this picture, and fade to gray. items appears, and that's all.

do this animation while system loads, in 3 seconds. Smile
Post 11 Sep 2008, 20:49
View user's profile Send private message Visit poster's website Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page Previous  1, 2, 3 ... 11, 12, 13, 14, 15  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-2020, Tomasz Grysztar. Also on GitHub, YouTube, Twitter.

Website powered by rwasa.