How does it handle the screen? Using *curses? (That's what our portable CRT unit does.)
Only under Linux (and/or BSD in the future), but not very succesfully. (it doesn't work fully over non linux telnet.
- TViews contains only two short assembler procedures. Firstthat and ForEach. I checked both, and think I can make pascal versions, except for one thing. Before calling the procedures that are parameters of these two (firstthat and foreach), the asm routine pushes the (%ebp) (which is afaik the ebp of the caller, to access the callers variables????). I don't know how to do that in pascal, but it is only one or two assembler statements)
GPC can handle this in Pascal. This is a feature of ISO 7185 Standard Pascal which Borland left out.
Just pass a local procedure as a parameter to `ForEach', and call it from there. GPC will ensure that the local procedure can access its parent's local variables.
Won't this cause typing violation?
I didn't. I never had anything todo with TV beyond the interface level.
I again urge you to NOT to spent to much work on it.
On what?
On porting LvB's code. Wait for the initial FPC version. We are merging what was our own code from the old version and rest of LvB's code.
This will effectively mean a separation of OS-dependant from independant code, and also do this in the same way as FPC, which keeps the packages compatible.
You don't have to follow this, I just encourage you to look at the API design and e.g. drivers unit, and mail your opinion.
This way GPC and FPC can still implement the OSdependant code differently if necessary (e.g. like on go32v2, where we don't want ncurses based).
It justs sets an interface between dependant and independant code.
Making FV platform independant has been done before by FPC, and it would be double work. I'm sure there is a solution without too much ugly code. I don't know how far the assembler can be eliminated, but a lot of assembler
This sentence is not
:-)
A lot of assembler can be eliminated. Even some more on GPC probably because of the %ebp thing in pascal.
Check e.g. API's callspec unit, for some things like that.
With GPC, you can eliminate _100%_ of the assembler code and write everything in Pascal. The worst thing which can happen is that we need C wrappers in order to use some system libraries in a portable way. (This is necessary as long as we do not have a c2p translator with 100% automatic translation.)
The main assembler things which I fear for are things like the %ebp stuff, not the OS dependant parts. (so calling methods from a different object in this one etc)
(if you sufficiently wrapped the extender on go32v2)
Marco van de Voort (MarcoV@Stack.nl) http://www.stack.nl/~marcov/xtdlib.htm