ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:10 2020 Source File: \u5flipr.asm OVERLAY FROM DISK TO LOCAL/SOCAL AREA 2 | *************************************************** U5D00020 3 | * * U5D00030 4 | * PROGRAM NAME- LOCAL/SOCAL FLIPPER * U5D00040 5 | * CODE NAME- FLIPR * U5D00050 6 | * FUNCTION/OPERATION- * U5D00060 7 | * THIS PROGRAM IS INCLUDED IN A CORE LOAD * U5D00070 8 | * IF ANY SUBROUTINES USED ARE LOCALS OR ARE * U5D00080 9 | * IN SOCALS. FLIPPER IS USED TO READ THE * U5D00090 10 | * OVERLAY FROM DISK INTO THE LOCAL/SOCAL AREA* U5D00100 11 | * IN CORE AT THE POINT IN EXECUTION WHEN THE * U5D00110 12 | * SUBROUTINE IS CALLED. IT THEN BRANCHES TO * U5D00120 13 | * EXECUTE THE SUBROUTINE THAT HAS BEEN CALL- * U5D00130 14 | * ED. IN THE CASE OF A CALL SUBROUTINE,FLIPP-* U5D00140 15 | * ER SIMULATES A BSI FROM THE LOCATION WHER * U5D00150 16 | * THE CALL WAS ACTUALLY MADE. BEFORE FETCHING* U5D00160 17 | * A SUBROUTINE,FLIPPER CHECKS TO SEE IF IT IS* U5D00170 18 | * ALREADY IN THE LOCAL/SOCAL AREA. IF SO, * U5D00180 19 | * FLIPPER IMMEDIATELY BRANCHES TO THE SUB- * U5D00190 20 | * ROUTINE. * U5D00200 21 | * ENTRY POINTS- * U5D00210 22 | * THIS PROGRAM HAS SIX ENTRY POINTS * U5D00220 23 | * *** FOR LIBF LOCALS. * U5D00230 24 | * INDEX REGISTER 2 IS SET TO THE ADDRESS * U5D00240 25 | * OF THE FIRST PARAMETER IN THE CALLING * U5D00250 26 | * SEQUENCE. THE CALLING SEQUENCE IS AS * U5D00260 27 | * FOLLOWS-- * U5D00270 28 | * BSI L FL010 * U5D00280 29 | * DC WORD COUNT * U5D00290 30 | * DC SECTOR ADDRESS * U5D00300 31 | * DC ENTRY POINT * U5D00310 32 | * *** FOR CALL LOCALS. * U5D00320 33 | * INDEX REGISTER TWO IS SET TO THE ADDRESS* U5D00330 34 | * OF THE FIRST PARAMETER IN THE CALLING * U5D00340 35 | * SEQUENCE. THE CALLING SEQUENCE IS AS * U5D00350 36 | * FOLLOWS-- * U5D00360 37 | * DC *-* LINK WORD * U5D00370 38 | * BSI L FL020 * U5D00380 39 | * DC WORD COUNT * U5D00390 40 | * DC SECTOR ADDRESS * U5D00400 41 | * DC ENTRY POINT * U5D00410 42 | * *** FOR FUNCTION SUBROUTINES. * U5D00420 43 | * INDEX REGISTER TWO IS SET TO ZERO AS * U5D00430 44 | * AN INDICATOR THAT THIS ENTRY WAS USED. * U5D00440 45 | * THIS SECTION IS ENTERED VIA A BSI TO * U5D00450 46 | * FL200. * U5D00460 47 | * *** FOR ARITHMETIC SUBROUTINES. * U5D00470 48 | * INDEX REGISTER TWO IS SET TO ZERO AS AN * U5D00480 49 | * INDICATOR THAT THIS ENTRY WAS USED. * U5D00490 50 | * THIS SECTION IS ENTERED VIA A BSI TO * U5D00500 51 | * FL210. * U5D00510 52 | * *** FOR EVERYTHING IN THE FIO SOCAL * U5D00520 53 | * INDEX REGISTER TWO IS SET TO 2 AS AN * U5D00530 54 | * INDICATOR OF AN FIO SOCAL. THIS SECTION * U5D00540 55 | * IS ENTERED VIA A BSC TO FL220. * U5D00550 56 | * *** FOR EVERYTHING IN THE DISK FIO SOCAL. * U5D00560 57 | * INDEX REGISTER TWO IS SET TO 4 AS AN * U5D00570 58 | * INDICATOR OF A DISK FIO SOCAL. THIS * U5D00580 59 | * SECTION IS ENTERED VIA A BSC TO FL230. * U5D00590 60 | * INPUT- SEE ENTRY POINT AND CALLING SEQUENCE * U5D00600 61 | * INFORMATION. * U5D00610 62 | * OUTPUT- THE SUBROUTINE CALLED IS READ INTO * U5D00620 63 | * THE OVERLAY AREA FROM DISK. * U5D00630 64 | * EXTERNAL REFERENCES- * U5D00640 65 | * DZ000 -- ENTRY POINT FOR THE DISK I/O * U5D00650 66 | * SUBROUTINE. * U5D00660 67 | * $WRD1 -- FIRST WORD OF CI HEADER * U5D00670 68 | * $IOCT IOCS COUNTER * U5D00680 69 | * $DBSY DISK BUSY INDR * U5D00690 70 | * $LSAD RELATIVE ADDR OF LOCAL SECTOR * U5D00700 71 | * ERROR CONDITIONS- NONE RECOGNIZED * U5D00710 72 | * NOTES- NONE * U5D00720 73 | * * U5D00730 74 | *************************************************** U5D00740 OVERLAY FROM DISK TO LOCAL/SOCAL AREA 76 | ENT FLIPR U5D00760 0000 0000 77 | FL000 DC *-* CONTENTS OF ACCUMULATOR U5D00770 0001 0000 78 | DC *-* CONTENTS OF EXTENSION U5D00780 79 | * U5D00790 80 | * ENTRY POINT FOR LIBF LOCALS U5D00800 81 | * U5D00810 0001R 82 | FL010 EQU *-1 ENTRY POINT FOR LIBF LOCALS U5D00820 0002 282D 83 | STS FL140 SAVE STATUS U5D00830 0003 6A2B 84 | STX 2 FL130+1 SAVE XR2 U5D00840 0004 6680 0001R 85 | LDX I2 FL010 ADDR OF PARAMETERS TO XR1 U5D00850 0006 D8F9 86 | STD FL000 SAVE ACCUMULATOR, EXTENSION U5D00860 0007 C202 87 | LD 2 2 FETCH LOCAL EXECUTION ADDR U5D00870 0008 7010 88 | MDX FL100 U5D00880 89 | * U5D00890 90 | * ENTRY POINT FOR CALL LOCALS U5D00900 91 | * U5D00910 0009 0000 92 | FL020 DC *-* ENTRY POINT FOR CALL LOCALS U5D00920 000A 2825 93 | STS FL140 SAVE STATUS U5D00930 000B 6A23 94 | STX 2 FL130+1 SAVE XR2 U5D00940 000C 6680 0009R 95 | LDX I2 FL020 U5D00950 000E D8F1 96 | STD FL000 SAVE ACCUMULATOR, EXTENSION U5D00960 000F C050 97 | LD FL910 SET UP RETURN ADDR TO U5D00970 0010 D022 98 | STO FL200 *RETURN TO FL050 U5D00980 0011 7008 99 | MDX FL110 U5D00990 0012 6680 0009R 100 | FL050 LDX I2 FL020 ADDR OF PARAMETERS TO XR2 U5D01000 0014 C2FD 101 | LD 2 -3 SIMULATE A BSI TO THE SUB- U5D01010 0015 D680 0002 102 | STO I2 2 *ROUTINE WHICH WAS CALLED U5D01020 0017 C202 103 | LD 2 2 CONTINUE SIMULATION BY SET- U5D01030 0018 8049 104 | A FL920 *TING UP A BSC TO ENTRY+1 U5D01040 0019 D019 105 | FL100 STO FL200 STORE EXIT ADDR U5D01050 001A C201 106 | FL110 LD 2 1 FETCH SCTR ADDR FROM LOCAR U5D01060 001B 8400 0075 107 | A L $LSAD ADJUST SCTR ADDR U5D01070 001D 9047 108 | S FL998+1 BRANCH IF THE DESIRED LOCAL U5D01080 001E 4C18 002ER 109 | BSC L FL130,+- *IS ALREADY IN CORE U5D01090 0020 8044 110 | A FL998+1 U5D01100 0021 D043 111 | STO FL998+1 *UA/FXA OR WORKING STORAGE U5D01110 0022 C200 112 | LD 2 0 STORE THE U5D01120 0023 D040 113 | STO FL998 *WORD COUNT U5D01130 0024 C03E 114 | LD FL925 FETCH ADDR OF LOCAL AREA U5D01140 0025 7400 0032 115 | FL115 MDX L $IOCT,0 WAIT OUT ANY PENDING INTER- U5D01150 0027 70FD 116 | FL120 MDX *-3 *RUPTS BEFORE OVERLAYING U5D01160 117 | * U5D01170 118 | * FETCH THE DESIRED LOCAL/SOCAL U5D01180 119 | * U5D01190 0028 1890 120 | SRT 16 U5D01200 0029 4400 00F2 121 | BSI L DZ000 FETCH DESIRED LOCAL/SOCAL U5D01210 002B 7400 00EE 122 | MDX L $DBSY,0 LOOP UNTIL LOCAL/SOCAL HAS U5D01220 002D 70FD 123 | MDX *-3 *BEEN READ INTO CORE U5D01230 002E 6600 0000 124 | FL130 LDX L2 *-* RESTORE XR2 U5D01240 0030 2000 125 | FL140 LDS 0 RESTORE STATUS U5D01250 0031 C8CE 126 | LDD FL000 RESTORE ACCUMULATOR U5D01260 0032 4C00 0000 127 | BSC L *-* EXIT FROM FLIPPER U5D01270 128 | * U5D01280 129 | * ENTRY POINT FOR FUNCTION SUBROUTINES U5D01290 130 | * U5D01300 0033R 131 | FL200 EQU *-1 U5D01310 0034 6AFA 132 | STX 2 FL130+1 SAVE XR2 U5D01320 0035 D8CA 133 | STD FL000 SAVE ACCUMULATOR, EXTENSION U5D01330 0036 74FE 0033R 134 | MDX L FL200,-2 U5D01340 0038 6200 135 | LDX 2 0 ARITH/FUNC INDICATOR TO XR2 U5D01350 0039 700C 136 | MDX FL300 BR TO SAVE STATUS U5D01360 137 | * U5D01370 138 | * ENTRY POINT FOR ARITHMETICS U5D01380 139 | * U5D01390 003A 6AF4 140 | FL210 STX 2 FL130+1 SAVE XR2 U5D01400 003B 6200 141 | LDX 2 0 ARITH/FUNC INDICATOR TO XR2 U5D01410 003C 7005 142 | MDX FL250 BR TO SAVE ACCUMULATOR,EXT U5D01420 143 | * U5D01430 144 | * ENTRY POINT FOR EVERYTHING IN THE FIO SOCAL U5D01440 145 | * U5D01450 003D 6AF1 146 | FL220 STX 2 FL130+1 SAVE XR2 U5D01460 003E 6202 147 | LDX 2 2 FIO INDICATOR TO XR2 U5D01470 003F 7002 148 | MDX FL250 BR TO SAVE ACCUMULATOR,EXT U5D01480 149 | * U5D01490 150 | * ENTRY POINT FOR EVERYTHING IN THE DISK FIO SOCAL U5D01500 151 | * U5D01510 0040 6AEE 152 | FL230 STX 2 FL130+1 SAVE XR2 U5D01520 0041 6204 153 | LDX 2 4 DISK FIO INDICATOR TO XR2 U5D01530 0042 D8BD 154 | FL250 STD FL000 SAVE ACCUMULATOR, EXTENSION U5D01540 0043 C600 0050R 155 | LD L2 FL380 PREPARE TO RETURN TO 3RD WD U5D01550 0045 D0ED 156 | STO FL200 *OF DUMMY SOCAL ENTRY IN TV U5D01560 0046 28E9 157 | FL300 STS FL140 SAVE STATUS U5D01570 0047 CE00 005AR 158 | LDD L2 FL900 FETCH SCTR ADDR,WD CNT U5D01580 0049 8400 0075 159 | A L $LSAD *OF DESIRED SOCAL AND U5D01590 004B 18D0 160 | RTE 16 *ADJUST IT TO UA/FXA OR WS U5D01600 004C DC00 0000 161 | STD L *-* STORE PARAMS IN SOCAL AREA U5D01610 004DR 162 | FL350 EQU *-1 CORE ADDR OF THE SOCAL AREA U5D01620 004E C012 163 | LD FL915 PUT MDX TO *-9 (*-12 IF ALL U5D01630 004F D400 0000 164 | STO L *-* *3 SOCALS USED) IN 3RD WD U5D01640 0050R 165 | FL380 EQU *-1 U5D01650 0051 D400 0000 166 | STO L *-* *OF DUMMY ARITH,FIO ENTRIES U5D01660 0053 D400 0000 167 | STO L *-* *ALSO DKFIO IF IT IS USED U5D01670 0055 C0D1 168 | LD FL120 PUT MDX TO *-3 IN 3RD WD OF U5D01680 0056 D680 0050R 169 | STO I2 FL380 *DUMMY TV ENT FOR THIS SOCL U5D01690 0058 C0F4 170 | LD FL350 FETCH ADDR OF SOCAL AREA U5D01700 0059 70CB 171 | MDX FL115 *AND BR TO FETCH THE SOCAL U5D01710 172 | * U5D01720 173 | * CONSTANTS AND WORK AREAS U5D01730 174 | * EVEN-NUMBERED LABELS ARE ON EVEN BOUNDARIES U5D01740 175 | * U5D01750 176 | * THE 6 WORDS STARTING AT FL900 CONTAIN THE SCTR U5D01760 177 | * ADDRESS AND WORD COUNT FOR EACH OF THE SOCALS. U5D01770 178 | * U5D01780 005A 179 | FL900 BSS E 6 WD CNT, SCTR ADDR FOR ALL SOCALS U5D01790 180 | * U5D01800 181 | * FL120 AND FL915 ARE STORED IN THE 3RD WORD OF THE U5D01810 182 | * DUMMY TV ENTRIES FOR SOCALS, FL120 IN THE TV ENT- U5D01820 183 | * -RY OF THE SOCAL IN THE SOCAL AREA, FL915 IN THE U5D01830 184 | * OTHER ENTRY(IES). IF OPTION 1 IS EMPLOYED, FL915 U5D01840 185 | * IS AN MDX TO *-9. IF OPTION 2 IS EMPLOYED, IT IS U5D01850 186 | * AN MDX TO *-12. U5D01860 187 | * U5D01870 0060 0012R 188 | FL910 DC FL050 U5D01880 0061 189 | FL915 BSS 1 MDX *-9 OR MDX *-12 U5D01890 0062 0001 190 | FL920 DC 1 U5D01900 0063 0064R 191 | FL925 DC FL998 ADDR OF LOCAL OVERLAY AREA U5D01910 192 | * U5D01920 193 | * THE LOCAL OVERLAY AREA, INCLUDING THE WORD U5D01930 194 | * COUNT AND SECTOR ADDRESS U5D01940 195 | * U5D01950 0064 196 | BSS E 0 U5D01960 0064 0000 197 | FL998 DC *-* WORD COUNT OF LOCAL U5D01970 0065 0000 198 | DC *-* SCTR ADDR OF LOCAL U5D01980 199 | * U5D01990 200 | * U5D02000 201 | * U5D02010 0000R 202 | FLIPR EQU FL000 U5D02020 00F2 203 | DZ000 EQU /F2 ENTRY POINT FOR DISK I/O ROUTINE U5D02030 007B 204 | $WRD1 EQU /7B ADDR OF 1ST WD OF CI HEADER U5D02040 0032 205 | $IOCT EQU 50 IOCS COUNTER U5D02050 00EE 206 | $DBSY EQU /EE DISK BUSY INDICATOR U5D02060 0075 207 | $LSAD EQU /75 RELATIVE ADDR OF LOCAL SCTR ADDR U5D02070 0066 208 | END U5D02080 There were no errors in this assembly === CROSS REFERENCES ========================================================== Name Val Defd Referenced $DBSY 00EE 206 122 $IOCT 0032 205 115 $LSAD 0075 207 107 159 $WRD1 007B 204 DZ000 00F2 203 121 FL000 0000R 77 86 96 126 133 154 202 FL010 0001R 82 85 FL020 0009R 92 95 100 FL050 0012R 100 188 FL100 0019R 105 88 FL110 001AR 106 99 FL115 0025R 115 171 FL120 0027R 116 168 FL130 002ER 124 84 94 109 132 140 146 152 FL140 0030R 125 83 93 157 FL200 0033R 131 98 105 134 156 FL210 003AR 140 FL220 003DR 146 FL230 0040R 152 FL250 0042R 154 142 148 FL300 0046R 157 136 FL350 004DR 162 170 FL380 0050R 165 155 169 FL900 005AR 179 158 FL910 0060R 188 97 FL915 0061R 189 163 FL920 0062R 190 104 FL925 0063R 191 114 FL998 0064R 197 108 110 111 113 191 FLIPR 0000R 202