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