Trailing-Edge
-
PDP-10 Archives
-
decuslib10-10
-
43,50517/uuohan.mac
There is 1 other file named uuohan.mac in the archive. Click here to see a list.
TITLE UUOHAN FOR RPGLIB
SUBTTL HANDLE UUO DISPATCHING
; UUOHAN
;
; THIS SECTION OF RPGLIB INTERCEPTS THE VARIOUS UUO'S
; AND DISPATCHES TO THE APPROPRIATE ROUTINE.
;
; BOB CURRIER OCTOBER 17, 1975 17:00:12
;
; ALL RIGHTS RESERVED
;
HISEG
ENTRY UUO. ; CALL ME UUO.
;
;THIS ROUTINE IS CALLED BY A PUSHJ PP,UUO. WHEN OP-CODES 001-037 ARE USED
;THE OP-CODE AND AC FIELDS ARE USED TO DETERMINE WHICH ROUTINE TO ENTER.
;
;
UUO.: MOVE PA,.JBUUO## ; PICK UP THE UUO
HRRZ TA,(PP) ; GET THE UUO CALL RETURN ADDR
MOVEM TA,UOCAL.## ; SAVE IT IN UOCAL.
LDB TA,UUO ; GET THE OP-CODE FIELD
CAIG TA,HI.OP ; IS IT VALID?
JRST @UUO1.(TA) ; YES - DISPATCH
OUTSTR [ASCIZ "?Illegal UUO at user address "]
HRLO TD,(PP) ; GET PC
PUSHJ PP,PPOUT## ; TYPE IT
JRST DEATH## ; THAT'S ALL SHE WROTE
UUO.3: LDB TA,AC ; GET AC FIELD
JRST @UUO3(TA) ; AND OFF WE GO
UUO.4: LDB TA,AC ; GET AC FIELD
JRST @UUO4(TA) ; LEAP
UUO.5: LDB TA,AC ; GET AC FIELD
JRST @UUO5(TA) ; OFF TO OBLIVION
UUO: POINT 9,PA,8 ; THE OP CODE FIELD OF THE UUO
AC: POINT 4,PA,12 ; AC FIELD OF THE UUO
;DEFINE AC'S
SW==0
TA==10
TD==11
PA==16
PP==17
DEFINE TABLE1,<
UUO1.: TABSEP <ULOSE.,SUBSCR,ULOSE.,UUO.3,UUO.4,UUO.5> ; 0 - 5
TABSEP <ULOSE.,ULOSE.,FIX.,ULOSE.,ULOSE.,FLOT.1,FLOT.2> ; 6 - 14
TABSEP <PD6.,PD7.,GD6.,GD7.> ; 15, 16, 17, 20
TABSEP <NEG.,MAG.,ADD.12,ADD.21,ADD.22>
TABSEP <SUB.12,SUB.21,SUB.22>
TABSEP <MUL.12,MUL.21,MUL.22>
TABSEP <DIV.11,DIV.12,DIV.21,DIV.22>
>
DEFINE TABLE2,<
UUO3: TABSEP <COMP.,CMP.11,CMP.12,CMP.21,CMP.22,CMP.76,CMP.96,CMP.97>
TABSEP <SPAC.6,SPAC.7,SPAC.9,COMP%,CMP%11,CMP%12,CMP%21,CMP%22>
UUO4: TABSEP <MOVE.,C.D6D7,C.D6D9,C.D7D6,C.D7D9,C.D9D6,C.D9D7>
TABSEP <MVSGNR,MVSGN,TESTZ,TIME.,TIMED.,RSVWD.,TESTB>
TABSEP <SQRT.,DEBUG.>
>
DEFINE TABLE3,<
UUO5: TABSEP <SETOF.,SETON.,INDC.,ULOSE.,EXCPT.,.READ.,CHAIN.,DSPLY.>
TABSEP <ULOSE.,ULOSE.,ULOSE.,ULOSE.,ULOSE.,ULOSE.,ULOSE.,ULOSE.>
>
DEFINE TABSEP (Y),<
IRP Y,<IFNDEF Y,<EXTERNAL Y>
EXP Y
>>
TABLE1
HI.OP==.-UUO1.
TABLE2
TABLE3
END