Click here to Skip to main content
15,923,051 members

Welcome to the Lounge

   

For discussing anything related to a software developer's life but is not for programming questions. Got a programming question?

The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.

 
GeneralI'll give Disney this... Pin
OriginalGriff29-Aug-19 6:27
mveOriginalGriff29-Aug-19 6:27 
GeneralRe: I'll give Disney this... Pin
CodeWraith29-Aug-19 7:53
CodeWraith29-Aug-19 7:53 
GeneralRe: I'll give Disney this... Pin
Randor 29-Aug-19 9:28
professional Randor 29-Aug-19 9:28 
GeneralRe: I'll give Disney this... Pin
Rick York29-Aug-19 10:06
mveRick York29-Aug-19 10:06 
QuestionRe: I'll give Disney this... Pin
Randor 29-Aug-19 10:15
professional Randor 29-Aug-19 10:15 
AnswerRe: I'll give Disney this... Pin
Rick York29-Aug-19 14:35
mveRick York29-Aug-19 14:35 
GeneralRe: I'll give Disney this... Pin
Randor 29-Aug-19 15:25
professional Randor 29-Aug-19 15:25 
GeneralRe: I'll give Disney this... Pin
Rick York30-Aug-19 5:36
mveRick York30-Aug-19 5:36 
Yes, it does look a bit like Wonderware but ours had more 3D effects. Apparently they became aware of us because one year at SemiCon in San Francisco they saw my badge and wouldn't let me enter their booth. I felt like I had really arrived. Cool | :cool:

The language was a cross between C and FORTRAN with, as I used to say, the worst of both. It started out fully interpreted with a VM-type of design and then it morphed into a fully compiled-on-the-fly thing with native machine code generation when we heard concerns about its speed. It could be pre-compiled and loaded from a binary image also. It either called functions from DLLs that were mapped in or it executed an intrinsic operation like a computation or comparison. Everything was shared memory based and this was key to the whole system. We had the prototype definitions of all functions from the DLLs that were mapped in loaded into shared memory so it was like a pre-compiled header and it compiled very quickly. The script engine could be embedded and it was into three or four different process, including the operator interface. Every action in it like clicking a button could invoke a script function.

The shared memory part was very key. The whole system was based on it so you could access data anywhere. That forced things to be rather primitive in the sense that we could only have POD types in shared memory. There were what I called psuedo-pointers though which were actually offsets since pointers are useless outside of the owning process. Even the generated code was in shared memory and the script engine context was too. We started all of this in QNX but we became annoyed by the lack of driver support so we jumped into the Win32 world as soon as it was out and Windows NT when it was in beta. We also used Visual C++ version 1.0 with it. At that time, you could map into another process' memory space but you couldn't safely unmap from it. That was an important thing for us and meant everything had to go into shared memory. We wanted to be able to attach to a running process with the debugger, interact with it, and then detach from it so it could continue running.

The debugger was a pretty standard one for its time. It showed all of the script files used in the process and let you single step through the code, set break points, and all the standard stuff. You could also see the variables for current script function along with variables you selected to watch. This brings up one of the weakness of the design. Because everything had to be in shared memory for access by the debugger, the stack was too but it was a static stack like FORTRAN. This limited recursive functions but we never found a need to implement one so it wasn't a big deal. In retrospect, I could have made a big stack in shared memory and made the stack dynamic but I didn't think of it at the time. I was more concerned with mapping the symbols for the current function and it wasn't obvious to me how to do that dynamically then. It is now.

I mentioned QNX. We really liked its message passing, multi-processing architecture so we implemented that for Windows. With shared memory and a few synchronization events we were able to make a very fast message passing library. That made for a very flexible system architecture. We tried Windows 95 and found its context switch time to be too slow at more than ten times slower than NT so we stuck with NT. Both were out about the same time, at least in beta form. MSDN was really useful back then.

I keep writing we and that's because me and one other guy did all of this. It took about three years to get it all refined. We were very fortunate to get that much time.
"They have a consciousness, they have a life, they have a soul! Damn you! Let the rabbits wear glasses! Save our brothers! Can I get an amen?"

GeneralRe: I'll give Disney this... Pin
dandy7229-Aug-19 9:36
dandy7229-Aug-19 9:36 
GeneralRe: I'll give Disney this... Pin
ZurdoDev29-Aug-19 10:54
professionalZurdoDev29-Aug-19 10:54 
GeneralRe: I'll give Disney this... Pin
Mycroft Holmes29-Aug-19 13:45
professionalMycroft Holmes29-Aug-19 13:45 
GeneralRe: I'll give Disney this... Pin
CodeWraith29-Aug-19 23:26
CodeWraith29-Aug-19 23:26 
GeneralRe: I'll give Disney this... Pin
dandy7230-Aug-19 2:37
dandy7230-Aug-19 2:37 
GeneralRe: I'll give Disney this... Pin
Rage29-Aug-19 20:44
professionalRage29-Aug-19 20:44 
GeneralRe: I'll give Disney this... Pin
Rage29-Aug-19 21:38
professionalRage29-Aug-19 21:38 
GeneralRe: I'll give Disney this... Pin
glennPattonWork329-Aug-19 23:32
professionalglennPattonWork329-Aug-19 23:32 
GeneralSo ... the soapbox. Pin
OriginalGriff29-Aug-19 6:16
mveOriginalGriff29-Aug-19 6:16 
GeneralRe: So ... the soapbox. Pin
Tim Deveaux29-Aug-19 6:21
Tim Deveaux29-Aug-19 6:21 
GeneralRe: So ... the soapbox. Pin
dan!sh 29-Aug-19 6:24
professional dan!sh 29-Aug-19 6:24 
GeneralRe: So ... the soapbox. Pin
OriginalGriff29-Aug-19 6:28
mveOriginalGriff29-Aug-19 6:28 
GeneralRe: So ... the soapbox. Pin
dan!sh 29-Aug-19 6:35
professional dan!sh 29-Aug-19 6:35 
GeneralRe: So ... the soapbox. Pin
Slacker00729-Aug-19 6:33
professionalSlacker00729-Aug-19 6:33 
GeneralRe: So ... the soapbox. Pin
Daniel Pfeffer29-Aug-19 7:25
professionalDaniel Pfeffer29-Aug-19 7:25 
GeneralRe: So ... the soapbox. Pin
Slacker00729-Aug-19 7:35
professionalSlacker00729-Aug-19 7:35 
GeneralRe: So ... the soapbox. Pin
kmoorevs29-Aug-19 8:05
kmoorevs29-Aug-19 8:05 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.