.TITLE RDXF .IDENT /201083/ ; Version: 3.0 ; File:[22,310]RDXF.MAC ; Author: Jim Bostwick 20-Oct-83 ; History: ; ; Last Edit: 9-MAY-1989 18:45:53 .REM | Procedure RDXF(VAR Flags:Event_Flag_set );External; {*USER* Pascal-3 procedure to return the state of all event flags including Group Globals. Some of these flags are reserved by RSX for its use, but you can read them anytime. If Group Globals do not exist, all are returned as clear, and the $DSW will be IS.CLR. This is not an error - only an indicator that no Group Globals exist for the current group. Directive status available in $DSW on return. .NOTE Companion procedure RDAF reads all efns, except group globals. .end note } | ; ; Assemble with PASMAC.MAC as prefix file. ; ; NOTE: Since Gentyp2.Pas defines a f0 (null EFN), the resulting ; type Event_Flag_set contains 65 members, despite being a ; subrange f1..f64. To overcome this, RDXF must shift the ; flag set returned by RDXF$ one bit right, and clear b0 ; (f0 can never be set if the executive doesn't know of its ; existence!). ; ; 20-Oct-83 -- the above still applies, but we now have 97 ; elements in the set. ; ; 9-May-89. Philip Hannay. Now we have 128 elements in ; the set (VMS$EVENT_FLAG) using GENERAL.TYP. However, the ; RSX subrange remains f1..f96, and since we are working with ; the set as a VAR, we do not have to make any changes to ; RDXF. ; ; ; j.m.b. 013182, 042782, 102083 ; .MCALL RDXF$S PROC RDXF PARAM FLAGS, Address SAVE BEGIN MOV FLAGS(SP),R0 ;R0->FLAG BUFFER RDXF$S R0 MOV #12., R1 ;LOOP COUNTER ASLB (R0)+ ;SHIFT UP ONE BIT POSITION 1$: ROLB (R0)+ ;ROTATE REST OF BYTES SOB R1, 1$ ;DO ALL THIRTEEN (13)!! BYTES OF PASCAL EFN-SET ENDPR .END