FREE! Click here to Join FunTrivia. Thousands of games, quizzes, and lots more!
Quiz about Troubleshooting Programs on the IBM 360
Quiz about Troubleshooting Programs on the IBM 360

Troubleshooting Programs on the IBM 360 Quiz


Much of the information fed back to programmers in IBM S360 was quite cryptic. Programmers were required to be master detectives sometimes just to find out what went wrong. How would you have survived in this era?

A multiple-choice quiz by key_man. Estimated time: 6 mins.
  1. Home
  2. »
  3. Quizzes
  4. »
  5. Science Trivia
  6. »
  7. Computers
  8. »
  9. History of Computing

Author
key_man
Time
6 mins
Type
Multiple Choice
Quiz #
292,366
Updated
Dec 03 21
# Qns
10
Difficulty
Tough
Avg Score
6 / 10
Plays
355
Question 1 of 10
1. If you received an 0Cx exception code your program had failed. Which of the following was the fairly simple to fix "data exception" error? Hint


Question 2 of 10
2. Program runs which threw exceptions provided a dump which gave the exception code and the location in the machine memory where the error occurred. To locate the offending command you needed to use what information provided? Hint


Question 3 of 10
3. If someone told you that they thought your program would work if you changed from using QSAM to ISAM, what part of your programming were they asking you to change? Hint


Question 4 of 10
4. Programmers were responsible for dividing their programs into pieces of code that could fit in the physical memory of the particular machine.


Question 5 of 10
5. The IBM360 used EBCDIC character representation, using one byte to represent a letter or number. The EBCDIC character code was often shown as a two character Hexadecimal number. However, portions of dumps were provided in binary depictions of the bytes. Which of the following bit patterns represented the digit 1 in EBCDIC? Hint


Question 6 of 10
6. Even working with COBOL and other "high" level languages compilation process first interpretted these into "assembler code" which then compiled into executable code. When you received a dump, you often had to deal with the intermediary assembler interpretation of your program. What would you expect the result of XOR executed against a pair of bytes whose values were 0110 1001 and 1001 0110 to be? Hint


Question 7 of 10
7. When you received a "parity" error reading data from a tape, what would have been the first thing you normally did? Hint


Question 8 of 10
8. Before you could execute your program, you needed to get a "clean" compile. To avoid errors introduced keypunching what you had submitted on the source coding sheets, you normally requested that your coding sheets be "keypunched and __________"? Hint


Question 9 of 10
9. Another source of errors for the programmer was in the JCL (Job Control Language) deck created to wrap around your programs. This was where you called for specific tapes, defined which GDS to use, put various conditions on executing/bypassing steps within the job, what to do with errors, etc. If you incorrectly specified which GDS to use what might happen? Hint


Question 10 of 10
10. To find syntax (typos) problems in your JCL (Job Control Language) without actually running any programs or executing and JCL, you could add what parameter to the JOB Statement in your JCL deck? Hint



(Optional) Create a Free FunTrivia ID to save the points you are about to earn:

arrow Select a User ID:
arrow Choose a Password:
arrow Your Email:




Quiz Answer Key and Fun Facts
1. If you received an 0Cx exception code your program had failed. Which of the following was the fairly simple to fix "data exception" error?

Answer: 0C7

OC7 was a data exception, indicating you had likely attempted to perform mathematical operation on non-numeric data (or mis-matched data types in some other way). A related error was 0C8 which was thrown if you computed a value too large for the target storage location ("overflow exception"). The 0C5 ("addressing exception") or 0C4 ("protection exception") could result from careless address specification in Assembler programs; inattention to array index management or data linkage specifications in languages like FORTRAN or COBOL.

These exceptions ran the full gamut from 0C1 through 0CF were pronounced "oh-cee-x". The most ominous was the 0C3 ("oh-cee-three") which was defined as "execution exception error" generally indicating a serious flaw in program logic.
2. Program runs which threw exceptions provided a dump which gave the exception code and the location in the machine memory where the error occurred. To locate the offending command you needed to use what information provided?

Answer: BLL (Base Locator for Linkage) cell and Displacement

The BLL cells each held an address which allowed for relative indexing into memory locations. In your dump you were given which BLL cell to use to reach to the "offending" instruction and the relative "displacement" from the address given in the BLL cell at which to find the instruction.

A little quick math (adding the displacement to the address in the BLL cell) and you now could find the offending location in the dump. BTW, the other two terms (AAI and DIE) are fabrications.
3. If someone told you that they thought your program would work if you changed from using QSAM to ISAM, what part of your programming were they asking you to change?

Answer: data file access type

BSAM (Basic Sequential Access Method), QSAM (Queued Sequential Access Method), ISAM (Indexed Sequential Access Method), and HISAM (Hierarchical Indexed Sequential Access Method) were all methods of organizing data on storage medium (often magnetic tape, but also on hard drives). For tape stored data, it was a critical programmer responsibility to understand the data access patterns to ensure that enormous amounts of time were not spent physically repositioning (rewind/FF) to get to the next piece of data to be read. BDAM (Basic Direct Access Method) was used exclusively for data on hard drives.
4. Programmers were responsible for dividing their programs into pieces of code that could fit in the physical memory of the particular machine.

Answer: True

These were referred to as "overlays" and the programmer not only had to manage code to fit in a given overlay size (as little as 8K), but had to build into the program the logic to unload one overlay and load another keeping track of data/logic states. Code with the architecture to load/unload/re-load overlays while maintaining the integrity of operational logic/data was referred to as "re-entrant" code. By many, this was considered the ultimate skill of the senior programmer.
5. The IBM360 used EBCDIC character representation, using one byte to represent a letter or number. The EBCDIC character code was often shown as a two character Hexadecimal number. However, portions of dumps were provided in binary depictions of the bytes. Which of the following bit patterns represented the digit 1 in EBCDIC?

Answer: 1111 0001

In EBCDIC character codes hex F1 was 1, hex F2 was 2, etc. So, binary 1111 which is 15, would be F in hexadecimal and binary 0001 would be 1 in hexadecimal. So, 1111 0001 would be F1 which was EBCDIC coding for the digit 1.
6. Even working with COBOL and other "high" level languages compilation process first interpretted these into "assembler code" which then compiled into executable code. When you received a dump, you often had to deal with the intermediary assembler interpretation of your program. What would you expect the result of XOR executed against a pair of bytes whose values were 0110 1001 and 1001 0110 to be?

Answer: 1111 1111

The "exclusive OR" was a frequent command encountered in your dumps of "assembler" code for your high-level program. The result of XOR on two fields was a bit-by-bit comparison with the result being 1 ("true") only if one (but not both) of the bits was 1 ("true").
7. When you received a "parity" error reading data from a tape, what would have been the first thing you normally did?

Answer: Had the tape cleaned

The 9-track tapes used 8 tracks to record the 8 bits of each character stored and the 9th track was a parity bit. Often a spec of dirt could cause the data in a byte to be mis-read and this would mean the parity check would fail.
8. Before you could execute your program, you needed to get a "clean" compile. To avoid errors introduced keypunching what you had submitted on the source coding sheets, you normally requested that your coding sheets be "keypunched and __________"?

Answer: key-verified

Key-verifying involved giving the source coding sheets with the already punched deck of cards and using a special type of keypunch machine called a "verifier" and loading the cards into it and then re-punching the source. Anytime the keying did not match, the machine stopped and the keypuncher resolved the difference. Manpower to key everything twice was much cheaper than resources required to run multiple compile cycles until a clean compile was received.
9. Another source of errors for the programmer was in the JCL (Job Control Language) deck created to wrap around your programs. This was where you called for specific tapes, defined which GDS to use, put various conditions on executing/bypassing steps within the job, what to do with errors, etc. If you incorrectly specified which GDS to use what might happen?

Answer: you could use an incorrect version of the data

GDS (Generation Data Sets) were the early form of file versioning and allowed you to define a Generation Data Group (GDG) and then use relative verstion numbers in the file name (e.g. (0) = current version; (+1) = new next version; (-1) = previous to current version) with the number of versions maintained controlled by the GDG. So, if you had meant to use the current data by had added (-1) to the GDS in the JCL you would be using data one generation old. OOOPS --- and the job might run perfectly fine, maybe even creating a (+1) which at the end of the job would become (0) making your faux pas almost impossible to notice.
10. To find syntax (typos) problems in your JCL (Job Control Language) without actually running any programs or executing and JCL, you could add what parameter to the JOB Statement in your JCL deck?

Answer: ,TYPRUN=SCAN

For some reason unknown to me, the parameter was TYPRUN rather than TYPERUN. So, adding ",TYPRUN=SCAN" would have the computer only check the JCL for syntax errors.
Source: Author key_man

This quiz was reviewed by FunTrivia editor crisw before going online.
Any errors found in FunTrivia content are routinely corrected through our feedback system.
12/21/2024, Copyright 2024 FunTrivia, Inc. - Report an Error / Contact Us