| 1 | /SAVECB.PA DEMONSTRATION PROGRAM TO INCREASE THE NUMBER OF SAVE ARGUMENTS |
| 2 | / |
| 3 | / |
| 4 | / |
| 5 | / |
| 6 | / |
| 7 | / |
| 8 | / |
| 9 | / |
| 10 | / |
| 11 | /COPYRIGHT (C) 1977 BY DIGITAL EQUIPMENT CORPORATION |
| 12 | / |
| 13 | / |
| 14 | / |
| 15 | / |
| 16 | / |
| 17 | / |
| 18 | / |
| 19 | / |
| 20 | / |
| 21 | / |
| 22 | /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE |
| 23 | /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT |
| 24 | /CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY |
| 25 | /FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT. |
| 26 | / |
| 27 | /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER |
| 28 | /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED |
| 29 | /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH |
| 30 | /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. |
| 31 | / |
| 32 | /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE |
| 33 | /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY |
| 34 | /DIGITAL. |
| 35 | / |
| 36 | / |
| 37 | / |
| 38 | / |
| 39 | / |
| 40 | / |
| 41 | / |
| 42 | / |
| 43 | / |
| 44 | / |
| 45 | \f /SAVCB.PA INCREASES THE NUMBER OF SAVE ARGUMENTS JULY 1978 |
| 46 | / MEMORY LOCATIONS UTILIZED |
| 47 | / 0000-1177 /PROGRAM CODE |
| 48 | / 1200-1377 /TTY INPUT BUFFER |
| 49 | / 1400-1577 /ORIGINAL CCB BUFFER |
| 50 | / 1600-1710 /ADJUSTED CCB BUFFER |
| 51 | / 1710-1777 /PROGRAM CODE |
| 52 | |
| 53 | |
| 54 | /PAGE ZERO |
| 55 | *0 |
| 56 | REDERR, JMS I [CRLF /ILLEGAL INPUT ERROR |
| 57 | JMS I [PRMSG |
| 58 | TEXT /INPUT?/ |
| 59 | JMP I ERR |
| 60 | *10 |
| 61 | LXR, 1177 /AUTO INDEX FOR INPUT STORAGE |
| 62 | CXR, 0 /AUTO INDEX |
| 63 | XR, 1377 |
| 64 | NXR, 1577 |
| 65 | TX, 0 |
| 66 | *20 |
| 67 | SHNDLR, 7607 |
| 68 | ERR, 7605 |
| 69 | TEMP, 0 /INPUT NUMBER STORAGE |
| 70 | TMP1, 0 /INPUT NUMBER STORAGE |
| 71 | DIGFLG, 0 /NUMBER PRESENT FLAG |
| 72 | TEMP1, 0 /INPUT FIELD STORAGE |
| 73 | TEMP2, 0 /INPUT ADDRESS STORAGE |
| 74 | CMND, 0 |
| 75 | CHARID, 0 / |
| 76 | DLID, 0 /DELIMITER STORAGE |
| 77 | FIRST1, 0 /STORAGE FOR SEGMENT FIELD INPUT |
| 78 | FIRST2, 0 /STORAGE FOR SEGMENT ADDRESS INPUT |
| 79 | CNT, 0 /SEGMENT COUNTER |
| 80 | FLD, 0 /USED IN CCB FIELD PRINTING |
| 81 | TMP, 0 /TEMPORARY STORAGE-TEXT PRINTING |
| 82 | TCB, 0 /PRMSG CALL I.D. |
| 83 | ORG, 0 /ORIGIN STORAGE |
| 84 | COUNT, -110 |
| 85 | BUMP, -2 /USED AS TEST IN LOAD LOOP |
| 86 | RBFLG, 0 |
| 87 | SEGCNT, -4 |
| 88 | \f |
| 89 | *200 |
| 90 | START, CDF 0 |
| 91 | CIF 10 /CALL COMMAND DECODER |
| 92 | JMS I [200 |
| 93 | 5 |
| 94 | 2326 /SV. EXTENSION---ASSUMED INPUT |
| 95 | CIF 0 |
| 96 | CDF 10 |
| 97 | TAD I [7620 /STARTING BLOCK OF FILE |
| 98 | CDF 0 |
| 99 | DCA STFLE /SET UP LOADING OF CCB BLOCK |
| 100 | LOAD, JMS I [7607 /LOAD CCB |
| 101 | 0101 |
| 102 | LOC, 1400 /INTO 1400 |
| 103 | STFLE, 0 /STARTING BLOCK OF FILE |
| 104 | JMP REDERR / |
| 105 | TAD I XR /MOVE CCB UP TO 1600 |
| 106 | DCA I NXR |
| 107 | ISZ COUNT /ALL DONE? |
| 108 | JMP .-3 |
| 109 | JMS I (VERMSG /PRINT CCB WRITING INFO |
| 110 | CONT, JMS CRLF /INITIALIZE LINE |
| 111 | JMS IDCHAR /PRINT INPUT SIGNAL CHARACTER |
| 112 | REATTY, KSF /WAITING FOR FLAG TO DISAPPEAR |
| 113 | JMP .-1 |
| 114 | JMS I [CTCTST /...CTRL/C? |
| 115 | TAD [203 /NO-RE-INSTATE CHARACTER |
| 116 | JMS I [RBLFT /TEST FOR LINE FEED,RUBOUT |
| 117 | TAD [225 |
| 118 | DCA TEMP /STORE CHARACTER |
| 119 | KCC /CLEAR KEYBOARD,AC |
| 120 | TAD TEMP |
| 121 | JMS I [TYPIT |
| 122 | TAD TEMP |
| 123 | TAD [-215 /IS IT THE END OF THE LINE? |
| 124 | SNA |
| 125 | JMP I [SAVE1 |
| 126 | TAD [-63 /IS IT THE END OF INPUT(@)? |
| 127 | SNA |
| 128 | JMP I [SAVE |
| 129 | CLL CLA |
| 130 | TAD TEMP |
| 131 | DCA I LXR /STORE AWAY CHARACTER |
| 132 | TAD LXR |
| 133 | TAD [-1110 |
| 134 | SNA CLA /TEST FOR LINE OVERFLOW |
| 135 | JMP I [BARG |
| 136 | JMP REATTY |
| 137 | |
| 138 | |
| 139 | CRLF, 0 /CARRAIGE RETURN--LINE FEED ROUTINE |
| 140 | CLL CLA |
| 141 | TAD [215 |
| 142 | JMS I [TYPIT |
| 143 | TAD [212 |
| 144 | JMS I [TYPIT |
| 145 | JMP I CRLF |
| 146 | IDCHAR, 0 /PRINT A #, IT SIGNALS INPUT TIME |
| 147 | CLA |
| 148 | DCA RBFLG /INITIALIZE RUBOUT FLAG |
| 149 | DCA TEMP1 /INITIALIZE INPUT STORAGE WORD |
| 150 | TAD [243 |
| 151 | JMS I [TYPIT |
| 152 | JMP I IDCHAR |
| 153 | TYCCB, JMS CRLF |
| 154 | TAD [211 |
| 155 | JMS I [TYPIT |
| 156 | TAD [1377 /ROUTINE TO TYPE OUT CCB INFO |
| 157 | DCA CXR |
| 158 | TAD I CXR /ADJUST SEGMENT INFO |
| 159 | CLL RAL |
| 160 | STL RAR |
| 161 | DCA CNT /NUMBER OF SEGS |
| 162 | JMS I [PRMSG |
| 163 | TEXT /START=/ |
| 164 | RTRN1, TAD I CXR /GET CIF CDF OF STARTING FIELD |
| 165 | AND [174 |
| 166 | DCA FLD /STORE IT |
| 167 | TAD FLD |
| 168 | AND [104 /ISOLATE BANK BITS |
| 169 | CLL RTR /SWITCH THEM AROUND |
| 170 | RAR |
| 171 | SZL |
| 172 | TAD [4 |
| 173 | CLL RTR |
| 174 | TAD [260 |
| 175 | JMS I [TYPIT |
| 176 | TAD FLD /TIME TO TYPE FIELDS |
| 177 | AND [70 |
| 178 | CLL RTR |
| 179 | RAR |
| 180 | TAD [260 |
| 181 | JMS I [TYPIT |
| 182 | TYORG, TAD I CXR |
| 183 | JMS I [PWORD /PROCESS ORIGIN WORD |
| 184 | TAD [211 /PRINT ATAB TO SEPARATE HEADINGS |
| 185 | JMS I [TYPIT |
| 186 | TYJSW, /SET TYCCB CALL FLAG |
| 187 | JMS I [PRMSG /PRINT JSW HEADING |
| 188 | TEXT /JSW=/ |
| 189 | RTRN2, TAD I CXR |
| 190 | JMS I [PWORD /PRINT JSW |
| 191 | JMS CRLF |
| 192 | JMS CRLF |
| 193 | TYSEGS, |
| 194 | JMS I [PRMSG |
| 195 | TEXT /CORE SEGMENTS:/ |
| 196 | JMS CRLF |
| 197 | JMS CRLF |
| 198 | JMP I [SEGSM2 /PROCESS SEGMENTS |
| 199 | \f *400 |
| 200 | PRINT, JMS PRWD |
| 201 | ISZ PRMSG /GET MORE TEXT |
| 202 | SKP |
| 203 | PRMSG, 0 /ROUTINE TO PRINT TEXT |
| 204 | CLA |
| 205 | TAD I PRMSG |
| 206 | SZA |
| 207 | JMP PRINT |
| 208 | TSF |
| 209 | JMP .-1 |
| 210 | ISZ PRMSG /TYCCB RETURN |
| 211 | JMP I PRMSG |
| 212 | PRWD, 0 /ROUTINE TO ISOLATE AND PRINT TEXT CHARS |
| 213 | DCA TMP /SAVE PACKED SIX BIT CHARS |
| 214 | TAD TMP |
| 215 | BSW /POSITION FIRST CHAR FOR PRINTING |
| 216 | JMS PCHAR /PRINT IT |
| 217 | TAD TMP /ISOLATE SECOND CHARACTER |
| 218 | JMS PCHAR /PRINT IT |
| 219 | JMP I PRWD |
| 220 | PCHAR, 0 /ROUTINE FOR CONVERTING TEXT CHARS TO ASCII |
| 221 | AND [77 /ISOLATE SIX BITS |
| 222 | SNA |
| 223 | JMP I PCHAR |
| 224 | TAD [240 /CONVERSION TO ASCII |
| 225 | AND [77 |
| 226 | TAD [240 |
| 227 | JMS TYPIT /PRINT CHARACTER |
| 228 | JMP I PCHAR |
| 229 | TYPIT, 0 /ROUTINE TO PRINT CHARACTERS |
| 230 | TLS |
| 231 | TSF |
| 232 | JMP .-1 |
| 233 | CLA |
| 234 | JMS CTCTST /TEST FOR CONTROL/C |
| 235 | CLL CLA |
| 236 | JMP I TYPIT |
| 237 | CTCTST, 0 /SEE IF USER WANTS OUT, CTRL/C... |
| 238 | TAD [200 |
| 239 | KSF |
| 240 | STA |
| 241 | KRS |
| 242 | TAD [-203 /IS IT A CTRL/C? |
| 243 | SNA |
| 244 | CTLC, JMP I ERR / CTRL/C MEANS GETOUT... |
| 245 | JMP I CTCTST /RETURN |
| 246 | RBLFT, 0 |
| 247 | TAD [-377 /IS IT A DELETE? |
| 248 | |
| 249 | SNA |
| 250 | JMP I [DELETE |
| 251 | TAD [377-212 /IS IT A LINE FEED? |
| 252 | SNA |
| 253 | |
| 254 | JMP I [LFEED |
| 255 | TAD [212-225 |
| 256 | SZA /IS IT A CTRL/U? |
| 257 | JMP I RBLFT |
| 258 | TAD [225 |
| 259 | JMS I [TYPIT |
| 260 | JMP I [NEXTLN |
| 261 | |
| 262 | SSTADR, TAD TEMP1 /ADJUST FIELD |
| 263 | CLL RTR /TRANSFORM FOR CDF--"37" TO "174" |
| 264 | RTR |
| 265 | BSW |
| 266 | SZL |
| 267 | TAD [4 |
| 268 | TAD [6203 |
| 269 | DCA I [1401 /STORE STARTING FIELD CDF CIF |
| 270 | TAD TEMP2 |
| 271 | DCA I [1402 /STORE AWAY STARTING ADDRESS |
| 272 | JMP ENDTST |
| 273 | SSBITS, TAD TEMP2 |
| 274 | DCA I [1403 /STORE AWAY JSW |
| 275 | ENDTST, TAD LXR /TEST FOR END OF INPUT LINE |
| 276 | CIA |
| 277 | TAD CXR |
| 278 | SMA CLA |
| 279 | JMP TESTE /TEST FOR CR/LF OR @ |
| 280 | JMP I [SDFLG |
| 281 | DASH, TAD TEMP1 /ROUTINE TO PROCESS TRIPLET |
| 282 | CIA CLL CML |
| 283 | TAD FIRST1 |
| 284 | SZA CLA /ARE THE FIELDS THE SAME? |
| 285 | JMP I [BARG /NO ERROR |
| 286 | TAD TEMP2 |
| 287 | AND [7600 |
| 288 | TAD [200 |
| 289 | DCA TEMP2 |
| 290 | TAD TEMP2 |
| 291 | CIA |
| 292 | TAD FIRST2 |
| 293 | SZL CLA /ISI UPPER LIMIT > LOWER LIMIT? |
| 294 | JMP I [BARG /NO ERROR |
| 295 | TAD [1403 /SET INDEX REGISTER |
| 296 | DCA XR |
| 297 | STA |
| 298 | TAD I [1400 /INITIALIZE SEGMENT COUNTER |
| 299 | DCA COUNT |
| 300 | JMP I [FLDTST /PROCESS SEGMENT |
| 301 | TESTE, TAD TEMP /TEST FOR WHETHER END OF LINE OR INPUT |
| 302 | ENTST, TAD [-215 /WAS IT ACARRAIGE RETURN? |
| 303 | SNA |
| 304 | JMP I [NEXTLN /YES PREPARE FOR NEXT LINE |
| 305 | TAD [215-"@ /WAS IT EXIT TIME? |
| 306 | SNA |
| 307 | JMP I [WRCCB /EXIT ROUTINE |
| 308 | JMP REDERR /ILLEGAL INPUT |
| 309 | PWORD, 0 /ROUTINE TO PROCESS ORIGIN OR JSW WORDS |
| 310 | DCA ORG |
| 311 | TAD ORG |
| 312 | BSW /PROCESS HIGHER BIT FIRST |
| 313 | JMS SECT2 |
| 314 | TAD ORG /NOW PROCESS LOWER BITS |
| 315 | JMS SECT2 |
| 316 | JMP I PWORD |
| 317 | SECT2, 0 /ROUTINE TO PRINT DOUBLE DIGIT |
| 318 | DCA TEMP1 |
| 319 | TAD TEMP1 |
| 320 | AND [70 /ISOLATE HIGHER DIGIT |
| 321 | CLL RTR |
| 322 | RAR |
| 323 | TAD [260 |
| 324 | JMS I [TYPIT |
| 325 | TAD TEMP1 |
| 326 | AND [7 /ISOLATE LOWER DIGIT |
| 327 | TAD [260 |
| 328 | JMS I [TYPIT |
| 329 | JMP I SECT2 |
| 330 | |
| 331 | \f |
| 332 | *600 |
| 333 | GTNM, DCA DIGFLG /RESET DIGIT FLAG |
| 334 | DCA TEMP1 /CLEAR FIELD STORAGE |
| 335 | DCA TEMP2 /CLEAR ADDRESS STORAGE |
| 336 | GETNUM, TAD I CXR /ROUTINE TO ORGANIZE LINE INPUT |
| 337 | TAD [-270 /TEST FOR NUMBER |
| 338 | CLL |
| 339 | TAD [10 |
| 340 | SNL |
| 341 | JMS NOTNUM /NO NUMBER |
| 342 | DCA TMP1 /STORE NUMBER |
| 343 | ISZ DIGFLG /SET NUMBER FLAG |
| 344 | JMS ROT /ORGANIZE ARGUMENT INTO TWO WORDS |
| 345 | JMS ROT /TEMP1 FOR THE FIELD |
| 346 | JMS ROT /TEMP2 FOR ADDRESS |
| 347 | TAD TEMP2 |
| 348 | TAD TMP1 /TAD IN NEW DIGIT |
| 349 | DCA TEMP2 |
| 350 | JMP GETNUM |
| 351 | SDFLG, TAD CHARID /ADD DELIMITER |
| 352 | DCA DLID /STORE IT |
| 353 | TAD TEMP2 /STORE PRESENT ADDRESS AWAY |
| 354 | AND [7600 |
| 355 | DCA FIRST2 |
| 356 | TAD TEMP1 /STORE FIELD ALSO |
| 357 | AND [37 |
| 358 | DCA FIRST1 |
| 359 | JMP GTNM |
| 360 | \f |
| 361 | ROT, 0 /ROUTINE TO ROTATE FIELD AND ADDRESS |
| 362 | TAD TEMP2 /ADDRESS REGISTER |
| 363 | CLL RAL /MOVE POTENTIAL FIELD BIT INTO LINK |
| 364 | DCA TEMP2 /NOW READY FOR NEW INPUT - TMP1 |
| 365 | TAD TEMP1 |
| 366 | RAL /STORE FIELD BITS |
| 367 | DCA TEMP1 |
| 368 | JMP I ROT |
| 369 | NOTNUM, 0 |
| 370 | CLL |
| 371 | TAD [260 /CONVERT TO ASCII |
| 372 | DCA CHARID |
| 373 | TAD DIGFLG |
| 374 | SNA CLA |
| 375 | JMS ACORS /IF NO DIGIT,MUST BE A COMMAND |
| 376 | TAD DLID /PROCESS INPUT NUMBER |
| 377 | SNA /ZERO INDICATES FIRST NUMBER |
| 378 | JMP SDFLG /PREPARE FOR NEXT NUMBER |
| 379 | TAD [-"- /IS IT A DASH? |
| 380 | SNA |
| 381 | JMP I [DASH /PROCESS TRIPLET |
| 382 | TAD ["--", /IS IT A COMMA? |
| 383 | SNA |
| 384 | JMP SDFLG /GET SECOND NUMBER |
| 385 | TAD [",-"; /IS IT A SEMI-COLON? |
| 386 | SNA |
| 387 | JMP I [SSTADR /PROCESS START ADDRESS |
| 388 | TAD [";-"= /IS IT AN EQUALS |
| 389 | SNA CLA |
| 390 | JMP I [SSBITS /PROCESS JSW |
| 391 | JMP SDFLG |
| 392 | ACORS, 0 /TEST FOR ADD,SUB,OR CHANGE |
| 393 | TAD CHARID |
| 394 | TAD [-"T /IS IT A TYPE INST? |
| 395 | SNA |
| 396 | JMP I [TYCCB /IF SO PROCESS IT |
| 397 | TAD ["T-"A /IS IT AN ADDITION? |
| 398 | SNA |
| 399 | JMP CEND |
| 400 | TAD ["A-"S /IS IT A DELETION? |
| 401 | SZA CLA |
| 402 | JMP SDFLG /TEST FOR @ OR CR/LF |
| 403 | IAC |
| 404 | CEND, DCA CMND /STORE COMMAND FLAG |
| 405 | |
| 406 | JMP GTNM |
| 407 | SAVE1, JMS I [CRLF /PROCESS END OF LINE |
| 408 | SAVE, TAD [1177 |
| 409 | DCA CXR /POINT TOWARD START OF LINE |
| 410 | TAD LXR /WAS THEIR ANY INPUT? |
| 411 | CIA |
| 412 | TAD CXR |
| 413 | SNA CLA /IF LXR EQUALS CXR, THERE WAS NONE |
| 414 | JMP I [TESTE /TEST FOR CR/LF OR @ |
| 415 | DCA I LXR /SET DELIMITER |
| 416 | JMP I [GETNUM /GET INPUT |
| 417 | \f |
| 418 | ATEST, CLA |
| 419 | TAD CMND /WHAT IS THE COMMAND? |
| 420 | SZA CLA /IF NOT THE ADD COMMAND... |
| 421 | JMP I [BARG /THEN ERROR RETURN |
| 422 | TAD COUNT /IS IT TO BE ADDED ON THE END? |
| 423 | SZA CLA /IF COUNT IS ZERO, YES... |
| 424 | TAD [-2 /PUSH BACK INDEX TO SAVE LAST SEGMENT |
| 425 | TAD XR |
| 426 | DCA XR |
| 427 | TAD XR /ADDITION CODE |
| 428 | AND [77 /ISOLATE WHERE WE ARE IN THE CCB |
| 429 | TAD [1600 /REFERENCE SAME LOCATION IN ADD BUFFER |
| 430 | DCA NXR /STORE FOR MOVE |
| 431 | TAD FIRST2 /STORE INPUT'S ORIGIN |
| 432 | DCA I NXR |
| 433 | JMS I [SEGADJ /ADJUST SECOND WORD FOR CCB |
| 434 | DCA I NXR |
| 435 | STA |
| 436 | DCA BUMP /SET ADD INDICATOR |
| 437 | JMP I [MOVE /MOVE CCB |
| 438 | STEST, STA /DELETION PROCESSOR |
| 439 | |
| 440 | TAD CMND |
| 441 | SZA CLA /IS A DELETION? |
| 442 | JMP I [BARG /IF NOT ERROR |
| 443 | TAD XR /SET BACK POINTER FOR DELETION |
| 444 | TAD [176 /ADD 200 TO REFERENCE 1600 BUFFER |
| 445 | DCA NXR |
| 446 | IAC /SET DELETION PARAMETER |
| 447 | DCA BUMP |
| 448 | JMP I [MOVE /MOVE CCB |
| 449 | PAGE |
| 450 | \f |
| 451 | |
| 452 | *1000 |
| 453 | /ROUTINE TO PROCESS CCB SEGMENTS FOR TYPING |
| 454 | SEGSM2, TAD [-4 |
| 455 | DCA SEGCNT |
| 456 | SEGS, TAD I CXR /GET FIRST SEGMENT |
| 457 | DCA TMP1 |
| 458 | TAD I CXR /GET SECOND WORD OF SEGMENT |
| 459 | DCA FLD |
| 460 | JMS TFIELD |
| 461 | JMS I [SECT2 |
| 462 | TAD TMP1 /TYPE ORIGIN OF SEGMENT |
| 463 | JMS I [PWORD /TYPE IT |
| 464 | TAD [255 /TYPE HYPHEN |
| 465 | JMS I [TYPIT |
| 466 | JMS TFIELD /TYPE FIELD |
| 467 | JMS I [SECT2 |
| 468 | TAD FLD /CALCULATE HIGHER LIMIT |
| 469 | AND [3700 /ISOLATE NUMBER OF PAGES |
| 470 | TAD [-100 /MINUS A PAGE TO BE REPLACED BY |
| 471 | CLL RAL |
| 472 | TAD [177 /A PAGE FULL OF LOCATIONS |
| 473 | TAD TMP1 |
| 474 | JMS I [PWORD |
| 475 | ISZ CNT /IS THAT ALL THE SEGS? |
| 476 | JMP .+5 /NO ... CONTINUE |
| 477 | JMS I [CRLF |
| 478 | TAD [1177 |
| 479 | DCA LXR /RESET INPUT POINTER |
| 480 | JMP I [CONT / |
| 481 | ISZ SEGCNT /IS THAT THE FOURTH SEGMENT? |
| 482 | JMP .+4 /NO...CONTINUE |
| 483 | JMS I [CRLF |
| 484 | JMS I [CRLF |
| 485 | JMP I [SEGSM2 |
| 486 | TAD [", |
| 487 | JMS I [TYPIT |
| 488 | TAD [240 |
| 489 | JMS I [TYPIT |
| 490 | JMP SEGS |
| 491 | FLDTST, ISZ COUNT /IS THAT ALL THE SEGS? |
| 492 | SKP CLA |
| 493 | JMP I [ATEST /IF SO PROCESS COMMAND |
| 494 | TAD I XR /SEARCH FOR FIELD ETC. PAGE |
| 495 | DCA TMP /STORE SEGMENT ORIGIN |
| 496 | TAD I XR |
| 497 | DCA FLD /STORE SEGMENT'S SECOND WORD |
| 498 | JMS TFIELD /ADJUST FIELD... |
| 499 | CIA /RETURNS WITH FIELD IN AC |
| 500 | TAD TEMP1 /IS IT THE SAME FIELD AS INPUT? |
| 501 | SPA /OR IS IT LESS THAN FIELD OF INPUT? |
| 502 | JMP FLDTST /NEITHER... |
| 503 | SZA CLA /IF IT IS LESS THAN INPUT'S FIELD |
| 504 | JMP I [ATEST /IT SHOULD BE AN ADD |
| 505 | TAD FIRST2 /TEST INPUT'S ORIGIN |
| 506 | CIA /IS IT LESS THAN OR EQUAL TO SEGMENT'S ORIGIN? |
| 507 | TAD TMP |
| 508 | SNA |
| 509 | JMP I [STEST /IF EQUAL TEST FOR DELETION |
| 510 | SMA CLA |
| 511 | JMP I [ATEST /IF LESS TEST FOR ADDITION |
| 512 | JMP FLDTST /OTHERWISE CHECK NEXT SEGMENT |
| 513 | TFIELD, 0 /ROUTINE TO TRANSFORM FIELDS FOR TYPING |
| 514 | TAD FLD |
| 515 | AND [76 |
| 516 | CLL RTR |
| 517 | SZL /ISOLATE BANK BIT "A" |
| 518 | TAD [40 |
| 519 | CLL RAR |
| 520 | SZL /ISOLATE BANK BIT "B" |
| 521 | TAD [10 |
| 522 | JMP I TFIELD |
| 523 | SEGADJ, 0 /ROUTINE TO ORGANIZE CCB SEGMENT SECOND WORD |
| 524 | TAD FIRST2 /CALCULATE NUMBER OF PAGES |
| 525 | CIA |
| 526 | TAD TEMP2 /BY DIFFERENCING THE INPUT ADDRESSES |
| 527 | AND [7600 |
| 528 | CLL RAR /AND HALVING INTO PAGES |
| 529 | DCA FIRST2 /STORE FOR CCB LOAD |
| 530 | |
| 531 | TAD TEMP1 /ADD IN FIELD |
| 532 | JMS CCBFLD /RE-ORGANIZE IT FOR CCB |
| 533 | TAD FIRST2 /COMBINE FIELD AND PAGES FOR CCB SEGMENT |
| 534 | JMP I SEGADJ |
| 535 | CCBFLD, 0 /ROUTINE TO CHANGE FIELD INTO CCB FORM |
| 536 | CLL RTR /STARTS WITH A '37' IN AC |
| 537 | RTR |
| 538 | SZL /TEST FOR B BANK BIT |
| 539 | TAD [400 |
| 540 | CLL RAR |
| 541 | SZL /TEST FOR A BANK BIT |
| 542 | TAD [100 |
| 543 | CLL RTR |
| 544 | RTR |
| 545 | RAR /RETURN WITH A '76' IN AC |
| 546 | JMP I CCBFLD |
| 547 | MOVE, JMS MOVA /MOVE TIME |
| 548 | TAD BUMP /IF YES, RESET SEGMENT NUMBER |
| 549 | TAD I [1400 |
| 550 | DCA I [1400 |
| 551 | REMOVE, TAD [1403 /REPLACE ORIGINAL SEGS |
| 552 | DCA NXR |
| 553 | TAD [1603 /WITH UPDATED ONES |
| 554 | DCA XR |
| 555 | TAD I [1400 |
| 556 | DCA COUNT /SET COUNT TO THE NUMBER OF SEGS |
| 557 | JMS MOVA |
| 558 | JMP I [ENDTST |
| 559 | MOVA, 0 |
| 560 | TAD COUNT /WAS THE SEGMENT ADDED ON THE END? |
| 561 | SNA CLA |
| 562 | JMP I MOVA /IF SO, RETURN |
| 563 | TAD I XR /MAKE THE MOVE |
| 564 | DCA I NXR |
| 565 | TAD I XR /BE SURE TO GET BOTH WORDS |
| 566 | DCA I NXR |
| 567 | ISZ COUNT /IS THAT ALL THE SEGMENTS? |
| 568 | JMP .-5 /IF NO, CONTINUE |
| 569 | JMP I MOVA |
| 570 | NEXTLN, CLL CLA /ROUTINE TO ACCEPT NEW INPUT LINE |
| 571 | DCA DIGFLG /ZERO DIGIT FLAG |
| 572 | DCA DLID /CLEAR DELIMITER STORAGE |
| 573 | TAD [1177 /RESET INPUT POINTER |
| 574 | DCA LXR |
| 575 | JMP I [CONT /CONTINUE INPUT CODE |
| 576 | PAGE |
| 577 | \f *1710 |
| 578 | /LOCATIONS 1600-1710 ARE USED AS THE CORE CONTROL BLOCK BUFFER |
| 579 | DELETE, /TTY DELETION COMMAND |
| 580 | CLL CLA |
| 581 | TAD LXR |
| 582 | TAD [-1177 /WAS THERE INPUT? |
| 583 | SNA CLA |
| 584 | JMP RBSPCL /NO INPUT--PREPARE FOR SOME... |
| 585 | TAD ["\ /PRINT ERASE DELIMITER |
| 586 | ISZ RBFLG /TEST TO SEE IF THIS IS THE FIRST RUBOUT |
| 587 | JMS I [TYPIT /IT IS |
| 588 | CLA CMA /SET RUBOUT FLAG |
| 589 | DCA RBFLG |
| 590 | CMA |
| 591 | TAD LXR |
| 592 | DCA TX /PRINT ERASED CHARACTER |
| 593 | TAD I TX |
| 594 | JMS I [TYPIT |
| 595 | BACKUP, CLA CMA |
| 596 | TAD LXR |
| 597 | DCA LXR |
| 598 | KCC |
| 599 | JMP I [REATTY |
| 600 | RBSPCL, ISZ RBFLG /HAVE ANY CHARACTERS BEEN ERASED? |
| 601 | JMP I [CONT /NO...PREPARE FOR INPUT |
| 602 | TAD ["\ |
| 603 | JMS I [TYPIT |
| 604 | DCA DIGFLG /RESET DIGFLG |
| 605 | JMP I [CONT |
| 606 | LFEED, JMS I [CRLF |
| 607 | TAD [243 /TYPE I.D.(#) CHARACTER |
| 608 | JMS I [TYPIT |
| 609 | TAD [1177 |
| 610 | DCA NXR |
| 611 | JMP .+3 |
| 612 | FEEDER, TAD I NXR |
| 613 | JMS I [TYPIT |
| 614 | TAD LXR |
| 615 | CIA |
| 616 | TAD NXR |
| 617 | SZA CLA |
| 618 | JMP FEEDER |
| 619 | KCC |
| 620 | JMP I [REATTY |
| 621 | BARG, JMS I [PRMSG |
| 622 | TEXT /BAD ARGS/ |
| 623 | JMP I [NEXTLN |
| 624 | SEGNO, 0 |
| 625 | TAD I [1400 /ACCES NUMBER OF SEGMENTS |
| 626 | CLL RAL /ADJUST EXTENDED MEM BIT |
| 627 | STL RAR |
| 628 | TAD [32 |
| 629 | SPA CLA /ARE THERE MORE THAN 32? |
| 630 | JMP REDERR |
| 631 | JMP I SEGNO |
| 632 | PAGE |
| 633 | |
| 634 | \f |
| 635 | *2000 |
| 636 | |
| 637 | VERMSG, 0 |
| 638 | JMS I [PRMSG |
| 639 | TEXT / ATTENTION! THE NEW CCB WILL BE WRITTEN DIRECTLY ONTO / |
| 640 | JMS I [CRLF |
| 641 | JMS I [PRMSG |
| 642 | TEXT /THE SPECIFIED INPUT FILE.(SEE SOURCE CODE)/ |
| 643 | JMP I VERMSG |
| 644 | |
| 645 | WRCCB, JMS I [SEGNO /DID WE EXCEED SEGMENT LIMIT? |
| 646 | JMS I [7607 /WRITE CCB |
| 647 | 4201 |
| 648 | 1200 /FROM 1200 |
| 649 | 37 /TO BLOCK '37' |
| 650 | JMP REDERR |
| 651 | TAD I (STFLE |
| 652 | DCA WRFLE |
| 653 | JMS I [7607 |
| 654 | 4101 |
| 655 | 1400 |
| 656 | WRFLE, 0 |
| 657 | JMP REDERR |
| 658 | JMP I ERR |