Type ASSEMBLE
Source Lines : 605
Fixes Applied : 8
Most Recent Version : Wednesday, March 28, 1979
Last Fix ID : [HRC011DK]
Module
Function
THE USERS CHANNEL PROGRAM. * *
Attributes
Operation
1. CHECKS TO ENSURE THAT THE CHANNEL PROGRAM DOES NOT START IN PAGE 0, OR ABOVE THE V=R AREA (ERROR 12 IF IT DOES). 1A. IF CHANNEL PROGRAM IS FOR TAPE, THEN CHECK FOR BACKSPACE FILE OR FORWARD SPACE FILE CCWS. IF SO THE CONTROL UNIT MUST NOT BE RELEASED AT INITATION. 2. DETERMINES THE TYPE OF CCW FROM THE LAST 4 BITS OF THE OP CODE (USING THE OP CODE OF THE PREVIOUS CCW IF THE PREVIOUS CCW HAD CHAIN-DATA FLAG SET). 3. FOR "WRITE" CCW'S (OP CODE ENDING IN 01, 05, 09, OR 0D), CHECKS THAT THE DATA ADDRESS IS NOT IN PAGE 0, AND THAT THE ENDING ADDRESS IS NOT ABOVE THE V=R AREA (ERROR 12 IF IT IS). IF OK, INCREMENTS INTERNAL COUNT OF "REGULAR" CCW'S. 4. FOR "READ" CCW'S (OP CODE ENDING IN 02, 06, 0A, OR 0E), IF SKIP FLAG IS SET, JUST INCREMENTS THE INTERNAL COUNT OF "REGULAR" CCW'S. IF NOT, CHECKS DATA ADDRESS AS IN STEP 3. 5. FOR "READ BACKWARD" CCW (OP CODE OF 0C), COMPUTES THE "ENDING ADDRESS" (DATA ADDRESS LESS BYTE COUNT), AND THEN HANDLES AS OTHER READ CCW'S IN STEP 4. 6. FOR A "SENSE" TYPE COMMAND (OP CODE OF 04, 94, OR B4), SETS RETURN-CODE INDICATING SENSE WAS FOUND; THEN CHECKS FOR THE SKIP FLAG SET AND VALID DATA ADDRESS AS IN STEP 4, EXCEPT THAT THE COUNT OF "REGULAR" CCW'S IS NOT INCREMENTED. OTHER CCW OP CODES ENDING IN 04 ARE HANDLED AS READ-TYPE CCW'S (STEP 4). 7. FOR A "NO-OP" CCW (OP CODE OF 03), NO ERROR CHECKING IS DONE, AND NO COUNTS ARE INCREMENTED. (IF NO "REGULAR" CCW'S ARE ENCOUNTERED, RETURN-CODE 8 IS GIVEN UPON EXIT.) OTHER CCW OP CODES ENDING IN 03 ARE HANDLED AS CONTROL-TYPE CCW'S (STEP 8). 8. FOR CONTROL CCW'S (OP CODES ENDING IN 03, 07, 0B, OR 0F, EXCEPT FOR NO-OP = 03), THE COUNT OF "REGULAR" CCW'S IS INCREMENTED, BUT NO OTHER ERROR-CHECKING IS DONE. 9. FOR A CCW ENDING IN 00, THE CCW-SCANNING IS TERMINATED, IN STEP 12. 10. FOR A TIC CCW (OP CODE ENDING IN 08), THE ADDRESS IN THE TIC IS CHECKED TO SEE IF IT FALLS WITHIN THE PORTION OF THE CHANNEL PROGRAM CURRENTLY BEING CHECKED. IF SO, THE PREVIOUS CCW IS CHECKED FOR COMMAND-CHAIN OR DATA-CHAIN SET; IF YES, GOES TO HANDLE "NEXT" CCW AS IN STEP 11; IF NOT, TERMINATES CCW-SCANNING IN STEP 12. IF THE TIC POINTS TO A NEW AREA, CHECKS IF IT IS THE FIRST SUCH TIC; IF NOT, TERMINATES CCW-SCANNING IN STEP 12; IF IT IS THE FIRST, POINTS TO NEW SECTION OF CHANNEL PROGRAM AND STARTS CHECKING IT AT STEP 1. 11. UPON COMPLETION OF CHECKING THE CCW (IN STEPS 3-8), CHECKS IF THE CURRENT CCW HAS COMMAND-CHAIN OR DATA-CHAIN SET; IF YES, ADVANCES 8 BYTES TO NEXT CCW AND CONTINUES SCANNING AT STEP 2; IF NOT, TERMINATES SCANNING AT STEP 12. 12. WHEN SCANNING IS COMPLETE (FROM ERROR 12 OR FROM STEP 10 OR 11), DETERMINES FROM TENTATIVE RETURN CODE AND THE COUNT OF THE REGULAR CCW'S WHICH RETURN-CODE SHOULD BE GIVEN. SETS RETURN CODE (0, 4, 8, OR 12), SETS CONDITION CODE, RESTORES NECESSARY REGISTERS, AND RETURNS TO CALLER.
Calls to Other Routines
NONE