You are here: Development Standards > OSAS Standards > Program Structure > Specific Program Models

# Specific Program Models

Data Entry Model and Inquiry Model

Below is a description of the groups of code used in data entry programs.

Any group of code not listed below is defined in the general program model above. These programs are intensely interactive and must always use GENINPUT and GENERROR.

0400-0898 | Extra initialization section
1000-3999 | Data display, cursor positioning, data dentry, edit, and verify logic
4000-4999 | Write data to file, program control, chaining, and/or Approve/Proceed logic
5000-5999 | Subroutines for the program
6000-6299 | GENINPUT routine
7500-7999 | Print screen routine
8300-8399 | GENOPEN routine
8400-8460 | GENERROR routine
9000-9199 | GENDATE routine when needed
9200-9299 | Delete record section
9300-9399 | GENLOCK routine never used
10000-10099 | GENNUM routine
10100-10299 | GENPHONE routine
18800-18950 | GUI GENxxxxxx routines

Pick Screen Model

Below is a description of groups of code used in pick programs.

Any group of code not listed below is defined in the general program model above. These programs are intensely interactive and must always use GENINPUT and GENERROR.

0400-0898 | Extra initialization area
1000-2999 | Selection data display, entry, edit, and verify logic
3000-3999 | Prepare for next program, call to GENOUT.PUB, mount form message, and/or forms alignment logic
4000-4999 | Initialize report variables as needed and run print/post overlay program
5000-5999 | Subroutines for the program
6000-6199 | GENINPUT routine
6300-6399 | Retrieve repot pick screen defaults
6400-6499 | Prompt for default picks to load by the user
7500-7999 | Print screen routine
8300-8399 | GENOPEN routine
8400-8499 | GENERROR routine
9000-9199 | GENDATE routine when needed
9300-9399 | GENLOCK routine never used
10000-10099 | GENNUM routine
17500-17899 | Print GUI screen routines
18800-18950 | GUI GENxxxxxx routines

Report Printing Model

Below is a description of groups of code used in report printing programs. This program is always preceded by a pick screen program.

Any group of code not listed below is defined in the general program model above.

0400-0898 | Extra initialization area
1000-1999 | Sort routine if needed or alternate key assignment section
2000-2999 | Main print loop (read file, format information, and print)
3000-3999 | Print control (determine when to print break totals and headings)
4000-4999 | Used as needed
5000-5999 | Used as needed
6000-6999 | End of File routine (print grand totals and/or End of Report just before the final form feed)
7000-7999 | Print page headings
8000-8999 | Used as needed
9000-9299 | Used as needed
9300-9799 | GENLOCK routine is installed
10000-10099 | GENNUM routine
10100-10299 | GENPHONE routine

Combined Pick Screen and Report Printing Model

Below is a description of groups of code used in programs that perform both pick screen and report printing functions.

Any group of code not listed below is defined in the general program model above. These programs use GENERROR during the pick phase, but switch to GENLOCK for the printing phase.

0400-0898 | Extra initialization area
1000-2999 | Pick screen data entry
3000-3799 | Report initialization
3800-3999 | Select output destination
4000-4999 | Resolve ranges
5000-5999 | Print logic (including SETESC 9350, SETETRR GENLOCK) and end of file routine
6000-6300 | GENINPUT routine
7000-7499 | Print page headings
8300-8399 | GENOPEN routine
8400-8499 | GENERROR routine
9000-9199 | GENDATE routine when needed
9300-9399 | GENLOCK routine
10000-10099 | GENNUM routine
10100-10299 | GENPHONE routine
18800-18950 | GUI GENxxxxxx routines

Posting Model

Below is a description of groups of code used in posting programs. This program type is always preceded by a pick screen program.

Any group of code not listed below is defined in the general program model above.

0400-0898 | Extra initialization area
1000-1999 | Sort routine if needed or alternate key assignment section
2000-2999 | Main post loop (read files, format information, and write to other files)
3000-3999 | Additional processing logic if needed
4000-4999 | Program control statements (determine when to exit or start next process)
5000-6999 | Used as needed
7000-7999 | Print page headings
8000-8999 | Used as needed
9000-9299 | Used as needed
9300-9799 | GENLOCK routine is installed
10000-10099 | GENNUM routine if a log is produced

Horizontal Line Entry Initialization Model (?????INI)

Below is a description of groups of code used in horizontal line entry (HLE) initialization programs. This program type is always followed by an HLE control

program.

Any group of code not listed below is defined in the general program model above.

0400-0898 | Extra initialization area
100-5999 | Variable initialization, sort file creation (if required), and header field entry
7500-7999 | Print screen routine
10000-10099 | GENNUM routine
17500-17899 | Print GUI screen routines
18000-18550 | GUI procedures
18800-18950 | GUI GENxxxxxx routines

Horizontal Line Entry Line Item Entry Model (?????LN?)

The groups of code used in horizontal line entry (HLE) control programs are similar to the standard data entry model. This program type always follows an HLE control program. This program controls the editing of line items and returns to the control program.

Horizontal Line Entry Control Model (?????CON)

Below is a description of groups of code used in horizontal line entry (HLE) control programs. This program type may follow an initialization program or may be run directly from the menu. This program controls all line commands and may also control header and/or line item entry.

Any group of code not listed below is defined in the general program model above.

0400-0898 | Extra initialization area
1000-1099 | Startup and Abandon logic
1400-1549 | Variable initialization for HLE
1550-1799 | HLE Command display and control
1800-2399 | Edit key processing (Up, Down, Page Up, Page Down, Home, and End)
2400-2699 | HLE screen display and HLE line build
2700-2999 | Get last line number routine and go to line number routine
3000-3499 | Startup and header logic
3500-3599 | Append line logic
3600-3899 | Edit line and line item entry logic
3900-3999 | File write logic
4000-4999 | Insert line and delete line logic
5000-5999 | Routine-specific code (including scratch file preparation logic, if necessary)
6000-6999 | GENINPUT and GENLINE
7500-7999 | Screen display
8000-9899 | Used as needed
10000-10099 | GENNUM routine
17500-17899 | Print GUI screen routines
18000-18550 | GUI procedures
18800-18950 | GUI GENxxxxxx routines