ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:08 2020 Source File: \t2subin.asm LIBF SUBIN 2 | * FORTRAN SUBROUTINE INITIALIZATION T2C00020 3 | LIBR SUBIN T2C00030 4 | ENT SUBIN T2C00040 5 | *************************************************** T2C00050 6 | * SUBROUTINE NAME * T2C00060 7 | * FULL NAME- SUBROUTINE INITIALIZATION * T2C00070 8 | * CODE NAME- SUBIN * T2C00080 9 | * PURPOSE- SYSTEM SUBROUTINE 'SUBIN' * T2C00090 10 | * INITIALIZES A FORTRAN SUBPROGRAM BY * T2C00100 11 | * TRANSFERRING THE ADDRESSES IN THE * T2C00110 12 | * ARGUMENT LIST OF THE CALLING PROGRAM * T2C00120 13 | * AND INSERTING THEM AS ADDRESSES OF * T2C00130 14 | * DUMMY VARIABLES IN THE CALLED * T2C00140 15 | * SUBPROGRAM. * T2C00150 16 | * IT ALSO INCREMENTS THE ADDRESS IN * T2C00160 17 | * THE LINK WORD OF THE SUBPROGRAM BY * T2C00170 18 | * THE NUMBER OF ARGUMENTS SO THAT THE * T2C00180 19 | * LINK WORD WILL BECOME RETURN ADDRESS * T2C00190 20 | * (=FIRST WORD AFTER THE ARGUMENT LIST * T2C00200 21 | * IN THE CALLING PROGRAM). * T2C00210 22 | * * T2C00220 23 | * * T2C00230 24 | * * T2C00240 25 | * CALLING PROGRAM REFERS TO A * T2C00250 26 | * FORTRAN SUBPROGRAM WITH A LONG * T2C00260 27 | * BSI INSTRUCTION (ADDRESS = ADDRESS OF * T2C00270 28 | * THE SUBPROGRAM), FOLLOWED BY AN * T2C00280 29 | * ARGUMENT LIST. * T2C00290 30 | * * T2C00300 31 | * IN ORDER TO TRANSFER THESE ARGUMENTS, * T2C00310 32 | * THE FIRST EXECUTABLE INSTRUCTION IN * T2C00320 33 | * EACH SUBPROGRAM THAT HAS DUMMY * T2C00330 34 | * VARIABLES IS A SHORT BSI INSTRUCTION * T2C00340 35 | * (ADDRESS = TRANSFER VECTOR ADDRESS OF * T2C00350 36 | * 'SUBIN'), FOLLOWED BY A LIST OF ADD- * T2C00360 37 | * RESSES OF THE DUMMY VARIABLES TO * T2C00370 38 | * BE INSERTED. * T2C00380 39 | * * T2C00390 40 | * * T2C00400 41 | * * T2C00410 42 | * TO INDICATE WHICH DUMMY VARIABLE IS * T2C00420 43 | * REFERRED TO IN THE LIST, THE ARRAY OF * T2C00430 44 | * ADDRESSES REFERRING TO ONE DUMMY * T2C00440 45 | * VARIABLE IS TERMINATED BY A * T2C00450 46 | * ZERO. THE ZERO TERMINATING * T2C00460 47 | * THE LAST ARRAY IS FOLLOWED BY A * T2C00470 48 | * WORD = 0001 TO INDICATE THE END OF * T2C00480 49 | * THE LIST. (CONSTANT = 1 IS * T2C00490 50 | * USED SINCE IT CAN NEVER BE MISTAKEN * T2C00500 51 | * FOR AN ADDRESS.) * T2C00510 52 | * HAVING ENCOUNTERED CONSTANT OF ONE, * T2C00520 53 | * 'SUBIN' TRANSFERS CONTROL TO THE * T2C00530 54 | * NEXT WORD (AFTER THE CONSTANT), WHICH * T2C00540 55 | * IS THE NEXT POST-INITIALIZATION * T2C00550 56 | * EXECUTABLE INSTRUCTION. * T2C00560 57 | * * T2C00570 58 | * SUBROUTINES THAT HAVE NO ARGUMENTS * T2C00580 59 | * DO NOT REQUIRE SUBROUTINE 'SUBIN'. * T2C00590 60 | * * T2C00600 61 | * METHOD- N/A * T2C00610 62 | * CAPABILITIES AND LIMITATIONS- N/A * T2C00620 63 | * SPECIAL FEATURES- N/A * T2C00630 64 | * ADDITIONAL INFORMATION- N/A * T2C00640 65 | *************************************************** T2C00650 0000 1000 66 | SUBIN SLA 0 DUMMY-INSTRUCTION T2C00660 0001 C400 0000 67 | LD L *+*-*-* GET LINK WORD FROM TV T2C00670 0003 D006 68 | STO ADR1+1 T2C00680 0004 901A 69 | S TWO COMPUTE AND INSERT ADDRESS T2C00690 0005 D002 70 | STO ADR0+1 *OF LINK WORD (= SUBPROGRAM T2C00700 0006 D008 71 | STO ADR2+1 *LINK WORD) T2C00710 0007 6580 0000 72 | ADR0 LDX I1 *-* T2C00720 0009 C400 0000 73 | ADR1 LD L *-* GET NEXT ADDR, ZERO, OR ONE T2C00730 000B 4C20 0011R 74 | BSC L ADR3,Z BR IF NOT A ZERO T2C00740 000D 7101 75 | MDX 1 1 MOVE XR1 TO NEXT ARGUMENT T2C00750 000E 7401 0000 76 | ADR2 MDX L *-*,1 INCR ADDR IN LINK WORD T2C00760 0010 7007 77 | MDX ADR5 T2C00770 0011 D005 78 | ADR3 STO ADR4+1 INSERT ADDRESS T2C00780 0012 1801 79 | SRA 1 T2C00790 0013 4818 80 | BSC +- SKIP IF NOT ONE T2C00800 0014 7006 81 | MDX ADR6 BR IF END OF ARGUMENT LIST T2C00810 0015 C100 82 | LD 1 0 TRANSFER ONE ADDRESS FROM T2C00820 0016 D400 0000 83 | ADR4 STO L *-* ARGUMENT LIST OF CALL PROG T2C00830 0018 7401 000AR 84 | ADR5 MDX L ADR1+1,1 INCR SUBIN ARGUMENT POINTER T2C00840 001A 70EE 85 | MDX ADR1 T2C00850 001B 7401 000AR 86 | ADR6 MDX L ADR1+1,1 T2C00860 001D 4C80 000AR 87 | BSC I ADR1+1 RETURN TO SUBPROGRAM T2C00870 001F 0002 88 | TWO DC 2 T2C00880 89 | * (INITIALIZATION TERMINATED) T2C00890 90 | * T2C00900 91 | *************************************************** T2C00910 0020 92 | END T2C00920 There were no errors in this assembly === CROSS REFERENCES ========================================================== Name Val Defd Referenced ADR0 0007R 72 70 ADR1 0009R 73 68 84 85 86 87 ADR2 000ER 76 71 ADR3 0011R 78 74 ADR4 0016R 83 78 ADR5 0018R 84 77 ADR6 001BR 86 81 SUBIN 0000R 66 TWO 001FR 88 69