ASMB,R,L,C RTE-M CROSS-REFERENCE TABLE GENERATOR HED ** RTE-M CROSS-REFERENCE TABLE GENERATOR ** * * * 9/10/76 * * * *************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY. ALL RIGHTS * * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* * * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * * *************************************************************** * * NAME : XREF * SOURCE: 92064-18149 * RELOC : 92064-16051 * PRGMR : C.H., H.C., S.K. * NAM XREF,3,99 92064-16051 REV.1650 761001 SUP * * * * * PARAMETERS ARE PASSED THROUGH THE RU COMMAND * RU,XREF,FI,LE,NM,A,B * LU * 0 * WHERE FI,LE,NM IS ANSWER FILE NAME CONTAINING * INPUT AND LIST FILE NAMES * LU IS LU# OF DEVICE TO WHICH QUERIES ARE DIRECTED BY XREF * 0 DEFAULT IS CONSOLE FROM WHICH XREF WAS SCHEDULED * * PARAMETERS A & B ARE DESCRIBED PRECEEDING XRFSG SEGMENT * * EXT CREAT,OPEN,CLOSE,GTFIL,LIMEM,SEGLD EXT .STOP,IMESS,RMPAR,WRITF,READF,FCONT ENT AI,AL,DCBI,DCBL,?ERR,?LWA,?FWA,PRMXR ENT ?FMPE,RTNXR,.M12 * * XREF1 ASC 3,XREF1 IWHCH NOP IWRDS NOP ?FWA NOP ?LWA NOP AI BSS 6 AL BSS 6 ANSW BSS 3 OPTNI OCT 410 ?ERR NOP DCBL BSS 144 DCBI BSS 144 M1 DEC -1 M2 DEC -2 .M12 DEC -12 .1 DEC 1 .4 DEC 4 .64 DEC 64 .210B OCT 210 .21B OCT 21 .LU ASC 1,LU ... ASC 1,.. PRMXR BSS 2 * * * XREF JSB RMPAR GET PARAMETERS DEF *+2 DEF AI USE AI AS TEMPORARY BUFFER DLD AI MOVE FIRST 3 PARMS IN ANSWER FILE DST ANSW BUFFER LDA AI+2 STA ANSW+2 DLD AI+3 PARMS 4&5 INTO PARM BUFFER DST PRMXR * GETFL JSB GTFIL GET FILE NAMES FOR DEF *+7 INPUT & LIST DEF .21B OPTION WORD DEF ?ERR ERROR WORD DEF ANSW ANSWER FILE NAME DEF AI INPUT FILE NAME BUFFER NOP DEF AL LIST FILE NAME BUFFER SSA,RSS ERRORS? JMP XREFA NO JSB ?FMPE FMP ERROR ROUTINE DEF ANSW * XREFA CLB CLEAR ANSWER FILE NAME STB ANSW STB ANSW+1 STB ANSW+2 * OPIN JSB OPEN OPEN INPUT FILE DEF *+7 DEF DCBI INPUT FILE DCB DEF ?ERR DEF AI+1 INPUT FILE NAME DEF OPTNI OPTION WORD=410B DEF AI+5 SECURITY CODE DEF AI DRN OR -LU # SSA,RSS ERRORS? JMP CRLST NO, CREATE LIST FILE JSB ?FMPE FMP ERROR ROUTINE DEF AI+1 INPUT FILE NAME * CRLST LDA AL+1 LIST FILE IS AN LU? CPA .LU RSS JMP CRLS1 NOT AN LU LDA AL+2 CPA ... JMP OPLST IT IS AN LU, DO NOT CREATE CRLS1 JSB CREAT CREATE LIST FILE DEF *+8 DEF DCBL LIST FILE DCB DEF ?ERR ERROR WORD DEF AL+1 LIST FILE NAME DEF .64 SIZE OF LIST FILE 64 BLOCKS DEF .4 TYPE OF LIST FILE 4 DEF AL+5 SECURITY CODE DEF AL DRN OR -LU# SSA,RSS ERRORS? JMP OPLST NO OPEN LIST FILE CPA M2 DUPLICATE FILE NAME? JMP OPLST YES, THEN DO NOT CREATE FILE JSB ?FMPE FMP ERROR MESSAGE ROUTINE DEF AL+1 LIST FILE NAME * OPLST JSB OPEN OPEN LIST FILE DEF *+7 DEF DCBL LIST FILE DCB DEF ?ERR ERROR WORD DEF AL+1 LIST FILE NAME DEF .210B OPTION WORD FOR LIST FILE DEF AL+5 SECURITY CODE DEF AL DRN OR -LU# SSA,RSS ERRORS? JMP SYMTB NO, GET MEMORY SPACE FOR SYMBOL TABLE JSB ?FMPE FMP ERROR MESSAGE ROUTINE DEF AL+1 LIST FILE NAME * SYMTB JSB LIMEM FIND FWA & # OF WORDS IN AVAILABLE DEF *+4 MEMORY DEF IWHCH DEF ?FWA DEF IWRDS LDA IWRDS # OF WORDS = 0? SZA JMP AVMEM NO CALCULATE LWA JSB IMESS NO SYMBOL TABLE SPACE DEF *+4 DEF .2 SEND MESSAGE DEF TBLOV /XREF: TABLE OVERFLOW DEF .11 JMP XRFEX ABORT XREF * AVMEM LDA ?FWA FIRST WORD AVAILABLE OF FREE MEMORY ADA M1 -1 ADA IWRDS # OF WORDS IN FREE MEM STA ?LWA LAST WORD AVAILALE IN FREE MEM * JSB FCONT PAGE EJECT DEF *+5 DEF DCBL LIST FILE DCB DEF ?ERR ERROR WORD DEF B1100 OPTION WORD DEF M1 PAGE EJECT SSA,RSS ERRORS? JMP SGMLD NO, THEN LOAD SEGMENT CPA .M12 -12 ERROR? JMP SGMLD YES, THEN IGNORE IT JSB ?FMPE YES, DISPLAY ERROR DEF AL+1 LIST FILE NAME * SGMLD JSB SEGLD LOAD XREF SEGMENT DEF *+3 DEF XREF1 XREF SEGMENT NAME DEF ?ERR ERROR WORD JSB ?FMPE FMP ERROR ROUTINE DEF XREF1 SEGMENT NAME * * RTNXR JSB CLOSE CLOSE INPUT FILE DEF *+3 DEF DCBI INPUT FILE DCB DEF ?ERR ERROR WORD SSA,RSS ERRORS? JMP EFLST NO, WRITE EOF ON LIST FILE JSB ?FMPE DEF AI+1 INPUT FILE NAME EFLST JSB FCONT WRITE EOF RECORD ON LIST FILE DEF *+4 DEF DCBL DEF ?ERR DEF B100 SSA,RSS ERRORS? JMP CLLST NO CPA .M12 -12 ERROR? JMP CLLST YES, THEN IGNORE IT JSB ?FMPE YES DEF AL+1 * CLLST JSB CLOSE CLOSE LIST FILE DEF *+3 DEF DCBL LIST FILE DCB DEF ?ERR ERROR WORD SSA,RSS ERROR? JMP XRFEX NO, EXIT XREF JSB ?FMPE DISPLAY ERROR AND ABORT XREF DEF AL+1 LIST FILE NAME * XRFEX JSB IMESS DEF *+4 DEF .2 DEF XRFEN DEF .6 * JSB LIMEM RELEASE AVAILABLE MEMORY DEF *+2 DEF M1 CLA EXIT XREF JSB .STOP * XRFEN ASC 6, /XREF: $END TBLOV ASC 11, /XREF: TABLE OVERFLOW B100 OCT 100 B1100 OCT 1100 .6 DEC 6 .11 DEC 11 * * * ?FMPE - ROUTINE TO DISPLAY FMP ERROR & ABORT XREF * CALLING SEQUENCE: JSB ?FMPE * DEF AI FILE NAME OF FILE BEING ACCESSED * WHEN ERROR OCCURED * A REG = ERROR CODE * * ?FMPE NOP CMA,INA MAKE ERROR CODE +VE STA FMERR SAVE ERROR CODE CCE E REG = 1 FOR DECIMAL JSB BNCN CONVERT ERROR CODE TO ASCII DLD ASCI+1 DST FMPER+6 LDA ?FMPE,I GET FILE NAME BUFFER ADDRESS STA ASCI USE ASCI BUFFER AS TEMPORARY DLD ASCI,I MOVE FILE NAME TO BUFFER DST FMPER+9 LDA ASCI ADA .2 LDA A,I STA FMPER+11 JSB IMESS PRINT MESSAGE ON CONSOLE DEF *+4 FILEMANAGER ERROR -NNNN FILENM DEF .2 DEF FMPER ERROR MESSAGE DEF .12 LENGTH OF MESSAGE JMP XRFEX ABORT ASMB * FMERR NOP .2 DEC 2 .12 DEC 12 FMPER ASC 12,FMP ERROR - * * * ************************************** * * BINARY TO ASCII CONVERSION ROUTINE * * * A = NUMBER TO BE CONVERTED * * * E = 0 CONVERT TO OCTAL * * * E = 1 CONVERT TO DECIMAL * * ************************************** OCT 30060 PACKED ASCII '00'. BNCN NOP LDB ICSA GET LOC'N OF ACSI BUFFER STB SYMI CCB STB VALUS START UPPER LDB BNCN-1 SET BUFFER=ASCII ZERO'S STB ASCI STB ASCI+1 STB ASCI+2 SEZ TEST E BIT (=0,OCTAL =1,DECIMAL) JMP % DEC CONVERSION LDB .M6 STB DCNT CLE,ELA STA VALU CLA ELA SIGN BIT IS SIXTH DIGIT JSB DPCK LDA VALU ALF,RAR STA VALU AND .7 (7) MASK 1 DIGIT ISZ DCNT END ? JMP *-6 NO. CONTINUE. JMP BNCN,I YES, EXIT DPCK NOP ADA SYMI,I ISZ VALUS JMP *+4 ALF,ALF STA SYMI,I JMP DPCK,I STA SYMI,I ISZ SYMI CCA STA VALUS JMP DPCK,I EXIT % LDB .M3 (-3) DEC. CONVERSION RTN STB DCNT LDB LMDG STB VAL0 LDB LPDG STB VAL1 LDB 0 A TO B ISZ SYMI DPCR CLA,RSS INA (FROM *+3) ADB VAL0,I COUNT NO.OF TIMES GT 10**N SSB,RSS JMP *-3 ADB VAL1,I <10**N, RESTORE VALUE JSB DPCK PACK DIGIT ISZ VAL1 ISZ VAL0 ISZ DCNT JMP DPCR RETURN FOR 10**N-1 LDA 1 JSB DPCK JMP BNCN,I EXIT * .M3 DEC -3 .M6 DEC -6 .7 DEC 7 ICSA DEF ASCI SYMI NOP VAL0 NOP VAL1 NOP VALU NOP VALUS NOP DCNT NOP LMDG DEF *+1 DEC -1000,-100,-10 LPDG DEF *+1 DEC 1000,100,10 ASCI BSS 3 A EQU 0 B EQU 1 * END XREF