X-Git-Url: http://gitweb.hachti.de/?a=blobdiff_plain;f=sw%2Fos8%2Fv3d%2Fsources%2Fsystem%2Fdectapes%2Fdectape6%2FCAMP.PA;fp=sw%2Fos8%2Fv3d%2Fsources%2Fsystem%2Fdectapes%2Fdectape6%2FCAMP.PA;h=836d2cee6e86ccaec011aa9fdd57cd07c653386c;hb=7af5ad59491ddf2066641aef1e0025a337c0f247;hp=0000000000000000000000000000000000000000;hpb=919757fd611e482003ce51f366f6783cab73dea3;p=pdp8.git diff --git a/sw/os8/v3d/sources/system/dectapes/dectape6/CAMP.PA b/sw/os8/v3d/sources/system/dectapes/dectape6/CAMP.PA new file mode 100644 index 0000000..836d2ce --- /dev/null +++ b/sw/os8/v3d/sources/system/dectapes/dectape6/CAMP.PA @@ -0,0 +1,2080 @@ +/11 OS8 CAMP + +/ +/S.R. +/ +/ +/CASSETTE & MAGTAPE POSITIONER (CAMP) +/ +/ +/ +/ +/ +/ +/THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE VITHOUT NOTICE +/AND SHOULD NOT BE CONTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT +/CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY +/FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT. +/ +/THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER +/UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED +/(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH +/SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. +/ +/DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE +/OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY +/DIGITAL. +/ +/ +/ COPYRIGHT (C) 1973,1975,1977 BY DIGITAL EQUIPMENT CORPORATION. +/ +/ +/ +/ + +/ MUST SKIP LOCS 1000-1377 + + LINBUF=1000 + + XR1=11 + XR2=12 + XR3=13 + + *20 + +TEMP, 0 +T, 0 +T2, 0 +LINPTR, 0 +T3, 0 +FLAG, 0 +SPKNT, 0 +DEVTYP, 0 /DEVICE TYPE (BITS 6-11) +ENTRY, 0 /HANDLER ENTRY POINT +NUM, 0 +TYP, 0 /0 MEANS 'F', 1 MEANS 'R' +T4, 0 +DEVNUM, 0 +DCW, 0 /DEVICE CONTROL WORD +DCWPTR, 0 +USR, 200 /POINTS TO USR ENTRY POINT +ESCBIT, 0 /1 MEANS USER TYPED ALTMODE +CNT, 0 +CTOFLG, 0 /-1 MEANS SAW ^O +COUNT, 0 +PTR, 0 +DHIT, 0 /DEVICE HANDLER INFO TABLE - 1 +DHI, 0 /DEVICE HANDLER INFO +DBLK, 0 /DEVICE HANDLER BLOCK +VNOPTR, 0 /PTS TO VERSION # IN HANDLER +VNO, 0 /CURRENT HANDLER VERSION NUMBER +SAVPTR, 0 +NO, 0 /1 MEANS 'NO' +FLG, 1 /1 MEANS SAW NO DIGITS +P, 0 +RR, 0 +NUCODE, 0 + +/ MAGTAPE SPECIAL CODES + + REWKOD=1 + SKFKOD=3 /SKIP FORWARD FILE + UNLKOD=4 + EOFKOD=5 + SKPKOD=2 /FORWARD RECORD + BAKKOD=SKPKOD+4000 + BKFKOD=SKFKOD+4000 + + DTLA=6766 + +/0000-0777 /CAMP +/1000-1377 /OS/8 LINE BUFFER +/1400-1777 /PS/8 LINE BUFFER +/2000- /CAMP +/7000-7177 /I/O BUFFER +/7200-7577 /OS/8 HANDLER +/7600-7777 /OS/8 + + DLDC=6746 + DLAG=6743 + PAGE + *200 + +START, SKP + JMP CHN + TAD ("# + JMS I [TYPE + JMS I [READ /READ A LINE INTO OS/8 LINE BUFFER +CHN, TAD [LINBUF /CHAIN ENTRY ADDRESS + DCA LINPTR /INITIALIZE POINTER TO LINE BUFFER + STA + JMS I [SPACE /IGNORE LEADING SPACES + JMS GETTWO /GET TWO CHARS + DCA TEMP + JMS I [SCAN /SCAN PAST EXTRA LETTERS OR DIGITS + TAD TEMP + JMS I [BRANCH /GO TO APPROPRIATE ROUTINE + -2313;SKIP /SK + -0517;EOF /EO + -0201;BACK /BA + -2205;REWIND /RE + -2516;UNLOAD /UN + -2605;VERSION /VE + -1005;HELP /HE + -2664;V4 /V4 + -2305;SYNTAX /SE + SETLOC=.-1 + 0 + SNA CLA + JMP I [GOAWAY + JMP I [SYNTAX /NONE OF THESE + +/V1 FEATURES: +/FIXES SINCE FIELD TEST RELEASE: + +/1. ADDED CASSETTE SUPPORT +/2. FIXED BUG RE IMMEDIATE ALTMOD +/3. CHANGED SPECIAL CODES TO AGREE WITH NEW MAGTAPE HANDLER +/4. IGNORE NULLS ON INPUT +/5. ALLOW UNLOADING AN RK8E + +/CHANGES MADE TO V3: + +/1. SET COMMAND IMPLEMENTED + +/MAINTENANCE RELEASE CHANGES: + +/1. TOOK OUT 'SET' SINCE WE DON'T WANT TO SUPPORT IT +/ UNTIL OS/8 V4 +/2. FIXED BUG RE AT EOF AND BOF MESSAGES +/3. CHANGED CAMP TO USE NEW TM8E HANDLER +/ NOTE: CAMP WILL NOT WORK PROPERLY WITH +/ TM8E HANDLERS PRIOR TO VERSION F +/4. PROPERLY FIND EOT EVEN IF WE'RE JUST +/ BEFORE A FILE MARK. +/5. GIVE AT BOT OR EOT MESSAGE IF SEE REFLECTIVE SPOT +/6. CHANGED VERSION NUMBER TO V4 +/7. ENSURE THAT USER CAN'T PASS OVER EOD + +/V3D CHANGES: + +/1. FIXED BUG WITH UNLOADING RKS + / GETTWO + +/GET TWO LETTERS OR DIGITS FROM INPUT LINE, PACK IN SIXBIT +/ADVANCE PAST THEM. SUBSTITUTE NULL IF NOT FOUND. + +GETTWO, 0 + JMS GETSIX + CLL RTL + RTL + RTL + DCA T2 + JMS GETSIX + TAD T2 /COMBINE + JMP I GETTWO + +GETSIX, 0 /GET A SIXBIT LETTER OR DIGIT (OR NULL) + JMS ALPHA /IS IT ALPHANUMERIC? + JMP NOTALPH /NO + AND [77 /YES + JMP I GETSIX /TRUNCATE TO SIXBIT +NOTALPH,CLA + JMS BACKC + JMP I GETSIX /RETURN NULL + +GETC, 0 /GET A CHARACTER, ADVANCE POINTER + TAD I LINPTR + AND [177 /ALWAYS RETURN 8-BIT + SZA + TAD [200 /WITH HIGH ORDER BIT ON + ISZ LINPTR /ADVANCE SCAN + JMP I GETC /RETURN + +BACKC, 0 /MOVE SCAN POINTER BACK ONE + STA + TAD LINPTR + DCA LINPTR + JMP I BACKC /RETURN + /RETURN 1 NOT OF TYPE DESIRED +/RETURN 2 DESIRED TYPE +/IN BOTH CASES, CHAR IS LEFT IN AC + +ALPHA, 0 /LOOK FOR ALPHANUMERIC + JMS I [GETC + JMS LETTER /IS IT A LETTER? + JMP TRYDIG /NO, TRY DIGIT + JMP GOTAL /YES +TRYDIG, JMS DIGIT /IS IT A DIGIT? + JMP I ALPHA /NO, AINT LETTER OR DIGIT +GOTAL, ISZ ALPHA /YES, EITHER LETTER OR DIGIT + JMP I ALPHA /RETURN WITH IT IN AC + +LETTER, 0 /LOOK FOR LETTER + TAD (-"A + CLL + TAD ("A-"Z-1 + SNL + ISZ LETTER + TAD ("Z+1 /RESTORE CHAR + JMP I LETTER + +DIGIT, 0 /LOOK FOR DIGIT + TAD (-"0 + CLL + TAD ("0-"9-1 /(DECIMAL) + SNL + ISZ DIGIT + TAD ("9+1 /RESTORE DIGIT TO CHARACTER FORM + JMP I DIGIT /AND RETURN WITH IT IN AC + PAGE + SYNTAX, CLA + JMS PRINT + TEXT /? SYNTAX ERROR/ +GOAWAY, TAD ESCBIT + SZA CLA + JMP I [7605 /LINE ENDED WITH ESCAPE + TAD I [READ /WAS 'READ' EVER CALLED? + SZA CLA + JMP I [START /YES, GET A NEW LINE + JMP I [7605 /NO, WE MUST'VE BEEN CHAINED TO, RECALL KBM + +PRINT, 0 + TAD I PRINT + RTR + RTR + RTR + JMS PRIN + TAD I PRINT + JMS PRIN + ISZ PRINT + JMP PRINT+1 +LV, JMS I [CRLF + ISZ PRINT + JMP I PRINT + +PRIN, 0 + AND [77 + SNA + JMP LV + TAD [240 + AND [77 + TAD [240 + DCA T3 + TAD [200 + KRS + TAD (-203 + SNA + JMP CTRLC + TAD (203-217 /^O + SNA CLA + JMS CTRLO + TAD T3 + JMS I [TYPE + JMP I PRIN + CTRLC, TAD ["^ + JMS I [TYPE + TAD ("C + JMS I [TYPE /ECHO "^C" + JMS I [DELAYY + JMP I [7600 /THEN GO AWAY +CTRLO, 0 + KCC /CLEAR OUT ^O + TAD ["^ + JMS I [TYPE + TAD ("O + JMS I [TYPE + JMS I [CRLF + STA + DCA CTOFLG /STOP ECHOING + JMP I CTRLO + +VERSION,JMS PRINT + TEXT \OS/8 CAMP V5A\ + JMP I [START +NUMBIG, JMS PRINT + TEXT /? NUMBER TOO BIG/ + JMP I [GOAWAY + NONEX, JMS PRINT + TEXT /? CAN'T - DEVICE DOESN'T EXIST/ + JMP I [GOAWAY + +SYSERR, JMS PRINT + TEXT \? I/O ERROR ON SYS:\ + JMP I [GOAWAY + PAGE + HELP, JMS I [PRINT + TEXT /BACKSPACE DEV: N FILES/ + JMS I [PRINT + TEXT /BACKSPACE DEV: N RECORDS/ + JMS I [PRINT + TEXT /EOF DEV:/ +H2, JMP H1 / JMS I [PRINT + TEXT /SET DEV: [NO] ATTRIB [N]/ +H1, JMS I [PRINT + TEXT /SKIP DEV: N FILES/ + JMS I [PRINT + TEXT /SKIP DEV: N RECORDS/ + JMS I [PRINT + TEXT /SKIP DEV: EOD/ + JMS I [PRINT + TEXT /REWIND DEV:/ + JMS I [PRINT + TEXT /UNLOAD DEV:/ + JMS I [PRINT + TEXT /VERSION/ + JMS I [PRINT + TEXT /HELP/ + JMP I [START + BADEV, CLA + JMS I [PRINT + TEXT /? CAN'T FOR THIS DEVICE/ + JMP I [GOAWAY + +V4, TAD (SET + DCA I (SETLOC + TAD H1 + DCA H2 + JMP I [START + PAGE + *2000 + +/ORIGIN PAST OS/8 LINE BUFFER AT 1000. +/SKIP PAST PS/8 LINE BUFFER (AT 1400) JUST IN CASE +/PS/8 USERS WISH TO PATCH THIS PROGRAM + +/SCAN PAST EXTRA LETTERS OR DIGITS + +SCAN, 0 + JMS I [ALPHA + JMP NOPE + CLA + JMP SCAN+1 +NOPE, CLA + JMS I [BACKC + JMP I SCAN + +/SCAN PAST SPACES; GIVE ERROR IF NO SPACES FOUND UNLESS AC=-1 + +SPACE, 0 + DCA FLAG /SET AC=-1 TO PREVENT ERROR ON NO SPACES FOUND + DCA SPKNT /INITIALIZE SPACE COUNTER + SKP /JUMP INTO LOOP +GOTSP, ISZ SPKNT + JMS I [GETC /GET NEXT CHAR + TAD (-240 + SNA CLA /IS IT A SPACE? + JMP GOTSP /YES, COUNT IT + JMS I [BACKC /NO, PUT IT BACK + ISZ FLAG /CHECK FLAG + SKP /USER DIDN'T SPECIFY FLAG + JMP I SPACE /-0 MEANT DON'T CHECK IF FOUND SPACE + TAD SPKNT /HOW MANY SPACES DID WE FIND? + SZA CLA + JMP I SPACE /SOME. OK + JMP I [SYNTAX /NONE. TSK. TSK. + BRANCH, 0 + DCA T +BR2, TAD I BRANCH + ISZ BRANCH + SNA + JMP NOTFND + TAD T + SNA CLA + JMP FOUND + ISZ BRANCH + JMP BR2 + +FOUND, TAD I BRANCH + DCA T + JMP I T /FOUND ITEM IN COLUMN 1, JUMP TO ADDRESS IN COL 2 + +NOTFND, TAD T + JMP I BRANCH /IF NOT FOUND IN COL 1, RETURN WITH AC INTACT +CHECKR, 0 + TAD DCW + RAL + SMA CLA + JMP I CHECKR +RONLY, JMS I [PRINT + TEXT /? CAN'T - DEVICE IS READ-ONLY/ + JMP I [GOAWAY + CHECKW, 0 + TAD DCW + RTL + SMA CLA + JMP I CHECKW +WONLY, JMS I [PRINT + TEXT /? CAN'T - DEVICE IS WRITE-ONLY/ + JMP I [GOAWAY + ONUM, 0 + DCA NUM + CLA IAC + DCA FLG +ONM1, JMS I [GETC + TAD (-"0-10 /CONVERT TO DIGIT + CLL + TAD (10 + SNL + JMP OEON + DCA T4 + DCA FLG + TAD NUM + AND [7000 + SZA CLA + JMP I [NUMBIG + TAD NUM + CLL RTL + RAL + TAD T4 + DCA NUM + JMP ONM1 +OEON, CLA + JMS I [BACKC + TAD NUM + JMP I ONUM + PAGE + /READ A LINE INTO OS/8 LINE BUFFER + +READ, 0 + DCA CTOFLG /ALLOW ECHOING +RD1, TAD [LINBUF + DCA LINPTR + DCA ESCBIT +GT, JMS GET +LOOK, JMS I [BRANCH + -377;RUBOUT + -217;GT /^O + -203;CTRLC /^C + -212;LF /LINE FEED + -215;CR /CARRIAGE RETURN + -375;ESCAPE /ALTMODE + -376;ESCAPE /ALTMODE (2ND FLAVOR) + -233;ESCAPE /ESCAPE + -225;CTRLU /^U + -200;GT /IGNORE NULLS + 0 + DCA TEMP /NONE OF THESE + TAD LINPTR + TAD (-LINBUF-377 + SNA CLA /AT END OF LINE BUFFER? + JMP GT /YES, DON'T ACCEPT CHAR + TAD TEMP /NO, RETRIEVE CHAR + JMS TYPE /ECHO IT + TAD TEMP /INSERT IN BUFFER + DCA I LINPTR + ISZ LINPTR /BUMP POINTER + JMP GT /NEXT + +CTRLU, TAD ["^ + JMS TYPE + TAD ("U + JMS TYPE /ECHO "^U" + JMS I [CRLF + JMP RD1 + RUBOUT, TAD LINPTR + TAD [-LINBUF + SNA + JMP BOL /AT BEGIN OF LINE + TAD [LINBUF-1 + DCA LINPTR /MOVE POINTER BACK ONE + TAD ["\ + JMS TYPE /ECHO "\" +RUB3, TAD I LINPTR + JMS TYPE /ECHO RUBBED-OUT CHARACTER +GT2, JMS GET + JMS I [BRANCH + -377;RUB2 + -216;GT2 /IGNORE ^O + -203;CTRLC /^C + 0 + DCA TEMP /A NEW CHAR + TAD ["\ + JMS TYPE /ENCLOSE RUBBED-OUT CHARS IN \'S + TAD TEMP + JMP LOOK + +RUB2, TAD LINPTR + TAD [-LINBUF + SNA + JMP BOL2 + TAD [LINBUF-1 + DCA LINPTR + JMP RUB3 + +BOL2, TAD ["\ + JMS TYPE +BOL, JMS I [CRLF + JMP RD1 + +ESCAPE, TAD ("$ /ECHO ESCAPE AS DOLLAR SIGN + JMS TYPE + ISZ ESCBIT /NOTE ESCAPE +CR, DCA I LINPTR /INSERT 0 AT END + JMS I [CRLF + JMP I READ /RETURN, WE GOT LINE + GET, 0 + KSF + JMP .-1 + KRB + AND [177 + TAD [200 /FORCE TO 8-BIT + JMP I GET + +TYPE, 0 + DCA TYPEM + JMS I [DELAYY + DCA .-1 /DELAY FIRST TIME THRU TO LET THINGS QUIET DOWN + TAD CTOFLG + SZA CLA + JMP I TYPE /NO ECHOING + TAD TYPEM + TLS + TSF + JMP .-1 + CLA + JMP I TYPE + +TYPEM, 0 + +LF, DCA I LINPTR /TEMPORARILY INSERT A 0 SENTINEL + TAD [LINBUF-1 + DCA XR1 + JMS I [CRLF + TAD ["# + JMS I [TYPE +LFLP, TAD I XR1 + SNA + JMP I [GT /FINHSHED, GET SOME MORE CHARS + JMS I [TYPE /ECHO CURRENT CHARS + JMP LFLP + PAGE + EOF, JMS I [SPACE /SPAN OVER SPACES + JMS I [GETDEV /GET DEVICE + JMS I [CHECKR + TAD DEVTYP + JMS I [BRANCH + -20;MAGEOF + -27;CASEOF + ZBLOCK 2 + 0 + JMP I [BADEV + +SKIP, JMS I [SPACE + JMS I [GETDEV + JMS I [CHECKW + JMS GETNUM + TAD DEVTYP + JMS I [BRANCH + -20;MAGSKP + -27;CASSKP + 0 + JMP I [BADEV + +REWIND, JMS I [SPACE + JMS I [GETDEV + JMS I [CHECKW + TAD DEVTYP + JMS I [BRANCH + -20;MAGREW + -27;CASREW + -16;TCREW +/ -17;LTREW + ZBLOCK 4 /PATCH SPACE + 0 + TAD DCW + SMA CLA + JMP I [BADEV /NOT FILE STRUCTURED + CLA IAC /READ BLOCK 0 TO REWIND + DCA I [BLK + TAD (100 + JMS I [GO + JMP I [GOAWAY + UNLOAD, JMS I [SPACE + JMS I [GETDEV + JMS I [CHECKW + TAD DEVTYP + JMS I [BRANCH + -20;MAGUNL +/ -27;CASUNL + -16;TCUNL + -21;TDUNL +/ -17;LTUNL + -23;RKEUNL + ZBLOCK 2 + 0 + JMP I [BADEV + +BACK, JMS I [SPACE + JMS I [GETDEV + JMS I [CHECKW + JMS GETNUM + TAD TYP + SPA CLA + JMP I [SYNTAX /CAN'T BACKSPACE TO EOD + TAD DEVTYP + JMS I [BRANCH + -20;MAGBAK + -27;CASBAK + 0 + JMP I [BADEV + GETNUM, 0 /PARSE OFF :NNNN [F ! R] OR EOD + CLA IAC + DCA NUM + DCA TYP + JMS I [GETC + SNA + JMP I GETNUM /EOL + TAD (-": + SZA CLA + JMP I [SYNTAX + STA + JMS I [SPACE /OPTIONAL SPACES + TAD I LINPTR + SNA + JMP I GETNUM /EOL + TAD (-"E + SNA CLA + JMP EO + JMS I [NUMBER + DCA NUM + STA + JMS I [SPACE /MORE OPTIONAL SPACES + DCA TYP + JMS I [GETC + SNA + JMP I GETNUM /NO F OR R. F ASSUMED + TAD (-"F + SNA + JMP R /0 MEANS 'F' + TAD ("F-"R + SZA CLA + JMP I [SYNTAX + CLA IAC /1 MEANS 'R' +R, DCA TYP + JMP I GETNUM +EO, STA /-1 MEANS 'E' + JMP R + PAGE + /GET A DECIMAL NUMBER, RETURN IT IN AC + +NUMBER, 0 + DCA NUM + CLA IAC + DCA FLG +NM1, JMS I [GETC + JMS I [DIGIT + JMP EON + TAD (-"0 /CONVERT TO DIGIT + DCA T4 + DCA FLG /NOTE PASSAGE OF A DIGIT + TAD NUM + AND [7000 + SZA CLA + JMP I [NUMBIG + TAD NUM + CLL RTL + TAD NUM + CLL RAL + TAD T4 + SZL + JMP I [NUMBIG + DCA NUM + JMP NM1 + +EON, CLA + JMS I [BACKC + TAD FLG + SZA + DCA NUM /IF NO DIGITS, RETURN A 1 + TAD NUM + JMP I NUMBER + / GETDEV + +/PARSES OFF A DEVICE NAME (1-4 CHARS) +/DETERMINES IF IT EXISTS +/LOADS HANDLER INTO 7200-7577 IF NOT ALREADY IN CORE +/SETS ENTRY POINT ADDRESS AT 'ENTRY' +/SETS DEVICE NUMBER AT 'DEVNUM' +/SETS DEVICE CONTROL WORD AT 'DCW' +/SETS 'DEVTYP' + +GETDEV, 0 + JMS I [GETTWO + DCA WD1 + JMS I [GETTWO + DCA WD2 + TAD WD1 + TAD WD2 + DCA WD1 /COMBINE TWO WORDS INTO 1 (IN WD1) + TAD WD2 + SNA CLA + JMP INQ + TAD WD1 /OS/8 KLUDGE FOR UNIQUENESS + CLL RAL + STL RAR /FORCE BIT 0 ON IF 2ND WORD WAS NON-ZERO + DCA WD1 +INQ, DCA WD2 + CIF 10 + JMS I USR + 12 /INQUIRE +WD1, 0 /DEVICE NAME +WD2, 0 /GETS DEVICE NUMBER +WD3, 0 /GETS ENTRY POINT + JMP I [NONEX /DEVICE DOESN'T EXIST + TAD WD3 + SZA /IS HANDLER ALREADY IN CORE? + JMP INCORE /YES + TAD WD1 + DCA DW1 + TAD (7201 /ALLOW TWO PAGE HANDLER IN 7200 + DCA DW3 + DCA DW2 + CIF 10 + JMS I USR + 1 /FETCH +DW1, 0 /DEVICE NAME +DW2, 0 /GETS DEVICE NUMBER +DW3, 0 /GETS ENTRY POINT + JMP I [NONEX /DOESN'T EXIST + TAD DW2 + DCA DEVNUM + TAD DW3 + DCA ENTRY + JMP GETYP + INCORE, DCA ENTRY + TAD WD2 + DCA DEVNUM +GETYP, TAD DEVNUM + TAD (7757 + DCA DCWPTR /POILT INTO DEVICE CONTROL WGRD TABLE + CDF 10 + TAD I DCWPTR /GET DCW + DCA DCW + TAD DCW + RTR + RAR + AND [77 + DCA DEVTYP + STA + TAD I (37 /GET ADDRESS OF DHIT + DCA DHIT + TAD DHIT + TAD DEVNUM + DCA DHI + TAD I DHI + CDF 0 + DCA DHI + TAD DHI + RTL + RTL + RTL + AND (17 + SZA + TAD (15 + DCA DBLK + JMP I GETDEV + +DELAYY, 0 + TAD (-10 + DCA OUTER + ISZ ZER + JMP .-1 + ISZ OUTER + JMP .-3 + JMP I DELAYY +ZER, 0 +OUTER, -10 + PAGE + LOADPT, TAD I (FUNCT + TAD (-REWKOD + SNA CLA + JMP I [GOAWAY /LOAD POINT ON A REWIND IS NOT AN ERROR +READBT, JMS I [PRINT + TEXT /? CAN'T - AT BOT OR EOT/ + JMP I [GOAWAY + READEOF,JMS I [PRINT + TEXT /% CAN'T - AT EOF/ + JMP I [GOAWAY + +READBOF,JMS I [PRINT + TEXT /% CAN'T - AT BOF/ + JMP I [GOAWAY + + CASSKP, DCA I (DIR + TAD TYP + SNA CLA + JMP CSKPF + JMP I (NOTIMPL + +CGO, 0 + DCA CFUNCT + JMS I ENTRY +CFUNCT, 0 +CBUFR, 7000 +CBLK, -1 + SKP + JMP I CGO + DCA TEMP + TAD TEMP + SMA CLA + JMP I (END /SOFT ERROR + JMS I [PRINT + TEXT \? CAN'T - I/O ERROR\ + JMP I [GOAWAY + +CASEOF, JMS CGO + JMP I [GOAWAY + +CASREW, TAD (REWKOD + JMS CGO + JMP I [GOAWAY + CSKPF, TAD NUM + SNA + IAC + CIA + DCA COUNT + TAD (SKFKOD + JMS CGO + ISZ COUNT + JMP .-3 + JMP I [GOAWAY + +CASBAK, CLA IAC + DCA I (DIR + TAD TYP + SZA CLA + JMP CBAKBLK + TAD NUM + CMA + DCA COUNT + TAD (BKFKOD + JMS CGO + ISZ COUNT + JMP .-3 + JMP I [GOAWAY + +CBAKBLK,TAD NUM + SNA + IAC + CIA + DCA COUNT + TAD (BAKKOD + JMS CGO + ISZ COUNT + JMP .-3 + JMP I [GOAWAY + PAGE + TCREW, JMS TCR + JMP I [GOAWAY + +TCUNL, JMS TCR + TAD ENTRY + IAC + RTR + RTR + AND [7000 + DTLA /SELECT ANOTHER UNIT + JMP I [GOAWAY + +TCR, 0 + TAD ENTRY + TAD (-7607 + SZA CLA /SYSTEM TC08 DECTAPE MUST BE UNIT 0 + TAD ENTRY + RTR + RTR + AND [7000 /ISOLATE UNIT # IN BITS 0-2 + TAD (600 /GO REVERSE + DTLA + JMP I TCR + TDUNL, TAD (-7607 + SZA CLA + TAD ENTRY + DCA TEMP + TAD TEMP + RTR + RAR + CLA RAR + DCA UNIT + TAD TEMP + AND [3 + CIA + TAD [77 /GET DEV CODE + CLL RTL + RAL + TAD (6004 /BUILD 'SDLC' + DCA BSDLC + TAD UNIT + TAD (3000 /GO, REVERSE +BSDLC, HLT + CLA + JMP I [GOAWAY +UNIT, 0 + TTCODE, 0 + TAD NO + SZA CLA + JMP I [SYNTAX + JMS I [ONUM + SNA + JMP I [SYNTAX + DCA NUCODE + TAD NUCODE + AND [7700 + SZA CLA + JMP I [NUMBIG + JMS I [TTST1 + TAD (7200 + DCA RR + JMS GETIOT + JMP I [OLDERR + CIA + DCA T2 +TTLP, JMS GETIOT + JMP I [OLDERR + CIA + DCA T3 + TAD T3 + CIA + TAD T2 + SNA + JMP TTLP + SMA CLA + JMP .+3 + TAD T3 + DCA T2 /T2 CONTAINS NEG OF SMALLER IOT + TAD (7200 + DCA RR +TTLP2, JMS GETIOT + JMP I TTCODE + TAD T2 + SZA CLA + CLA IAC + TAD NUCODE + CLL RTL + RAL + DCA T3 + TAD I RR + AND (7007 + TAD T3 + DCA I RR + JMP TTLP2 + GETIOT, 0 + ISZ RR + TAD RR + TAD (-7600 + SNA CLA + JMP I GETIOT + TAD I RR + AND [7000 + TAD [-6000 + SZA CLA + JMP GETIOT+1 + TAD I RR + RTR + RAR + AND [77 + TAD (-20 + CLL RAR + SNA + JMP GETIOT+1 + RAL + TAD (20 + ISZ GETIOT + JMP I GETIOT + PAGE + MAGSKP, DCA DIR + TAD TYP + SNA + JMP SKPF + SPA CLA + JMP SKPEOD + TAD NUM + SNA + CLA IAC + CIA + DCA WC + TAD (SKPKOD + JMS GO + JMP I [GOAWAY + +MAGEOF, TAD (EOFKOD + JMS GO + JMP I [GOAWAY + +SKPF, TAD NUM + SNA + JMP SKP0 + CIA + DCA WC + JMS I (FUDGE /DON'T LET GUY TRICK US INTO GOING PAST EOD + TAD (SKFKOD + JMS GO + JMP I [GOAWAY + +SKPEOD, JMS I (FUDGE /DON'T LET GUY TRICK US INTO GOING PAST EOD + JMS I ENTRY + SKFKOD + 0 + 0 /SKIP 4096 FILES + SMA + SKP CLA + JMP CHKBOT + JMP I [GOAWAY + +MAGBAK, CLA IAC + DCA DIR + TAD TYP + SNA CLA + JMP BAKF + TAD NUM + SNA + CLA IAC + CIA + DCA WC + TAD (BAKKOD + JMS GO + JMP I [GOAWAY + BAKF, TAD NUM + CMA + DCA WC2 + JMS I ENTRY + BKFKOD + 0 +WC2, -1 / + SMA + SKP CLA + JMP CHKBOT + TAD (SKPKOD /SKIP 1 RECORD FORWARD + JMP SKY + +CHKBOT, DCA TEMP + TAD TEMP + AND (1000 + SNA CLA + JMP IOE + JMP I (READBT + MAGUNL, TAD (UNLKOD + JMS GO + JMP I [GOAWAY + +MAGREW, TAD (REWKOD + JMS GO + JMP I [GOAWAY + +GO, 0 + DCA FUNCT + JMS I ENTRY +FUNCT, 0 +BUFR, 7000 +WC, +BLK, -1 + SKP /I/O ERROR + JMP I GO + DCA TEMP + TAD TEMP + SMA CLA + JMP END /SOFT ERROR + TAD TEMP + AND (1000 + SZA CLA + JMP I [LOADPT +IOE, TAD TEMP + JMP I [IOERR + +DIR, 0 /0- FORWARD ; 1- BACKWARDS + +END, TAD TYP + SNA CLA + JMP I (EODERR /V3C NEW HANDLER CALL + TAD DIR /SAW FILE MARK + SNA CLA /V3C + JMP I [READEOF /AT END OF FILE + JMP I [READBOF /AT BEGIN OF FILE + SKP0, JMS I ENTRY + SKFKOD + 0 /IRRELEVANT + -1 /ADVANCE 1 FILE + SMA + SKP CLA + JMP I [IOERR /HARD ERROR + TAD (BAKKOD +SKY, DCA SKX /V3C + JMS I ENTRY +SKX, BAKKOD + 0 /IRREL + -1 /BACK OVER FILE MARK + SMA + SKP CLA + JMP I [IOERR + JMP I [GOAWAY + PAGE + IOERR, AND (3777 + CLL RAL + DCA TEMP + JMS I [PRINT + TEXT \? CAN'T - I/O ERROR\ + TAD (-13 /11 BITS TO LOOK AT + DCA CNT + TAD (JLIST + DCA JM +IOLUP, TAD TEMP + RAL + DCA TEMP + SZL + JMP I JM +IOCONT, ISZ JM + ISZ CNT + JMP IOLUP + JMP I [GOAWAY + +JM, 0 + +JLIST, JMP BIT1 + JMP BIT2 + JMP BIT3 + JMP BIT4 + JMP BIT5 + JMP BIT6 + JMP BIT7 + JMP BIT8 + JMP I (BIT9 + JMP I (BIT10 + JMP I (BIT11 + BIT1, JMS I [PRINT + TEXT /(REWINDING)/ + JMP IOCONT +BIT2, JMS I [PRINT + TEXT /(BOT)/ + JMP IOCONT +BIT3, JMS I [PRINT + TEXT /(SELECT ERROR)/ + JMP IOCONT +BIT4, JMS I [PRINT + TEXT /(PARITY ERROR)/ + JMP IOCONT +BIT5, JMS I [PRINT + TEXT /(EOF)/ + JMP IOCONT + BIT6, JMS I [PRINT + TEXT /(RECORD LENGTH INCORRECT)/ + JMP IOCONT +BIT7, JMS I [PRINT + TEXT /(TIMING ERROR)/ + JMP IOCONT +BIT8, JMS I [PRINT + TEXT /(EOT)/ + JMP IOCONT + RKEUNL, CLL + TAD ENTRY + TAD (200 + SNL CLA + TAD ENTRY + AND (6 /ISOLATE UNIT + TAD (2000 /WRITE PROTECT DISK + DLDC /LOAD COMMAND REGISTER + DLAG + JMP I [GOAWAY + PAGE + BIT9, JMS I [PRINT + TEXT /(WRITE LOCK-OUT)/ + JMP I (IOCONT +BIT10, JMS I [PRINT + TEXT /(READ COMPARE ERROR)/ + JMP I (IOCONT +BIT11, JMS I [PRINT + TEXT /(ILLEGAL FUNCTION)/ + JMP I (IOCONT + NOTIMPL,JMS I [PRINT + TEXT /% OPERATION NOT YET IMPLEMENTED/ + JMP I [GOAWAY +EODERR, JMS I [PRINT + TEXT /? CAN'T - AT EOD/ + JMP I [GOAWAY + /THIS ROUTINE PREVENTS US FROM GOING PAST EOD WHEN +/SKIPPING FORWARD FILES. +/IT DOES THIS BY THE FOLLOWING ALGORITHM: +/FIRST WE BACKSPACE A RECORD. +/IF WE SAW DATA, THEN OK, WE RETURN TO THE USER; +/THIS WILL NOT AFFECT HIS SKIP FILE COUNT. +/IF WE SAW A FILE MARK, THEN WE SKIP FORWARD +/BACK OVER THAT FILE, IGNORING THE FILE MARK ERROR. +/IF WE SAW BOT, THEN, OK NO ERROR. + +FUDGE, 0 + JMS I ENTRY /V3C ALL NEW + BAKKOD +TM, 0 + -1 + SKP + JMP I FUDGE + SPA + JMS BER + SZA CLA + JMS FRWD + JMP I FUDGE + +/IF ERROR WAS BOT, OK + +BER, 0 + DCA TM + TAD TM + AND (1000 + SZA CLA + JMP I BER /BOT OK, NO FRWD + TAD TM + JMP I [IOERR + +FRWD, 0 + JMS I ENTRY + SKPKOD + 0 + -1 + SMA + SKP CLA + JMP I [IOERR + JMP I FRWD + PAGE + SET, JMS I [SPACE + DCA VNO /V3C + JMS I [GETDEV + JMS I [GETC + JMS I [BRANCH + -":;COLN + -" ;COLN + -"-;HYPH + 0 + JMP I [SYNTAX /NO : OR BLANK AFTER NAME +COLN, STA + JMS I [SPACE /IGNORE OPTIONAL SPACES + JMS I [GETC + SNA + JMP I [SYNTAX + TAD (-"- + SNA CLA + JMP HYPH + JMS I [BACKC +COLN2, DCA NAM1 + DCA NAM2 + TAD (MAIN-1 /LOOK FOR DEVICE TYPE IN MAIN TABLE +MNLUP, DCA XR1 + TAD I XR1 + SMA SZA + JMP NOTYP /NOT FOUND + TAD DEVTYP + SNA CLA + JMP FNDTYP + TAD XR1 + TAD (3 /POINT TO NEXT ENTRY + JMP MNLUP +FNDTYP, TAD I XR1 /GET GENERIC NAME + DCA NAM1 + TAD I XR1 + DCA NAM2 + DCA AUXFLG + TAD I XR1 /GET PTR TO DEVICE TABLE +INTO, DCA PTR + DCA NO + TAD LINPTR + DCA SAVPTR /SAVE SCAN POINTER + JMS I [GETTWO + TAD (-1617 + SNA CLA /ARE NEXT TWO CHARS 'NO'? + JMS SAWNO /YES + TAD SAVPTR /NO + DCA LINPTR /RESTORE PTR +SCNLUP, TAD I PTR + SNA /GET NEXT KEYWORD POINTER + JMP NOKEY + ISZ PTR /POINT TO PTR TO ROUTINE + JMS I [KEYSRCH + JMP NOF /NOT FOUND + TAD I PTR /FOUND + DCA PTR /GET PTR TO ROUTINE + JMS I (HREAD /READ HANDLER + JMS I PTR /CALL ROUTINE + JMS I (HWRITE /REWRITE HANDLER + JMP I [GOAWAY + HYPH, JMS I [ALPHA + JMP I [BADV + DCA VNO + TAD VNO + SNA + JMP I [BADV + AND [17 + DCA VNO + JMS I [SPACE /IGNORE SPACE + JMP COLN2 + NOKEY, TAD AUXFLG + SNA CLA + JMP NOO + JMS I [PRINT + TEXT \? UNKNOWN ATTRIBUTE FOR DEVICE \ + *.-1 +NAM1, 0 +NAM2, 0 + 0 + JMP I [GOAWAY + +SAWNO, 0 + ISZ NO + STA + JMS I [SPACE + TAD LINPTR + DCA SAVPTR + JMP I SAWNO + +NOTYP, CLA + ISZ AUXFLG + TAD (AUX /SEARCH AUXILIARY TABLE + JMP INTO + NOF, ISZ PTR + TAD SAVPTR + DCA LINPTR + JMP SCNLUP + +AUXFLG, 0 + +NOO, ISZ AUXFLG + TAD (AUX + DCA PTR + JMP SCNLUP + PAGE + HREAD, 0 + TAD DBLK + SNA + JMP RESERR + DCA BLOCK + JMS I (7607 + 200 /READ 2 PAGES +L7200, 7200 /INTO 7200-7577 +BLOCK, 0 /FROM THIS BLOCK ON SYSTEM DEVICE + JMP I [SYSERR + TAD DHI + AND (177 /GET RELATIVE ENTRY PT + TAD L7200 + DCA ENTRY + TAD VNO + SZA CLA /V3C + JMP I HREAD /VNO ALREADY SET BY - COMMAND + TAD ENTRY +VLOOP, DCA VNOPTR + TAD I VNOPTR + CLL + TAD (-33 + SZL CLA + JMP BACKV + TAD I VNOPTR + SNA + JMP OLDERR + DCA VNO + JMP I HREAD +BACKV, STA + TAD VNOPTR + JMP VLOOP + +RESERR, JMS I [PRINT + TEXT /? CAN'T - DEVICE IS RESIDENT/ + JMP I [GOAWAY + OLDERR, CLA + JMS I [PRINT + TEXT /? CAN'T - OBSOLETE HANDLER/ + JMP I [GOAWAY + +HWRITE, 0 + TAD BLOCK + DCA BLKTWO + JMS I (7607 + 4200 + 7200 +BLKTWO, 0 + JMP I [SYSERR + JMP I HWRITE + NEWERR, CLA + JMS I [PRINT + TEXT /? CAN'T - UNKNOWN VERSION OF THIS HANDLER/ + JMP I [GOAWAY + PAGE + MAIN, -0; DEVICE TTY; TTYTBL + -1; DEVICE PTR; PTRTBL + -2; DEVICE PTP; PTPTBL + -3; DEVICE CDR; CDRTBL + -4; DEVICE LPT; LPTTBL + -20; DEVICE MTA; MTATBL + 1 + ZBLOCK 20 +/TABLE ENDS WITH A POSITIVE NON-ZERO NUMBER + CDRTBL, CODE;CDCODE + ZBLOCK 4 + 0 + +LPTTBL, WIDTH;LPWDTH + LC;LPLC + LV8E;LPLV + ZBLOCK 4 + 0 + +MTATBL, PARITY;MTAPAR + DENSITY;MTADEN + FILES;MTAFIL + ZBLOCK 4 + 0 + TTYTBL, WIDTH;TTWIDTH + CODE;TTCODE + ALT;TTALT + ECHO;TTECHO + LC;TTLC + PAYGE;TTPAGE + TAB;TTTAB + FILL;TTFILL + FLAGG;TTFLAG + CTRL;TTCTRL + GAG;TTGAG + DELAY;TTDELAY + ZBLOCK 10 + 0 + +AUX, LOC;GENLOC + FILES;GENFIL + READO;GENREA + VERS;GENVER + ZBLOCK 10 + 0 + PAGE + WIDTH, "W;"I;"D;"T;"H;0 +LC, "L;"C;0 +LV8E, "L;"V;4000+"8;4000+"E;0 +CODE, "C;"O;"D;"E;0 +ALT, "A;"L;"T;4000+"M;4000+"O;4000+"D;4000+"E;0 +ECHO, "E;"C;"H;"O;0 +PAYGE, "P;"A;"G;"E;0 +TAB, "T;"A;"B;0 +LOC, "L;"O;"C;4000+"A;4000+"T;4000+"I;4000+"O;4000+"N;0 +FILES, "F;"I;"L;"E;4000+"S;0 +READO, "R;"E;"A;"D;4000+"O;4000+"N;4000+"L;4000+"Y;0 +VERS, "V;"E;"R;4000+"S;4000+"I;4000+"O;4000+"N;0 +PARITY, "P;"A;"R;4000+"I;4000+"T;4000+"Y;0 +DENSITY,"D;"E;"N;4000+"S;4000+"I;4000+"T;4000+"Y;0 +FILL, "F;"I;"L;"L;0 +FLAGG, "F;"L;"A;"G;0 +CTRL, "C;"T;"R;"L;0 +EVEN, "E;4000+"V;4000+"E;4000+"N;0 +ODD, "O;4000+"D;4000+"D;0 +DELAY, "D;"E;"L;"A;"Y;0 +GAG, "G;"A;"G;0 + PAGE + LPWDTH, 0 + JMS I (GETWID + JMS LPTST1 + TAD NUM + CMA + DCA I (7200 + JMP I LPWDTH + +LPTST1, 0 + TAD I (7201 + SPA CLA + JMP L645 + TAD VNO + JMS I [BRANCH + -1;OLDERR + -2;LPTOK + ZBLOCK 4 + 0 + JMP I [NEWERR +LPTOK, JMP I LPTST1 + +L645, JMS I [PRINT + TEXT /? CAN'T AFFECT ANNALEX LPT/ + JMP I [GOAWAY + ASRTST, 0 + TAD DHI + SPA CLA + JMP I ASRTST + JMS I [PRINT + TEXT /? CAN'T - NOT KL8E HANDLER/ + JMP I [GOAWAY + GENVER, 0 + TAD NO + SZA CLA + JMP I [SYNTAX + JMS I [ALPHA + JMP BADV + DCA NUM + TAD NUM + AND (40 + SZA CLA + JMP BADV + TAD NUM + AND (37 + DCA I VNOPTR + JMP I GENVER + +GENREA, 0 + CDF 10 + TAD I DCWPTR + CLL RTL + CLL RAL + TAD NO + RAR + CML RAR + RAR + DCA I DCWPTR + CDF 0 + JMP I GENREA + +GENFIL, 0 + CDF 10 + TAD I DCWPTR + CLL RAL + CLL RAL /ZERO LINK + TAD NO + RAR + CML RAR + DCA I DCWPTR + CDF 0 + JMP I GENFIL + BADV, CLA + JMS I [PRINT + TEXT /? BAD VERSION LETTER/ + JMP I [GOAWAY + +CRLF, 0 + TAD [215 + JMS I (TYPE + TAD [212 + JMS I (TYPE + JMP I CRLF + PAGE + LPLV, 0 + JMS I (LPTST1 + TAD NO + CLL RTL + RTL + TAD (4 + DCA I (7201 + JMP I LPLV + +LPLC, 0 + JMS I (LPTST1 + TAD NO + CLL RTL + RTL + RAL + CIA + DCA I (7202 + JMP I LPLC + +TTALT, 0 + JMS I [TTST1 + JMP I [NOTIMPL + JMP I TTALT + +TTECHO, 0 + JMS I [TTST1 + TAD NO + SZA CLA + TAD (SKP CLA-SZA + TAD (SZA + DCA I (7200+120 + JMP I TTECHO + +TTPAGE, 0 + JMS I (ASRTST + TAD VNO + JMS I [BRANCH + -1;OLDERR + -2;OLDERR + -3;OLDERR + -4;PAGOK + ZBLOCK 2 + 0 + JMP I [NEWERR + PAGOK, TAD I (7200+216 + TAD (-SNA + SZA CLA + JMP I [REASEM + TAD NO + SNA CLA + TAD (SZA CLA-CLA + TAD (CLA + DCA I (7200+216 + JMP I TTPAGE + TTTAB, 0 + JMS I [TTST1 + JMS I [GETC + SNA + JMP TTEO + TAD (-"/ + SNA CLA + JMS I [GETC + TAD (-"N + SZA CLA + JMP I [SYNTAX + JMP NOTEC +TTEO, TAD NO + SNA CLA + TAD (5000 + TAD L200 + JMS I (TECO +NOTEC, JMS I [SRCH +L200, 200;100;7 + JMP I [REASEM + DCA TEMP + STA CLL RAL /-2 + TAD TEMP + DCA T2 + TAD TEMP + TAD (3 + DCA T3 + TAD NO + SNA CLA + JMP SETAB + TAD TEMP + TAD (-4 + DCA T4 + TAD T4 + AND (77 + TAD (1200 /TAD TTY240 + DCA I T2 + TAD (SZA CLA + DCA I T3 + JMP I TTTAB +SETAB, TAD TEMP + TAD (-12 + DCA T4 + TAD I T4 + DCA I T2 + TAD (SKP CLA + DCA I T3 + JMP I TTTAB + PAGE + TTFILL, 0 + JMS I [TTST1 + JMS I [SRCH + 200;100;1377 + JMP I [REASEM + TAD (-1 + DCA TEMP + TAD NO + CLL RAL + TAD (2 + TAD TEMP + DCA T2 + TAD I T2 + DCA I TEMP + JMP I TTFILL + +REASEM, JMS I [PRINT + TEXT /? CAN'T - MUST REASSEMBLE KL8E SOURCE/ + JMP I [GOAWAY + +TTDELAY,0 + JMS I [TTST1 + JMP I [NOTIMPL + JMP I TTDELAY + /ENTER WITH PTR TO POSSIBLE KEYWORD IN AC + +KEYSRCH,0 + DCA KPTR +KL, TAD I KPTR + ISZ KPTR + SNA + JMP GOTKEY + CIA + DCA TEMP + JMS I [ALPHA /IS IT ALPHANUMERIC? + JMP EOK /NO + TAD TEMP /COMPARE + CLL RAL /LOW ORDER 11 BITS + SNA CLA + JMP KL /MATCHED, KEEP LOOKING + JMP I KEYSRCH /DIDN'T MATCH +EOK, JMS I [BACKC + TAD TEMP + CIA /INPUT STREAM RAN OUT OR HIT SPACE + SPA CLA + JMP GOTKEY /SPACE OR EOL MATCH FLAGGED CHARACTER + JMP I KEYSRCH + +KPTR, 0 + +GOTKEY, JMS I [SCAN + STA /SKIP EXTRA STUFF + JMS I [SPACE + ISZ KEYSRCH /TAKE GOOD RETURN 2 + JMP I KEYSRCH + +PTRTBL, ZBLOCK 4 + 0 + +PTPTBL, ZBLOCK 4 + 0 + PAGE + TTGAG, 0 + JMS TTST1 + JMP I [NOTIMPL + JMP I TTGAG + +TTFLAG, 0 + JMS TTST1 + JMS I [SRCH + 200;200;247 + JMP I [REASEM + TAD (-2 + DCA TEMP + TAD NO + SNA CLA + TAD (SZA CLA-CLA + TAD (CLA + DCA I TEMP + JMP I TTFLAG + +TTLC, 0 + JMS TTST1 + JMS I [SRCH + 200;200;377 + JMP I [REASEM + TAD (5 + DCA TEMP + TAD I TEMP + CLL + TAD [200 + SNL CLA + JMP I [REASEM + TAD NO + SNA CLA + TAD [40 /SNA CLA + TAD (7610 /SKP CLA + DCA I TEMP + JMP I TTLC + +TTCTRL, 0 + JMS TTST1 + JMP I [NOTIMPL + JMP I TTCTRL + TTWIDTH,0 + JMS GETWID + JMS TTST1 + TAD NUM + AND [7 + SZA CLA + JMP I [BADWID + TAD NUM + TAD [-200 + SNA CLA + JMP I [BADWID + JMS I [SRCH + 200;200;7600 + JMP I [REASEM + IAC + DCA TEMP + TAD I TEMP + AND [177 + TAD (177+7200 + DCA T2 + TAD TEMP + IAC + DCA T3 + TAD NUM + CIA + DCA I T3 + TAD I T3 + DCA I T2 + JMP I TTWIDTH + GETWID, 0 + TAD NO + SZA CLA + JMP I [SYNTAX + JMS OPTEQ + JMS I [NUMBER + SNA + JMP I (BADWID + DCA NUM + TAD FLG + SZA CLA + JMP I [SYNTAX /NO DIGITS + TAD NUM + AND [7400 + SZA CLA + JMP I [NUMBIG + JMP I GETWID + +TTST1, 0 + JMS I (ASRTST + TAD VNO + JMS I [BRANCH + -1;OLDERR + -2;OLDERR + -3;TTOK + -4;TTOK /V3C + ZBLOCK 4 + 0 + JMP I [NEWERR +TTOK, JMP I TTST1 + OPTEQ, 0 + JMS I [GETC + TAD (-"= + SZA CLA + JMP NOE + JMS I [SPACE + JMP I OPTEQ +NOE, JMS I [BACKC + JMP I OPTEQ + PAGE + BADWID, JMS I [PRINT + TEXT /? ILLEGAL WIDTH/ + JMP I [GOAWAY + +OPRIN, 0 + DCA N3 + TAD (-4 + DCA OKNT +OPLP, TAD N3 + JMS DGP + TAD N3 + RTL + RAL + DCA N3 + ISZ OKNT + JMP OPLP + JMP I OPRIN + +DGP, 0 + RTL + RTL + AND [7 + TAD [60 + JMS I [TYPE + JMP I DGP + +OKNT, 0 +N3, 0 +NUM2, 0 +GTEM, 0 + SRCH, 0 + TAD I SRCH + ISZ SRCH + TAD (7200-1 + DCA XR1 + TAD I SRCH + ISZ SRCH + CIA + DCA CNT + TAD I SRCH + CIA + DCA TEMP + ISZ SRCH +SRLUP, TAD I XR1 + TAD TEMP + SNA CLA + JMP SRFND + ISZ CNT + JMP SRLUP + JMP I SRCH +SRFND, ISZ SRCH + TAD XR1 + JMP I SRCH + GENLOC, 0 + TAD NO + SZA CLA + JMP I [SYNTAX + JMS I [ONUM + DCA NUM2 + TAD FLG + SZA CLA + JMP I [SYNTAX + JMS I [GETC + DCA TEMP + TAD TEMP + SNA + JMP ENOL + TAD (-"= + SZA CLA + JMP I [SYNTAX +ENOL, TAD DHI + SPA CLA + TAD (-200 + TAD (-200 + CLL + TAD NUM2 + SZL CLA + JMP I [NUMBIG + TAD NUM2 + TAD (7200 /BASE OF HANDLER + DCA NUM2 + TAD TEMP + SNA CLA + JMP ODT +GETNEW, JMS I [ONUM + DCA NUM + TAD FLG + SZA CLA + JMP I GENLOC + JMS I [GETC + SZA CLA + JMP I [SYNTAX + TAD NUM + DCA I NUM2 + JMP I GENLOC + ODT, TAD I NUM2 + JMS OPRIN + TAD ("/ + JMS I [TYPE + TAD I [READ + DCA GTEM /SAVE CHAIN STATUS + JMS I [READ + TAD [LINBUF + DCA LINPTR + TAD GTEM + DCA I [READ + JMP GETNEW + PAGE + MTAPAR, 0 + TAD NO + SZA CLA + JMP I [SYNTAX + JMS MTST1 + TAD LINPTR + DCA SAVPTR + TAD (EVEN + JMS I [KEYSRCH + SKP + JMP SETE + TAD SAVPTR + DCA LINPTR + TAD (ODD + JMS I [KEYSRCH + JMP I [SYNTAX + TAD (400 +SETE, TAD (2 + DCA I (7200 + JMP I MTAPAR + +MTST1, 0 + TAD VNO + JMS I [BRANCH + -1;OLDERR + -2;OLDERR + -3;OLDERR + -4;MTOK + -5;MTOK + -6;MTOK + ZBLOCK 4 + 0 + JMP I [NEWERR +MTOK, JMP I MTST1 + +MTADEN, 0 + JMS MTST1 + TAD NO + SZA CLA + JMP I [SYNTAX + JMP I [NOTIMP + JMP I MTADEN + MTAFIL, 0 + JMS MTST1 + TAD NO + DCA I (7201 + JMP I MTAFIL + +BADCOD, JMS I [PRINT + TEXT /? UNKNOWN CARD CODE/ + JMP I [GOAWAY + +/SUPPOSED TO WORK ON ALL VERSIONS + +CDCODE, 0 + TAD NO + SZA CLA + JMP I [SYNTAX + JMS I (OPTEQ + JMS I [NUMBER + TAD (-32 /026 + SNA + JMP C026 + TAD (32-35 /029 + SZA CLA + JMP BADCOD + JMS CHANGE + LIST1;LIST2 + JMP I CDCODE +C026, JMS CHANGE + LIST1;LIST3 + JMP I CDCODE + CHANGE, 0 + TAD I CHANGE + DCA P1 + ISZ CHANGE + TAD I CHANGE + DCA P2 + ISZ CHANGE +CHLUP, TAD I P1 + SNA + JMP I CHANGE + TAD (7200 /BASE OF HANDLER + DCA P3 + TAD I P2 + DCA I P3 + ISZ P1 + ISZ P2 + JMP CHLUP + +P1, 0 +P2, 0 +P3, 0 + PAGE + LIST1, 304;305;306 + 314;315;316 + 324;325;326;327 + 334;335;336 + 0 + +LIST2, 3203;4007;3502 + 7514;0577;3637 + 0104;1211;3374;0641 + 7316;3410;1376 + +LIST3, 7735;4076;0774 + 3314;1002;0305 + 3204;1273;3606;1341 + 3716;1175;3401 + TECNAM, FILENAME TECO.SV + +TECO, 0 + DCA SA + TAD (TECNAM + DCA ARG1 + CLA IAC /LOOKUP ON SYS + CIF 10 + JMS I USR + 2 +ARG1, TECNAM /STARTING BLOCK + 0 + JMP I TECO /NOT FOUND + TAD ARG1 + DCA BLKN + JMS I (7607 + 100 /READ 1 PAGE FROM TECO + 7000 /BUFFER +BLKN, 0 + JMP I [SYSERR + TAD BLKN + DCA BLKN2 + TAD SA + DCA I (7002 /REL LOC 2 IS S.A. + JMS I (7607 + 4100 + 7000 +BLKN2, 0 + JMP I [SYSERR + JMP I TECO + +SA, 0 + PAGE + +/7000-7177 BUFFER FOR TECO CCB +/7200-7577 BUFFER FOR HANDLER + FIELD 0 + *200 + $