c08e22bb |
1 | * (FPATCH) REV.B (6.2.2005) |
2 | * |
3 | * |
4 | * COMPUTER: H316 |
5 | * |
6 | * PROGRAM CATEGORY: I/O LIBRARY |
7 | * |
8 | * PROGRAM TITLE: FPATCH |
9 | * FORTRAN COMPILER PATCH |
10 | * |
11 | * |
12 | * AUTHOR |
13 | * |
14 | * PHILIPP HACHTMANN |
15 | * |
16 | * REVISIONS |
17 | * REV. B (6.2.2005) ADDED CORRECT DATA POOL ENTRY MANIPULATION |
18 | * |
19 | * PURPOSE |
20 | * |
21 | * THIS PATCH IS TO ENABLE THE FORTRAN IV COMPILER TO USE THE |
22 | * O$LA AND O$LH SUBROUTINES |
23 | * |
24 | * |
25 | * RESTRICTIONS |
26 | * |
27 | * DEPENDS ON HACHTI'S HARDWARE AND FORTRAN IV COMPILER TAPE |
28 | * |
29 | * |
30 | * STORAGE |
31 | * |
32 | * 50 (OCTAL) |
33 | * 40 (DECIMAL) |
34 | * |
35 | * |
36 | * USE |
37 | * |
38 | * THE LIBRARY ROUTINES ARE FOR GENERAL PURPOSE. |
39 | * TO APPLY THE PATCH: |
40 | * - BOOT FRTN SYSTEM TAPE |
41 | * - LOAD O$LA AT LOCATION '20000 |
42 | * - LOAD FPATCH SOMEWHERE ABOVE |
43 | * - RUN FROM FIRST LOCATION OF FPATCH |
44 | * |
45 | ******************************************************************************** |
46 | SUBR FPATCH,PTCH ONLY FOR NAMING PURPOSES |
47 | ******************************************************************************** |
48 | * |
49 | IOSB EQU '15036 IOS' BASE ADDRESS |
50 | IOSS EQU '36 INNER SECTOR OFFSET |
51 | PT1 EQU '611 FIRST FREELY USABLE ADDRESS IN IOS' SPACE |
52 | PT2 EQU '612 SECOND FREELY USABLE ADDRESS IN IOS' SPACE |
53 | PTE EQU '610 ADDRESS WHICH MUST BE FILLED WITH "V?" |
54 | PTS EQU '635 MESSAGE SIZE OF "DEVICE?" ERROR MESSAGE |
55 | JH EQU '173 ADDRESS OF CALL O$LH INSTRUCTION IN IOS |
56 | JL EQU '252 ADDRESS OF CALL O$LA INSTRUCTIIN IN IOS |
57 | DUM EQU '16612 DUMY OBJECT'S BASE ADDRESS |
58 | DPO EQU '16 ADDRESS OF ORIGINAL DUMY'S OWN BASE POINTER |
59 | * |
60 | JSTI EQU '121000 JST* INSTRUCTION |
61 | * |
62 | REL LET'S BEGIN RELATIVE |
63 | SUBR ENDPAL,FNS END OF THE IMPORTANT PART |
64 | REL RELATIVE MODE |
65 | ND1 *** ** |
66 | *** ** |
67 | *** ** |
68 | *** ** |
69 | ND2 *** ** |
70 | * |
71 | * |
72 | ABS ABSOLUTE MODE |
73 | ORG '21000 |
74 | PTCH NOP |
75 | LDX IOS ADDRESSES WILL BE RELATIVE TO IOS' BEGINNING |
76 | LDA OLHA O$LH ADDRESS (OK) |
77 | STA PT1,1 STORE TO POINTER LOCATION (OK) |
78 | LDA OLLA O$LA ADDRESS (OK) |
79 | STA PT2,1 STORE TO POINTER LOCATION (OK) |
80 | LDA VQ LOAD "V?" (OK) |
81 | STA PTE,1 REPAIR "DEV?" MSG (OK) |
82 | LDA ='-4 |
83 | STA PTS,1 NEW MESSAGE SIZE (OK) |
84 | * |
85 | LDA JMP1 NEUER SPRUNG |
86 | STA JH,1 |
87 | LDA JMP2 |
88 | STA JL,1 |
89 | ************** |
90 | * |
91 | LDA ND2P ADDRESS OF NEW "DUMMY ROUTINE" |
92 | STA* DP STORE TO VARIABLE IN ORIGINAL DUMMY ROUTINE |
93 | LDA ND1P1 |
94 | STA '100 |
95 | AOA |
96 | STA '101 |
97 | AOA |
98 | STA '102 |
99 | AOA |
100 | STA '103 |
101 | AOA |
102 | STA '104 |
103 | AOA |
104 | STA '105 |
105 | AOA |
106 | STA '106 |
107 | AOA |
108 | STA '107 |
109 | AOA |
110 | STA '110 |
111 | AOA |
112 | STA '111 |
113 | AOA |
114 | STA '112 |
115 | * |
116 | ********** |
117 | * READY |
118 | LDA OK LOAD OK |
119 | ICA |
120 | OCP '104 |
121 | OTA 4 |
122 | JMP *-1 |
123 | ICA |
124 | OTA 4 |
125 | JMP *-1 |
126 | LDA CRLF |
127 | ICA |
128 | OTA 4 |
129 | JMP *-1 |
130 | ICA |
131 | OTA 4 |
132 | JMP *-1 |
133 | HLT |
134 | JMP *-1 |
135 | * |
136 | ********** |
137 | * |
138 | * KONSTANTEN |
139 | VQ BCI 1,V? |
140 | CRLF OCT 6412 |
141 | OK BCI 1,OK |
142 | OLLA XAC O$LA |
143 | OLHA XAC O$LH |
144 | * |
145 | IOS DAC IOSB IOS BASE ADDRESS |
146 | DP DAC DUM+'52 "DP" VARIABLE ADDRESS |
147 | ND1P DAC ND1,1 NEW DUMMY ROUTINE'S BASE ADDRESS + INDEX BIT |
148 | ND2P DAC ND2 NEW DUMMY ROUTINE'S START ADDRESS |
149 | * |
150 | DUMB DAC DUM ORIGNAL DUMMY'S START ADDRESS |
151 | * POINTER USW |
152 | JMP1 DAC JSTI+PT1+IOSS |
153 | JMP2 DAC JSTI+PT2+IOSS |
154 | * |
155 | ******************************************************************************* |
156 | * |
157 | * |
158 | * ORG '100 |
159 | * DAC NDUM-4,1 |
160 | * DAC NDUM-3,1 |
161 | * DAC NDUM-2,1 |
162 | * DAC NDUM-1,1 |
163 | * DAC NDUM,1 |
164 | * DAC NDUM+1,1 |
165 | * DAC NDUM+2,1 |
166 | * DAC NDUM+3,1 |
167 | * DAC NDUM+4,1 |
168 | * DAC NDUM+5,1 |
169 | * DAC NDUM+6,1 |
170 | * |
171 | * PUH..... |
172 | * |
173 | END |