Support Home Sales Website Technology Contact Us
RDP Support  


RDPWin KB Booking Engine - IRM.Net RDPWin4 & PCI Compliance Search

Memory, DGroup, Stack - How RDP programs allocate conventional memory

Added 08/14/02
Article ID#: K000059


RDP-DOS requires 530 Kb of the total 640 Kb of conventional memory on a workstation to run.  Various RDP programs require different amounts of memory.  From almost any prompt within RDP-DOS, Alt + F9 will display the current state of memory.  This display will change from program to program and even from prompt to prompt within a program depending on the data being stored at that point in time.  There are four memory categories displayed with Alt + F9.  These numbers are all reset once a new EXE is started.  The example below is taken from RDPMenu.  The categories are:

Mem = 360816.  This is the number of bytes of conventional memory still available.  The consumed memory contains the program and all associated data.

DGroup
= 36144.  DGroup holds the data in a program.  For example, in the code of RDPMenu there might be 4 lines
Row=10
BalanceDue=200.33
GuestName="Smith/Bob"

These data for these variables would reduce DGroup by a certain number of bytes depending on the data.  There is a finite amount of space for data after which an "Internal Error" can occur or the program may hang.

Low Stack
= 4226.  Low stack is a "low water mark" for Stack.  As a user progresses through a program, Stack space is used and released.  This number represents the lowest amount of stack that was hit someplace in the program.  For example, F5-Look is a subroutine that uses a lot of stack.  If you go into F5 and list various things out, stack will decrease.  When you exit out of F5, the stack space used by F5 is released, however this number will show you how low stack went during that process.  Low Stack = Current Stack - DGroup.

Current Stack
= 40370.  Stack space is temporary data storage that is used when a subroutine is called and generates local data.  So stack space decreases as the subroutine increases it's data requirements.  When the program exits from the subroutine, all data local to that subroutine is released, so stack will once again increase.  This is always the current amount of available Stack space.

Prior to Rev. 220, the look routine was using stack space for every level of Look and never releasing it when it was done.  As a result, there were parts of the system that wouldn't work after F5 or F3 were used.  The current release now allows this Stack memory to be released and reused for other purposes within the program.

 

Notice that the Memory available in RDP100Y is significantly less than in RDPMenu.  RDP100Y has a lot more code and stores more data such as rates and reservation information.  RDPMenu is a simple display program only holding 1 menu record in memory at a time to display.

Support Home  RDPWin4 & PCI Compliance Enhancement Requests Open A Web Support Ticket
Training New Sales Website Old Sales Website Contact Us

 Facebook     Twitter      LinkedIn   TODF