.TITLE CDERRN .IDENT /V003/ ; ; AUTHORS: ; VICKY WHITE, MARK PYATETSKY ; FERMI NATIONAL ACCELERATOR LABORATORY ; BATAVIA, IL 60510 ; ; UPDATE HISTORY: ; V01 - JUN2382 - VW - ORIGINAL VERSION ; V02 - JULY1982- MP - RT-11 ADDED ; V03 - OCT0782 - VW- ALLOW FOR INTERNAL CDPACK ERRORS OF OVER 1000 ; ; ; ++ ; ; FUNCTION: ; ROUTINE TO RETURN A STANDARD CDPACK ERROR NUMBER, GIVEN A SYSTEM ; SPECIFIC ERROR CODE ; DIFFERENT VERSIONS ARE NEEDED FOR RSX AND RT11 OPERATING SYSTEMS ; ; ------- ; ; CALLING SEQUENCE: ; ---------------- ; ; CALL CDERRN(STAT,ERNO) ; ; MACROS ; ------ .MCALL ERR$DF,RT$RSX RT$RSX ;DEFINE VERSION: RT-11 OR RSX-11M ERR$DF ;DEFINE ER.UNK ; LOCAL MACRO: ; ----------- .MACRO ERRTAB,ERNO,STAT ; RSX STATUS AND ITS CORRESPONDING CDPACK ERROR NUMBER ARE THE ARGUMENTS ; .IIF LT .ERROR ;STATUS MUST BE BETWEEN -1 AND -128. .BYTE STAT .BYTE ERNO .ENDM ; ; ; GLOBALS: ; ------- .GLOBL CDERRN ;ROUTINE ENTRY POINT .PAGE ; ; INPUTS TO ROUTINE ; ----------------- ; R5 IS THE ADDRESS OF A FORTRAN ARGUMENT LIST ; ; OUTPUTS ; ------- ; CDPACK STANDARD ERROR NUMBER IS RETURNED IN VARIABLE ERNO ; ; .IF NDF RT11 ; ; CONVERSION TABLE FOR RSX TO CDPACK ERROR NUMBER ; ----------------------------------------------- ; ; **NOTE** IT IS ASSUMED IN MATCHING ERRORS IN THIS TABLE THAT ; ALL THE STATUS RETURN VALUES ARE EITHER POSITIVE - OR IN THE ; RANGE -1 TO -128. ; ERRTBL: ; ERNO STAT ERRTAB 2. -5 ;CHANNEL NOT ASSIGNED TO CD ERRTAB 3. -90. ;CANNOT ASSIGNED TO CD ERRTAB 5. -106. ;CD DRIVER NOT RESIDENT ERRTAB 6. -96. ;INVALID CHANNEL NUMBER ERRTAB 7. -92. ;INVALID CD DEVICE OR UNIT NO. ERRTAB 8. -112. ;INVALID PTC ERRTAB 9. -103. ;NO OPEN SESSION ERRTAB 10. -100. ;PTC ALREADY OWNED ERRTAB 11. -73. ;NO RECEIVER FOR THIS PTC ERRTAB 12. -6. ;ILLEGAL XMT OR RCV BUFFER ERRTAB 13. -88. ;MESSAGE REJECTED BY RECEIVER ERRTAB 14. -3. ;TIMEOUT FROM DRIVER DURING XMISSION ERRTAB 15. -59. ;FATAL HARDWARE ERROR ERRTAB 16. -104. ;NO MESSAGE TO RECEIVE ERRTAB 17. -13. ;INCOMPLETE TRANSFER OF MESSAGE ERRTAB 19. -102. ;DRIVER BUG CHECK ERRTAB 19. -111. ;CD DRIVER BUG CHECK ERRTAB 21. -89. ;CD DEVICE NOT DISCONNECTED ERRTAB 22. -94. ;VECTOR FOR DEVICE IN USE ERRTAB 23. -95. ;TRANSFERS PENDING FOR THIS PTC ERRTAB 25. -15. ;ALL TRANFERS/OPENS CANCELLED ERRTAB 26. -101. ;LINK DOWN ERRTAB 29. -110. ;RECEIVER END OF MESSAGE ERROR ERRTAB 30. -93. ;SIGNAL NOT ACKNOWLEDGED ERRTAB 0. 0. ;END OF TABLE ; .ENDC .PAGE .IF DF RT11 ; ; CONVERSION TABLE FOR RT-11 TO CDPACK ERROR NUMBER ; ------------------------------------------------- ; ; **NOTE** IT IS ASSUMED IN MATCHING ERRORS IN THIS TABLE THAT ; ALL THE STATUS RETURN VALUES ARE EITHER POSITIVE - OR IN THE ; RANGE -1 TO -128. ; ERRTBL: ; ERNO STAT ERRTAB 1. 1 ;SUCCESSFUL COMPLETION ERRTAB 2. 2 ;CHANNEL NOT OPEN ERRTAB 3. 30 ;CHANNEL CANNOT BE OPENED ERRTAB 4. 3 ;MAX NO OF OPEN SESSIONS EXCEEDED ERRTAB 8. 11 ;INVALID PTC ERRTAB 9. 4 ;NO OPEN SESSION FOR THIS PTC ; (ON CLOSE SPFUN) ERRTAB 9. 5 ;NO SESSION OPEN FOR THIS PTC ERRTAB 11. -20 ;RECEIVER HAS NO OPEN SESSION FOR THIS PTC ERRTAB 12. 7 ;ZERO LENGTH XMIT OR RECV BUFFER ERRTAB 13. -60 ;RECEIVER HAS NO READ OUTSTANDING ERRTAB 14. -50 ;TIMEOUT FROM DRIVER DURING XMISSION ERRTAB 15. -40 ;FATAL HARDWARE ERROR ERRTAB 17. -10 ;XMITTED MESSAGE WAS TRUNCATED ERRTAB 18. -30 ;TIMEOUT ON REQUEST TO DRIVER ERRTAB 20. 10 ;INVALID SPFUN (CDPACK BUG) ERRTAB 25. -70 ;MESSAGE XMISSION CANCELLED ; (BY THE OTHER PARTY) ERRTAB 25. -100 ;MESSAGE XMISSION CANCELLED ; (BY THE CD DRIVER) ERRTAB 27. 33 ;BAD ARGUMENTS IN CD CALL ERRTAB 0. 0 ;END OF TABLE ; .ENDC ; CDERRN:: PUSH ;SAVE SOME REGISTERS MOV @2(R5),R0 ;STATUS CODE CMP R0,# ;IN RANGE OF INTERNAL CDPACK ;ERRORS ? BLE 11$ ;OTHERWISE NEEDS CONVERSION SUB #ER.CDP,R0 ;SUBTRACT BASE ERROR NUMBER ;IF CDPACK INTERNAL ERROR BR 20$ 11$: MOVB @2(R5),R0 ;GET BYTE ERROR ;IT IS THE ACTUAL CDPACK ERROR NUMBER .IFNDF RT11 BGE 20$ ;IF POSITIVE ERROR < ER.CDP .ENDC MOV #ERRTBL,R1 ;START OF ERROR TABLE ; ; LOOP OVER TABLE TO MATCH ON STATUS ; 1$: CMPB (R1)+,R0 ;STATUS MATCHES? BEQ 10$ ;BRANCH IF FOUND A MATCH TSTB (R1)+ ;END OF TABLE? BNE 1$ ;LOOP BACK TO NEXT ENTRY ; ; UNKNOWN ERROR STATUS ; MOV #ER.UNK,R0 ;SET ERROR NUMBER FOR UNKNOWN BR 20$ ; ; FOUND MATCHING STATUS IN TABLE ; 10$: MOVB (R1)+,R0 ;CDPACK ERROR NO. IN R0 ; 20$: MOV R0,@4(R5) ;RETURN CDPACK ERROR NUMBER POP ;RESTORE REGISTERS RETURN .END