Message board for the users of flat assembler.
> OS Construction > FASM Challenge - For all users
Goto page Previous 1, 2, 3, 4, 5, 6 ... 13, 14, 15 Next
edfed 26 Jan 2008, 21:22
but as it's a lcd screen, i have screen expansion enabled, and it's not beautyfull.
what does it mean? in the text function/ ... ; input ; es:esi points to asciiz string to write. ... mov al,[esi] ...
does that it mean es is the default segment for [esi] indexing?
somebody has got a simple pm exeption handler? like:
... call pmint ... include 'pmint.inc'
|26 Jan 2008, 21:22||
dosin 27 Jan 2008, 00:02
I think things are getting off subject..
somebody has got a simple pm exeption handler?
To use the the print_vesa_string_small function:
mov esi,Msg ; Point to the string call print_vesa_string_small ; Call the print small fonts function Msg: db 13,13," Vesa demo, for the cool FBrowser project. ",13 db " Press anykey to exit to Dos or to reboot. ",0
mov [vesa_fontsmall_x],20 ;x coords mov [vesa_fontsmall_y],10 ;y coords mov eax,0x00FF0000 ;color mov esi,msg call print_vesa_string_small
Also has anyone decided on which part they want to program?
and again are we targeting specific.. devices.. or ?
Last edited by dosin on 27 Jan 2008, 00:09; edited 1 time in total
|27 Jan 2008, 00:02||
edfed 27 Jan 2008, 00:09
int handler to make a global debugging
if a package don't work, it's good to know why.
you code what you want
for exemple, i try to code the vesa 1024 support, with my 8*5 font and some boxes, like windows or buttons.
the question was about es:esi
if es:esi point to string, why we read the string via esi alone?
|27 Jan 2008, 00:09||
Dex4u 27 Jan 2008, 00:13
First thanks for your inputs. Now to the ?, no the "es:esi points to asciiz string to write" is a left other from a differant demo, this should be (and will be changed to) ds:esi.
Also note that the pmode descriptors are not 0 based, other than 8h (linear_sel).
This mean real and pmode addressing are the same.
As for vesa res, the reason i went for 800*600 is that it is the commnest mode available.
Anyone who wants to go to 1024*768, only need to change the mode in two place in the code, here in the vesa.inc
mov ax,4f01h ; Get Vesa Mode information.mov di,Mode_Info ; This is the address of how info block.mov cx,0x4115 ; <***Change this to 0x4118 for 1024*768***and cx,0xfffint 10h
And here in the RealModeReturn.inc
sti ; re-enable interruptsmov ax,4f02h ; set vesa screen modemov bx,0x4115 ; <***Change this to 0x4118 for 1024*768***int 10hcli ; Disable interrupts,
Then re-assemble it and replace the one on the disk. and you will have that mode if your card supports it.
I have code all function to be full scalable so you can change res and it will scale fine.
So if you want that res and your card supports it, its easy got.
Here is some doc
As for tcp/ip stack, i already have one thats fully OS independent other than ethernet card drivers and IRQ .
As for card drivers
I have a rtl8139 and already written a driver, people can code for there driver and add them to the project, but we can also port the rtl8029 ( as its a NE2000 clone ).
And i will also port all the menuet card drivers too.
I will keep you posted.
|27 Jan 2008, 00:13||
dosin 27 Jan 2008, 00:19
I could add an idt for it... I will post the code later tonight!
Dex moves fast..lol
Thanks, for the links!
|27 Jan 2008, 00:19||
Dex4u 27 Jan 2008, 00:34
Thanks dosin, but i have already added IDT (out in the next release), but you can still add it and then we can conpare the two .
As we get to each stage, i will try and point you to good doc's, that helped me.
|27 Jan 2008, 00:34||
dosin 27 Jan 2008, 10:25
I added an idt - if an error happons it fills the screen black with red text error msg..
I added the keyboard,timer,etc..
they just need coded!
sorry, no reg dump in this version..
also it just hlts the system when an error happens and displays the error!
to test you can either do a divide by zero etc.. or use int 0x00 - 0x11
also: Timer = int 0x20 | Keyboard = int 0x21 and so on..
also if your looking for the lidt - its is in the RealModeReturn.inc file
Just kept things simple!
;removed code until next version!
Just did it for fun..
Last edited by dosin on 27 Jan 2008, 20:55; edited 3 times in total
|27 Jan 2008, 10:25||
edfed 27 Jan 2008, 13:53
there is no keyboard...
fasm browser demo
press any key...
but it's better than my version, don't work at all...
thanks for idt!
|27 Jan 2008, 13:53||
dosin 27 Jan 2008, 17:33
I did not test the keyboard for reboot.. Sorry..
I will look into it .. I think it goes back to real mode and uses a real mode int..
Though if you try to program the keyboard-irq1/timer etc.. you need to unmask the pic after the remap_pic function..
I left that out in this version..
mov al,0 ; unmask irq's
I have to run - but later on I should have it fixed or modified for the exit to dos and reboot...I will remove old version and post new one!
Last edited by dosin on 27 Jan 2008, 19:08; edited 1 time in total
|27 Jan 2008, 17:33||
edfed 27 Jan 2008, 17:45
about kbint, i now , irq1 mask shall be clear.
but, now, my big problem is that my fully bootable version of the fbrowser don't work at all, i'm sure i'm missing some addressing trick.. but where?
my version is fully modular, will support all the work i still made on 320*200, but i have an error, vesa mode is not set. or pm is not switched, i don't know exactlly where is the problem, to solve the novesa message, replace jmp error by jb error, in test.inc file.
this error don't occur with your version and dex4u one...
but it can be easier to share, i'm still trying to debugg it... i'll post it when it's ok, with your isr handler, and the fedit editor, a sort of forum emulation...
i post the source, if you want to try to debug it.
|27 Jan 2008, 17:45||
Dex4u 27 Jan 2008, 20:18
Thanks dosin for the code i will take a look, as for debugging i in all my year's of OS Dev have only used this for debugging:
mov byte [fs:0xB809E], "1" ;fs = linear descriptor;Some code mov byte [fs:0xB809E], "2" ;fs = linear descriptor;Some code mov byte [fs:0xB809E], "3" ;fs = linear descriptor;Some code
Plus a function to dump regs, if needed.
The whole point of this project is to keep it simple, boot a web brower that can access the fasm forum.
It should have no options, other than what you can change by re-assembling it.
When you make a module OS, the first thing to do is only change one thing at a time, and if it does not work, you can easy trace the fault, also keep the module self contained as possable.
|27 Jan 2008, 20:18||
dosin 27 Jan 2008, 20:33
no reg dump
keeping it simple.. not a prob..
I was not going to add a reg dump.. just saying its not in there.. maybe I worded it weird.. just a basic idt..
Once I get the exit to dos/reboot working.. I was going to start coding for the project!
Thanks for the input!
|27 Jan 2008, 20:33||
edfed 28 Jan 2008, 02:07
it still not work...
vesa is boring, and in a previous post:
i am in the wrong, from start to end, i cannot use code from other (too hard to code in a different style) and i cannot make this f**** vesa mode control... i'm dumb, very very idiot. grrrr...
please, help, it's a honour question now.
|28 Jan 2008, 02:07||
sinsi 28 Jan 2008, 03:59
One problem could be trying to read 127 sectors in the boot sector code - try reading 16 and it works OK (well, I get red blobby things on the screen).
|28 Jan 2008, 03:59||
edfed 28 Jan 2008, 08:57
no, this is ok.
but after, it shall be the real vesa code, and don't works. thanks for feedback.
|28 Jan 2008, 08:57||
dosin 28 Jan 2008, 09:48
Working version with idt..
Just scrap the last version that was by me!
I guess I am going to wait for dex.. I have just started working on a device driver for it..
|28 Jan 2008, 09:48||
edfed 28 Jan 2008, 15:42
what's this delirium?
added an irq1 support, reply with coprocessor error.
finally, i'll code with the common code. the try to make my own will be for my own os.
1024*768 is ok, exeption handler is ok
added a label:
and for each references to vesamode:
will simplify the resolution testings...
|28 Jan 2008, 15:42||
dosin 28 Jan 2008, 20:47
But as of right now- I am thinking we dont need it (keyboard support at first).. A parser is needed for the html page.. just display page and exit... Basic text no tables,pics,etc.. Just create a simple html page for right now...Hello Fasm type. But I will look over and see if I can fix.. for keyboard support.. with no errors!
be able to read tags for the background color/ text color...
Once we can view the page in the file.. post it on the net and try and get things working to read it!
and add from there..
If I have time I will start on a parser tonight..
just a basic one at first!
again this is for fun to see what I come up with..
|28 Jan 2008, 20:47||
edfed 29 Jan 2008, 02:17
i'm impatient to see the first preview of your parser...
i updated the package, one more font.
easier to use in my opinion.
... try it, you'll see the capabilities of this font, the same as my dear old mode 13h one. with smooth effect.
mov [txt.x],10 mov [txt.y],12 mov [txt.c1],0x0000ffff mov [txt.c0],0x00ff0000 mov [txt.smooth],0x00040404 mov esi,texttoprint call txt
i'll try to add some font size options, like scale * 2, *3, *4, etc...
|29 Jan 2008, 02:17||
edfed 29 Jan 2008, 16:16
update, added box function, to draw rectangles.
if it's name is box, it's only because it's only 3 letters, and evocator.
works as txt one. with special parameters.
no stack param passing, it's not compatible with the OO programming style.
about OO implementation, not now. later, before, make more graphics and system functions.
;draw a 150*100 rectangle at 15,10. ... mov [box.x],15 mov [box.y],10 mov [box.xl],150 mov [box.yl],100 mov [box.c],0x00554433 call box ...
fs is used as the frame buffer, fs = frame segment. cannot be simpler!
|29 Jan 2008, 16:16||
|Goto page Previous 1, 2, 3, 4, 5, 6 ... 13, 14, 15 Next
< Last Thread | Next Thread >
Copyright © 1999-2023, Tomasz Grysztar. Also on GitHub, YouTube, Twitter.
Website powered by rwasa.