It has been commented on that your questions could be asnwered better by the Labcenter company that sells Proteus.
You do however raise an issue encountered but many PIC users. That is the Read-Modify-Write (RMW) problem on output bits using the bit set and clear opcodes. Most older 8-bit PIC16F controllers have this issue.
It has been addressed on the ...
Sorry to point this out, but it seems that you are using the Matlab notation and have not even looked at the Scilab language reference, still,
A=[-1 -2;42 -0.9]
Everyone has their own preferred simulation tool depending on what their background is and what they are simulating most often. You can get Almost all simulation tools to simulate any circuit(within reason) some just are a little easier in some scenarios. I would suggest you look at what simulation software the people around you or the people that you are ...
The original SPICE program was written in Fortran and thus really only wanted to see uppercase letters inside the model lines ... and I recall PSPICE allowed net names to be a mix of upper and lowercase letters, which was quite handy.
PSPICE has some advanced models, but most of the ones you will find for discretes are 'low-tech' models and thus no issue in ...
I think CircuitLab doesn't simulate the power draw by the opamp (neither for the output, nor for the quiescent current needed by the IC innards).
The reason for this, I guess, is that LM324 is a jellybean part, made by a handful of manufacturers, so if you truly want to simulate, you would need to specify exact part number and manufacturer, not just "LM324"....
As multiple commenters suggested, because ram_dat is inout, it can (but must not) be driven at the same time by your module and the system instantiating your module.
Make sure you understand how your protocol guarantees absence of multiple drivers (by switching to Z when not in the "driving seat"), and verify that both "outside" and "inside" of the module ...