    MODULE  F77_IOERR ; 1983-09-02 12:34:56:  32016 ZASM 2.11
    EXPORTC F_JDIE
    IMPORTC F_JST1
    IMPORTC GetErrorMessage
    IMPORTC F_HANDLER
    AREADEF PROG,[READ,PIC,SHARED,CODE],BYTE    ; size is    922
    AREADEF DATA,[PIC],DOUBLE  ; size is     20
    DEFSB   DATA+0
    IMPORT  F_JUCM
    AREADEF COMMNB='F_JUCM',[PIC,COMDEF],DOUBLE  ; size is      4
    IMPORT  F__CMN
    AREADEF COMMNA='F__CMN',[PIC,COMMON],DOUBLE  ; size is    184
;
    AREA    PROG
    DCS     'F77_IOERR   '
paf DCB     232,3,0,0,11
    DCS     'end of file'
pag DCB     233,3,0,0,19
    DCS     'invalid unit number'
    DCB     234,3,0,0,17
    DCS     'invalid attribute'
    DCB     235,3,0,0,26
    DCS     'duplicate use of file name'
    DCB     236,3,0,0,26
    DCS     'invalid unit for operation'
    DCB     237,3,0,0,25
    DCS     'error detected previously'
    DCB     238,3,0,0,26
    DCS     'direct access without OPEN'
    DCB     239,3,0,0,19
    DCS     'invalid use of unit'
    DCB     240,3,0,0,22
    DCS     'input and output mixed'
    DCB     241,3,0,0
    DCS     ' direct access not open for input'
    DCB     242,3,0,0
    DCS     '!direct access not open for output'
    DCB     243,3,0,0,21
    DCS     'end of file on output'
    DCD     1012
    DCS     "invalid number in input"
    DCD     1013
    DCS     "Z field width unsuitable"
    DCD     1014
    DCS     "Input not DOUBLE PRECISION"
    DCD     1015
    DCS     "Input not type INTEGER"
    DCD     1016
    DCS     "Input not type REAL"
    DCD     1017
    DCS     "Input not type CHARACTER"
    DCD     1018
    DCS     "Repeat split character"
    DCD     1019
    DCS     "Input not type LOGICAL"
    DCB     208,7,0,0,13
    DCS     'not available'
    DCB     210,7,0,0,31
    DCS     'invalid access to terminal file'
    DCB     211,7,0,0,24
    DCS     'sequential open failed ('
    DCB     212,7,0,0,27
    DCS     'direct access open failed ('
    DCB     214,7,0,0,23
    DCS     'record length too large'
    DCB     217,7,0,0,23
    DCS     'bad command line syntax'
    DCB     218,7,0,0,25
    DCS     'sequential write failed ('
    DCB     209,7,0,0,24
    DCS     'bad unformatted record ('
    DCB     215,7,0,0,24
    DCS     'bad direct access file ('
    DCB     213,7,0,0,25
    DCS     'direct access IO failed ('
    DCB     0,0,0,0,13
    DCS     'unknown error'
F_JDIE
    SPRD    FP,TOS
    LPRD    FP,12(SP)
    MOVD    0(FP),R3
    MOVD    R3,sac
    MOVD    0(R3),R3
    ADDR    paf,R4
pah MOVZBD  4(R4),R5
    CMPQD   0,0(R4)
    BEQ     pai
    CMPD    R3,0(R4)
    BEQ     pai
    ADDR    5(R4)[R5:B],R4
    BR      pah
pai ADDR    Aax,R2
    MOVD    0(4(FP)),R1
    MOVD    4(4(FP)),R0
    MOVSB
    MOVB    =32,0(R2)
    ADDQD   1,R2
    MOVD    Bay,R0
    CMPD    R3,pag
    BEQ     pak
    CMPQD   0,R0
    BNE     paj
    MOVMB   pav,R2,8
    ADDR    8(R2),R2
    BR      pan
paj CMPQD   -1,R0
    BEQ     pak
    CMPQD   -2,R0
    BNE     pal
pak MOVB    =42,0(R2)
    ADDQD   1,R2
    BR      pan
pal BLE     pam
    MOVB    =45,0(R2)
    ADDQD   1,R2
    NEGD    R0,R0
pam BSR     paq
pan MOVMB   pau,R2,3
    ADDQD   3,R2
    MOVD    R5,R0
    ADDR    5(R4),R1
    MOVSB
    CMPB    -1(R1),=40
    BNE     pap
    MOVD    Aaw,R0
    CMPQD   0,R0
    BGT     pao
    ADDQD   -2,R2
    BR      pap
pao MOVD    R2,TOS
    ADJSPB  =4
    SPRD    SP,R7
    MOVD    R0,TOS
    ADDR    sad,TOS
    ADDR    @50,TOS
    ADDR    R2,TOS
    MOVD    R7,TOS
    MOVQD   4,TOS
    MOVD    R7,TOS
    MOVD    R7,TOS
    MOVQD   4,TOS
    MOVD    R7,TOS
    CXP     GetErrorMessage
    ADJSPB  =-4
    MOVD    TOS,R2
    MOVD    sad,R1
    ADDR    1(R1)[R2:B],R2
    MOVB    =41,-1(R2)
pap ADDR    Aax,R1
    SUBD    R1,R2
    MOVD    R1,saa
    MOVD    R2,sab
    ADDR    pat,sad
    ADDR    saa,sae
    ADDR    sac,TOS
    CXP     F_JST1
paq ADDR    @10,R3
par CMPD    R3,R0
    BGT     pas
    MOVD    R0,TOS
    QUOD    R3,R0
    BSR     par
    MOVD    TOS,R0
pas REMD    R3,R0
    ADDB    =48,R0
    MOVB    R0,0(R2)
    ADDQD   1,R2
    RET     0
pat DCD     1
pau DCS     ' - '
pav DCS     'internal'
    HANDLER
    CXP     F_HANDLER
;
    AREA    DATA
saa ALLOCD  1
sab ALLOCD  1
sac ALLOCD  1
sad ALLOCD  1
sae ALLOCD  1
;
    AREA    COMMNB
Bay ALLOCD  1
;
    AREA    COMMNA
    ALLOCD  5
Aaw ALLOCD  9
Aax ALLOCD  32
    END
