flat assembler
Message board for the users of flat assembler.
Index
> OS Construction > FASM Challenge - For all users Goto page Previous 1, 2, 3, ... 13, 14, 15 Next |
Author |
|
edfed 21 Jan 2008, 14:02
minimal requirement need to be the same as fasm
386 and for memory, i think the minimum is 16 M drive requirement: support of chs, lba and sata the browser itself must be started one second after bootstrap. for the rest, it take the time it need to take, we cannot act on network speed, but on machine speed. for network capabilities, dsl, cble modem, and perhaps serial modem.. for graphics, the maximal is resolution of lcd screen or 1024*768 it shall test for available modes and switch to the bigger resolution within the limit of 1024*768 or current lcd screen (to avoid screen expansion). this is a contest because it will force us to work togheter, are we able to do that? |
|||
21 Jan 2008, 14:02 |
|
Dex4u 21 Jan 2008, 20:00
DexOS can do 95% of the challenge (as it has a full tcp/ip stack), but unless you fake it, you can not do it in the time.
Example i can boot to the CLI in DexOS in less than a second, but if i enable mouse support, it will add another 2 seconds. So tom tobias time is more realistic. But it is a very good challenge. |
|||
21 Jan 2008, 20:00 |
|
vid 21 Jan 2008, 20:18
Quote: but if i enable mouse support, it will add another 2 seconds. why? |
|||
21 Jan 2008, 20:18 |
|
bitRAKE 21 Jan 2008, 20:57
tom tobias wrote: the real problem then, is to translate an algorithm into READABLE code, so that several folks working on the same project need not spend more time trying to understand The other approach would be to trust sections of code to a group of individuals and treat it like a blackbox - makes debugging and changes less friendly - imho, anyone should be able to provide suggestions or make bug fixes. Anyhow, the documentation for the interface should be a prerequisite for the code. I'm okay reading code that looks like a disassembly listing, but if it's dense I like to add hints every half page or so. My memory ain't what it used to be, or maybe my attention is just more divided. |
|||
21 Jan 2008, 20:57 |
|
Dex4u 21 Jan 2008, 20:58
I would say its because of the wait loops and delay loops etc.
example (call in realmode on booting) Code: ;====================================================;; keyboardRead. ;;====================================================;keyboard_read: push ecx push edx mov ecx,0xffffkey_read_loop: in al,0x64 test al,1 jnz key_read_ready loop key_read_loop mov ah,1 jmp key_read_exitkey_read_ready: push ecx mov ecx,32key_read_delay: loop key_read_delay pop ecx in al,0x60 xor ah,ahkey_read_exit: pop edx pop ecx ret Now you also have "keyboard_write" and "keyboard_cmd" with simular loops as above, together these functions are called 20 times in the setup code. It soon builds up |
|||
21 Jan 2008, 20:58 |
|
bitRAKE 21 Jan 2008, 21:32
Code: keyboard_read: push ecx mov ecx,0xffff mov ah,1 key_read_loop: in al,0x64 test al,ah loope key_read_loop je key_read_exit mov ecx,32 xor ah,ah key_read_delay: loop key_read_delay in al,0x60 key_read_exit: pop ecx ret |
|||
21 Jan 2008, 21:32 |
|
edfed 21 Jan 2008, 23:40
hem, about keyboard, i don't see any reason to have some delays into.
my int9 handler is fast, very fast. and don't need to be called 20 times in setup because it provide a full keyboard map in memory that can be read from anywhere. only two bugs are persistant: pause key that is not existing. flip flop keys (scroll lock, num lock, insert and majlock) that blink in boot mode, but are ok in dos mode. strange... and a lack of bios functions. but it can be used as a keyboard handler in PM as in RM, and the fact it don't need to be called is good for speed. what about the mouse support and the PHP support? + html and http? i think that if we all participate to this project, we need to make separate .inc files as a librairy, and then finally make the meta "main.asm" file in less than 200 lines. if all is cutted into elemental blocks instead of a big asm file, it can be easier to fix errors and bugs, and easier to learn the global structure and the basic features of all functions... Code: includes.inc: ... include 'int9.inc' include 'mouse.inc' include 'php.inc' include 'graphlib.inc' include 'syslib.inc' include 'disk.inc' include 'network.inc' include 'vesa.inc' include 'audio.inc' ... Code: graphlib.inc ... include 'line.inc' include 'box.inc' include 'fnt.inc' include 'text.inc' include 'paint.inc' include 'gif.inc' include 'jpg.inc' include 'bmp.inc' include 'png.inc' ... Code: syslib.inc: ... include 'emm.inc' include 'fs.inc' include 'page.inc' include 'file.inc' include 'request.inc' include 'syscall.inc' include 'exitor.inc' ;like terminator include 'enteror.inc' ;or predator include 'reboot.inc' ... i don't have any idea about what is needed in system include... etc etc... Code: main.asm: ... include 'includes.inc' ... syscall reboot here the difuculty is to find what to write at ... locations. Last edited by edfed on 22 Jan 2008, 08:12; edited 1 time in total |
|||
21 Jan 2008, 23:40 |
|
Dex4u 22 Jan 2008, 01:33
edfed wrote: hem, about keyboard, i don't see any reason to have some delays into. Here is what win98 does to setup mouse Quote:
See here: http://www.computer-engineering.org/ps2mouse/ Any way back on topic, i have alway found using .inc file, makes add and debuging much easier. But some of the stuff on the list are not easy to code. example it took me 2 years to get .png, .gif, .jpg decoders done. PS. That push edx, is because i used the same template for both keyboard_read and keyboard_write and keyboard_write user's dl. |
|||
22 Jan 2008, 01:33 |
|
edfed 22 Jan 2008, 01:38
i don't speak about making all alone.
if somebody have made some stuff, we just have to adap it for this contest... i think the harder is to provide a function set in includes that can be understood by everyone and simple to call. about this mouse setup, i don't see where it need two seconds to execute... an dfor people that think it's not a real trick to use pre made fasm functions, it's false, optimisation is always possible, and you'll can make your own code based on the basic ones... the contest need to be cutted in 3 stages: 1) find all needed function and make a package 2) program toghether a basic browser that is able to browse fasm forum and probably google... 3) make the real contest, PROGRAMMING alone a better browser than the basic one, make some optimisations, possible to work in little groups (two or tree persons, not more) and finally, the winner is tomasz, cause his program is needed to make it... i hope this will be done... it's seriously fun |
|||
22 Jan 2008, 01:38 |
|
Dex4u 22 Jan 2008, 01:59
I like it, once we decide what is needed, we can ask individual's or groups to take on that part of the project, that they want to code.
|
|||
22 Jan 2008, 01:59 |
|
revolution 22 Jan 2008, 05:17
Dex4u wrote: Example i can boot to the CLI in DexOS in less than a second, but if i enable mouse support, it will add another 2 seconds. |
|||
22 Jan 2008, 05:17 |
|
Dex4u 22 Jan 2008, 08:19
revolution wrote:
I have already implemented multi-threading, with sleep etc, which will work even in realmode, but i have not used it for speeding up booting, if it goes over 3 seconds, i probably will. Or i can do like windows and boot to the desktop, but still have 90% of stuff to load and set up |
|||
22 Jan 2008, 08:19 |
|
edfed 22 Jan 2008, 10:19
the critical objective is the ONE second operability.
ONE second after bootstrap, not more. it is possible as 1 second for a 100 Mhz correspond to 100 000 000 clock cycles, largelly enough to initialise all components. |
|||
22 Jan 2008, 10:19 |
|
Octavio 22 Jan 2008, 10:30
On my Os the keyboard + mouse setup only takes 0.7 seconds, i think
the secuence used by windows 98 is not really required, command 0ffh (reset) is send 3 times and each time it needs 0.3 seconds to complete, but is really needed to reset 3 times the mouse? From all my tests one reset is enought. Note that a P4 with 256MB ram will not help here but still can be done in one second. |
|||
22 Jan 2008, 10:30 |
|
edfed 22 Jan 2008, 10:58
yeah, congratulation, but...
the mouse can be initialised for the extended function while first loading of program. operability is the ability to print keystrokes, move mouse cursor, launch an executable and execute a command. by evidence, the first loading will take more than one second if it's a big file. so don't care about speed in this case. for mormal mouse support, no init needed? ONE second maximum to launch the brower. ONE second. maximum. there is the challenge, i hope it's OK in all minds. windows is not a refence in this domain... my best score is 17 seconds for operability and 25 seconds to launch IE, on 98. this score is largelly too much. so, i think octavio's mouse setup is good for this contest. i think we'll need a tread for file sharing and updates, with hard moderation, one autor, one unique file/package. one file/package, one post, the best one chosen by jury. jury will be chosen soon... i hope i'll be one of the judges, instead to be a good coder, i can be good judge abou performance, without any pity for slow codes ... for keyboard, i think the best way to support a fast keyboard is to build a keytable, like dex, me and others wrote. it's faster to access byte in table than to IN AL, 60h or INT niania. |
|||
22 Jan 2008, 10:58 |
|
bitRAKE 22 Jan 2008, 14:46
http://tunes.org/wiki/unununium.html
http://unununium.org/ I always liked that idea: Quote: Everything is dynamic, so that cells can install and replace cells at runtime without need to bring down the system, a paradigm they name "organic software". |
|||
22 Jan 2008, 14:46 |
|
edfed 22 Jan 2008, 16:11
so...
LocoDelAssembly BitRake Octavio Tom Tobias Dex4u Revolution vid? at least 7 persons + 1 are interested in this project? it can be good to have motivation and active participations. this project is not impossible to achieve. perhaps the 1 second constraint is too much for the beginnig. real contest can start when we have at least 3 seconds for net-explorator to be launched. 3 seconds seems to be reasonable, no? 3 seconds from bootloading, the org 7c00h code located at sector 0 of boot drive. 1.5s for hardware init 1s for librairy loading 0.5s as padding or in case of impossible time achievement for the two first steps... what do you think about this contest? is it possible that we can work together on stuff like this? and how long can we work together without brain saturation? if we start this week, it is possible to complete the basic system before north-pole's summer. Last edited by edfed on 22 Jan 2008, 19:28; edited 1 time in total |
|||
22 Jan 2008, 16:11 |
|
Dex4u 22 Jan 2008, 16:52
I think the best plan will be to get it working, then optimise it for speed to achieve out goal, if we get it to 3 seconds, we can then find the bottle necks and get it down to 1 second.
We also need to define a licence, i like the one DexOS users, which is anyone that add to it, is joint owner. Also we need to decide basic OS design, eg multi-tasking, paging or single-tasking nopaging etc. |
|||
22 Jan 2008, 16:52 |
|
edfed 22 Jan 2008, 19:27
multi tasking:
without tss paging: yes but after... licence: yes, but not DEXOS and not UFO NOSS. a licence applied for each modules. a multilicence, it will make feel crazy all the stealers of code if they see the code is in multilicence...yesss if a module is in DEXOS, it rest in DEXOS if a module is in GPL, it rest in GPL, but the others parts are not in GPL. if a module is in XXX licence, it rest in XXX licence. for OS design, we need to wait for more participants, cause if we are only 2 or 3, it will never appear before this summer (and if we wait too long for other coders, it will never appear at all) . DEX and all: we are you the best in coding? system? gui? hardware? ...? the task will be repartited between coders as their habilities. for exemple, me, i want to code some hardware, and some layers as linking between modules and french support. we need to adapt modules with the same convention. and many conventions can be defined, one package = one convention please, don't let it die. |
|||
22 Jan 2008, 19:27 |
|
Goto page Previous 1, 2, 3, ... 13, 14, 15 Next < Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.