XO%T2<K0M6O~Aq d$U#rLu#""` &`"&}d(W L2 2o8L8Ȗy: QX2RLR`;xT""Yv TyZqVd^hfT7gv [g2[g5P[q s w@BCyq" zp ^<. JЅ#`O.MACRO MINIT PSNAM* .LIST MEB ;WANT TO SEE BIN FROM MACROS# .DSABL GBL ;WANT UNDEFS FLAGGED(F4P = 4 ;SET F4P FLAG FOR FOR+ COMPILIER#SUF = 0 ;SUSPEND NOT PERMITTED FLAGREQF = 1 ;REQUEST PERMITTED'SALF = 0 ;DRS VERSION (NOT STAND ALONE) RSX11M =1 RSX11D =2IASF =3)OPSYF =IASF ;IAS (NOTE:D IS 2 AND M IS 1)' .IF B,PSNAM ;IF NO PSECT NAME GIVEN4 .PSECT ICOM,I,LCL,CON ;INSTR PSECT FOR MACRO RTNS .ENDC .ENDM MINITO.MACRO PUSH ARGS .IF B, TST -(SP) ;RSV 1 WD ON STK .IFFB .IRP ARG, .IF B, TST -(SP) ;RSV 1 WD ON STK .IFF4# .IF IDN,<#0>, ;IF ZERO ARG.R! CLR -(SP) ;PUSH #0 ONTO STKA .IFF ;IF ARG. NOT ZEROE* .NCHR SNCH, ;NO. OF CHARS IN "ARG"% .IF EQ,SNCH-1 ;IF NO. OF CHARS = 1Y& MOV ARG,-(SP) ;PUSH ARG ONTO STK .IFF ;IF NO. OF CHARS > 1' .IF LE,SNCH-9. ;IF NO. OF CHARS <= 9 % MOV ARG,-(SP) ;PUSH ARG ONTO STKI .IFF ;IF NO. OF CHARS > 9$ MOV ARG,-(SP) ;PUSH ARG ONTO STK .ENDC .ENDC .ENDC .ENDC .ENDR .ENDC .ENDM PUSH O.MACRO POP ARGS. .IF B,< TST (SP)+ ;DEL FROM STKC .IFF) .IRP ARG, .IF B, TST (SP)+ ;DEL FROM STKC .IFF * .NCHR SNCH, ;NO. OF CHARS IN "ARG"% .IF EQ,SNCH-1 ;IF NO. OF CHARS = 1 % MOV (SP)+,ARG ;POP ARG FROM STK  .IFF ;IF NO. OF CHARS > 1' .IF LE,SNCH-9. ;IF NO. OF CHARS <= 9 $ MOV (SP)+,ARG ;POP ARG FROM STK .IFF ;IF NO. OF CHARS > 9# MOV (SP)+,ARG ;POP ARG FROM STK .ENDC .ENDC .ENDC .ENDR .ENDC .ENDM POPO.MACRO SUBR SNAM,NARGS,FLGST .GLOBL MONTRI .LIST ;WANT TO SEE THIS...G;***********************;*** SUBROUTINE SNAM;***********************' .NLIST ;BACK TO MEB OR WHATEVER...1+SNAM':: JSR R1,MONTRI ;SAVE REGS, TRACE  .IF NB, ' .BYTE NARGS ;NO. OF ARGS EXPECTED, .IFF  .BYTE -1 ;VAR NO. OF ARGS( .ENDC! .IF B,FLGS ;IF NO FLAGS GIVEN  .BYTE 0 ;NO MONTRX FLAGS .IFF ;IF FLAGS GIVENN .BYTE FLGS ;MONTRX FLAG(S) .ENDC" .NCHR SNCH, ;NO. OF CHARS .IF EQ,SNCH-6 .RAD50 /SNAM/ .ENDC .IF EQ,SNCH-5 .RAD50 /SNAM' / .ENDC .IF EQ,SNCH-4 .RAD50 /SNAM' /* .ENDC .IF EQ,SNCH-3 .RAD50 /SNAM' / .ENDC .IF EQ,SNCH-2 .RAD50 /SNAM' /E .ENDC .IF EQ,SNCH-1 .RAD50 /SNAM' / .ENDC .IF EQ,SNCH& .ERROR SNCH ;SUBR NAME NOT GIVEN .RAD50 /UNKNWN/ .ENDC .ENDM SUBR^O .MACRO RTN .GLOBL MONTRO! JSR PC,MONTRO ;RTN TO CALLER .ENDM RTNF`O .MACRO FRTNA .GLOBL MONTRF" JSR PC,MONTRF ;RTN RSLT IN R0 .ENDM FRTNO/.MACRO CPARGS NARGS ;COPY ARG ADDRS ONTO STK .MCALL PUSH .REPT NARGS& PUSH (R5)+ ;COPY ARG ADDR ONTO STK .ENDR .ENDM CPARGSO+.MACRO UFLGS ;DEFINE USER FLAGS IN UCOM#UMONRD = 1 ;TTYIO: MONIP CALLED 'ULFFL = UMONRD*2 ;TTYIO: NEEDED/%UEBF = ULFFL*2 ;PBF: REQ EVEN BUF'UEWF = UEBF*2 ;PBF: REQ EVEN WD CNTT%UDFNBF = UEWF*2 ;DEFAULT DEV ENTERED"UDF4PF = UDFNBF*2 ;FOR 4 PLUS CODEUNCFL = UDF4PF*2 ;FOR EXTEND% .MACRO UFLGS ;RECOVER MACRO SPACE .ENDM UFLGS .ENDM UFLGSOO&.MACRO RESWS NWS ;RESERVE WS ON STK .IF GT,NWSY% .IF EQ, ;SPCL CASE FOR 1 WDS TST -(SP) ;RSV 1 WD ON STK .IFF ;> 1 WD WANTED' SUB #NWS*2,SP ;RSV NWS WDS ON STK  .ENDC .ENDC .ENDM RESWS O-.MACRO INIWS ARG ;RESERVE & INIT WS ON STK* .MCALL PUSH& PUSH ARG ;RESERVE & INIT WS ON STK .ENDM INIWSO2.MACRO NMWS NAMS ;ESTAB WS ADDR OFFSETS BY NAMENOFF = 0 .IRP NM, ;RUN OFFSET UP NOFF = NOFF+2F .ENDR#TOTWS = NOFF ;BYTES OF WS ON STKR .IRP NM,)NOFF = NOFF-2 ;STEP DN TO NEXT WS ADDRF% .IF NB, ;DON'T NAME NULL ARGSS!NM = NOFF ;NAME THIS WS OFFSETB .ENDC .ENDR';;; .MACRO NMWS ;RECLAIM MACRO SPACE ;;; .ENDM NMWS .ENDM NMWSlO'.MACRO PTWS ;SET R5 TO PT TO STK WS" MOV SP,R5 ;SET R5 AS WS BASE .ENDM PTWSO.MACRO PUSHX ARG) .IIF NB, PUSH ARG ;PUT ARG ON STACKF% .IIF B, PUSH #-1 ;NULL ARGUMENT .ENDM PUSHXFO5.MACRO NSARGS A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,TN%;NSARGS SET TO NUMBER OF ARGS IN LISTF,; USEFULE FOR DETERMINING NUMBER OF SUB ARGS .NARG NSARGSS .ENDM NSARGSO.MACRO CALL SUBR,ARGLSTR .MCALL CALL0,CALLNM .NARG NPXL1  .LIST ;WANT TO SEE THIS#; ;***************************V; ;** CALL SUBR#; ;***************************" .NLIST ;BACK TO MEB OR WHATEVER6 .IIF LE,,CALL0 SUBR ;IF 1 PARM -SPECIAL CALL .IIF LE,,.MEXIT ;DONE& CALLN ARGLST ;PUSH ARGS ONTO STACK MOV SP,R5 ;SET PARM ADDR JSR PC,SUBR ;CALL SUBR& ADD #*2,SP ;CLEAR STACK .ENDM CALLO(.MACRO CALL0 SUBR ;GENERATE 0 PARM CALL PUSH #0 ;0 PARMSL! MOV SP,R5 ;SET UP PARM ADDR; JSR PC,SUBR ;CALL SUBR POP ;RESTORE STACKV .ENDM CALL0CO?.MACRO CALLN A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15 .MCALL PUSHX- .NARG NSARGSI .IIF GE,, PUSHX A15 .IIF GE,, PUSHX A14 .IIF GE,, PUSHX A13 .IIF GE,, PUSHX A12 .IIF GE,, PUSHX A11 .IIF GE,, PUSHX A10 .IIF GE,, PUSHX A9 .IIF GE,, PUSHX A8 .IIF GE,, PUSHX A7 .IIF GE,, PUSHX A6 .IIF GE,, PUSHX A5 .IIF GE,, PUSHX A4 .IIF GE,, PUSHX A3 .IIF GE,, PUSHX A2 .IIF GE,, PUSHX A1& PUSH #NSARGS ;PUT ARG COUNT ON STACK .ENDM CALLN5"O).MACRO IDBLK ;DEFINE ID BLOCK OFFSETSS;AIDMDF = 0 ;MODE FLAGS:P( IDWMF = 1 ; SPCL WRITE-ONLY MODE( IDWPF = IDWMF*2 ; WRITE PERMITTED' IDURF = IDWPF*2 ; UPDATE ON READS( IDUWF = IDURF*2 ; UPDATE ON WRITE- IDMBF = IDURF!IDUWF ; MULT BUFFER MODE<+ IDSBF = IDUWF*2 ; SINGLE BUFFER MODEU& IDCYF = IDSBF*2 ; CYLINDER MODE$IDFIL1 = IDMDF+1 ;UNASSIGNED BYTE"IDBFA = IDFIL1+1 ;BUFFER ADDRESS#IDWR = IDBFA+2 ;WORDS PER RECORDA*IDWUB = IDWR+2 ;WORDS USED PER USER BLK%IDBKS = IDWUB+2 ;USER BLKS IN FILE .IDBXA = IDBKS+2 ;ID BLOCK EXTENSION ADDRESS-IDL = IDBXA-IDMDF+2 ;ID BLOCK LENGTH, BYTEST'IDLW = IDL/2 ;ID BLOCK LENGTH, WORDSA;% .MACRO IDBLK ;RECLAIM MACRO SPACEE .ENDM IDBLK .ENDM IDBLK NO0.MACRO IDBXE ;DEFINE IDBLK EXTENSION OFFSETS;DIXIDA = 0 ;IDBLK ADDRESS IXCKS = IXIDA+2 ;IDBLK CKSUMG.IXSTB = IXCKS+2 ;ST USER BLK W/IN PHYS FILE!IXWB = IXSTB+2 ;WORDS/USER BLKIXFLGS = IXWB+2 ;IDBX FLAGS: # IXMXF = 001 ; MXWSF WS FILEK* IXNRL = IXMXF*2 ;DO NOT RELOC ID BLOCK2 IXNCF = IXNRL*2 ;DO NOT CLOSE IF NOT ON (PBCSI)$IXFIL1 = IXFLGS+1 ;UNASSIGNED BYTE+IXFTA = IXFIL1+1 ;FDB TABLE ENTRY ADDRESS +IXL = IXFTA-IXIDA+2 ;LENGTH OF IDBX ENTRY;% .MACRO IDBXE ;RECLAIM MACRO SPACEK .ENDM IDBXE .ENDM IDBXED"O,.MACRO BUFHD ;DEFINE BUFFER HEAD OFFSETS; BHNXA = 0 ;NEXT BUF HDR ADDR &BHIDA = BHNXA+2 ;ID BLOCK ADDRESS BHUBN = BHIDA+2 ;USER BLK NO.2BHBSZ = BHUBN+2 ;BUFFER SIZE, WORDS (BITS 0-12)% BHFLM = 160000 ; FLAG BIC MASK (BHFLGS = BHBSZ+1 ;FLAGS (BITS 13-15):* BHHDF = 200 ; CURRENT HEAD OF RING' BHMDF = 100 ; THIS BUF MODIFIED% BHIOF = 040 ; I/O IN PROGRESSN#BHBUF = BHBSZ+2 ;START OF BUFFERA; % .MACRO BUFHD ;RECLAIM MACRO SPACE .ENDM BUFHD .ENDM BUFHD O*.MACRO PBFDF ;DEFINE VARIOUS PBF QTIES"USCMUL = 8. ;SECTORS->CYLS MULT% .MACRO PBFDF ;RECOVER MACRO SPACEK .ENDM PBFDF .ENDM PBFDFU>O0.MACRO FDBTE ;DEFINE FDB TABLE ENTRY OFFSETS;HFTFDBA = 0 ;FDB ADDRESS+FTFLGS = FTFDBA+2 ;FDB TABLE ENTRY FLAGS:D FTWSF = 1 ; WS FILE;% FTSFF = FTWSF*2 ; SUBFILE FILE " FTFOF = FTSFF*2 ; FILE OPEN* FTIPF = FTFOF*2 ; INPUT IN PROGRESS+ FTOPF = FTIPF*2 ; OUTPUT IN PROGRESSU, FTNMF = FTOPF*2 ; NOT A MODULE'S FILE0 FTLKF = FTNMF*2 ; FILE OPEN (ACROSS LINK)( FTWPF = FTLKF*2 ; WRITE PERMITTED) FTNCF = FTWPF*2 ; DON'T CLOSE FILE" FTERF = FTNCF*2 ; I/O ERROR, FTCFF = FTERF*2 ; CLOSE FILE ON RELOC" FTCYF = FTCFF*2 ;WS CYL FILE8FTNVB = FTFLGS+2 ;NO. OF VIRT BLKS BEING WR (BITS 0-7)(FTSFN = FTNVB+1 ;SUBFILE # IF SUBFILE9FTBKW = FTSFN+1 ;+++2 SECTORS WRITTEN TO FILE (2 WDS)R&FTBHA = FTBKW+4 ;BUFFER HDR ADDRESS*FTSTB = FTBHA+2 ;I/O STATUS BLK (2 WDS)"FTXXX = FTSTB+4 ;+++2 FREE WORD(FTIXA = FTXXX+2 ;+++2 OWNER IDBX ADDR0FTL = FTIXA+2-FTFDBA ;LGTH OF FDB TABLE ENTRY; % .MACRO FDBTE ;RECLAIM MACRO SPACE .ENDM FDBTE .ENDM FDBTE O3.MACRO SFTE ;DEFINE SUBFILE TABLE ENTRY OFFSETST; *STNME = 0 ;SUBFILE NAME RAD50 (2 WORDS)1STSTRT = STNME+4 ;STARTING USER BLK(BITS 0-14)T; STCYLF = 100000 ;CYL FLAG IN SF TABLE(BIT 15 OF STSTRT)H/STLEN = STSTRT+2 ;NO. OF USER BLKS(BITS 0-12)+( STFLE = STLEN ;SUBFILE # (BITS (13-15)4STL = STLEN+2-STNME ;LENGTH OF SUBFILE TABLE ENTRY;B$ .MACRO SFTE ;RECLAIM MACRO SPACE .ENDM SFTEE .ENDM SFTEO1.MACRO DVBLK ;DEFINE DRS DEVICE BLOCK OFFSETS;DVNO = 0 ;DRS DEVICE NO.F$DVRECL = DVNO+2 ;LOGICAL RCD LGTH)DVFLGS = DVRECL+2 ;DEV FLAGS (16 BITS):) DVFFF = 000010 ; DEV HAS FORM FEED $ DVKBF = 000020 ; KEYBD DEVICE) DVECF = 000040 ; DEV REQUIRES ECHOT- DVLCF = 000100 ; DEVICE HAS LOWER CASES+ DVDKF = 000200 ; DEVICE IS DISK FILE-$ DVIPF = 000400 ; INPUT DEVICE% DVOPF = 001000 ; OUTPUT DEVICEA% DVASF = 002000 ; ASYNCH DEVICE# DVDPF = 010000 ; DUMP DEVICEDDVFIL1 = 6 ;UNASSIGNED WORD DVL = 10 ;DEV BLK LGTH, BYTES;+% .MACRO DVBLK ;RECLAIM MACRO SPACE+ .ENDM DVBLK .ENDM DVBLK$O2.MACRO MFBLK ;DEFINE MASTER FILE BLOCK OFFSETS; MFCKS = 0 ;MFBLK CKSUM *MFMDF = MFCKS+2 ;MODE FLAGS (BITS 9-15)#MFWR = MFMDF ;WDS/RCD (BITS 0-8) % MFFLM = 177000 ; FLAG BIC MASKV'MFSEG = MFWR+2 ;NO. OF IDBLK ENTRIES MFWB = MFSEG+2 ;WDS/USER BLK .MFHL = MFWB+2 ;LGTH OF MFBLK FIXED LGTH HDR*MFEST = MFWB+2 ;START OF IDBLK ENTRIES:;S,MFEA = 0 ;FDBTE/2 (BITS 0-14) IF BIT 15=0/ MFSSR = MFEA ;SF START USER BLOCK IF BIT 15=1M$ MFESF = 100000 ; SUBFILE FLAG5MFECK = MFEA+2 ;FDB FILE NAME CKSUM IF NOT SUBFILE < MFSNR = MFECK ;IF SUBFILE THEN BITS 0-12 ARE # OF USER .... ;...BLOCKS & BITS 13-15 ARE SUBFILE NUMBER$MFEL = 4 ;LGTH OF MFB IDBLK ENTRY;# .MACRO MFBLK ;RECLM MACRO SPACEE .ENDM MFBLK .ENDM MFBLKUO .MACRO FCTBL ;FLT CNVTR ADDRS ; IN FCTBL2; FCRCI = 0 ;RCI$ ADDRFCGCO = 2 ;GCO$ "FCECO = 4 ;ECO$ "FCFCO = 6 ;FCO$ ";S% .MACRO FCTBL ;RECOVER MACRO SPACE .ENDM FCTBL .ENDM FCTBL@O%.MACRO HEXDIG HC ;FOR HEXBIN MACROM HCV = 15.KHCVOK = 0 ;INIT HC ERR CK .IRPC HD, .IF IDN,HC,HDHCVOK = 1 ;INDIC HC LEGAL .MEXITF .IFFB HCV = HCV-1 .ENDC .ENDR .IF EQ,HCVOK ;WAS HC LEGAL?( .ERROR 0 ;ILLEG DIGIT IN HEX CODE .ENDC .ENDM HEXDIGO0.MACRO HEXBIN HCOD ;FOR CNVTING HEX TO BINARY .MCALL HEXDIG MULT = 4096.HEXV = 0 .IRPC CD, HEXDIG CDHEXV = HEXV+MULT = MULT/16. .ENDR .ENDM HEXBINO1.MACRO ERROR ERCD,ERNO,EXTA ;FATAL ERROR MACRO .MCALL PUSH .LIST ;WANT TO SEE THIS...1( ; *************************************( ; ********** ERROR CODE ERCD (NO. ERNO)( ; *************************************$ .NLIST ;BACK TO MEB OR WHATEVER .IF B, ;IF IX NOT GIVEN PUSH #0 ;EXTN NOT GIVEND .IFF ;IF IX GIVEN PUSH EXTA ;ID EXTN ADDR4 .ENDC TRAP ERNO ;RPT ERR NO. .ENDM ERROR=zO4.MACRO MDBDO ;DEFINE MD (MAG TAPE ID BLOCK) OFFSETS;*; MT ID BLOCKS ARE DIVIDED INTO 5 SECTIONS6; SECTION 1 4 WORDS OF NON-CKSM'D DATA FOR USER TO USE'; SECTION 2 FILE SPECIFIC INFO (CKSM'D)&; SECTION 3 BUFFER 1 SPECIFIC (CKSM'D)&; SECTION 4 BUFFER 2 SPECIFIC (CKSM'D)#; SECTION 5 IOSTB FOR I/O FUNCTIONSV;; S E C T I O N 1)MDUER =0 ;USER ERROR CODES RETURNED HERED:MDUBA =MDUER+2 ;BUFFER ADDR FOR CURRENT BUFFER PLACED HERE(MDUNW =MDUBA+2 ;NW IN BUFFER PLACED HERE!MDUWD =MDUNW+2 ;RESERVED FOR USERB; S E C T I O N 2MDLUN =MDUWD+2 ;1 BYTE LUN #:MDEFN =MDLUN+1 ;1 BYTE EVENT FLAG TO USE FOR THIS ID BLOCKMDFLG =MDEFN+1 ;FLAG WORDE MDATF =1 ;ATTACH FLAGE MDCCF =2 ;CC FLAGD; ;EOF,EOV,EOT IN BITS 3,4,5 MDEOF =10 ;EOF MDEOV =MDEOF*2 ;EOV(OLUME) + MDEOT =MDEOV*2 ;EOT (PHYSICAL END OF TAPE) MD16BF =100 ;1600 BPI 1 MDEBF =MD16BF*2 ;EBCDIC TAPE FLAG(MUST BE BIT 7)2% MDWPF =MDEBF*2 ;WRITE PERMITTED FLAG " MDMBF =MDWPF*2 ;MULTI BUFFER FLAG MDINIF =MDMBF*2 ;INITIAL FLAG MDWRTF =MDINIF*2 ;WRITE DONE * MDRNF =MDWRTF*2 ;REWIND & UNLOAD ON CLOSE MDRWF =MDRNF*2 ;REWIND ON CLOSE+ MDBSF =MDRWF*2 ;BASKSPACE 1 BLOCK ON CLOSEM5 MDIEBF =MDBSF*2 ;EBCDIC IN CORE FLAG(MUST BE BIT 15)E!MDFLG1 =MDFLG+2 ;SECOND FLAG WORDEA MDDN =MDFLG1 ;TAPE DRIVE # STORED IN BITS (0,1,2) OF FLAG1 WORDD0MDBFSZ =MDFLG1+2 ;SIZE OF (EACH) BUFFER IN WORDS4MDBIOP =MDBFSZ+2 ;ADDR OF BCB WITH I/O PENDING(OR 0)MDBLRW =MDBIOP+2 ;LRECL OR 0; S E C T I O N 3CMDBCB =MDBLRW+2 ;OFFSET OF BUFFER CONTROL BLOCK(BCB) # 1(2 FOLLOWS)D2MDBFA =0 ;OFFSET FROM START OF BCB OF BUFFER ADDR,MDBFNW =MDBFA+2 ;OFFSET OF NW IN THIS BUFFER1MDBFLG =MDBFNW+2 ;OFFSET OF BUFFER SPECIFIC FLAGSB1 MDBFNF =1 ;BUFFER # FLAG(0=> BUF 1,1 => BUFF 2) - MDIOPF =MDBFNF*2 ;I/O PENDING ON THIS BUFFER#- MDVLDF =MDIOPF*2 ;BUFFER CONTAINS VALID DATA=%MDBCBL =MDBFLG-MDBFA+2 ;LENGTH OF BCBS; S E C T I O N 4 (SAME AS 3)I; S E C T I O N 5'MDSTB =MDBCB+<2*MDBCBL> ;OFF SET OF STB $MDRTC =MDSTB ;STATUS BLOCK RET CODE+MDNCT =MDRTC+2 ;NUMBER OF CHARS TRANSMITTEDFMDCKS =MDNCT+2 ;CHECK SUM "MDLEN =MDCKS+2 ;LENGTH OF ID BLOCK.ENDM O&.MACRO MTXER ER,ID ;REPORT MTX ERRORS .GLOBL MTXER& MOV ID,-(SP) ;******************* MOV ER,-(SP) ;***ERROR ER& JSR PC,MTXER ;*******************.ENDMBO .MACRO SPCRGNL'; SPCR USED TO SPACE DRS MODS PAST ROOT .ENABL AMAS .WORD END ; ADDR OF LOAD POINTD .LIMITB0 .WORD TRV ;ADDR OF TV. 1'ST TV WORD IS NW IN TV .WORD DRSCOM ;ADDR OF DRSCOM2# .WORD NWDCOM ;NW IN DRSCOM TO SAVE ) .WORD 1 ;# OPTIONAL PARMS AFTER FP ADDRSH .WORD RCI$,GCO$,ECO$,FCO$ .WORD IVBLOK ;ADDR OF IVBLOKEND= .DRSMOD::;;; MOV #PAD,R5;;; JSR PC,IRPAD JMP @MODADR;;;PAD: .WORD 2,K1,MODADR*;;;K1: .WORD 1MODADR: .WORD MODENTLINK:: JMP XLINK .PSECT .$$$$.,OVR,D,REL,RW,GBLGDRSCOM:: .BLKW NWDCOME .PSECT IVBLOK,OVR,D,REL,RW,GBLSIVBLOK:E .WORD 2500.,2000..ENDM.JO.MACRO UNSUPP SNAM TRAP 117. .RAD50 /SNAM/.ENDMARO.MACRO DUMTRP NAMDNAM::O TRAP 117. .RAD50 /NAM/L.ENDMAO.MACRO DVE ;DEF DEV ENTRYO;I DVFDB = 14 ;FDB W/IN DEVT ENTRY#DFLGS = -DVFDB ;DEV FLAGS,FROM FDBI DV03F = 1 ; RP03 FLAGW! .MACRO DVE ;RECLAIM MACRO SPACEO .ENDM DVE .ENDM DVEKO0 .MACRO DCMP HI1,LO1, HI2,LO2, ?LAB1,?LAB2,?LAB3 CMP HI1,HI2 ;HIGH ORDER WORD BNE LAB1 CMP LO1,LO2 ;LOW ORDER WORD BEQ LAB1M. BCS LAB2 ;CHECK CARRY FOR UNSIGNED COMPARE, CLN ;SET N-BIT TO C-BIT SO ARITHMETIC -# BR LAB3 ;BRANCHES CAN BE USED -DLAB2: SEN ;AFTER DCMP.%LAB3: ;V OR Z NOT WANTED LAB1:I .ENDM DCMP