00:00:00 --- log: started osdev/02.05.16 00:06:55 heh 00:07:06 that just proves how stupid perl programmers really are 00:23:54 --- join: trans (~trans@a2a02274.intergate.bconnected.net) joined #osdev 00:24:19 It proves how crazy programmers are. 00:30:59 ugh, i just watched the matrix reloaded teaser 00:32:26 --- quit: rob_ert (Remote closed the connection) 00:33:29 --- join: rob_ert (~robert@h237n2fls31o965.telia.com) joined #osdev 01:08:46 --- quit: trans (Read error: 110 (Connection timed out)) 01:46:34 --- quit: ZzZ_enton (Remote closed the connection) 02:01:25 --- join: Lary (~Larman@adsl-63-203-72-150.dsl.snfc21.pacbell.net) joined #osdev 02:04:12 --- quit: MyLar (Read error: 104 (Connection reset by peer)) 02:18:33 --- quit: jantho (carter.openprojects.net irc.openprojects.net) 02:18:33 --- quit: Jeroen (carter.openprojects.net irc.openprojects.net) 02:18:38 --- join: jantho (jantho@ti500710a080-0112.bb.online.no) joined #osdev 02:18:38 --- join: Jeroen (jeroen@kf-nawij-fp06-150.dial.kabelfoon.nl) joined #osdev 02:34:05 --- join: trans (~trans@a2a02274.intergate.bconnected.net) joined #osdev 02:54:45 --- quit: nbsp ("sleep") 02:57:37 --- join: juu (ammu@baana-62-165-189-112.phnet.fi) joined #osdev 03:01:58 murm ur 03:02:45 --- join: eks (~eks@h24-82-197-140.wp.shawcable.net) joined #osdev 03:03:03 aye 03:03:16 hello juu 03:07:14 --- join: Garfield82 (~Eckard@pD9525595.dip.t-dialin.net) joined #osdev 03:08:10 --- nick: eks -> eks[training] 03:12:58 --- quit: trans (Read error: 110 (Connection timed out)) 03:18:17 --- join: Javanx (~javanx@213.45.18.78) joined #osdev 03:23:22 heya :) 03:29:24 --- quit: Delphinus () 03:30:50 --- quit: Garfield82 (Read error: 104 (Connection reset by peer)) 03:36:34 --- nick: eks[training] -> eks 03:37:29 --- join: Garfield82 (~Eckard@pD9525595.dip.t-dialin.net) joined #osdev 03:38:50 somebody can tell me why nasm doesn't like "in 0x21" and says "invalid combination of opcode and operands" ?? 03:39:12 Javanx: maybe you need "in al, 0x21" ? 03:39:32 or "in ax, 0x21" if you want a word operand 03:41:12 azz, right, in needs two operand 03:41:28 ;) 03:41:41 so why in minix code it does "inb 0x21"?? 03:42:52 probably because gas makes a difference between "inb" and "ins", so you don't have to specify the operand size, in Nasm it uses al or ax to determine the operand size 03:45:08 uhm, but minix doesn't use gas, it uses intel syntax, anyway i'll try to catch where it puts it 03:46:24 uhm, it should put it in 'ah' 03:46:50 ah? lolol 03:47:01 "in" never puts the content in "ah" only 03:47:13 there are 5 types of "in" instructions 03:47:17 in al, imm 03:47:19 in ax, imm 03:47:23 in eax, imm 03:47:27 in al, dx 03:47:29 in ax, dx 03:47:34 oh.. and a 6th 03:47:36 in eax, dx 03:48:25 and why should it put in al and then do 'movb al, ah' ?? 03:48:36 it will overwrite al with ah. 03:48:48 no 03:48:55 in AT&T syntax the destination is last 03:49:05 it itsn't at&t syntax 03:49:06 movb al, ah === make AH equal to AL 03:49:15 movb ah, ~1 03:49:32 it's (destination, source) 03:49:34 well, there is no such thing as "movb" in Nasm 03:50:05 which assembler are you using? 03:50:57 i use nasm, minix uses an assembler that i don't know :) 03:51:05 in nasm there is movsb 03:51:44 there's a difference.. a MAJOR one between "movsb" and "movb" 03:52:30 uhm, doesn't movsb just move a byte? 03:52:47 movsb == move a single byte from DS:ESI to ES:EDI 03:53:11 there's no register used for data source/destination 03:54:02 "movb" like you use it is more likely a "gas" or some other assembler instruction, but nasm doesn't support it natively. The only possible explanation for a "movb" under Nasm would be a macro the guy made 03:55:03 anyway inb 0x21 would became in al, 0x21. and outb 0x21 would became out al, 0x21?? 03:56:25 "inb 0x21" == "in al, 0x21" but "outb 0x21" == "out 0x21, al" 03:57:46 right, cause it must put content of al in 0x21 :) 04:00:05 anyway i found it, minix uses the IBM-Assembler 04:33:22 IBM-Assembler rocks! 04:34:43 --- join: trans (~trans@a2a02274.intergate.bconnected.net) joined #osdev 04:40:11 --- quit: Garfield82 (Read error: 104 (Connection reset by peer)) 04:58:27 can someone join #C and tell me what the channel limit is? 04:59:11 170 04:59:21 ugh 05:00:50 --- quit: eks ("Time for work, l8r folks") 05:02:57 --- join: Garfield82 (~Eckard@pD9525595.dip.t-dialin.net) joined #osdev 05:09:12 --- join: tirloni (gpt@neutron.tirloni.org) joined #osdev 05:14:24 --- join: izik (~izik@212.199.191.25) joined #osdev 05:15:55 --- join: Delphinus (~delphinus@61-217-207-194.HINET-IP.hinet.net) joined #osdev 05:16:44 --- quit: trans (Read error: 110 (Connection timed out)) 05:36:21 --- join: Jeroen_ (jeroen@kf-nawij-fp06-201.dial.kabelfoon.nl) joined #osdev 05:36:28 --- quit: Jeroen (Killed (NickServ (Ghost: Jeroen_!jeroen@kf-nawij-fp06-201.dial.kabelfoon.nl))) 05:36:37 --- nick: Jeroen_ -> Jeroen 06:15:10 --- join: kkestell (~mooe@s31-155.wayzata.k12.mn.us) joined #osdev 06:15:13 yoyo 06:25:35 y 06:25:40 http://www.digdug.cx/quotes/?96 06:40:43 --- quit: Javanx ("I don't feel a thing, and i stopped remembering. The days are just like moments tourned to hours") 06:40:43 --- join: trans (~trans@a2a02274.intergate.bconnected.net) joined #osdev 06:40:43 --- quit: kkestell (Connection reset by peer) 06:41:28 --- join: Rico- (Rico2@node-c-1c6a.a2000.nl) joined #osdev 06:41:29 --- quit: Rico (Read error: 104 (Connection reset by peer)) 06:41:55 --- nick: Rico- -> Rico 06:51:54 --- nick: juu -> juuAway 07:04:42 --- join: lynx_ (~lynx@p50809C9E.dip.t-dialin.net) joined #osdev 07:09:20 --- nick: lynx_ -> lynx 07:34:39 --- nick: juuAway -> juu 07:47:04 --- quit: trans (Read error: 110 (Connection timed out)) 08:12:20 --- quit: Rico (Read error: 104 (Connection reset by peer)) 08:14:51 --- join: mrd_ (skdjfjksjd@pcp201472pcs.uprtnw01.nj.comcast.net) joined #osdev 08:19:30 --- join: dax (you@212.239.163.152) joined #osdev 08:19:33 heya 08:24:57 Hi 08:25:39 --- join: Rico (Rico2@node-c-1c6a.a2000.nl) joined #osdev 08:31:29 whee 08:31:33 it workz! 08:31:40 what ? :) 08:32:41 the queue & hash routines i've written 08:32:53 cool :)) 08:32:56 queue for what ? 08:33:09 collisions ? 08:33:52 for all kinds of things i suppose 08:33:52 heh 08:34:06 no, the hashtables are independant of the queue 08:34:44 :D 08:35:21 hmm my current hashing function doesn't really work that good with random numbers :/ 08:43:56 pizza! 08:43:57 :\ 08:47:11 izzapisaz 08:47:15 hmm 08:47:19 oink dcc me 08:47:19 some 08:47:59 i'm firewalled, i can't :\ 08:48:03 want a piece by postal mail ? 08:48:16 hehe 08:48:22 but firewall will just heat it up :) 08:51:00 --- quit: jantho (carter.openprojects.net irc.openprojects.net) 08:51:21 --- join: jantho (jantho@ti500710a080-0112.bb.online.no) joined #osdev 08:58:02 --- quit: Delphinus (Read error: 104 (Connection reset by peer)) 08:58:34 hmm 09:01:20 hmm ? 09:01:34 mm hmm. 09:01:34 juu:) 09:01:38 Mmm! 09:05:53 --- join: Delphinus (~delphinus@61-217-210-17.HINET-IP.hinet.net) joined #osdev 09:09:52 --- join: trans (~trans@a2a02274.intergate.bconnected.net) joined #osdev 09:32:46 --- join: Javanx (~javanx@213.45.18.78) joined #osdev 09:45:58 --- join: corsairk8 (~localhost@pc-62-30-121-110-cr.blueyonder.co.uk) joined #osdev 09:46:20 --- quit: trans (Read error: 110 (Connection timed out)) 09:46:35 hey i got a fs design idea 09:46:37 why not make each directory contain the inodes and data within it? 09:46:39 has this been tried? 09:47:23 --- quit: lynx (Read error: 110 (Connection timed out)) 09:48:35 corsairk8: isn't reiserfs doing something similar? 09:48:58 yes, it uses a binary tree and includes the data in the inodes 09:49:02 from what i remember 09:49:10 at first, i wanted to do something like reiserfs, but i found it too complex 09:49:20 a journalling 64-bit file system bristling with all this crap :) 09:49:53 my first fs should be at least thesably simple 09:49:58 yet extensible 09:50:05 so as i learn, and experiment i can improve it 09:50:30 hey Mister I_Thought_I_That_Was_You_But_It's_Not :D 09:50:48 --- quit: dax (Read error: 110 (Connection timed out)) 09:51:30 * Jeroen doesn't like metadata journalling 09:52:56 what'sthat? 09:53:54 i like metadata journalling 09:54:07 i hate asynchronous file systems 09:54:18 they muck up anything real time 09:54:22 and end up quashing performance 09:54:34 i agree with waiting a decent amount of tiem for sequential reads or writes 09:54:39 but over-doing it is clueless 09:54:50 you should at least let it be configurable 09:55:09 --- join: lynx_away (~lynx@pD9544707.dip.t-dialin.net) joined #osdev 09:55:15 hey 09:55:17 not everyone is running a high end server loaded with ram and can do with putting off writes 09:55:21 Heyhey lynx_away 09:55:31 metadata journalling can be tricky, but its a nice way to keep the file system intact 09:55:44 and not that slower than fsdata journalling 09:56:16 bah life sucks 09:56:24 im so depressed i wanna work on omikron more 09:56:30 i just missed out on the love of my life 09:56:40 --- join: albe (uff@ppp-56-197.30-151.libero.it) joined #osdev 09:56:43 hello 09:56:54 h 09:57:39 Hi :) 09:58:14 --- join: dax (you@u212-239-163-152.adsl.pi.be) joined #osdev 09:58:24 * dax is looking for a decent, easy to implement hash function 09:58:49 hehe 09:58:56 for a hash tree dax? 09:59:01 hashtable 09:59:04 i hear the modulo (%) operator can do wonderful things 09:59:06 thats what i use 09:59:10 hmm 09:59:17 key % tablesize isn't that great 09:59:25 there are other funky things you can do if your hash size is a multiple of 2 09:59:30 dax: works fine for me 09:59:57 hmm 10:00:02 I also need a simple hashing function. 10:00:08 Nothing faster than modulo? ;) 10:00:26 i saw, ((key & tablesize_bits) ^ 0xffffffff) & tablesize_bits is often adequete enough 10:00:27 and fast 10:00:45 it replaces a modulo operation with a bitwise AND and performs an complete bit inversion 10:00:53 leaving no more bits than specified in tablesize_bits :) 10:01:02 that can be optimised, the first AND isnt needed 10:01:18 corsairk8: IMHO softupdates are better than metadata journalling 10:01:24 soft updates... 10:01:25 bah... 10:01:39 ugh 10:01:49 882 collisions on 4096 items :/ 10:01:49 and if you wanna see the file you deleted 5 days ago, or the original filename of file T ? 10:02:00 that you renamed of course 10:02:04 hmm, seriosly dax? 10:02:13 you have the table size of 4096 ? 10:02:34 size is next prime called with 4096 * 2 10:02:35 4096 == 12 bits 10:02:39 thus tablesize_bits == 12 10:02:40 ohps 10:02:46 thus tablesize_bits == first 12 bits set 10:03:04 corsairk8: that's data journalling, not metadata journalling 10:03:20 hmm... 10:03:30 not when the information you use is part of the metadata 10:04:25 --- quit: mrd_ () 10:04:47 ((key & 12) ^ 0xffffffff) & 12; 10:04:58 gives me 4092 collisions on 4096 items... 10:04:58 wtf 10:04:59 :/ 10:05:03 no! 10:05:03 dax 10:05:06 12 bits 10:05:07 dont and with 12 10:05:17 and with 0xfff0 10:05:20 ohps 10:05:22 and with 0xfff 10:05:29 ahhh 10:05:31 infact 10:05:32 just do 10:05:36 don't say tablesize_bits == 12 then... 10:05:46 (key ^ 0xffffffff) & 0xfff 10:05:52 sorry, mistake 10:06:09 i meant a variable set with the bits involved in the table size 10:06:19 rather than the number 10:06:25 1493 collision 10:06:28 what!? 10:06:28 s 10:06:30 lol 10:06:37 hmm 10:06:40 wtf 10:06:44 are your keys ranging from 0-4095 ? 10:06:55 my keys are random ints 10:07:09 well, for 0-4096 theres no collisions 10:07:30 thats a good algorithm only for serialised keys 10:07:50 for non-serialised keys, your better off with a much more sophisticated algorithm 10:08:01 perhaps one more mathematically correct 10:08:18 the one i said wont give any less collisions than 10:08:20 key & 0xfff 10:08:22 which is the same as 10:08:24 key % 4096 10:08:40 it just gives the keys a random funkyness 10:08:57 ugh 10:09:08 this doesn't appear to work decently on random data :/ 10:09:16 probably not 10:09:18 --- quit: Delphinus (Read error: 110 (Connection timed out)) 10:09:18 the range is too much 10:09:27 --- quit: albe ("bye") 10:09:33 resulting in too chaotic results 10:09:38 huuuuuuuuge amount of collisions lol 10:09:48 104480 on 1048576 :/ 10:09:52 hmm 10:09:56 aer you sure you implemented it right? 10:10:04 what value are you getting from the hash algo typically? 10:10:11 uhm 10:10:11 can you dupm that? 10:10:14 sure 10:10:24 not with 1<<20 items though :/ 10:10:26 not even random data is that bad for key % 4096 10:13:43 hmm 10:13:48 key % tablesize 10:13:55 24 collisions on 100 items 10:15:49 hmm kinda logical though 10:16:16 mapping 2^32 to 4096... 10:17:04 *200 10:17:39 9 cols on 100 items 10:18:04 oinki 10:18:07 iha vensomethign of touy 10:18:10 i have somethign for you 10:18:13 http://www.georgetown.edu/cball/animals/pig.html 10:19:45 lol 10:20:18 9256 cols on 100000 items 10:21:38 93425 cols on 1000000 items 10:24:32 i just needed to use a bigger hashtable i suppose 10:26:02 oinki ? is that a new opcode ? :\ 10:26:07 uhm 10:26:27 ahah 10:26:28 nice :) 10:42:04 did you make it? 10:42:17 Wtf? 10:44:22 MSIE/666 is interesting browser version indeed :) 11:00:27 --- quit: dax (Read error: 110 (Connection timed out)) 11:02:00 not bad dax 11:02:01 hmm 11:10:29 --- join: trans (~trans@a2a02274.intergate.bconnected.net) joined #osdev 11:13:09 --- join: Zenton (~vicente@8.Red-80-34-35.pooles.rima-tde.net) joined #osdev 11:14:39 --- join: dax (you@u212-239-163-152.adsl.pi.be) joined #osdev 11:15:28 heya 11:15:37 Hi daxie 11:15:53 --- quit: Javanx ("I don't feel a thing, and i stopped remembering. The days are just like moments tourned to hours") 11:16:07 slowcoder? 11:16:12 bah haven't got a reply to the ad i placed about a dreamcast localy :/ 11:16:27 :-/ 11:16:36 How much did you want for it? 11:16:45 didn't post a price 11:16:57 Hehe, OK. 11:18:26 ill give 10 pence 11:18:35 for it 11:18:39 just asked for a dreamcast 11:18:42 no reply :( 11:18:48 oh 11:18:51 your not selling it 11:19:01 try your local top shop 11:19:10 forget it. 11:19:47 hehe 11:19:55 hmm 11:20:27 and evaluation/development boards for arm, mips, sh3-5 or any other chip are expensive :/ 11:22:56 :/ 11:23:48 really? 11:23:52 what do the boards do? 11:23:59 well uhm 11:24:03 you know... 11:24:07 debugging? 11:24:13 no 11:24:15 plain boards 11:24:17 no debugging 11:24:22 oh 11:24:36 you mean plain pieces of board where you print a circuit on? 11:24:39 cheapest one i found was $250 but i can't recall which one 11:24:42 what a rip 11:24:47 corsairk8, no basic motherboards for those chips 11:24:48 heh 11:25:00 not copper clad boards 11:25:09 oh 11:25:11 of course! 11:25:16 hehe 11:25:36 i can't build my own as most of those CPUs use a BGA package 11:26:28 --- nick: juu -> juuBBL 11:31:52 BGA, whats that? 11:32:00 make an x86 os, much easier 11:32:01 ball grid array 11:35:55 hmm 11:36:02 i need to find a DNARD or something like that 11:42:27 hmm 11:42:34 multia's are nice machines heh 11:43:47 yesh :) 11:43:56 ashame they are hard to find :/ 11:45:54 yup :) 12:06:50 hey 12:06:54 i learned a new biggest word 12:06:56 wanna hear? 12:06:57 lol 12:07:24 dichloro diphenyl tricholoroethane 12:07:27 aka, the pestacide DDT 12:07:33 "a good idea turned bad" many say 12:19:09 --- join: malenfant (~chatzilla@s216-232-111-213.bc.hsia.telus.net) joined #osdev 12:20:34 --- nick: juuBBL -> juu 12:22:13 re 12:22:40 --- quit: malenfant (Client Quit) 12:24:10 --- quit: trans (Read error: 110 (Connection timed out)) 12:24:53 --- quit: dax (Read error: 110 (Connection timed out)) 12:25:10 --- quit: lynx_away (Read error: 110 (Connection timed out)) 12:30:04 --- join: trans (~trans@a2a02274.intergate.bconnected.net) joined #osdev 12:45:19 --- quit: corsairk8 () 12:55:08 --- join: wossname (wossname@HSE-QuebecCity-ppp80788.qc.sympatico.ca) joined #osdev 12:59:45 --- join: albe (uff@ppp-17-198.30-151.libero.it) joined #osdev 12:59:48 hello 13:00:06 --- nick: izik -> izik-sleep 13:00:27 --- part: izik-sleep left #osdev 13:03:29 --- quit: trans (Read error: 110 (Connection timed out)) 13:13:25 good dreams 13:19:08 --- join: mrd_ (skdjfjksjd@pcp201472pcs.uprtnw01.nj.comcast.net) joined #osdev 13:24:25 mm. quiet in here. 13:25:04 i just made this page http://www.freewebz.com/mrd/os/paging/paging.html - im not really sure why. its almost the same as reading the intel manual ;\ 13:27:13 --- quit: juu ("murr sanoo karhu") 13:55:12 --- quit: tirloni ("onge") 13:55:52 --- join: lynx_away (~lynx@pD9544692.dip.t-dialin.net) joined #osdev 14:00:04 --- join: keyhack (~keyhack@64-215-27-68.mon.frontiernet.net) joined #osdev 14:00:09 Hi :-) 14:00:14 Hey hey! :-) 14:01:34 HOHOH ! :) 14:07:39 --- join: SLACKo (~foot@62.135.25.41) joined #osdev 14:15:30 --- quit: Garfield82 (Read error: 110 (Connection timed out)) 14:21:20 bye 14:21:22 --- part: albe left #osdev 14:30:41 --- join: trans (~trans@a2a02274.intergate.bconnected.net) joined #osdev 14:54:40 --- join: zephir (~zephir@hltp-a-104.resnet.purdue.edu) joined #osdev 14:55:20 can someone quickly do a quick addition ... 0x1085440 + 0x1000=? 14:56:01 is 0x1086440 or 0x1089536 14:56:10 former 14:56:17 6440 14:56:21 Yes. 14:56:27 then why is my computer making it the latter? 14:56:38 Because you made a mistake. 14:56:50 heh :0 14:56:54 :) 14:57:15 What are you up to? 14:57:24 What gives you this weird result? 14:57:27 here 14:57:40 ok during stage2, trying to init mmu in cpu 14:57:58 keeping track of the next physical addy (4kb aligned) 14:58:12 passing in a pointer 14:58:23 mmu_init(&pd_addr, &next_paddr); 14:58:39 void mmu_init(ADDR *pgdir_addr, unsigned int *next_paddr) { 14:58:39 14:58:40 int i; 14:58:41 unsigned int *pgtable; 14:58:41 14:58:42 cprintf("DEBUG: next_paddr is 0x%u\n",*next_paddr); 14:58:42 14:58:44 pgdir_addr->p_start = *next_paddr; 14:58:46 *next_paddr += PAGE_SZ; 14:58:48 14:58:50 cprintf("DEBUG: pgdir starts at 0x%u\n",pgdir_addr->p_start); 14:58:52 cprintf("DEBUG: next_paddr is 0x%u\n",*next_paddr); 14:58:58 and the next_paddr gets fucked up 14:59:00 %u, isn't that decimal?= 14:59:09 unsigned integer 14:59:12 hmm 14:59:14 yeah :) 14:59:16 :) 14:59:20 geez 14:59:23 ;) 14:59:30 Bugs rule. 14:59:30 that 14:59:31 sux 14:59:44 i have to implement %x for printf :( 14:59:51 do you happen to have that code? 14:59:51 It's easy. 14:59:58 Much easier than decimal. 15:00:09 Well, you can use a few tricks in asm :) 15:00:12 ah 15:00:18 trying to keep it C 15:00:19 To make it small ;-) 15:00:20 Okay 15:00:25 Well, still it's not that hard 15:00:36 * keyhack hates C 15:00:37 lol 15:00:40 Hehe 15:00:50 hehe 15:01:19 ok i think i can do it 15:01:29 btw i am storing these hex values in unsigned int 15:01:35 that should be fine right? 15:01:53 zephir: Have you tried putting assembly in ur C code? 15:01:54 Yes, if it's 32-bit numbers you want, and you don't plan to port it. 15:02:05 keyhack: yeah in separate .S files :) 15:02:09 yeah 15:02:10 ugh 15:02:11 Hehe 15:02:20 Don't I have info on gcc inline asm on my page? 15:02:26 Check the links again, keyhack. 15:02:52 rob_ert: know any good gas syntax docs? 15:03:05 Nope... 15:03:14 i need some 15:03:15 I'd like to learn it some day, too. 15:03:20 hehe 15:03:31 i heard taht if we place .intel_syntax in a .S file 15:03:41 gas reads it in intel syntax 15:03:46 never tried though 15:03:55 eh ? 15:03:59 try it 15:04:02 and let me know 15:04:11 i am changing all %u to %x 15:04:27 damn i hated my computer for almost 5 computars, and called it stupid dumbass too :) 15:04:34 i guess who the real dA is :) 15:04:45 s/computars/minutes 15:06:09 brb 15:06:45 zephir: it works, nice ! 15:06:57 alright 15:07:01 .intel_syntax noprefix 15:07:04 yrsh 15:07:12 gas = as right? 15:07:16 GNU as 15:07:19 so yeah, as 15:07:33 we have to have "no prefix" 15:07:34 ? 15:07:41 yeah right k 15:07:59 I like nasm 15:08:04 yep :) 15:08:09 never tryed gas 15:08:12 its the original style :) 15:08:21 AT&T sux:) 15:08:44 * lynx_away nods 15:08:48 --- nick: lynx_away -> lynx 15:09:28 zephir: http://owl.cuckoos.net/lhpas86.html 15:10:13 --- join: Pavlovskii (pavlovskii@modem-294.bellsprout.dialup.pol.co.uk) joined #osdev 15:10:22 hi all 15:10:49 oink: ah thx, but a little late...i guess i am going to convert all my files to intel syntax again :) 15:11:08 :D 15:11:23 anyone here use BeOS? 15:11:37 i know its pretty old, but i love it just for the different looks 15:12:20 zephir: I use it from time to time 15:12:30 it's a brilliant OS 15:12:33 yeah 15:12:50 --- quit: trans (Read error: 110 (Connection timed out)) 15:12:58 if be still existed, they would have worked a little more on the vm, and then it would have been perfect 15:13:23 i very often hear glitches in the mp3 playing b/c I am unzipping a file 15:13:30 a big file that is 15:13:33 yes... I had a couple of issues with the UI too, but only minor things 15:13:45 UI? what would that be 15:14:03 can't remember... there were just a couple of things I'd have liked to have seen 15:14:11 k 15:14:24 another thing was in the built-in mail program -- I wanted "leave messages on server" for pop3 15:14:28 did you know about the hidden option for changing window borders? 15:14:34 yeah 15:14:34 --- join: Slackwarrior (yawara@r-rm200-5a42.tin.it) joined #osdev 15:14:37 windows decor 15:14:38 hello 15:14:46 i like the amiga os looks with a dark bg 15:14:52 something like, holding down Ctrl+Shift+Alt + clicking on the BeOS menu 15:14:56 yeah 15:15:01 its on betips.net 15:15:04 hmm, although the Win95 option seems pointless :) 15:15:04 :) 15:15:08 hehe yeah 15:15:14 and its ugly looking too 15:15:19 yep 15:15:27 the gradient wasn;t nicely done 15:15:34 yes, the BeOS look is one of the better GUIs 15:15:44 I think they ought to have done something with the tabs though 15:15:51 yeah 15:15:52 like stacking windows and switching between them with tabs 15:15:58 yeah that helps 15:16:11 but for looks alone i would go with amiga os 15:16:15 and IIRC the only way you can resize windows is by grabbing the bottom corner 15:16:22 * Pavlovskii never used Amiga 15:16:29 try it sometime 15:16:38 I don't really have the option 15:16:42 ? 15:16:51 I don't have any Amiga hardware for a start 15:16:52 amiga os look in beos 15:16:53 :) 15:16:57 ah, suppose so 15:16:57 not the real os 15:17:03 :D 15:17:06 that's the AtheOS look, too, isn't it? 15:17:12 yeah 15:17:21 I have a demo WindowBlinds installed on this machine 15:17:26 which is good for a laugh occasionally 15:17:30 hehe 15:17:36 for true old skool looks I like the OS/2 2.x option :) 15:17:43 hehe 15:17:47 ahh... OS/2 :D 15:18:17 those were some good os'es 15:18:21 old skool 15:18:30 hmm... OS/2 was relatively ahead of its time 15:18:40 no... the alternatives (Windows and DOS) were behind the times 15:18:40 yeah it was released in the DOS ages 15:19:07 --- join: Javanx (~javanx@213.45.18.78) joined #osdev 15:19:58 hmm... any ext2 experts in here? 15:21:56 * zephir preps his dinner 15:24:02 * keyhack wishes putting assembly in C was easier 15:25:24 hehe 15:25:27 hehe... my inode cache is pretty l33t 15:25:35 Or 15:25:44 Yea, I def. dont know how to get C to call assembly code 15:25:57 in C: 15:26:08 void asm_function(stuff); 15:26:10 i.e. as normal 15:26:12 in asm: 15:26:18 [global _asm_function] 15:26:22 _asm_function: 15:26:41 but how does the C program know what file to look for? 15:26:47 it doesn't... the linker does 15:26:58 well how does the linker know? 15:26:58 lol 15:27:01 you compile the C file to a .o, and assemble the asm file to a .o 15:27:08 and put both the .o's on the linker command line 15:27:17 ok let me try that 15:27:19 to the linker they're just like two C files calling each other 15:27:27 it's all the same format in the end 15:27:32 i.e. machine code :) 15:28:19 ok 15:28:44 how do I compile the assembly into an O 15:28:51 you using nasm? 15:28:55 yea 15:29:05 it should just be a matter of doing: 15:29:17 nasm file.asm -f coff -o file.o 15:29:31 although if you're linking to ELF in the end, you might need to use -f elf 15:29:37 --- quit: rob_ert ("Nothing is real.") 15:29:42 try -f coff first 15:29:57 o 15:29:58 ok 15:30:06 Pavlovskii : what is coff ? 15:30:06 and i link the two .o files now 15:30:24 ld -o kernel -Ttext 0x100000 0.1.o keyboard.o ? 15:30:28 coff is an object file format 15:30:33 i know 15:30:37 keyhack: should be ok 15:30:38 Pavlovskii : dunno about that one 15:30:39 k 15:31:02 keyboard.o: file not recognized: File format not recognized 15:31:12 keyhack: ok, try -f elf then 15:31:26 works now 15:31:44 disassemble your kernel file and make sure it's all in the right order 15:31:52 objdump -ld kernel 15:32:12 how will I know? 15:32:35 well, you'll recognise the contents of keyboard.asm (more or less) 15:32:42 --- quit: wossname ("may the fork() be with you") 15:32:45 Yea I do 15:32:47 just make sure it's in the right place (i.e. before your C code) 15:32:48 Its in there 15:32:52 No its not 15:32:55 Its at the end 15:33:02 well, no matter really 15:33:11 ok so I can continue? 15:33:12 hmm, try it 15:33:15 k 15:33:42 brb 15:34:07 hmm it loads fine 15:34:09 but it didnt work 15:34:10 duh 15:34:15 I never called it in my C prgoam 15:34:16 lol 15:34:33 brb 15:40:41 still didnt work 15:40:45 maybe my assembly is wrong 15:42:05 I wouldn't doubt it 15:43:21 lol... anyone here 15:43:58 yep 15:44:11 Anyone know the assembly code to turn the caps lock led on? 15:44:31 I think that rob_ert gave me isnt right 15:46:12 hang on, I'll find mine 15:46:18 Ok 15:46:21 in fact, do you want to look at a copy of my keyboard driver? :) 15:46:23 I only have four lines... seems short 15:46:26 Yea 15:46:30 I need to get keyboard support 15:46:36 umm, prolly easier if I get the URL 15:46:45 I was just testing my assembly/C combination, but my assembly may be the problem 15:47:12 hmm... make sure your assembly code is getting called first 15:47:15 is it possible to write a TSR asm program on linux? 15:47:32 make the assembly do "mov eax, 0x12345678 / hlt" and test it on bochs 15:47:35 Pavlovskii: Is there a quick way to tell? 15:47:52 SLACKo: not TSRs like in DOS, but you can write a daemon which runs in the background 15:48:06 keyhack: or get it to write something to video memory and halt 15:48:11 ah yes! 15:48:13 smart idea... 15:48:15 I can do that 15:48:19 let me find that code 15:48:32 keyhack: 15:48:32 http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/mobius/mn/src/drivers/keyboard/ 15:48:42 ; is comment right? 15:48:42 source is in keyboard.c; hw port numbers are in keyboard.h 15:48:45 ; yes 15:49:00 hold on :-) 15:49:17 re linking again 15:49:26 Pavlovskii:oh.. 15:49:47 ut oh... 15:49:48 Pavlovskii:oh.. 15:49:53 keyboard.s:7: error: expression syntax error 15:50:04 keyboard.s:9: error: label or instruction expected at start of line 15:50:07 Pavlovskii:oh..so no way to keep something resident in memory on linux? 15:50:09 (a lot more lol) 15:50:30 SLACKo: well... things are resident in memory by definition 15:50:33 maybe my comments are doing it? 15:50:46 SLACKo: if something is running in the background (e.g. you type "program &" in bash) it's still running 15:50:59 keyhack: you using nasm, right? ; works for comments... 15:51:06 Pavlovskii:I mean like in a selected address in memory 15:51:07 fudge 15:51:09 whats wrong then 15:51:30 ugh 15:51:33 SLACKo: what kind of memory? your own code? data? 15:51:39 Pavlovskii:so no interrupt hooking on linux? 15:51:43 --- join: eks (~eks@h24-82-197-140.wp.shawcable.net) joined #osdev 15:51:48 SLACKo: hmm, ask eks 15:51:53 eks: Pavlovskii:so no interrupt hooking on linux? 15:52:06 Pavlovskii: Any ideas? 15:52:09 eks? 15:52:17 keyhack: let me see your source 15:52:25 [global keyboard_led_caps_on] 15:52:29 keyboard_led_caps_on: 15:52:33 mov ax,#0xb800 15:52:36 mov es,ax 15:52:39 no # needed 15:52:39 seg es 15:52:46 ok... 15:52:50 hmm... this is real-mode code 15:53:03 ok... 15:53:05 SLACKo: not unless you can somehow load your own kernel module 15:53:06 you trying to write to video memory? 15:53:10 Yea 15:53:13 This worked befoer 15:53:17 yes, in real mode 15:53:17 no 15:53:18 n/m 15:53:21 I did it differently 15:53:24 Whatever 15:53:29 How do I just write to the screen 15:53:40 is the base address of your data segment zero? 15:53:48 * keyhack is confused 15:53:49 lol 15:54:07 look in your GDT setup code... do you set the base address of the data segment to zero? 15:54:13 GDT? 15:54:15 i.e. can you use physical addresses directly? 15:54:21 I didnt do any code like that... 15:54:27 eks:so like is it possible to hook int 80 to like alter system calls functions ? 15:54:30 you're running in protected mode, right? 15:54:31 I dont go into Protected Mode 15:54:33 No 15:54:34 oh 15:54:38 Not yet atleast 15:54:40 SLACKo: no 15:54:43 oh 15:54:45 why not? 15:54:46 SLACKo: not without some kernel hacking at low level 15:54:52 keyhack: then that 0xb800 stuff should work 15:54:54 oh 15:54:58 because the memory area and the instructions required are all protected 15:54:58 its not 15:55:10 keyboard.s:5: error: label or instruction expected at start of line 15:55:11 keyhack: btw: I can recommend using protected mode 15:55:16 Im going to Pavlovskii 15:55:18 keyhack: what does line 5 say? 15:55:20 One step at a time 15:55:21 eks:even with a module? 15:55:28 seg es 15:55:34 SLACKo: from what I've seen yes 15:55:40 hmm, rob_ert must be using a different assembler 15:55:42 keyhack: try this: 15:55:46 mov ax, 0xb800 15:55:48 but it could be possible with a kernel module to do it, but I'm not quite sure 15:55:48 mov es, ax 15:56:04 mov [es:0], 0x55 15:56:12 oh 15:56:16 interesting 15:56:19 oops... do mov word [es:0], 0x55aa 15:56:30 ok 15:56:34 keyhack: I think the ASCII code comes first, followed by the attribute 15:56:36 replace all the seg es with that? 15:56:47 or no 15:57:00 yes... replace the "seg es" and the "mov..." with that "mov word [es:..." 15:57:01 keyhack: still using the kernel.c and the boot record I gave you? 15:57:02 * keyhack is beyond confused 15:57:18 eks help!! 15:57:19 lol 15:57:22 or do you try to create your own boot record? 15:57:23 keyhack: I'll start again 15:57:27 mov ax, 0xb800 15:57:29 Pavlovskii: wait a sec.. 15:57:29 mov es, ax 15:57:36 * keyhack is royally confused 15:57:41 * Pavlovskii in full flow.... stopped 15:57:48 eks: Im still using your stuff still 15:57:58 eks: Im writing a keyboard.s file, and its giving me problems 15:58:00 keyhack: ok, then you are _already_ in protected mode 15:58:09 eks: ok... 15:58:12 the u_burn took care of that 15:58:16 well ok 15:58:23 still, now im getting confused with the _new_ video writing thing 15:58:25 heh... keyhack is getting conflicting advice from every direction :) 15:58:33 I'll leave eks to it 15:58:49 Pavlovskii: just adapt your tips from the fact that he is getting control while in pmode 15:58:51 eks: I want to test to make sure my assembly function in keyboard.s is beign called by my C program (ie, write "A" to the screen) 15:58:54 it's possible to run linux in real mode by modifying the kernel right? 15:59:12 SLACKo: you would have to modify much more than the rights 15:59:15 keyhack: mov word [0xb8000], 0x55aa 15:59:26 everything is possible with linux kernel 15:59:27 SLACKo: you would have to get back to kernel 1.0 or something like that, and even then, it would be a heck of a job 15:59:28 keyhack: no "es" needed at all, just that one line 15:59:34 oink: yes, with 3 years of work 15:59:36 heh 15:59:40 eks:) 15:59:41 ic 15:59:46 :) 15:59:54 so that one line will write A to my screen? 15:59:58 keyhack: from protected mode, in assembly, you can do something like this: 16:00:02 keyhack: it'll write something, not sure what :) 16:00:08 eks: he gave me code 16:00:12 mov $0x55AA, 0xB8000 16:00:21 ahhhhhh 16:00:22 eks: isn't keyhack using nasm? 16:00:23 keyhack: hes, he gave you Nasm code, you are using a .s which is GAS code 16:00:25 Pavlovskii: tstst 16:00:32 he said he was on nasm a minute ago 16:00:37 I thought I was? 16:00:37 eks! 16:00:49 im compiling with nasm eks 16:00:52 Pavlovskii: the u_burn.asm is Nasm code, but the .s he is most likely trying to include with his kernel.c is gas 16:00:54 you can't say it's "GAS code" anymore :D 16:00:59 keyhack: are you? alright.. 16:01:00 eks: anyway, shouldn't that be movw? 16:01:05 keyhack: then name your file with .asm 16:01:09 ok 16:01:11 keyhack: it's way less confusing that way 16:01:14 I didnt think extensions matter ok 16:01:16 eks: I gave him a nasm command line (nasm keyboard.s -f elf -o keyboard.o) 16:01:25 keyhack: it helps the ppl who try to figure out what you do ;) 16:01:28 [00:02] < zephir> i heard taht if we place .intel_syntax in a .S file gas reads it in intel syntax 16:01:30 ok 16:01:31 well 16:01:33 am i set now? 16:01:33 or what 16:01:48 Pavlovskii: yeah, the nasm command is ok 16:01:52 keyhack: to be on the safe side, put in that "mov word [0xb8000]..." line 16:01:58 keyhack: followed by a HLT 16:02:04 http://owl.cuckoos.net/lhpas86.html#SEC245 16:02:12 it will hang your PC, but at least it will stop... it's like a breakpoint :) 16:02:14 I did 16:02:16 I thought... 16:02:18 ok 16:02:25 wait 16:02:26 oink: yes, gas support intel syntax 16:02:27 jesus christ 16:02:38 if it puts a funny coloured symbol in the top-left corner of your screen, and hangs, it's OK :) 16:02:40 mov word [0xb8000], 0x55aa 16:02:50 and then what? 16:02:52 keyhack: yes, the instruction is right 16:02:57 cli 16:02:57 hlt 16:03:06 (btw, I have a while(1) statement in my C code) 16:03:08 (the CLI is in case you have interrupts enabled... not sure if you do) 16:03:10 so do I still need a hlt? 16:03:21 keyhack: yes, unless you do "retn" after the mov 16:03:30 so... 16:03:32 which should I do 16:03:35 retn? 16:03:44 do the HLT and see if your asm is getting called 16:03:46 that's what I suggest, since you still want to get back from your function 16:03:56 (then remove it once you're happy) 16:04:01 if you just do the mov and the retn you should be able to see if your function gets called 16:04:13 --- join: kapple (dutkiewicz@188.portland-03-04rs.or.dial-access.att.net) joined #osdev 16:04:41 Pavlovskii: hlt is a won't block forever if the NMI isn't masked also 16:04:49 s/is a//g 16:04:53 how likely is an NMI in practice though? ;) 16:05:08 the "mov" "retn" combination works in all cases, right? 16:05:12 ok 16:05:13 it worked 16:05:17 I got a pink block 16:05:18 keyhack: good :) 16:05:22 but VMWare gave me an error msg 16:05:31 keyhack: like? 16:05:32 The CPU has been disabeld by the guest operating system 16:05:35 that's probably the HLT with interrupts disabled 16:05:41 --- part: kapple left #osdev 16:05:42 k 16:05:50 keyhack: HLT waits for the next interrupt... if interrupts are disabled, it will disable the CPU 16:06:00 however NMI's can't be disabled by the CPU 16:06:00 so now replace "hlt" with "retn" ? 16:06:10 keyhack: yip 16:06:11 --- join: kapple (dutkiewicz@188.portland-03-04rs.or.dial-access.att.net) joined #osdev 16:06:15 yep, and see if your C code gets control back 16:06:16 keyhack: it should now get back from the function 16:06:22 well 16:06:27 I dont want it to do that block anymore anyawys 16:06:28 * eks leaves Pavlovskii to it, he got stuff to do 16:06:31 I want to get keyboard input 16:06:32 eks: 16:06:42 --- join: I440r (~mark4@1Cust185.tnt1.bloomington.in.da.uu.net) joined #osdev 16:06:42 in your ext2 driver, did you have a separate inode cache? 16:06:49 Pavlovskii: yip 16:06:58 how did you do it? I have a 128-element hash table 16:06:59 I have inode cache, block cache and itb caches 16:07:11 any tips on designing it optimally? :) 16:07:19 * keyhack waits 16:07:29 Pavlovskii: look it up, it's all available for download: cvs -d:pserver:anonymous@cvs.uuu.sf.net:/cvsroot/uuu co dimension 16:07:39 eks: cool 16:07:57 keyhack: do you handle interrupts yet? i.e. do you have an IDT? 16:08:14 If eks's code does it, then yes 16:08:18 I didnt progam _anything_ yet 16:08:22 except for a login window 16:08:26 eks' code: do you handle interrupts? :) 16:08:28 thats all I did so far (with my own printstr) 16:08:50 keyhack: hmm, I think you ought to take some time to read through eks' code and understand what it does 16:08:51 Pavlovskii: no 16:09:05 I dunno, I just did what he told me and it works 16:09:05 --- part: kapple left #osdev 16:09:05 lol 16:09:10 Pavlovskii: the u_burn setups up pmode, enable a20 and gives the control at the loaded offset, that's it 16:09:14 k 16:09:23 ok 16:09:30 * eks reads his line and starts laughing.. setups up :p 16:09:34 eks: is it a proper flat address space? 16:10:19 4GB R/W and 4GB R/x 16:10:23 k 16:10:29 * keyhack gawks 16:10:30 lol 16:10:35 I cant wait to learn all of this 16:11:06 that means, you've got two descriptors in your GDT (actually, three: the first one is null; all zeroes) 16:11:16 Ok 16:11:19 Whats my GDT again 16:11:20 a descriptor describes a region of memory to the processor 16:11:23 * keyhack is taking notes 16:11:26 GDT = Global Descriptor Table 16:11:37 what eks said was that you've got two descriptors 16:11:52 they each describe the full 4GB address range of the CPU, starting at address zero 16:12:01 good night:D 16:12:12 nite 16:12:16 you probably don't have 4GB of memory installed, so you can only access, say, the bottom 256MB 16:12:36 k 16:12:40 however the CPU won't stop you going beyond that (everything you read that's not real memory should come out as FFFF...) 16:12:55 what happens if you do go beyond that 16:13:03 sometimes you get devices mapped at the top of memory (e.g. my video card is at 4GB - 32MB) but that's not important right now 16:13:14 anyway, you have two such descriptors, each of which spans the 0 to 4GB range 16:13:22 ok 16:13:30 each descriptor has a type (e.g. code, data, system segment) 16:13:39 and access rights (readable, writable, executable) 16:13:50 so you've got a read/write data segment and a read/execute code segment 16:14:02 ok 16:14:22 that's a fairly basic GDT... you could get more clever than that but it's usually not worth it 16:14:34 ok 16:14:37 another thing: segments also have a privilge level associated with them 16:14:42 Pavlovskii: don't assume the null descriptor is all zeros, some of us optimize that space ;) 16:14:45 from 0 to 3 16:14:56 eks: ok (like the GDTR...) 16:15:04 segments? 16:15:18 a segment is described by a segment descriptor 16:15:25 for most purposes, segment = descriptor 16:15:28 k 16:15:35 each entry in the GDT describes a segment, that's all 16:15:39 k 16:15:51 a selector is the number you put into CS, DS, ES etc. to access the segments 16:15:59 keyhack: if you really want to learn os development, do yourself a favor and download the "Intel Architecture Software Developer Manual" volumes 1 to 3, they are available from the developer.intel.com website in Pentium IV manuals 16:16:17 keyhack: eks is right... there are also various pmode tutorials which explain this :) 16:16:27 the volume 1 would contain all this information Pavlovskii is telling you and much more 16:16:37 volume 2 details the instruction set 16:16:45 in fact, I have a good URL for what I'm telling you 16:16:49 volume 3 is mainly for system developers (os and drivers coders) 16:16:56 --- join: tirloni (gpt@1-024.mganm700-1.telepar.net.br) joined #osdev 16:17:31 I think Alexei Frounze's site is the only OS development site with background MIDI music :) 16:17:33 --- join: karingo (dutkiewicz@188.portland-03-04rs.or.dial-access.att.net) joined #osdev 16:17:35 Ive already read about PM 16:17:41 very Russian... but it clashes with Orbital though 16:17:51 :p 16:18:22 keyhack: 16:18:22 http://members.tripod.com/protected_mode/ 16:18:45 ok 16:19:05 that basically says what I started telling you, and more 16:19:09 ok 16:19:15 it should have all the interrupt stuff, and some sample code too 16:19:16 i'll print that off and read it 16:19:33 * eks screams at some more dead trees.. 16:19:42 so... I guess I cant do anything now 16:20:21 keyhack: os design involves at least 80% of your time spend in either studying or thinking about an implementation, not actual development 16:20:29 :) 16:20:35 yes 16:20:41 but what I want is a keyboard working 16:20:41 eks: or on IRC 16:20:42 lol 16:20:49 Pavlovskii: lol, yeah 16:21:16 eks: I'm looking at the uuu repository. what's the difference between the uuu and dimension modules? 16:21:36 * keyhack waits again :-) 16:21:49 Pavlovskii: Uuu is the old cvs tree, dimension is just the same sources (and even updated ones) reorganized more logically 16:21:53 eks: _five_ inodes cached?! 16:22:04 I'm cacheing 128! 16:22:06 Pavlovskii: it's a %define, the principles are all the same 16:22:18 what's the performance like with a cache of 5 though? 16:22:29 Pavlovskii: on a floppy loading 2 files? quite awesome ;) 16:22:38 keyhack: for enlightenment, read the tutorials 16:22:49 Im going to when I print it off tomorrow 16:22:55 hmm... I suppose I'm looking to keep two directory's worth of inodes in cache 16:23:12 seems to be working ok... although the cache size has some funny effects 16:23:24 97 (prime) is worse than 91 (not prime) 16:23:28 Pavlovskii: let's hope you don't manage your disk like some folks do at the place where I work, they got 23,000 files in one dir :P 16:23:31 and 128 seems good all round 16:23:37 eks: heh :) 16:23:55 took about 10 minutes to do "du" in that dir.. 16:24:04 I'm going to try not to fall into the trap of making it configurable 16:24:22 "this ext2 driver sucks!" ... "yes, those are the defaults. edit the config files and set SUCKS=NO" 16:24:33 14:49:18 Portability is not important 16:24:34 14:49:42 Real applications are closely coupled to hardware 16:24:47 damn smart guy :) 16:25:03 air: in today's world, he isn't too wrong, in tomorrow's, he is way off 16:25:07 * keyhack wants keyboard, now 16:25:08 lol 16:25:13 air: I'd disagree with him, but I don't have time just now :D 16:25:40 keyhack: you can't have it now... the best I could do would be to explain over IRC 16:25:48 but it's all in those tutorials anyway 16:25:54 keyboard? 16:25:56 I didnt see it 16:26:00 interrupts are 16:26:04 keyhack: having the keyboard requires: 16:26:08 setting up an IDT 16:26:22 reprogramming the PIC 16:26:34 masking/unmasking IRQ (via the PIC) 16:26:36 14:50:51 To abstract the problem from the hardware requires massive software like Windows 16:26:44 keyhack: study those topics first 16:27:14 well it doesnt give like sample code 16:27:23 --- join: kjs3-- (~foo@c-24-98-103-140.atl.client2.attbi.com) joined #osdev 16:27:35 keyhack: there is sample code at the second link on the URL I gave you 16:27:40 keyhack: google is your friend 16:27:44 the part Alexei wrote 16:27:52 brb 16:28:07 --- quit: Pavlovskii ("reconnecting the modem (the hamster is getting tired)") 16:29:02 * keyhack sighs 16:29:04 --- join: Pavlovskii (pavlovskii@modem-613.beedrill.dialup.pol.co.uk) joined #osdev 16:29:44 whee! I can fit three directorys' inodes in my cache 16:29:56 although I can't help thinking that a block device cache would be better 16:30:07 IDT is setup for software ISR (Int 20h) 16:30:11 Thats the tutorial I want right? 16:30:12 but then I'd duplicate the data between the block device cache and each file cache... hmm 16:30:39 no no 16:30:42 I want TUT05 16:31:00 anyone know of any good free asm editors for windows? 16:31:02 It does IDT, IRQ handlers, IRQ0 and IRQ1 and reprograms the PIC 16:31:23 mrd_: edit in a console window ;) 16:31:29 mrd_: or vim in a cygwin box 16:31:44 mrd_: VC++ has a damn good editor, but last time I looked it wasn't free :| 16:31:46 --- join: kapple (dutkiewicz@16.portland-15-20rs.or.dial-access.att.net) joined #osdev 16:31:47 they're a version of vim for windows, but the screenshots for it look fugly 16:31:49 --- quit: karingo (Read error: 113 (No route to host)) 16:32:00 mrd_: I've got a good editor for you: search for Dana 16:32:04 --- nick: kapple -> karingo 16:32:05 does vc++ provide asm syntax highlighting? 16:32:06 I think it's at www.rimarts.co.jp 16:32:16 mrd_: no 16:32:17 i actually have vc++ i didn't think it had any asm features though 16:32:25 wow 16:32:29 it's a good editor, but it doesn't specifically do asm 16:32:33 Looking at the TUT05.C, thats like, crazy 16:32:46 right now im using this "UltraEdit-32" program, but it's shareware. it's real nice though. 16:33:06 keyhack: that sounds like the one you want 16:33:23 yea, it does all of that, but its using headers that my OS doesnt hav 16:33:44 you should be able to identify the important bits and extract the principles behind the code 16:34:01 but like 16:34:04 it goes into PM 16:34:07 which eks already does 16:34:12 so that will like, be bad 16:34:14 lol 16:34:26 ignore the bit that switches into protected mode then 16:34:39 or, better, work through all the tutorials and understand what each one does 16:34:43 it will be better in the long run 16:35:13 how are these tutorials, there is no tutorial in the zip files 16:36:45 Ok, I think this is going to be too hard for me right now 16:37:56 --- join: trans (~trans@a2a02274.intergate.bconnected.net) joined #osdev 16:38:22 l8r guys 16:38:28 --- nick: eks -> eks[lug] 16:38:44 what kinda nerd goes to lugs 16:38:57 lugs = ? 16:39:03 linux user group 16:39:18 eurgh 16:39:20 I can't ever bear talking about computers to real people 16:39:54 look at the ppl in this channel, would u really wanna meet any of them in real life? 16:40:07 I would 16:40:10 air: lol what's that supposed to mean 16:40:21 mrd_: ;) 16:40:31 Pavlovskii: Thanks anyways but this is prob not for me 16:40:41 hey 16:40:41 --- quit: gab (Read error: 104 (Connection reset by peer)) 16:40:51 keyhack: it's not easy to take in all the info right at the start, but it does come together eventually 16:41:02 Its way too much that I dont know 16:41:06 what means "anna has bees in her bonnet" paraphrazed ? 16:41:09 --- join: gab (~prfalken@gaia.chx-labs.org) joined #osdev 16:41:21 lynx: not sure... "anna is pissed off?" 16:41:33 hrm 16:41:43 lynx: what is this? english homework? 16:41:48 take Pavlovskii for instance, he has logged over 3000 lines in this channel alone this month. when was the last time he saw sunlight? 16:41:56 lol 16:42:06 I make the most of my times on IRC :) 16:42:16 heh 16:42:28 notice, however, that I only started logging on at the start of my exams (that's on IRC, not just this channel) 16:42:29 we could make an ascii sunset 16:42:32 =) 16:42:35 and clouds 16:43:10 Thanks anyways 16:43:17 Maybe when I print that thing tomorrow it might help, prob not 16:43:21 Pavlovskii: huh? 16:43:31 and what means "at woolworth`s you dont pay through the nose" ? 16:43:43 lynx: wtf? 16:44:01 lynx: u wont pay a lot if u shop there 16:44:02 lynx: isn't that one a bit obvious? 16:44:13 air: IRC has only been an antidote to exams 16:44:28 air : oh mkay 16:44:30 =) 16:44:37 I need to stop now that I have time for a social life 16:44:42 * lynx starts hating english idioms 16:44:54 lynx: what's your native language? 16:45:04 mrd_: html 16:45:04 dschoehrman 16:45:17 air : html... 16:45:31 arg 16:45:31 h 16:45:33 lynx... html... 16:45:37 * lynx confuzzled 16:45:43 but html... 16:46:03 lynx (the browser) 16:46:13 i understood 16:46:34 i prefer atari lynx tough 16:46:51 --- join: witten_ (~witten@sdsl-64-32-131-193.dsl.lax.megapath.net) joined #osdev 16:47:24 --- quit: witten_ (Success) 16:47:33 --- join: witten_ (~witten@sdsl-64-32-131-193.dsl.lax.megapath.net) joined #osdev 16:47:36 air : dunno if a communication in txtmode only is efficient 16:48:25 --- quit: witten_ (Read error: 104 (Connection reset by peer)) 16:48:33 --- join: witten_ (~witten@sdsl-64-32-131-193.dsl.lax.megapath.net) joined #osdev 16:49:24 --- quit: witten_ (Read error: 104 (Connection reset by peer)) 16:49:29 take her story with grain of salt? 16:49:44 like "take care what she says" ? 16:50:03 lynx: yes 16:50:34 * lynx misses his daily dose of love (tm) from eks 16:50:38 anyone ? 16:51:46 bah 16:51:52 humbugger 16:52:01 [00:50] lynx: yes 16:52:14 mrd_ : bum-hugger? 16:52:35 Pavlovskii : that is a cheap dose of love ... 16:52:47 * lynx bored 16:52:55 lynx: you want love, or an answer to to your idioms questions? 16:53:03 Pavlovskii : love 16:53:14 ah... I was giving idioms answers :) 16:53:23 heh 16:53:31 =) 16:53:38 i finished that worksheet already 16:56:15 Pavlovskii : how`s möbius ? 16:56:30 lynx: lookin' good 16:56:37 I'm working on the ext2 driver atm 17:03:05 mkay 17:03:10 i think i have to go to bed 17:03:11 nite 17:03:29 hmm, me too 17:03:37 nah 17:03:57 MmmmMmmm 17:04:05 * lynx wants guiness 17:04:16 night 17:04:20 nite 17:04:22 --- part: Pavlovskii left #osdev 17:04:30 anyone have a small fast asm routine to convert a number to ascii? :P 17:05:09 what number? 17:05:24 --- quit: Javanx ("I don't feel a thing, and i stopped remembering. The days are just like moments tourned to hours") 17:05:26 like a number in a 32bit register. 17:05:52 sint that kinda easy ? 17:06:08 well im wondering if there's a better way than what i have 17:06:10 lemme take a look at an ascii table 17:06:40 decimal ascii. sorry i forgot to write decimal 17:06:41 mrd_:you mean a hex number? 17:06:55 oh 17:07:05 devide by 10 17:07:20 decimal 17:07:32 well 17:07:35 divides are pretty slow 17:07:42 shr 17:07:55 if he has a number like 1 then he has to add 28 to get the ascii sign 17:08:05 rite? 17:08:32 shift right is 10 times faster.. 17:08:34 you could also use a table with XLATB 17:08:46 true 17:19:25 i found an algorithm of dividing a byte by 10 using shifts, addition and subtraction 17:19:39 Anyone have a site that has documentation on setting the cursor position 17:20:09 look for a site detailing VGA registers 17:21:34 --- quit: Slackwarrior ("Client Exiting") 17:22:56 here u go.. hibyte:lobyte = char-offset from 0; outb(3D4h, 0Fh); outb(3D5h, lobyte); outb(3D4h, 0Eh); outb(3D5h, hibyte); use 3B4h and 3B5h for monochrome screens 17:25:14 is that for me? 17:25:25 yes 17:25:34 merry christmas 17:25:41 doesnt make any sense thanks anyways 17:26:01 lol ;x 17:26:06 what language are u using? 17:26:14 C 17:26:18 (and assembly) 17:26:33 well i think outb(port, value) writes to a port 17:26:57 But do I need to program outb() into my OS? 17:27:18 then use asm 17:27:22 IN and OUT 17:27:29 well, you only need OUT 17:27:44 so you can you privmsg me the code for assembly then 17:28:01 lol, if you can't convert that i don't know how you're going to write an os :P 17:28:11 just do it please 17:28:29 * mrd_ goes outside for a smoke 17:28:34 ugh. 17:29:02 * keyhack cries 17:35:49 --- quit: karingo () 17:35:49 keyhack: do you have an assembly reference? it'll explain how to use OUT 17:36:35 Nope 17:36:37 I need to buy a book 17:36:41 thanks anyways 17:36:43 no you don't 17:36:47 yea, I do 17:36:54 you can download an intel manual for free 17:37:01 from developer.intel.com 17:37:05 well I would like a book that teaches it 17:38:09 there's probably tons of assembly tutorial sites on the net 17:38:34 just make sure you find an x86 assembly site. not assembly for some other cpu 17:38:50 ok... 17:40:28 Do a google search...there are a ton of excellent x86 tutorial sites out there. 17:42:13 --- quit: lynx (Read error: 110 (Connection timed out)) 17:46:11 --- join: witten_ (~witten@sdsl-64-32-131-193.dsl.lax.megapath.net) joined #osdev 17:48:50 when i do something like 17:48:51 main() 17:48:51 { char buf2[1]; 17:48:51 char buf[1]; 17:49:07 why buf2 is in high memory location 17:49:16 and buf is in low mem location 17:49:29 even that buf2 is declared first 17:49:39 shouldn't be in lower memory location? 17:50:09 printf("0x%X\n0x%X\n",&buf2,&buf); 17:50:23 # ./a.out 17:50:23 0xBFFFFA37 17:50:23 0xBFFFFA36 17:50:44 röv va bra 17:53:00 i don't know much about how compilers generate asm, but wouldn't those variables be on the stack? 17:53:28 they are on the stack 17:55:05 also, i thought in c when you have array_name[n], that array_name is the address of the first item.. i don't know what &array_name would be.. or am i wrong? 18:03:07 maybe it stores the address of the array on the stack and allocates the actual array somewhere else? like i said, im not familiar with how c compiles.. 18:03:22 i'd imagine someone in here knows. 18:05:00 how the C compiler in question generates code, you mean! 18:05:50 yes 18:06:00 but normally it follows the ABI. 18:06:02 whatever. 18:12:42 * keyhack fiddles around with his basic OS 18:12:43 lol 18:14:01 good for you. 18:14:09 can't anyone maintain rtmk for me? I don't have the time :) 18:14:26 Well 18:14:43 Considering all my OS does is enter PM, and displays a text login screen (which, btw doesn work) 18:14:44 lol 18:16:31 keyhack: You got a keyboard driver working? 18:16:33 --- nick: ctkrohn|away -> ctkrohn 18:16:40 no. 18:16:58 you? 18:17:06 I'm gonna do memory management first. 18:17:14 I'm reading this: http://www.themoebius.org.uk/tutes/memory1.html 18:17:28 Oh, and I need to find out how to change the location of the cursor. 18:17:35 no 18:17:37 you want to 18:17:39 g-sus. 18:17:48 http://members.tripod.com/protected_mode/ 18:17:52 documentation and sample code 18:18:30 mmkay, I'll take a look at that as well. 18:23:05 So let me get this straight: To make a basic OS, you have to do the following: 1)Booting/protected mode 2) Display 3)Memory Management 4)Drivers (keyboard, IDE, mouse, etc), 5) Multitasking, 6) Binary loading (i.e. allowing the OS to execute apps), 7) Shell? 18:23:39 Oh, and is it possible to do this without buying a book, or would I make life alot easier by buying an OS book such as Tanenbaum's or Stallings'? 18:25:39 ctkrohn: I have code to change the cursor location but it has never worked 18:27:08 witten_: I'll just search and see if I can find anything. If you get something working though, tell me. 18:28:07 ok 18:28:14 I haven't worked on the display driver recently though 18:28:27 too much time spent having fun with the storage system 18:28:42 cool. 18:31:25 oh and somewhere in your list of things to work on you'll have to add a file/storage system if you expect to have binary loading :) 18:32:03 ah, yes. 18:32:05 Good point. 18:34:19 ctkrohn - i explained how to change cursor position earlier 18:34:43 here u go.. hibyte:lobyte = char-offset from 0; outb(3D4h, 0Fh); outb(3D5h, lobyte); outb(3D4h, 0Eh); outb(3D5h, hibyte); use 3B4h and 3B5h for monochrome screens 18:35:03 i haven't actually tested that tho :X 18:35:04 Where is outb() defined? 18:35:17 --- part: tirloni left #osdev 18:35:18 ctkrohn: It can be converted to assembly, otherwise we need to write the outb() code 18:35:20 outb just uses OUT if you know asm 18:35:32 Which I don't... I'll figure it out. 18:36:41 mov dx, 03D4h // mov al, 0Ah // out dx, al -- there's an example of outb(0x3D4, 0Ah); 18:44:14 --- quit: witten_ ("ircII EPIC4-1.1.2 -- Are we there yet?") 18:44:23 --- join: witten_ (~witten@sdsl-64-32-131-193.dsl.lax.megapath.net) joined #osdev 18:46:44 mrd_: Cool, it shouldn't be hard to whip up a macro to do that 18:52:48 --- nick: ctkrohn -> ctkrohn|away 19:01:01 --- quit: Zenton (Read error: 110 (Connection timed out)) 19:02:22 --- join: Zenton (~vicente@8.Red-80-34-35.pooles.rima-tde.net) joined #osdev 19:04:12 --- join: jimmy56 (~jim@dialup-ras1-13.pdx.or.uspops.net) joined #osdev 19:04:37 does this mean that youre 56 years old? 19:05:21 hello 19:05:32 --- join: Delphinus (~peter@203.135.69.65) joined #osdev 19:06:44 --- part: jimmy56 left #osdev 19:13:13 damn i can't find a decimal conversion routine that doesn't use a divide. 19:14:33 --- join: EtherNet (~Simpleirc@200.32.115.180) joined #osdev 19:14:38 hello 19:15:29 decimal conversion? 19:15:30 hi EN 19:15:40 yea decimal conversion with dividing. 19:16:02 give me an example. 19:16:54 i have a value in EAX and i want to store it or print it to screen in ASCII in decimal. first i need to convert to decimal, then translate to ascii. 19:20:15 cookin May I ask you a question? 19:20:51 im sorry, decimal conversion withOUT dividing. 19:20:52 :P 19:21:22 dividing is probably the only way 19:21:32 decimal is base 10 and processors arent 19:21:46 well 19:21:48 i also tried finding an algorithm to divide by 10 without actually dividing 19:21:54 u could use a series of shifts 19:22:07 i found 1 page, but it doesn't look like it would work 19:22:14 --- nick: EtherNet -> DrKumalo 19:22:18 dunno if shifts will work for 10 tho 19:22:32 2,4,8,16 <- no 10 in there ;) 19:22:54 look at this page, near the bottom http://www.cs.uiowa.edu/~jones/bcd/decimal.html 19:23:06 for vga stuff u use shifts to divide the screen width which is not a power of 2 19:23:17 there's a div10 function that's supposed to divide a byte by 10, returning quotient and remainder 19:23:25 --- quit: witten_ ("bye") 19:25:16 see how complex it would be 19:25:32 --- quit: DrKumalo ("ZtMirC by EtherNet") 19:25:57 shifts for div10 only work on processors without a div instruction or when div takes a week to execute 19:28:14 any idea where i can find out how many clocks a div takes on a 486? 19:28:48 Does anyone how to setup a kernel source debug environment? 19:29:34 17,25,41 (al,ax,eax) on a pentium 19:29:46 bh 19:29:55 oops...sorry... 19:33:27 wow is it only 17 clocks for an al div? i thought it was more than that 19:34:59 signed div is 22,30,46 19:35:14 where did you find that out from? 19:35:22 pentium developers manual 19:35:31 where in the manual does it list the clocks 19:35:38 the end 19:36:03 chapter 25, instruction set 19:36:25 241430.pdf 19:36:32 oh the family developer's manual. damn i never read this thing :P 19:42:48 hmm. INT to same level slower than call gate to same level, but INT to different level faster (by 2 clocks) than call gate to different level 19:43:17 uhh 19:43:31 ? 19:44:32 where are getting this from? 19:44:38 callgate is 44 clocks, int is 48 19:45:05 air how about the call far? 19:46:14 int's 48? says herre protected mode Interrupt/Trap gate, different level = 42 clocks on cache hit 19:46:35 24143004 Pent Fam Dev Manual 19:47:29 Delphinus: callgate is a far call 19:47:48 air got it, thanks. :-) 19:49:55 im thinking about making an x86 assembly editor that can show you clocks for each instruction, point out AGI stalls, etc 19:50:05 that would be sweet :) 19:50:11 yes it would 19:50:34 im making an asm optimizer 19:51:10 how's it work? 19:51:23 er, optimizing assembler 19:51:39 ah. reordering instructions? 19:52:00 it rearranges instructions, removes redundant instructions, etc 19:52:42 if you combine it with a disassembler maybe you could make a program optimizer. then you just feed it programs and it outputs a faster version :) 19:52:54 it will allow crush to output sloppy code which is easy to generate 19:53:28 thats not possible 19:54:09 well its possible if the dissamler adds labels 19:55:17 --- quit: Zenton (Read error: 110 (Connection timed out)) 19:57:05 --- join: Zenton (~vicente@8.Red-80-34-35.pooles.rima-tde.net) joined #osdev 19:58:18 --- quit: Zenton (Remote closed the connection) 19:59:19 --- quit: SLACKo () 20:02:46 ugh 20:02:51 this is taking forever 20:03:14 crush can now identify defun's and compile the function body 20:03:41 just gotta get the database working so it can register function names+interfaces 20:22:46 --- nick: eks[lug] -> eks 20:29:10 --- quit: eks ("Zzzz") 20:32:06 --- quit: I440r (": sleep bed go tuck light off ; immediate") 20:40:26 --- quit: trans (Read error: 110 (Connection timed out)) 21:02:17 --- quit: Lary (Read error: 104 (Connection reset by peer)) 21:02:18 --- join: MyLar (~Larman@adsl-63-203-72-150.dsl.snfc21.pacbell.net) joined #osdev 21:11:53 --- quit: zephir ("Vision[0.8.6-0421]: i've been blurred!") 21:26:07 --- quit: kjs3-- (Read error: 110 (Connection timed out)) 21:46:19 --- join: trans (~trans@a2a02274.intergate.bconnected.net) joined #osdev 21:47:06 --- join: osmaker (~Bersirc@evrtwa1-ar13-4-62-064-065.evrtwa1.dsl-verizon.net) joined #osdev 21:58:38 holy (@*&#@* it works!! 21:58:53 woo hoo! 22:03:23 what works? 22:06:58 hello!! 22:09:05 :D 22:09:15 whats up? 22:09:16 i can divide a byte by 10 without using div :D 22:09:34 oh 22:09:59 how? 22:10:20 im converting it to asm now, i'll post it on my page when it's done 22:10:31 it's just shifts and adds 22:10:38 oh 22:11:06 do you gain anything by it? 22:11:28 whenever u want to output or save something as decimal :) 22:11:44 why not divide? 22:11:59 divide's kinda slow me thinks 22:12:04 oh 22:12:25 hopefully this'll be faster. i gotta do some testing 22:18:34 is it true that the first (NULL) descriptor in the GDT can be used as a pointer to the GDT itself? 22:19:58 hmm i don't think this is going to be faster ;\ 22:20:43 some people choose to use the first descriptor in the GDT for that purpose. it saves space. the first descriptor can't be used by any selectors, so rather than leave it blank.. 22:21:31 hmm... and it won't mess up anything right? it's not "Intel reserved"? 22:21:37 nope 22:23:40 nite people 22:23:42 --- quit: mrd_ () 22:23:45 night mrd 22:24:22 --- nick: osmaker -> osmaker|brb 22:33:38 --- join: corsairk8 (~localhost@pc-62-30-121-110-cr.blueyonder.co.uk) joined #osdev 22:37:50 --- join: izik-sleep (~izik@212.199.191.25) joined #osdev 22:39:52 --- join: Juk (ammu@baana-62-165-189-112.phnet.fi) joined #osdev 22:40:30 murr! 22:45:07 --- nick: osmaker|brb -> osmaker 22:45:17 hi Juk 22:46:20 yay 22:46:27 3 different nicks on 3 different networks 22:46:28 :) 22:47:17 --- nick: Juk -> juu 22:47:25 blah, i need some standards 22:48:54 --- join: rob_ert (~robert@h237n2fls31o965.telia.com) joined #osdev 22:49:46 --- join: nbsp (g@ip68-14-60-7.no.no.cox.net) joined #osdev 22:54:44 --- quit: corsairk8 () 22:57:14 --- nick: osmaker -> osmaker|brb 22:58:07 --- quit: izik-sleep ("BitchX: don't leave home without it!") 22:58:44 Juu: What about something like 'Gaylord'? 22:58:53 Hoi, Rico! 22:59:02 Hoe gaat het? ;D 22:59:14 Rico sorry, it might suite you but i am not like you 22:59:15 Hoi, rob_ert! 22:59:20 rob_ert hey 22:59:21 Het gaat goed. 22:59:21 --- join: izik (~izik@212.199.191.25) joined #osdev 22:59:24 Heyhey juu 22:59:27 Rico: :D 22:59:30 wb izik 22:59:34 izik 22:59:34 thnks :) 22:59:36 Wat ga jij vandaag doen? 23:00:03 Juu: Okay, then you can be 'Gayslave'. 23:00:12 That suits you better 23:00:13 Rico i said it might suite you 23:00:23 Rico you try 23:00:31 --- nick: Rico -> Gaylord 23:00:32 Rico: Niks, nur..uh...schule. 23:00:41 wow 23:00:45 it's like made for you 23:00:50 * Gaylord grabs Juu (aka Gayslave) from behind 23:00:51 juu: Now be "gayslave' :D 23:00:51 how come you dind't invent tha before 23:00:52 :) 23:01:05 rob_ert i'll let that for you 23:01:13 Nah, you go. 23:01:16 *** Juu is now knows as Gayslave 23:01:26 --- nick: juu -> `Murr 23:01:29 <`Murr> hah :) 23:01:38 <`Murr> rob_ert your turn to change nick ;) 23:01:45 * Gaylord wanks all hiv love puddin' over `Murr 23:02:00 --- nick: Gaylord -> Juu 23:02:04 thanks 23:02:12 <`Murr> change nick ro i'll kick you out fomnet 23:02:16 <`Murr> from the opn 23:02:21 I AM A GAYSLAVE!!! 23:02:23 --- nick: Juu -> Rico 23:02:46 Heh... 23:02:47 I'll hold that part in my quote db :D 23:03:07 I think I'll go to school instead, there I feel safer than #osdev :) 23:03:08 gtg now 23:03:08 bye 23:03:11 bye Rico 23:03:16 bye 23:03:20 byebyebyebyebye 23:03:21 --- nick: `Murr -> juu 23:03:30 Murr murr! 23:03:33 * rob_ert leaves. 23:03:39 Damn you Juu, you're also in #java 23:04:05 :) 23:04:20 cya rob_ert 23:11:03 --- nick: juu -> mur 23:14:47 Rico it looks pretty interesting ther, doesn't it? 23:14:48 :) 23:25:08 it does? 23:43:15 --- quit: osmaker|brb (Read error: 110 (Connection timed out)) 23:59:59 --- log: ended osdev/02.05.16