Re: New DOS-Interpretable formats...
- Posted by PQ <quistnet at HOTMAIL.COM> Jul 31, 2000
- 406 views
----- Original Message ----- From: Kat <gertie at PELL.NET> To: <EUPHORIA at LISTSERV.MUOHIO.EDU> Sent: Sunday, July 30, 2000 7:30 PM Subject: Re: New DOS-Interpretable formats... > <klaxon horn> Inexperience alert ! > > Don't restrict programmers if you don't *need* to, look at what we haveto live with from > micro$oft because of hard-coded limitations: 2^16 resources, 2^16 socks ports, limited > hardware ports, limited interrupts, hd designations limited to 24, the infamous 640K > barrier is alive and well, 64K page limits in VB, hd size limits, time limits (remember > Y2K?), etc.. Personally, i have written code with thousands of integers, in an industrial > monitor. Since we cannot do function overloading, it's possible someone may want to > write more than 256 procedures too. Ditto for functions. What if they wanna write a > whole new OS on dos to replace the windoze gui? > As for the byte being faster to test than the 16bit word or a 32bit word, if the "compiler" > is smart, it would use the appropriate machine code and speed would not be an issue, > since the comparison is done in hardware in the cpu, and the memory access speed > for anything up to 32bits is identical ever since the 486. Even if Eu uses 32bits to store > 8bits, you are talking about only one more memory access, and that's prolly from the > cpu's onboard cache, so i'll accept that 5ns speed drop to get 256x or 2^24x more > than your proposed 8bit limit any day. Hmm, good point... I should have a lot of comment on this, but after a little research I found that Euphoria can handle A LOT so I will thank you for this attack. 32Bits Enough? But don't cheer yet, I really got some comment on your next questions... > > What RWL2 does? > > > > As you can see in the ASM sources there are some things to process > > by the compiler, there are Procedure names and Argument names. > > So what the compiler does is: > > - Procedure names (Max. 8Bytes) > > <confused mode> Errrrrr..... 8 BYTES now? i thought it was 8 BITS ? You could be confused if you mistake RWL2 for MTCL. The RWL2 project, which started earlier, is a DLL-Kind-of-file. I gave the procnames a limit of 8Bytes just sort-of random, I could have used a 0-terminated string, but I didn't think of that at that time. Dll-files contain in their binary-state the proc&func names, an executive file does not.(Except for EU-exec files) > Have you been able to lock the called procedures so any form of multitasking doesn't > grab the cpu and re-enter the procedure? Or inadvertently share the vars? Since your > proposed code could be used to enable multithreading with shared libs, have you > decided on implementing the task swapping in Eu too? <intrigued now> That would be > great, imo. You're getting more and more complicated, aren't you... 1st part of my thoughts about this: Use a flexible taskmanager which executes listed procedures one-by-one in a loop, you put the MTCL-Interpreter in the taskmanager. 2nd: MTCL-Interpreter works with local taskmanager, it records information about where and with what it was working the last time it changed to the next task. But I do have to ask myself when I want to switch tasks, the easiest seems just every instruction, but the inline-asm will be seen as one instruction... The more complicated way would be with Interrupts, but yes, how in the world do you know where you were with asm-mach. Another thing with asm-mach would be seperating the instructions or emulating them, but that's really slow and don't deny this. Ooh, and yeah those shared libs, you mean RWL2? Those are completely written in asm-mach, so the same problem. (I also have to speed up the call_rwl() codes, it even causes sometimes a 0.1 second delay) About the vars... -- With Args, With Ret Routine1 calls Routine2: Preset current vars to vars of Routine1 Routine2: Leave current vars -- Without Args, With Ret Routine1 calls Routine2: Reset current vars Routine2: Leave current vars -- Without Args, Without Ret Routine1 calls Routine2: Reset current vars Routine2: Reset current vars -- With Args, Without Ret Routine1 calls Routine2: Pre-Set current vars to vars of Routine1 Routine2: Reset current vars I want to ask you to not put your oppinion, about me after this, right ahead on the table. I'm not always as inventive or smart as other times. For example: I added a couple of days ago some sort of security and virus-protection to a taskmanager. Sometimes I think I did a brilliant thing, the other time I'm thinking about on how idiotic I can be with programming. The OS-Shell is at the moment entirely fixed-positioned, while the taskmanager is as flexible as can be. That's why I chose first for the RWL2-Libs, where I found that this wasn't enough I started thinking about the MTCL. > <daydreaming mode> Making windoze socks work in dos5.x+/7.x+, being able to > dynamically control thread priority, their interrupts, and all the other vars of the task > swapper, and have the source code for it in Eu.... <glazed look in eyes> Rewrite Dos with your own knowledge and you will get there, I'm not kidding... You can do anything if you have the strength to write it and do a lot of research on it. Thanks, PQ