ASMB,R,L,C * * **************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979. 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: PART OF MATH LIBRARY * SOURCE: 24998-18XXX SEE NAM FOR LAST THREE DIGITS * RELOC: PART OF 24998-12001 * PGMR: BG & JTS * NAM .PRAM,7 24998-1X061 REV.2001 750701 ENT .PRAM * ****************************************************** * * .PRAM - PROCESS AND SET PARAMETER VALUES AND/OR * * * ADDRESSES IN THE PROCEDURE PARAMETER LINKG. * * * * * * LINKAGE: * * * JSB .PRAM * * * (CODE WORDS) * * * 1ST PARAMETER ADDRESS OR VALUE(REAL=2WORDS) * * * 2ND PARAMETER ADDRESS OR VALUE(REAL=2WORDS) * * * : : : : * * * LAST PARAMETER ADDRESS OR VALUE * * * * * * CODE WORDS: * * * * * * 1ST: UPPER 6 BITS CONTAINS NO. OF PARAMTRS. * * * LOWER 10 BITS CONTAIN FLAGS FOR EACH OF* * * 1ST 5 PARAMETERS IN PAIRS OF BITS. * * * UPPER=1, PARAMETER IS BY VALUE. * * * LOWER=1, PARAMETER VALUE IS REAL. * * * * * * IF UPPER BIT=0, THE LINKAGE CONTAINS * * * THE PARAMETER ADDRESS(IGNORE LOWER). * * * * * * IF UPPER BIT=1,THE LINKAGE CONTAINS * * * THE PARAMETER VALUE. * * * * * * IF BOTH BITS=1, THE VALUE IS REAL AND * * * THE VALUE WILL NEED 2 WORDS IN THE * * * LINKAGE. * * * * * * SUBSEQUENT CODE WORDS: * * * CONTAIN 8 PAIRS OF BITS FOR 8 PARAMETRS* * * * * * MAXIMUM OF 7 CODE WORDS(52 PARAMETERS). * * ****************************************************** .PRAM NOP ENTRY TO .PRAM HERE LDA *-1 PICK UP ENTRY ADDRESS + 1 STA ADDRA SET LOC'N OF 1ST CODE WORD INA STA ADDRL SET LOC'N OF 1ST PARAMETER ADDRES * OR VALUE(TO BE BUMPED ACCORDING * TO NO. OF PARAMETERS, +1 FOR 5 * PARAMETERS, 1 NORE FOR EACH SUB- * SEQUENT MULTIPLE OF 8.). ADA M3 GET ADDRESSOF PARAM, COUNT LDB A,I GET PROCEDURE'S RETURN ADB BIT15 ADDRESS AND MAKE IT STB A,I INDIRECT. ELB,CLE,ERB NOW REMOVE THE INDIRECT BIT. INB STB ADDRP SET PICKUP LOC'N OF ACTUAL PAR- * AMETER ADDRESSES(IN .PROC LINKG) * * GET NUMBER OF PARAMETERS FROM 1ST CODE WORD. * LDA ADDRA,I GET 1ST CODE WORD FROM LINKAGE ALF,RAL RAL ROTATE PARAM COUNT TO LOWER 6 BIT AND M77 NOW A REG. = PARAMETER COUNT SZA,RSS ARE THERE ANY PARAMETERS? JMP ADDRL,I NO, EXIT THE .PRAM ROUTINE HERE.. STA CNTR SAVE PARAMETER COUNT ADA M6 START SKIP OF ADDRL PAST ALL CODE SSA WORDS.. IS IT PAST THEM? JMP PRM10 YES, GO TO PARAMETER MOVE/SETUP ISZ ADDRL NO, BUMP ADDRL BY 1 ADA M8 REDUCE A BY 8(1 SET OF CODE WORDS JMP *-4 GO BACK TO TEST AGAIN.. * * PLACE INITIAL CODE WORD INTO A REG. AND POSITION IT * * * INITIALIZE CODE COUNTER(CODES) AND PARAMETER COUN- * * * TER(CNTR). * PRM10 LDA ADDRA,I GET INITIAL CODE WORD ALF,RAL ROTATE CODE PAIRS TO INITIAL PON LDB M5 STB CODES SET CODE COUNTER FOR 5 PAIRS LDB CNTR GET PARAMETER COUNTER CMB,INB STB CNTR COMPLEMENT IT FOR COUNTING * * PROCESS PARAMETER ADDRESS OR VALUE ACCORDING TO CODE WRD PRM15 LDB ADDRP,I PICK UP PARAMETER ADDRESS RBL,CLE,SLB,ERB IF IT'S DIRET, SKIP NEXT INST LDB B,I IF IT'S INDIRECT GET THE DIRECT * * PARAMETER ADDRESS NOW IN B REG. * RAL,RAL REPOSITION CODE PAIR SLA,RSS IS CURRENT PARAMETER A VALUE? JMP PRM25 NO, IT'S AN ADDRESS... STB T ADDRESS OF VALUE TO T LDB T,I GET THE VALUE.. SSA,RSS IS THE VALUE REAL? JMP PRM25 NO, IT'S AN INTEGER STB ADDRL,I STORE 1ST PART OF REAL VLUE ISZ ADDRL BUMP LINKAGE ADDRESS ISZ T BUMP ADDRESS OF VALUE LDB T,I GET 2ND PART OF RAEL VALUE. PRM25 STB ADDRL,I STORE IT IN THE LINKAGE ISZ ADDRL BUMP .PRAM LINKAGE ADDRESS ISZ ADDRP BUMP PARAM LOC'N IN PROCED LINK. ISZ CNTR IS FINAL PARAMETER PROCESSED? RSS NO, SKIP TO CONTINUE JMP ADDRL,I YES, EXIT FROM .PRAM HERE.... ISZ CODES LAST PAIR IN CODE WORD OUT? JMP PRM15 NO, GO BACK AND CONTINUE.. LDA M8 YES, GET -8 FOR RESETTING STA CODES RESET CODES FOR 8 PAIRS ISZ ADDRA BUMP CODE WORD POINTER LDA ADDRA,I GET CURRENT CODE WORD RAR POSITION IT FOR PROCESSING JMP PRM15 GO BACK AND CONTINUE CHECKING.. * * DATA AND TEMPORARY AREA * ADDRA NOP LOC'N OF CODE WORD IN .PRAM LINK ADDRL NOP LOC'N OF PARAM ADDR IN .PRAM LINK ADDRP NOP LOC'N OF ACTUAL PARAMETER ADDR. CODES NOP CODE COUNTER FOR CODE PAIRS IN * CODE WORD... CNTR NOP PARAMETER COUNTER(# OF PROC.PARAM T NOP TEMPORARY FOR VALUE LOCATIONS BIT15 OCT 100000 M3 DEC -3 M5 DEC -5 M6 DEC -6 M8 DEC -8 M77 OCT 77 A EQU 0 B EQU 1 END * *