Browse Prior Art Database

Information Display Technique for a Terminate Stay Resident Program

IP.com Disclosure Number: IPCOM000122409D
Original Publication Date: 1991-Dec-01
Included in the Prior Art Database: 2005-Apr-04
Document File: 3 page(s) / 91K

Publishing Venue

IBM

Related People

Cramer, KD: AUTHOR

Abstract

Described is a technique to display information on a screen using the Disk Operating System (DOS) Basic Input Output System (BIOS) routines which can be called from either the interrupt level or main program level.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 53% of the total text.

Information Display Technique for a Terminate Stay Resident Program

      Described is a technique to display information on a
screen using the Disk Operating System (DOS) Basic Input Output
System (BIOS) routines which can be called from either the interrupt
level or main program level.

      The technique uses a recursive queuing algorithm to allow non-
re-entrant BIOS routines to be called without losing data or holding
off hardware interrupts.

      A library of functions has been created to display information
to a display terminal which has overcome the problems of displaying
information on a screen without re-entering DOS or BIOS.  In
addition, the functions will allow data to be logged when the ability
to display it is restricted by DOS/BIOS rules, and the data will be
displayed in order at the next possible opportunity without data
loss.

      This utility has overcome the problem by using the following
technique.
1.  The BIOS routines are used to display information directly to the
screen.
2.  A set of callable functions can be used by an application program
to display time critical information on a display terminal.  It has
the unique ability to display information on the main program level
as well as the hardware interrupt level with a minimum time used to
disable hardware interrupts. A recursive queuing technique is used to
overcome re-entrancy problems.  This technique is de    scribed
below:
     Initialization:
     A memory storage pool is allocated at load time.
     DisplayinProgress = FALSE
     TimerCount = 0;
     Main() Logic:
     DI               (* Disable hardware interrupts *)
     Queue(input Data)
     EI               (* Enable hardware interrupts *)
     IF BIOS is busy THEN
        EXIT;
     ENDIF
     ProcessDisplay();
     Queue() Logic:
     IF no storage is left THEN
        The error out of memory, display data lost message is put on
the display queue.
     ELSE
         The input data is the put onto the display queue.
     ENDIF
     (* Main Display routine *)
     ProcessDisplay() Logic:
       IF DisplayinProgress THEN
          EXIT;                  (* Display is already in progress
          ENDIF                        queued data will be output at
previous level  *)
       DisplayinProgress = TRUE;
       WHILE NOT Empty()
         DEQUEUE(displaydata)
         CALL BIOS(displaydata)
       ENDWHILE
       DisplayinProgress = FALS...