| 1 | / A-D CLOCKED, BUFFERED SAMPLING ROUTINE\r |
| 2 | ADSK=6534\r |
| 3 | ADRB=6533\r |
| 4 | ADST=6532\r |
| 5 | ADLM=6531\r |
| 6 | ADLE=6536\r |
| 7 | ADCL=6530\r |
| 8 | CLZE=6130\r |
| 9 | ESF=4\r |
| 10 | LINC=6141\r |
| 11 | PDP=2\r |
| 12 | SAM=100\r |
| 13 | CLEN=6134\r |
| 14 | FIELD1 SAMPLE\r |
| 15 | 0 /INTERRUPT TIME AD SAMPLER\r |
| 16 | IFNSW 8 <\r |
| 17 | JMS LNCSAM /INITIATE SAMPLE\r |
| 18 | NEXTCH, ISZ SAMINS /UPDATE SAM INST FOR NEXT CHAN\r |
| 19 | JMS LNCSAM /SAM AND INITIATE NEXT CHANNEL\r |
| 20 | >\r |
| 21 | TAD SAMPTR /SAVE THE OLD SAM BUFFER POINTER\r |
| 22 | DCA OLDPTR\r |
| 23 | TAD BUFFLD /AND THE FIELD\r |
| 24 | DCA OLDFLD\r |
| 25 | ISZ SAMPTR /BUMP BUFFER POINTER\r |
| 26 | JMP FLDOK /FIELD IS OK\r |
| 27 | TAD BUFFLD /BUMP FIELD\r |
| 28 | TAD L10\r |
| 29 | DCA BUFFLD\r |
| 30 | FLDOK, ISZ SAMCNT /BUMP BUFFER COUNT\r |
| 31 | JMP BUFFLD /NOT END OF BUFFER\r |
| 32 | TAD ARRAY+2 /RESET POINTER TO START OF BUFFER\r |
| 33 | DCA SAMPTR\r |
| 34 | TAD FLDBUF /RESET BUFFER FIELD\r |
| 35 | DCA BUFFLD\r |
| 36 | TAD BUFSIZ /RESET COUNT\r |
| 37 | DCA SAMCNT\r |
| 38 | BUFFLD, HLT /GET FIELD OF NEW ADB STOP CODE\r |
| 39 | TAD% SAMPTR /IS THIS THE SAM STOP CODE ?\r |
| 40 | TAD M3776 /(ILLEGAL AS A SAMPLE)\r |
| 41 | SZA CLA\r |
| 42 | JMP NOERR\r |
| 43 | ISZ TOOFAS /SET TOO FAST SWITCH\r |
| 44 | SAMPLD, CDF 10\r |
| 45 | DCA% XCLINT+1 /STOP SAMPLING\r |
| 46 | JMP% SAMPLE\r |
| 47 | NOERR, CLL CMA RAR /SET ADB STOP CODE\r |
| 48 | DCA% SAMPTR\r |
| 49 | OLDFLD, HLT /GET TO FIELD OF SAMPLE\r |
| 50 | IFSW 8 <\r |
| 51 | ADRB /READ SAMPLE\r |
| 52 | >\r |
| 53 | IFNSW 8 <\r |
| 54 | TAD SAMTMP /GET PREVIOUSLY READ SAMPLE\r |
| 55 | >\r |
| 56 | DCA% OLDPTR /INTO BUFFER\r |
| 57 | ISZ NPOINT+2 /ANY MORE SAMPLES\r |
| 58 | SKP /YES\r |
| 59 | ISZ NPOINT+1 /MORE THAN 7777 ?\r |
| 60 | SKP /YES\r |
| 61 | JMP SAMPLD /NO\r |
| 62 | ISZ NCHANL+1 /ANY MORE CHANNELS TO SAMPLE ?\r |
| 63 | JMP NEXTCH /YES GO START SAMPLING\r |
| 64 | TAD CSTART+2 /STARTING CHANNEL\r |
| 65 | IFSW 8 <\r |
| 66 | ADLM\r |
| 67 | >\r |
| 68 | IFNSW 8 <\r |
| 69 | DCA SAMINS\r |
| 70 | JMS LNCSAM /SET CHANNEL TO START\r |
| 71 | /IN CASE CLOCK INITIATED\r |
| 72 | >\r |
| 73 | TAD NCHANL+2 /NUMBER OF CHANNELS\r |
| 74 | DCA NCHANL+1 /INTO COUNTER\r |
| 75 | CDF 10\r |
| 76 | JMP% SAMPLE\r |
| 77 | IFSW 8 <\r |
| 78 | NEXTCH, ADST /SAMPLE NEXT CHANNEL\r |
| 79 | ADSK /WAIT FOR SAMPLE\r |
| 80 | JMP .-1\r |
| 81 | JMP SAMPLE+1\r |
| 82 | >\r |
| 83 | IFNSW 8 <\r |
| 84 | LNCSAM, 0 /LINC SAM SUBROUTINE\r |
| 85 | LINC\r |
| 86 | SAMINS, SAM 0 /SAMPLE AND SELECT NEXT CHANNEL\r |
| 87 | PDP\r |
| 88 | DCA SAMTMP /SAVE IT\r |
| 89 | JMP% LNCSAM\r |
| 90 | >\r |
| 91 | ADSETU, 0 /SET UP ROUTINE\r |
| 92 | DCA TOOFAS /CLEAR TOO FAST SWITCH\r |
| 93 | TAD ARRAY+1 /GET FIELD OF BUFFER\r |
| 94 | AND L7\r |
| 95 | CLL RTL\r |
| 96 | RAL\r |
| 97 | TAD CDF0\r |
| 98 | DCA FLDBUF\r |
| 99 | TAD FLDBUF\r |
| 100 | DCA BUFFLD /SAVE IN SAMPLER CODE\r |
| 101 | TAD ARRAY+2 /SET SAMPLER BUFFER POINTER\r |
| 102 | IAC\r |
| 103 | DCA SAMPTR\r |
| 104 | TAD LENGTH+2 /SIZE OF BUFFER\r |
| 105 | CLL RAL\r |
| 106 | TAD LENGTH+2 /TIMES THREE\r |
| 107 | DCA BUFSIZ /SAVE IT\r |
| 108 | TAD BUFSIZ /SET INITIAL COUNT\r |
| 109 | IAC\r |
| 110 | DCA SAMCNT\r |
| 111 | TAD NCHANL+2 /SET CHANNEL COUNT\r |
| 112 | DCA NCHANL+1\r |
| 113 | IFSW 8 <\r |
| 114 | CLA CMA /STOP THE CLOCK\r |
| 115 | CLZE\r |
| 116 | CLA\r |
| 117 | ADCL /CLEAR AD LOGIC JUST IN CASE\r |
| 118 | TAD L300 /SET AD ENABLE BITS\r |
| 119 | ADLE\r |
| 120 | TAD CSTART+2 /STARTING CHANNEL NUMBER\r |
| 121 | ADLM\r |
| 122 | >\r |
| 123 | IFNSW 8 <\r |
| 124 | CLEN /STOP THE CLOCK\r |
| 125 | TAD CSTART+2 /SET UP INITIAL SAM INSTRUCTION\r |
| 126 | TAD L100\r |
| 127 | DCA CSTART+2\r |
| 128 | TAD CSTART+2\r |
| 129 | DCA SAMST /STARTING SAM\r |
| 130 | TAD SAMST /ALSO INTERRUPT TIME SAM\r |
| 131 | DCA SAMINS\r |
| 132 | TAD L100 /SET FAST SAM BIT\r |
| 133 | IOF /TURN OFF INTERRUPTS IN LINC MODE\r |
| 134 | LINC /ENTER LINC MODE\r |
| 135 | ESF\r |
| 136 | SAMST, SAM 0 /SET INITIAL SAM CHANNEL\r |
| 137 | PDP\r |
| 138 | ION\r |
| 139 | CLA\r |
| 140 | >\r |
| 141 | CIF CDF\r |
| 142 | JMP% ADSETU\r |
| 143 | BASEX, FNOP\r |
| 144 | M3776, -3776\r |
| 145 | L10, 10\r |
| 146 | SAMPTR,\r |
| 147 | ARRAY, 0;0;0\r |
| 148 | LENGTH, 0;0\r |
| 149 | BUFSIZ, 0\r |
| 150 | SAMCNT,\r |
| 151 | CSTART, 0\r |
| 152 | OLDPTR, 0;0\r |
| 153 | SAMTMP,\r |
| 154 | NCHANL, 0;0;0\r |
| 155 | NPOINT, 0;0;0\r |
| 156 | FLDBUF,\r |
| 157 | XCLINT, ADDR #CLINT\r |
| 158 | IFSW 8 <\r |
| 159 | L300, 300\r |
| 160 | >\r |
| 161 | IFNSW 8 <\r |
| 162 | L100, 100\r |
| 163 | >\r |
| 164 | SAMXR, 0;0\r |
| 165 | TOOFAS, 0\r |
| 166 | ORG 10*3+BASEX\r |
| 167 | 0\r |
| 168 | JA NAME+3\r |
| 169 | 0\r |
| 170 | SAMRTN, JA .\r |
| 171 | CDF0, CDF\r |
| 172 | L7, 7\r |
| 173 | \f SECT REALTM\r |
| 174 | BASE 0\r |
| 175 | STARTD\r |
| 176 | FLDA 30 /GET RETURN ADDR\r |
| 177 | FSTA SAMRTN\r |
| 178 | FLDA 0 /GET ARG POINTER\r |
| 179 | BASE BASEX\r |
| 180 | SETB BASEX\r |
| 181 | SETX SAMXR\r |
| 182 | FSTA NPOINT /SAVE ARG POINTER\r |
| 183 | FCLA\r |
| 184 | EXTERN #CLINT\r |
| 185 | FSTA #CLINT /STOP ANY SAMPLING NOW!\r |
| 186 | LDX 1,1\r |
| 187 | FLDA% NPOINT,1 /GET BUFFER ADDRESS\r |
| 188 | FSTA ARRAY\r |
| 189 | FLDA% NPOINT,1+ /GET ADDR OF LENGTH\r |
| 190 | FSTA LENGTH\r |
| 191 | FLDA% NPOINT,1+ /ADDR OFHANNEL START\r |
| 192 | FSTA CSTART\r |
| 193 | FLDA% NPOINT,1+ /ADDR OF # CHANNELS\r |
| 194 | FSTA NCHANL\r |
| 195 | FLDA% NPOINT,1+ /ADDR OF NUMBER OF POINTS\r |
| 196 | FSTA NPOINT\r |
| 197 | FLDA ARRAY /CREATE SETX INS\r |
| 198 | FADD STXMJA\r |
| 199 | FSTA BUFSTX\r |
| 200 | FSTA ADBSTX /AND SAVE IT IN TWO PLACES\r |
| 201 | STARTF\r |
| 202 | FLDA% LENGTH /INTEGERIZE AND NEGATE SOME ARGS\r |
| 203 | FNEG\r |
| 204 | ALN 0\r |
| 205 | FSTA LENGTH\r |
| 206 | FNORM\r |
| 207 | ATX 1 /SET BUFFER COUNT\r |
| 208 | FLDA% CSTART /GET STARTING CHANNEL\r |
| 209 | ALN 0\r |
| 210 | FSTA CSTART\r |
| 211 | FLDA% NCHANL\r |
| 212 | FNEG\r |
| 213 | ALN 0\r |
| 214 | FSTA NCHANL\r |
| 215 | FLDA% NPOINT\r |
| 216 | FNEG\r |
| 217 | ALN 0\r |
| 218 | FSTA NPOINT\r |
| 219 | LDX -1,2 /SET UP FOR BUFFER CLEAR\r |
| 220 | FCLA\r |
| 221 | CLRBUF, FSTA% ARRAY,2+\r |
| 222 | JXN CLRBUF,1+\r |
| 223 | TRAP4 ADSETU /SET UP AD STUFF\r |
| 224 | FLDA LENGTH /RE-GET BUFFER SIZE\r |
| 225 | FNORM\r |
| 226 | ATX 1 /BUT NOW ITS TIMES THREE\r |
| 227 | FLDA STPCOD /STORE STOP CODES\r |
| 228 | FSTA% ARRAY /INTO FIRST 3 WORD\r |
| 229 | STARTD\r |
| 230 | FLDA SAMADR /SET UP SAMPLER INTERRUPT HANDLER\r |
| 231 | FSTA #CLINT\r |
| 232 | STARTF\r |
| 233 | JA SAMRTN /RETURN\r |
| 234 | NAME, TEXT +RTMADB+\r |
| 235 | SAMADR, ADDR SAMPLE\r |
| 236 | STPCOD, 3776;3777;0\r |
| 237 | STXMJA, 1100-1030;0\r |
| 238 | L2047, F 2047.\r |
| 239 | L511, F 511.\r |
| 240 | \f ENTRY ADB\r |
| 241 | ADB, BASE 0 /FETCH SAMPLE FROM BUFFER\r |
| 242 | STARTD\r |
| 243 | FLDA 30 /SAVE REUTRN\r |
| 244 | FSTA SAMRTN\r |
| 245 | SETB BASEX\r |
| 246 | SETX SAMXR\r |
| 247 | BASE BASEX\r |
| 248 | JXN SPEEDK,2 /CLOCK TOO FAST\r |
| 249 | FLDA ADBSTX /SAVE OLD SETX\r |
| 250 | FSTA OLDSTX\r |
| 251 | FADD L1 /ADD ONE TO IT\r |
| 252 | FSTA ADBSTX /AND SAVE IT BACK\r |
| 253 | JXN NORINQ,1+ /END OF BUFFER ?\r |
| 254 | FLDA BUFSTX /YES, RESTART\r |
| 255 | FSTA ADBSTX\r |
| 256 | FLDA LENGTH /RESET COUNT\r |
| 257 | ATX 1\r |
| 258 | NORINQ, STARTF\r |
| 259 | ADBSTX, SETX 0 /SET XR0 TO NEXT SAMPLE\r |
| 260 | WAIT, XTA 0 /GET THE NEXT SAMPLE\r |
| 261 | FSUB L2047 /IS IT THE STOP CODE\r |
| 262 | JEQ WAIT /YES\r |
| 263 | XTA 0 /NO, FETCH THE SAMPLE\r |
| 264 | LDX 3776,0 /SET SAMPLE STOP CODE\r |
| 265 | OLDSTX, SETX 0 /SET XR0 TO PREVIOUS STOP CODE\r |
| 266 | LDX 0,0 /NOW ZERO IT\r |
| 267 | JA SAMRTN /RETURN\r |
| 268 | SPEEDK, EXTERN #WRITO /USE FORTRAN I/O\r |
| 269 | TRAP3 #WRITO /TO WRITE A MESSAGE\r |
| 270 | JA TTYUNT /ON THE TTY\r |
| 271 | JA MESSAG\r |
| 272 | EXTERN #RENDO\r |
| 273 | TRAP3 #RENDO /CLOSE THE RECORD\r |
| 274 | LDX 0,2 /KILL TOO FAST SWITCH\r |
| 275 | JA SAMRTN /RETURN FROM ADB\r |
| 276 | TTYUNT, F 0.\r |
| 277 | MESSAG, TEXT '(" SAMPLING TOO FAST")'\r |
| 278 | BUFSTX, SETX 0\r |
| 279 | L1, 0;1\r |
| 280 | END\r |
| 281 | \f\1a\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 |