00:00:00 --- log: started forth/04.12.23 00:32:48 --- join: raystm22 (~color4th@adsl-68-95-248-153.dsl.rcsntx.swbell.net) joined #forth 01:24:42 * Serg_penguin just scanned a couple of articles on view cameras ;) 01:25:04 What's a view camera? 01:25:55 big box w/ bellows and black cloth, capable of lens/film tilt and shift, focused by groung glass 01:26:19 Linhof< Sinar, Toyo etc.. 01:26:43 I see 01:27:14 Do they use photosensitive glass plates? 01:27:37 Or some kind of large format cellulose film? 01:28:24 whatever you load, even cheap b/w paper or polaroid, in homemade toy ones 01:28:41 Cool 01:28:47 Do you have your own darkroom? 01:29:00 almost A5 film is sold in my favorite pro+commission store 01:29:10 no ;( 01:29:32 I used to be into film photography years ago 01:29:50 i dream to build such a camera out of wrecky vintage 6x9 folding cams - but i'm hell no good metalworker 01:29:57 I have a 35mm B&W enlarger and stuff in the loft somewhere 01:30:19 enlarger -> scanner ;)) 01:30:49 I actually have a 35mm film scanner too :) 01:31:29 Unfortunately it only works with a really crappy Windows scanning program :( 01:31:46 use 3D party - VUEScan etc... 01:31:51 You have to manually balance the colours on every frame you scan in 01:32:00 That costs money... ;) 01:32:21 here any soft costs 2.6$ at black market ;)) 01:32:37 Hmm... 01:37:05 Serg_penguin that much? 01:37:06 :) 01:37:43 from where you are? 01:41:30 Moscow, Russia 01:42:23 this is a printed CD price, if u borrow from friends - blank CD-R costs 0.3-0.7$ 01:42:32 all soft sold cracked 01:43:09 Is it true that Moscow has hundreds of miles of tunnels and abandoned bomb shelters and stuff like that under it? 01:44:09 Serg_penguin here even if you buy a burned cd it will cost you just 1$ 01:44:20 of course just the blank if a friend already has it :) 01:46:16 any caves are closed anyway 01:46:36 only some bomb shelters were planned to be rented for shops etc. 01:46:52 Right 01:46:54 and nothing is abandoned ;)) 01:47:44 districts built shortly after wartime, do have shelters for all population 01:47:52 newer - seemingly not 01:48:53 i would love to live in an underground bunker 01:49:13 or in a subway tunnel 01:49:18 * bbls loves subways and trains 01:50:13 I'd like to live in an underground house too. I have some books about how to build them. 01:51:07 If you dig into a South facing hillside, you can have one wall which lets light in without losing the heat insulation benefits of building underground. 01:51:07 you sheltered house? 01:51:12 or underground one? 01:51:28 Sheltered 01:51:30 well, i meant literarly underground 01:51:42 and really deep 01:51:49 something close to subway line depth 01:51:55 That would be interesting too 01:51:58 and bomb proof :) 01:52:04 But perhaps less practical 01:52:14 why do you mean practical? 01:52:34 Building deep underground would be very difficult and expensive 01:52:46 yes, indeed 01:52:57 but yet i would preffer it if i would have the money 01:53:08 i do like artificial light :) 01:53:35 I read about a guy who bought an old submarine, turned it into a house, and buried it. 01:53:48 smart guy :") 01:53:52 but how deep? 01:53:58 Not very. 01:54:10 But it would still make a really good bomb shelter. 01:54:43 especially since it's made from steel 01:55:45 Hermetically sealed, designed to take lots of overpressure, has its own life support systems. 01:57:36 oh, that'e even better 01:57:49 i alwasy tought about introducing a quarantine system 01:58:19 this all sucks 01:58:23 everyone wanting to enter the shelter would have to stay for 40 days into a bilogically/chemically sealed root 01:58:34 *room 01:59:34 That would be handy for door-to-door salesmen and Jehova's Witnesses... 01:59:44 i would protect against hurricane/flood only 02:01:18 What about 'civil unrest'? Or packs of marauding zombies ;) 02:02:08 this is the main reason against longtime shelters and 'survivalism' 02:02:25 either run or take death easy 02:03:40 Serg_penguin i've tought about hurricane/flood too, and if it would be built on isolated heights then it wouldn't be affected by this 02:04:27 also i've tought about packing it with those us marines experimental sandwitches who can resist for years :) 02:05:13 Underground houses are inherently more hurricane resistant than above ground houses, but you really do have to choose your site carefully to protect against flooding. 02:05:36 that's why i speaked about heights 02:06:01 they also have to be isolated since if they are not, water might flow from the nearest higher hills/mountains 02:06:35 Yes, and the lie of the land matters too- making sure you're not in a natural water course etc. 02:09:33 anyway if you have the right money, it shouldn't be that difficult :) 02:09:47 but the thing that frightens me most 02:09:51 is remaining trapped there :) 02:10:04 imagine that the protected steel door 02:10:06 gets stuck 02:10:18 and i don't have any way of communication with the exterior :) 02:10:34 You need multiple escape routes. 02:10:59 no, that all sucks 02:11:02 yes, but more escape routes also means more entries => more vulnerabilities 02:11:17 so you have to get the right balance 02:12:30 why do u think the world is so hotile ? 02:12:42 because it is 02:12:43 Religion mainly 02:13:02 well think about this game 02:13:07 you roll the dices 02:13:15 if you get 1 1 then you dies 02:13:17 *die 02:13:24 otherwise you get multibilionaire 02:13:33 would you play the game? 02:13:47 * Serg_penguin lives happy w/ just crap plywood door 02:14:17 well, the ideea is that you shouldn't take a risky decision, that might have an unbearable outcome, even if it's small probability 02:14:23 since soon or later it will happen 02:15:00 so that's why i think that's better to protect against all those things, that for casual people look so unlikely to happen 02:15:11 but floods do happen, earthquakes do happen 02:15:24 so it's just a matter of time until you get affected too 02:15:32 Expect the unexpected 02:15:47 better: be prepaired for the unexpected too :) 02:15:52 but high security lowers usability of life ;)) 02:16:05 Serg_penguin depends on how you measure usability of life 02:16:33 i find a life in the front of a computer screen quite good :) so i don't mind if i live underground then :) 02:17:54 here in a big city we live in standard houses what are not suited for fortifying 02:17:56 I think a well designed sheltered house out in the country could be more pleasant to live in than an ordinary house in a town or city 02:18:17 hell no !!!! 02:19:37 holden i do like the city :) 02:19:41 i lived few days in countryside - i go crazy fast w/o city 02:19:59 Serg_penguin i used to live with my grandparents when i was a child 02:20:14 so i'm quite used with cows, sheeps and horses :) 02:20:48 It's a matter of taste 02:20:57 but probably i would build it in a city anyway 02:21:03 it gives a stronger sense of security 02:24:35 i even drawed some plans for it in a cad program :) 02:25:37 i once breathed the shit air trace of a cow - i nearly vomited and didn't know should i run back or ahead 02:25:53 it crossed my way 20-40 m ahead 02:25:55 haha :) 02:26:26 Aahh, the smell of the countryside ;) 02:26:34 cows are such terrifying creatures :) 03:01:04 i have a question 03:01:53 how often do forth words/functions return a variable number of values in stack 03:02:01 ? 03:17:41 never as far as i know 03:18:12 how ofthen do they take a variable number of values in the stack 03:18:13 ? 03:18:57 IF 2 3 ELSE 3 THEN 03:19:11 will push a variable number of values in the stack 03:19:31 hrmmm, well i don't really know 03:19:54 hmm 03:19:59 maybe when crc or I440r show up, they'll be able to say 03:20:07 ok, i'll do it so 03:42:37 ?dup 03:42:53 That's probably the most commonly used one. 03:43:32 hi robert ! 03:43:41 Hi :) 03:44:25 hi 03:48:59 Hrmmmm 03:49:16 Now the book I wanted to check out from the library is available. 03:49:26 ...15 minutes before they close for the weekend. 03:52:57 --- join: tgunr (~davec@vsat-148-65-228-91.c012.g4.mrt.starband.net) joined #forth 03:53:24 --- nick: tgunr -> tgunr2 04:13:27 --- nick: tgunr2 -> tgunr 04:28:01 --- nick: tgunr -> tgunr_ 04:29:48 --- nick: tgunr_ -> tgunr 04:37:33 --- quit: tathi ("leaving") 05:06:37 bbls, I often use variable return values. 05:07:12 I sometimes use them for error flagging 05:07:25 how you do that robert? 05:07:35 how do you know the number of returned variables 05:07:39 if you get an error? 05:07:50 madgarden thx for info 05:08:29 Something like... 05:08:41 br 05:08:42 bbls, an example might be a word that polls for some data: 05:08:42 ( -- 0 | data -1 ) 05:09:58 Exactly. 05:10:24 (sorry, had to go and collect some electronics :) 05:14:01 I can't believe I'm seriously considering writing a BASIC interpreter 05:14:37 I need to put user-programmability into an embedded product I'm designing 05:14:53 Haha. 05:14:59 What's wrong with Forth? 05:15:03 And those "users" you speak of don't happen to be Forthers? 05:15:08 :) 05:15:09 Yes 05:15:21 RPN = hard for mere mortals to grasp 05:15:28 Support locals, and that takes care of most of the "unreadability" issues. 05:15:35 Hehe. 05:15:46 Just like common sense, right? 05:15:56 Yep 05:16:07 madgarden from an abstract point of view it's not really variable length output, it's rather unrolling a structured value into the stack 05:16:26 but i got your point 05:18:31 So then, you'd throw the variable-length data on the stack, with a cell count on top. 05:19:26 yes 05:19:43 but the length of the output is "fixed" 05:20:09 because there is possible to write a separate word 05:20:30 that would remove all values that where pace in stack by the previous word 05:21:02 if you couldn't create a such word, then the number of values placed in stack by the first word is really variable 05:34:23 Bah. There must be a language which is a. Easy for non-programmers to learn and understand (I don't think Forth counts); b. general purpose and reasonably powerful; c. small enough to fit in a few tens of KB of Flash and not take months of work for me to implement; d. not as dain bramaged as BASIC. 05:35:31 maybe some lisp variant? 05:35:53 or some basic with built in support for lists? 05:35:56 I don't know lisp. Is it easy to learn/understand? 05:36:01 well: 05:36:14 How advanced does it have to be? I don't think basic Forth is that hard. 05:36:23 Especially not if you implement locals. 05:36:33 2*3 + 7^2 -> (+ (* 2 3) (^ 2 7)) 05:37:16 but if you want it really easy, you could go with some pascal variant 05:37:21 bbls: I think non-programmers would probably scratch their heads at that. 05:37:23 maybe pascal with build in lists 05:37:47 I never really saw the attraction of Pascal 05:37:49 then you could have list3:= list1 & list2; etc 05:38:01 well, at least it's easy to understand 05:38:13 and it also provides basic structured programming 05:38:34 holden you never programmed in the TP and BP days? :) 05:38:54 You could always make a non-brain damaged version of BASIC. 05:38:55 Yes, I was forced to use Turbo Pascal in college 05:39:18 I may end up reinventing the wheel 05:39:34 Come up with a simple language optimized for the task in hand 05:41:01 What kind of people are going to use it? 05:41:09 Non-programming engineers? Cole miners? Penguins? 05:41:26 Coal* I guess 05:41:26 Many of them will be model aircraft pilots 05:41:44 This language is going in a programmable radio control transmitter 05:42:04 Cool. So at least people who know a little about technology 05:42:11 Yes 05:42:33 And there is a simpler graphical way to program the system for the too 05:43:02 Only the people who want to get under the hood and program it to do unusual things will need to access the programmnig language directly 05:43:42 holden what about an graphical language? 05:44:08 a data driven one would be very suitable to an iarcraft controller 05:44:17 I want it to be representable and editable in text format 05:44:21 ah 05:44:41 there should be a data driven text language around.. 05:45:19 It's a possibility 05:46:00 Most of the stuff it's doing is reading control inputs, doing some fancy transformations, and sending output positions to the transmitter 05:46:27 About 50 times a second 05:46:54 On a 60Mhz ARM processor 06:21:19 --- quit: Frek ("Client exiting") 06:21:19 --- quit: onetom (Read error: 104 (Connection reset by peer)) 06:25:42 --- quit: bbls (Read error: 110 (Connection timed out)) 06:38:59 --- join: onetom (~tom@cab.bio.u-szeged.hu) joined #forth 06:39:19 --- join: tathi (~josh@pcp01375108pcs.milfrd01.pa.comcast.net) joined #forth 06:42:50 --- join: fmacs (BenjaminMe@68.187.224.130) joined #forth 06:48:51 --- join: bbls (~bbls@80.97.121.133) joined #forth 06:49:05 hello 06:49:12 Hi 06:49:21 hi 06:51:53 --- quit: tathi ("leaving") 06:52:15 have you used joy? 06:54:02 Nope. 07:02:30 --- nick: bbls -> node 07:03:49 --- nick: node -> bbls 07:08:16 --- nick: bbls -> transit 07:10:18 --- nick: transit -> bbls 07:18:39 * Serg_penguin gonna buy ISO 1600 Film and shoot the xmas in the city 07:18:52 time to go, bye ! 07:18:54 bye 07:19:10 --- quit: Serg_penguin (Read error: 104 (Connection reset by peer)) 07:25:18 --- join: ASau (~user@83.102.133.66) joined #forth 07:26:09 holden, you could create a Forth vocabulary for compiling infix/prefix operations to Forth code. 07:27:08 In the simplest sense, it could behave like a sort of high-level ASM. 07:27:35 Then, the users have the option of using this new language as well as the Forth. 07:28:11 --- quit: tgunr (Remote closed the connection) 07:30:35 hmm, that's interesting 07:30:39 i'm reading a joy paper 07:30:51 and it says that any program could be built without zap 07:31:07 drop in forth 07:38:59 --- join: tgunr (~davec@vsat-148-65-228-91.c012.g4.mrt.starband.net) joined #forth 08:09:36 --- quit: bbls (Read error: 104 (Connection reset by peer)) 08:09:39 --- quit: swsch_ (tolkien.freenode.net irc.freenode.net) 08:16:52 --- join: swsch_ (~stefan@swsch.sustaining.supporter.pdpc) joined #forth 08:17:24 --- join: bbls (~bbls@80.97.121.133) joined #forth 08:18:44 is it possible in forth to execute a word, having a string that contains it's name? 08:19:03 something like 2 "dup" execute --> 2 2 08:20:16 ? 08:22:52 kind of, you have to get it's address 08:23:07 lemme see if i can find something on it 08:27:20 the address is fine then 08:30:51 Most implementations also have something like "parse". 08:30:57 Which takes a string and executes it. 08:31:03 oh, ok then 08:31:05 But that's of course slower. 08:31:21 If you CAN use 2 ' dup execute , do it. 08:31:27 slava told yesterday that it would be hard to implement quotation with actualy forth compiler 08:31:35 that they would need some redesign 08:31:38 (or, if you're in compulation mode: 2 ['] dup execute ) 08:32:04 I think he assumed that you'd be compiling the quoted code. 08:32:04 not when i'm in that mode :) 08:32:09 no 08:32:17 i need to execute an address or a string 08:33:31 OK, then that shouldn't be hard. Not sure how slow "parse" is in a good Forth. 08:34:17 You could probably make it 1% as fast as compiled code, or even faster if you use special techniques. 08:42:12 bbls, EVALUATE is pretty common. 08:43:03 ie. 08:43:07 1 s" dup" evaluate 08:43:33 Er, sorry, I used parse instead of eval/evaluate. 08:46:06 robert, I'm afraid that the punishment for such blasphemy is execution. 08:46:21 ' ROBERT EXECUTE 08:46:39 ;) 08:47:10 Perhaps 0 EXECUTE will make you feel better. 08:47:36 --- quit: Raystm2 ("User pushed the X - because it's Xtra, baby") 08:48:35 Heh, nah... I was about to type ' ROBERT EXECUTE but you beat me to it. 08:48:57 Well, it's such an obvious demonstration of non-funny Forth humor. :) 08:51:01 i need to execute either an address or a string 08:51:13 What do you mean non-funny? :P 08:51:46 bbls, that's what EVALUATE does... a string. EXECUTE uses an XT. 08:51:55 i wonder if it would be easy to hack a forth system 08:52:05 to recognize .[ and ]. 08:52:28 then anonynously define a word, let's say "anon0001" 08:52:38 that contains what's between .[ and ]. 08:52:47 then push in the stack the name/address of that word 08:53:00 this way we would get quotation in forth :) 08:53:44 Of course it can be done. 08:53:53 You have complete power to do what you want in Forth. 08:54:03 It's just a matter of figuring out how to do it. 08:54:08 :) 08:58:05 --- join: Astrobe (~astrobe@ARouen-106-2-2-82.w193-251.abo.wanadoo.fr) joined #forth 09:11:26 Hi, Astrobe 09:19:26 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 09:20:10 Hi 09:21:32 --- join: snowrichard (~richard@adsl-69-155-177-153.dsl.lgvwtx.swbell.net) joined #forth 09:21:58 Hi 09:24:33 --- quit: snowrichard (Client Quit) 09:25:26 Hi, robert 09:27:03 :) 09:27:10 For once I'm actually here. 09:27:46 robert :) 09:28:39 After our talk the other day I looked at my code, and suprisingly, 09:29:14 using for instance a < ( a b -- a fl ) looks better. 09:29:46 ( where fl is the boolean a Oh, OK. 09:31:39 I used "?" for that. 09:31:46 ? ( a b -- a flag ) 09:32:06 Where there are several flags, so that if, if etc. decides which one to check. 09:32:21 Simply because that's closer to the actual hardware. 09:32:45 but what is the tested relationship between a and b? 09:32:57 All of them. 09:33:09 That translates to a "cmp" or "sub" instruction. 09:33:28 Hmm... sign flag zero flag, carry flag ? 09:33:36 Yeah. 09:33:37 --- quit: tgunr (Remote closed the connection) 09:34:04 Mostly zero and carry flags are used, of course... but if one wanted (and depending on the CPU type), others could be implemented. 09:35:00 --- join: tgunr (~davec@vsat-148-65-228-91.c012.g4.mrt.starband.net) joined #forth 09:35:22 I see. BTW during my review I noticed that "-" was more frequent than "+" because of " - IF" sequences. 09:35:43 For comparing? 09:37:05 no, testing equality. 09:37:18 In reverse. 09:38:08 BL = NOT IF becomes BL - IF for instance. 09:38:12 That was what my "?" word did, except it didn't modify the second stack item. 09:40:09 And finally how kinds of "if" do you have? 09:42:09 if, <>if, if (but considering >=if and <=if too if it turns out they're useful) 10:00:22 Season greatings robert, and Bye. 10:00:25 --- part: Astrobe left #forth 10:01:19 --- join: Raystm2 (~Ray@adsl-68-95-248-153.dsl.rcsntx.swbell.net) joined #forth 10:46:10 Hey Ray 10:48:20 --- quit: holden (Ping timeout: 14400 seconds) 10:48:52 "The AN/FSQ-7 used 55,000 vacuum tubes, about 1/2 acre (2,000 m²) of floor space, weighted 275 tons and used up to three megawatts of power." 10:48:55 Wow. 10:49:10 :) 10:49:16 Imagine building a modern computer that large. 10:49:23 You'd crack anything in microseconds. ;) 10:49:36 i'm not sure if it's feasible 10:49:42 and such large computers do exist 10:49:54 3MW computers? Where? 10:49:58 NSA is the larger power consumer in virginia afaik 10:50:04 Hah. 10:50:21 I doubt they're THAT large. 10:50:26 But perhaps.. 10:51:07 "SAGE operator's terminal. The operator is selecting a target with the light gun. Not visible is the built-in ash tray." <-- haha. 10:51:07 i remember seeing something like pipes carrying tons of water to cool the computer in a rare tv documentary about nsa 10:51:12 Wow 10:51:50 Perhaps I should try to use larger passwords and crypto keys ;) 10:51:55 :)) 10:52:24 Or maybe I'll just avoid mailing my secret sabotage plans. 10:52:55 :) 10:54:23 Speaking of vacuum tube computers - the school library just got a copy of the book I ordered. :) 10:54:27 1953 high-tech 10:54:42 those books are interesting to read 10:54:51 i've read myself several vintage books 10:55:03 Yes, someone wrote that it contained a lot of tricks to reduce the number of gates. 10:55:14 where the main topic was whenever to use an os or write your own custom system :) 10:55:45 they are interesting since they give you new insights on how computers evolved 10:55:50 and how they will probably evolve 10:56:16 Oh, what about the latter? 10:56:31 the latter? 10:56:48 I wish more people would write their own systems 10:57:13 i don't, i would prevent me from feeling elite :) 10:57:16 *it 10:57:40 it wouldn't be such a pita if people had done it, and I could see source examples and good documentation on drivers 10:57:48 I mean, how do these old books tell you how computers will evove? 10:57:49 it's important to understand that they main problems of today are different 10:57:51 1337F0R7H 10:58:24 robert i remember seeing something about unbeliveble freq. of 100 mhz in 2000 10:58:30 If people wrote their own systems I doubt you'd need a ton of different drivers. 10:58:56 bbls: Hmm... In the rest of the world people had 100 MHz computers in '96. 10:59:15 this was a vintage book 10:59:20 predicting where we would go 10:59:26 Ah, so you didn't see it in 2000? 10:59:27 OK 10:59:29 I get you 10:59:30 :) 10:59:41 That's pretty cool. 10:59:50 we could not find one document on how to make a USB keyboard driver 11:00:08 Heh. 11:00:14 and apple's been shipping thier computers with only USB keyboards for what? 5 years 11:00:21 there must be at least a such document as long as there are usb keyboards :) 11:00:23 Typical. 11:00:37 There's a few huge specifications 11:00:42 USB and UHCI 11:01:05 but they are not at all geared towards what we want to do 11:01:07 maybe those few specifications have a little paragraph you skipped: the keyboard is going to emulate a PC keyboard controller :) 11:01:10 and sometimes they are inconsistant 11:01:27 they seem to be mostly geared towards telling you how to make hardware 11:01:28 (i'm just trolling here, i don't really know how it works) 11:02:03 Herkamire same with ATA specs 11:02:28 just that we have reasonable papers on that written by people who took time to read the original ATA docs :) 11:02:49 right 11:02:55 but there apears to be no such thing with ppc 11:03:08 ppc is a very undocumented architecture 11:03:29 geist from #osdev seems to be very knowledged on the subject 11:03:33 I could not find _one single_ open source OS for PPC that was not unix based 11:03:45 althrought he recommended me: if you want to learn it, better read linux kernel 11:04:11 Herkamire have you checked OpenFirmware? maybe it contains a keyboard driver that's used by most OS'es 11:04:44 I'm using OF's driver currently 11:04:45 it sucks 11:05:25 dunno, maybe other OS'es use it too 11:05:34 it's serviceable for a commandline interface in QWERTY but that is not at all what I'm going for 11:05:42 no, OSes don't use it 11:05:51 it's used for boot menus and that's it 11:05:57 ah 11:08:04 you can't do proper keybindings, you can't get keyups 11:08:41 try to contact an author of keyboard drivers for some open source os 11:10:25 and ask him to document it? 11:10:37 no, to give you a link 11:13:41 link to what? 11:13:54 to proper documentation 11:13:59 I don't think it exists 11:14:17 at least you would know from where to start reading 11:14:37 if it says: look on super-large-specification, at least you know from where to start 11:15:05 yeah, starting isn't the problem 11:15:09 the problem is it's a major pain 11:15:32 take a pain relief pill and dig into the specs.. :) 11:15:54 i can't imagine other way if you say that there is no other doc.. 11:16:05 maybe more people will make simple OSes for ppc once we document this stuff 11:19:43 yes, lack of docs is one major reasons why there are much less os'es for ppc 11:20:03 maybe it's only been done 4 times... but it really bothers me that none of those groups documented it 11:20:07 also another cause might be the fact that it has a lower market share :) 11:20:12 linux, two BSDs and newos 11:20:23 maybe others, but those are all open source oses for ppc 11:20:32 presumably all work with modern keyboards 11:20:34 try to look into drivers 11:21:01 tathi's been doing this mostly 11:21:17 and he has beet looking both at the linux sources, as well as the OHCI and USB specs 11:21:32 I've only talked to him and read a bit of the OHCI spec 11:22:22 I understand that there are considerably less people with macs... 11:22:46 and I'd be fine if there were proportionately less OSes. but there are _no_ small opensource oses for ppc 11:23:13 small, like retroforth, enth/flux, menuetos, colorforth,... there are tons for x86 11:25:58 I can think of 4 open source oses for x86 written in forth 11:26:21 Hi Herkamire: I wished I could :) 11:26:25 well, forth oses, anyway, perhaps much was written in asm 11:27:03 it's really easy to get started 11:27:07 the bios are very nice 11:27:20 it's just documentation 11:28:16 the bios provides info about the framebuffer (dimentions, depth, address) and stdin and stdout (from keyboard and displayed on the screen respectively) 11:28:57 well, storing the console font might take more memory than the forth system :) 11:29:35 you can also use the bios to open, read and write to/from disks (including HDs) 11:30:18 you don't need a console font if you use the BIOSes stdout 11:30:31 ah, anyway it was a joke :) 11:42:38 pygmy forth is for x86 and is essentially an OS. it just happens to boot ontop of DOS, but that's not absolutely necessary. 11:45:04 --- quit: tgunr (Read error: 54 (Connection reset by peer)) 11:47:31 I don't know much about it but it sounds like a lot of DOS programs are pretty much operating systems. 11:47:36 they include their own device drivers itc 11:47:37 etc 11:48:39 yes, this was quite common especially in dos games era :) 11:54:02 unfortunately computers are much more varied these days 12:04:27 if they would adhere to higher level interfaces 12:04:36 then we could have more compatible drivers 12:04:46 look for example at IDE drives 12:05:04 the ide interface is abstract enough to allow you to program a single driver 12:05:27 of course the functions of a video interface would be much more stuffed 12:05:37 but at least a common denominator should be found 12:34:29 --- join: qFox (C00K13S@82-169-140-229-mx.xdsl.tiscali.nl) joined #forth 12:36:14 --- quit: madgarden (Read error: 104 (Connection reset by peer)) 12:38:05 Hi 12:49:06 --- join: madgarden (~madgarden@Ottawa-HSE-ppp4082712.sympatico.ca) joined #forth 12:51:48 yeah, video drivers will probably be hell 12:51:57 and will probably only work with one brand 12:52:10 and only certain model(s) 13:25:01 where's a render farm when you need one? ;) 13:29:03 Herkamire, it's probably worth installing bochs or qemu and trying pygmy. it's basically based on ideas of cmForth but for 16-bit 8086. it has a nice forth-style assembler. and it quite complete. 13:29:28 the source code is also quite easy to read, imo. i don't even know forth that well and I understand most of the blocks I look at. 13:29:52 for $15 the author will give you shadow blocks with comments for every block. but it's probably not necesasry. 13:30:27 OrngeTide: I'd like to try it. 13:30:32 I have both qemu and bochs 13:30:32 a generic video driver is actually pretty easy if you are careful about what modes you want to use. 13:30:54 I thought pygme was for dos though... I don't know how to run a dos program with the emulators 13:31:51 i was working on a high res monochrome (1-bit) vga driver for my OS. but I got rid of my extra computer and bochs doesn't emulate video reliably enough for me to devel on that (infact almost any video timings will work correctly in bochs, even ones that totally fail on a real vga) 13:32:10 Herkamire, grab the freedos boot disk and copy pygmy onto it and point bochs at it. 13:32:42 ok. 13:32:45 how do I copy it? 13:33:03 mtools for linux... 13:34:50 nice! 13:35:13 mtools gives you thinks like mdir mcopy etc.. so you don't have to mount a fat image. 13:35:37 wish I knew about these the other day 13:35:48 I couldn't seem to make a pc-compatible floppy with some files on it for the life of me 13:40:56 yea. mtools comes with mformat which is the best way to format msdos floppies in linux. 13:41:08 mkfs.dos or whatever only does harddrives. 13:53:00 very cool 14:15:24 --- quit: bbls (Read error: 110 (Connection timed out)) 14:49:39 i wonder if linux still supports formatting floppies as 1.76Mb 14:51:06 --- join: swsch (~stefan@swsch.sustaining.supporter.pdpc) joined #forth 14:52:28 --- quit: swsch (Client Quit) 14:52:42 --- join: swsch (~stefan@p5091E565.dip.t-dialin.net) joined #forth 14:53:23 --- quit: swsch (Client Quit) 14:53:33 tweak16b.zip - handy guide on how to design your own tweaked vga modes. http://www.programmersheaven.com/zone16/cat109/1957.htm 14:53:33 --- join: swsch (~stefan@p5091E565.dip.t-dialin.net) joined #forth 14:53:57 although honestly, hitting vesa 2.0 bios gives you nicer video modes. 14:54:46 and if you run the code in protected mode you can catch exceptions for i/o port access and "record" what the bios is doing so you can at least initialize that model card without using the bios next time. 15:01:17 :) 15:07:23 --- quit: swsch_ (Read error: 110 (Connection timed out)) 15:17:37 --- part: swsch left #forth 15:24:43 --- quit: Teratogen ("SKYKING, SKYKING, DO NOT ANSWER.") 15:26:15 --- join: Topaz (jonny@spc1-horn1-6-0-cust217.cosh.broadband.ntl.com) joined #forth 15:33:14 hi all 15:36:35 hi crc :) 15:37:59 does anyone know the stack usage for/next ? 15:38:00 hi Herkamire 15:40:57 : foo 33 for 1 . next ; 15:41:00 The return stack is usually used for the counter. 15:41:14 So for is ( n -- ) and next is ( -- ) 15:41:26 r@ (or sometimes i) is used to get the counter. 15:42:18 trouble is the counter usually goes down 15:43:34 ok, thanks 15:43:43 * crc wanted to be sure he had that right 16:04:36 isn't the counter i j k and essentially a local ? 16:05:55 In the built-in loops in RetroForth, TOS is the counter :) 16:10:46 OrngeTide: what do you mean? 16:11:25 OrngeTide: generally i, j and k just pull data off whatever stack the loop data is on. (usually the return stack, although some forths have a controll stack I guess) 16:11:32 i j k refer to the first, second, and third elements of the return stack IIRC 16:12:10 first, third and fifth 16:12:13 presumably 16:12:18 hmm 16:12:30 why those? 16:12:31 according to ANS anyway, they are used with DO/LOOPs 16:12:54 do/loop take two stack elements? 16:12:59 which must store at least two cells to keep track of the current counter and the end 16:13:07 hmm 16:13:19 * crc never needs more than a simple counted loop 16:13:27 most people seem to implement for/next with just one counter, (just count down and stop when you get to zero) 16:23:41 pygmy forth + freedos disk image : http://orangetide.com/forth/pygmy.img.gz 16:23:53 --- quit: qFox (Read error: 104 (Connection reset by peer)) 16:24:51 Herkamire, ah. I generally avoid addressable stacks. my forth might be a little weird because of that. 16:25:00 i wonder how isforth does i,j,k 16:26:11 I'm sure isforth doesn't 16:26:18 anyways. i made a pygmy distro for you. amazingly i managed to put it together with bochs running over ssh using it's 'term' display option. I tried rfb/vnc but the vnc clients I have don't support bgr233 8-bit pixel format. 16:26:31 Herkamire, yea. I440r would probably not like i,j,k :P 16:26:43 I is plenty 16:26:53 code 'i',i 16:26:53 xor eax, eax ;calculate i from r stack [+ 0] and [+ 4] 16:26:53 .L0: 16:26:53 push ebx ;flush cached top of stack 16:26:53 lea eax, [eax+ebp] ;point eax at requested index/limit 16:26:54 mov ebx, [eax] ;get current index (fudged) 16:26:56 add ebx, [eax+4] ;defudge by adding in fudged limit 16:27:00 next 16:27:04 That's isforth's "i" 16:27:34 he also has j k 16:27:48 He likes bloatware! 16:27:53 J'accuse! 16:27:58 brb, connect-4 16:28:01 ehhe. 16:28:18 i can't find i in pygmy's src. I'm sure it's there someplace though. 16:28:49 --- quit: Topaz (Remote closed the connection) 16:28:51 I never particularly liked I 16:28:57 me either 16:29:02 CODE I ( - n) ( same as R@) BX PUSH, 0 [BP] BX MOV, NXT, END-CODE 16:29:13 no J or K though. 16:30:31 i like I 16:30:46 why is I better than R@ ? 16:31:03 * crc has "r" rather than "r@", but still... 16:31:05 crc, either I or R@ are fine. 16:31:27 i'm not as picky as you guys. 16:31:38 : i : r@ .... ; 16:32:17 OrngeTide: where can I get this pygmy distro? 16:32:21 pretty much. although I would let you implement I in an unusual way if your architecture prefers that. 16:32:38 like on x86 you could make I as CX since x86 looping constructs prefer CX 16:32:56 Herkamire, http://pygmy.utoh.org/forth.html 16:33:56 but that only makes sense if you want to make a very tricky native code generator. 16:35:04 obviously for the interpreter part of your forth I would be easily replaced with R@. 16:35:31 Actually multiple entry points are easy in RetroForth 16:35:36 * crc uses them often 16:35:37 yea? 16:35:53 dictionary headers are separate from compiled code 16:36:05 So I can nest definitions with little effort 16:36:25 macro : : create -5 allot ; 16:36:35 that's all that's needed :) 16:36:56 (the -5 allot removes the "call dovar" that create compiles in) 16:48:07 heh 17:16:06 --- join: TheBlueWizard (TheBlueWiz@modem-148.nyc-tc03b.FCC.NET) joined #forth 17:27:02 --- join: swsch_ (~stefan@swsch.sustaining.supporter.pdpc) joined #forth 17:27:46 * swsch_ is back (gone 00:00:29) 17:27:56 * swsch_ is back (gone 00:00:32) 17:28:08 * swsch_ is away: going ... going ... gone. 17:54:53 gotta go...bye all 17:55:07 --- part: TheBlueWizard left #forth 18:24:04 goodnight 18:25:55 Night 18:46:49 --- join: Corun (~Corun@cpc1-rdng3-5-0-cust247.winn.cable.ntl.com) joined #forth 18:47:55 Hi, I have a quick question. I have a vague understanding of forth and need to know what a particular script does. Anyone mind taking a look? 18:50:44 Sure. 18:50:51 Unless it's very long and complex 18:51:02 The script is a Boot Script for an Open Firmware Computer. URL: http://www.nomorepasting.com/paste.php?pasteID=27584 18:51:32 So, if there is something there that isn't in normal forth, it's probably part of open firmware and i can find out what that bit means 18:52:01 Forth is less standardized than most other languages. 18:52:18 load-base ? 18:53:01 I believe it's a variable. 18:53:10 or a constant.. .Or something like that 18:53:32 Do you know what are for? 18:53:38 Yes 18:53:47 What then? 18:54:00 I don't know anything of openfirmware, unfortunately. 18:54:02 Sigh, it's a bit complicated to explain 18:54:11 Hehe 18:55:09 I think the first section checks for and returns true if it's found 18:55:23 Ok, that's what i thought it might do 18:55:31 Otherwise it'll start something. 18:56:13 what does "move" do? 18:57:19 I don't know if there's any standard word called "move". 18:57:27 Can't you guess from the context? 18:57:34 Nope 18:57:39 It could just be moving some data block in memory. 18:59:30 ah: move ( adr1 adr2 u -- ) 18:59:40 Copy u bytes from adr1 to adr2, handle overlap properly. 18:59:52 :) 19:00:17 what do the two minuses on this line mean: load-size over load-base - - 19:01:34 Hmmm 19:01:53 The first subtracts load-base from xcoff-base 19:02:17 The second subtracts that value from load-size 19:02:28 And that gives xcoff-size 19:02:58 Code like that kind of makes you hate Forth and forth coders, right? 19:03:18 It doesn't make me hate forth coders 19:03:39 But it does make me glad i came to this channel to find out this stuff. It's weird :) 19:03:56 Probably would have taken me an hour to figure out 19:06:09 So... before the last line, what are the top 4 things in the stack (from most buried to the top :))? 19:14:19 Hmm 19:14:45 Only xcoff-base I think 19:15:59 Oh, ok 19:32:10 --- join: Purdue00 (YNIX@12-222-128-22.client.insightBB.com) joined #forth 19:35:14 --- quit: Raystm2 ("User pushed the X - because it's Xtra, baby") 20:34:29 --- quit: Corun (Read error: 110 (Connection timed out)) 23:13:05 --- quit: cmeme (Remote closed the connection) 23:14:46 --- join: cmeme (~cmeme@216.184.11.2) joined #forth 23:15:03 --- quit: cmeme (Remote closed the connection) 23:15:48 --- join: cmeme (~cmeme@216.184.11.2) joined #forth 23:34:19 --- join: bbls (~bbls@80.97.121.133) joined #forth 23:57:42 --- quit: Herkamire ("bed") 23:59:59 --- log: ended forth/04.12.23