| 1 | / |
| 2 | / COPYRIGHT 1971, DIGITAL EQUIPMENT CORPORATION, |
| 3 | / MAYNARD, MASSACHUSETTS 01754 |
| 4 | / UTILITY SUBROUTINE PACKAGE |
| 5 | / VERSION UTILTY.V7A (OCTOBER 26,1971) |
| 6 | / (VERS. CHG. V07 TO V7A 4/25/77 MH) |
| 7 | / |
| 8 | ENTRY OPEN /INITIALIZING AND FLAG SETTING ROUTINE |
| 9 | ENTRY GENIO |
| 10 | ENTRY EXIT /EXIT TO DISK MONITOR SYSTEM |
| 11 | ENTRY ERROR |
| 12 | ENTRY CKIO /USELESS ROUTINE |
| 13 | OPDEF KRS 6034 |
| 14 | OPDEF KCC 6032 |
| 15 | OPDEF RIF 6224 |
| 16 | OPDEF TADI 1400 |
| 17 | OPDEF DCAI 3400 |
| 18 | OPDEF JMSI 4400 |
| 19 | OPDEF JMPI 5400 |
| 20 | / CARD READER IOT'S |
| 21 | OPDEF RCSE 6672 |
| 22 | OPDEF RCSP 6671 |
| 23 | OPDEF RCSF 6631 |
| 24 | OPDEF RCRA 6632 |
| 25 | /LINE PRINTER IOT'S |
| 26 | OPDEF LLB 6666 |
| 27 | OPDEF LSF 6661 |
| 28 | |
| 29 | LAP |
| 30 | |
| 31 | U17, 17 /*** MUST BE FIRST LOC IN PAGE *** |
| 32 | |
| 33 | IOER, 1117 |
| 34 | 0522 /"IOER" ERROR |
| 35 | GENIO, BLOCK 2 /GENERAL INPUT/OUTPUT ROUTINE |
| 36 | DCA 7 /SAVE ENTRY AC |
| 37 | GENLP, TAD 7 |
| 38 | RTL |
| 39 | RTL |
| 40 | RAL |
| 41 | U200, AND U17 |
| 42 | TAD JMPITB |
| 43 | DCA DSPACH /INDEX JUMP TABLE BY DEVICE NUMBER |
| 44 | TAD U200 |
| 45 | KRS |
| 46 | TAD UM203 |
| 47 | SNA CLA |
| 48 | KSF /CHECK FOR ^C ON TELETYPE |
| 49 | DSPACH, NOP /NO ^C - DISPATCH TO I/O ROUTINE |
| 50 | CALL 0,EXIT |
| 51 | |
| 52 | JMPITB, JMPI DEVTAB |
| 53 | DEVTAB, TTYOUT |
| 54 | HSPOUT |
| 55 | IOERR |
| 56 | GENOUT |
| 57 | TTYIN |
| 58 | HSRIN |
| 59 | IOERR |
| 60 | GENIN |
| 61 | IOERR |
| 62 | IOERR |
| 63 | IOERR |
| 64 | IOERR |
| 65 | IOERR |
| 66 | IOERR |
| 67 | IOERR |
| 68 | IOERR |
| 69 | |
| 70 | HSPOUT, PSF |
| 71 | JMP GENLP |
| 72 | TAD 7 |
| 73 | PLS |
| 74 | GENRTN, CLA |
| 75 | RETRN GENIO |
| 76 | |
| 77 | HSRIN, ISZ T1 |
| 78 | JMP HSRSF |
| 79 | TAD U336 /TIME OUT-PRINT '^' |
| 80 | TLS |
| 81 | HLP, KSF |
| 82 | JMP HLP |
| 83 | AND U200 /GET 200 INTO AC |
| 84 | KRS /READ THE CHAR. |
| 85 | TAD UM203 |
| 86 | SZA CLA /IS IT CONTROL C? |
| 87 | KCC /NO-CLEAR FLAG |
| 88 | RFC /USER TYPED-TICKLE RDR-FALL THRU RFC |
| 89 | HSRSF, RSF |
| 90 | JMP GENLP |
| 91 | DCA T1 |
| 92 | RRB RFC |
| 93 | JMP GENRTN# |
| 94 | U336, 336 |
| 95 | T1, 0 |
| 96 | |
| 97 | UM203, -203 |
| 98 | |
| 99 | |
| 100 | PAGE |
| 101 | \fU377, 377 /MUST BE FIRST LOC IN THIS PAGE |
| 102 | GENIN, 6201 |
| 103 | TADI IHNDLR |
| 104 | SNA CLA /OPEN INPUT FILE? |
| 105 | JMP IOERR /NO |
| 106 | 6202 |
| 107 | JMS I FICHAR /GET A CHAR |
| 108 | JMP IOERR /INPUT ERROR |
| 109 | UU200, AND U377 |
| 110 | GRTN2, RETRN GENIO |
| 111 | |
| 112 | GENOUT, 6201 |
| 113 | TADI OHNDLR |
| 114 | SNA CLA /OPEN OUTPUT FILE? |
| 115 | JMP IOERR /NO |
| 116 | 6202 |
| 117 | TAD 7 /GET CHAR TO BE OUTPUT |
| 118 | AND U377 |
| 119 | JMS I FOCHAR /PUT A CHARACTER |
| 120 | JMP IOERR /OUTPUT ERROR |
| 121 | JMP GRTN2 |
| 122 | |
| 123 | IHNDLR, 122 /***ALL THESE LOCATIONS ARE VERY VOLATILE!! *** |
| 124 | FICHAR, 606 /******* |
| 125 | OHNDLR, 121 /******* |
| 126 | FOCHAR, 651 /****************** |
| 127 | BATIN, 5400 /************************** |
| 128 | BATOUT, 7400 /************************** |
| 129 | BATVFY, 5600 /************************** |
| 130 | BATVAL, -2214 /************************** |
| 131 | |
| 132 | / |
| 133 | / INITIALIZING SUBROUTINE CALLED BY FORTRAN |
| 134 | / CLEARS FLOATING AC AND SETS FLAGS |
| 135 | / |
| 136 | OPEN, BLOCK 2 |
| 137 | PLS |
| 138 | RFC |
| 139 | CALL 0,CLEAR |
| 140 | CDFX, 6201 |
| 141 | DCAI IHNDLR |
| 142 | DCAI OHNDLR /ZERO DEVICE-INDEPENDENT IO FLAGS |
| 143 | DCA TTFLAG /BEGINNING OF LINE |
| 144 | TADI (7777 /GET BATCH FIELD |
| 145 | AND (70 |
| 146 | TAD CDFX /MAKE A CDF |
| 147 | DCA CDFB |
| 148 | TADI (7777 /GET BATCH RUNNING BIT |
| 149 | RAL |
| 150 | SMA CLA |
| 151 | JMP IOERR /BATCH NOT RUNNING |
| 152 | CDFB, HLT |
| 153 | TADI BATVFY /CHECK CRUCIAL LOCATION |
| 154 | TAD BATVAL /FOR RL'S INITIALS |
| 155 | SZA CLA |
| 156 | JMP IOERR |
| 157 | TAD CDFB |
| 158 | IAC /MAKE A CIF |
| 159 | DCA CIFB1 |
| 160 | TAD CIFB1 |
| 161 | DCA CIFB2 |
| 162 | RIF /MAKE A CDF TO HERE |
| 163 | TAD CDFX |
| 164 | DCA CDFH |
| 165 | RETRN OPEN |
| 166 | |
| 167 | |
| 168 | TTYIN, |
| 169 | CIFB1, 0 /CIF BATCH |
| 170 | JMSI BATIN /GET A CHAR |
| 171 | JMP TTEOF1 /EOF |
| 172 | DCA 7 /SAVE KEYBOARD CHAR |
| 173 | TAD 7 |
| 174 | TAD (-"$ /IS IT A "$"? |
| 175 | SZA CLA |
| 176 | JMP TTFUJ1 /NO |
| 177 | ISZ TTFLAG /WAS LAST CHAR <CR>? |
| 178 | JMP TTYEOF /YES - EOF |
| 179 | TTFUJ1, CLA CMA |
| 180 | DCA TTFLAG /RESET FLAG FOR NON <CR> |
| 181 | TAD 7 |
| 182 | TAD (-215 |
| 183 | SNA CLA |
| 184 | DCA TTFLAG /CLEAR FLAG TO INDICATE <CR> |
| 185 | TYRTN, TAD 7 |
| 186 | JMP GRTN2 /RETURN WITH CHAR IN AC |
| 187 | |
| 188 | TTFLAG, 0 /INITIALLY AT BEGINNING OF LINE |
| 189 | |
| 190 | TTYEOF, 6201 /CDF |
| 191 | TADI (7777 /GET WORD FROM FIELD 0 |
| 192 | RTR |
| 193 | CLL CML RTL /SET BIT 10 |
| 194 | DCAI (7777 /REPLACE IT |
| 195 | CDFH, 0 /CDF HERE |
| 196 | TTEOF1, JMP IOERR /WHAT TO DO? |
| 197 | |
| 198 | |
| 199 | TYPE, 0 |
| 200 | TAD 7 |
| 201 | CIFB2, 0 /CIF BATCH |
| 202 | JMSI BATOUT /SEND A CHAR TO THE BATCH OUTPUT STREAM |
| 203 | JMPI TYPE |
| 204 | |
| 205 | TTYOUT, JMS TYPE |
| 206 | JMP GRTN2 |
| 207 | |
| 208 | IOERR, CALL 1,ERROR |
| 209 | ARG IOER |
| 210 | |
| 211 | |
| 212 | PAGE |
| 213 | \f |
| 214 | PMESG, MESG |
| 215 | MESG, 7777 |
| 216 | 7777 |
| 217 | 4005 |
| 218 | 2222 |
| 219 | 1722 |
| 220 | 4001 |
| 221 | 2440 |
| 222 | 1417 |
| 223 | 0340 |
| 224 | LIT7, 0007 |
| 225 | |
| 226 | ERROR, BLOCK 2 /ERROR PROCESSOR |
| 227 | U7600, 7600 |
| 228 | TAD ERROR |
| 229 | DCA TEM1 |
| 230 | TEM1, NOP /SET DATA FIELD OF "CALL ERROR" |
| 231 | TADI ERROR# |
| 232 | DCA TEM3 |
| 233 | INC ERROR# |
| 234 | E60, CLA CMA CML /CML IS WINDOW DRESSING |
| 235 | TADI ERROR# |
| 236 | DCA 10 |
| 237 | INC ERROR# |
| 238 | TEM3, NOP /DATA FIELD OF MESSAGE&ENTRY POINT |
| 239 | DCA CKIO /ZERO "FATAL ERROR" FLAG |
| 240 | TADI 10 |
| 241 | RAL |
| 242 | SZL /NON-FATAL BIT ON? |
| 243 | ISZ CKIO /YES - SET "FATAL FLAG" TO NON-FATAL |
| 244 | CLL RAR /STRIP NON-FATAL BIT FROM MESSAGE |
| 245 | DCA MESG |
| 246 | TADI 10 /SECOND WORD OF MESSAGE |
| 247 | DCA MESG# |
| 248 | TADI 10 |
| 249 | DCA TEM1 |
| 250 | TADI 10 |
| 251 | DCA TEM3 /CALLING ADDRESS |
| 252 | TAD PMESG |
| 253 | DCA TEM2 |
| 254 | |
| 255 | ERLP, TAD I TEM2 |
| 256 | RTR |
| 257 | RTR |
| 258 | RTR |
| 259 | JMS PR6BIT |
| 260 | TAD I TEM2 |
| 261 | JMS PR6BIT |
| 262 | INC TEM2 |
| 263 | JMP ERLP |
| 264 | |
| 265 | PRLOC, TAD TEM1 |
| 266 | RTR |
| 267 | RTR |
| 268 | JMS ERTTY /PRINT CALLING FIELD |
| 269 | TAD (-4 |
| 270 | DCA TEM2 |
| 271 | NUMLP, TAD TEM3 |
| 272 | RTL |
| 273 | RAL |
| 274 | DCA TEM3 |
| 275 | TAD TEM3 |
| 276 | JMS ERTTY |
| 277 | ISZ TEM2 |
| 278 | JMP NUMLP |
| 279 | TAD (215 |
| 280 | DCA 7 |
| 281 | JMS TYPE |
| 282 | CLA CLL CMA RTL |
| 283 | JMS TYPE |
| 284 | TAD CKIO /GET THE FATAL ERROR FLAG |
| 285 | SNA CLA /WHADDOWEDO?? |
| 286 | JMP EXITX |
| 287 | RETRN ERROR /HE SAYS ITS NON-FATAL - LET HIM HANDLE IT |
| 288 | |
| 289 | ERTTY, 0 /DIGIT PRINTING ROUTINE |
| 290 | RAL |
| 291 | AND LIT7 |
| 292 | TAD E60 |
| 293 | JMS PR6BIT |
| 294 | JMP I ERTTY |
| 295 | |
| 296 | PR6BIT, 0 /6BIT TO 8BIT CONVERTOR |
| 297 | AND (77 |
| 298 | SNA |
| 299 | JMP PRLOC /MESSAGE OVER |
| 300 | TAD (7740 |
| 301 | SPA |
| 302 | TAD (100 |
| 303 | TAD (240 |
| 304 | CALL 0,GENIO /LOOK FOR ^C WHILE TYPING |
| 305 | JMP I PR6BIT |
| 306 | |
| 307 | / |
| 308 | /EXIT TO DISK MONITOR SYSTEM |
| 309 | / |
| 310 | EXIT, BLOCK 2 |
| 311 | EXITX, CALL 0,CKIO |
| 312 | 6203 |
| 313 | JMPI U7600 /RETURN TO MONITOR |
| 314 | |
| 315 | CKIO, 0 |
| 316 | TEM2, 0 /DUMMY SUBROUTINE TO WAIT FOR I/O COMPLETE |
| 317 | RETRN CKIO |
| 318 | |
| 319 | |
| 320 | END |
| 321 | \f |