File SET.PA (PAL assembler source file)

Directory of image this file is from
This file as a plain text file

/8 OS8 SET (PAL8/MACREL VERSION)

/
/S.R.
/
/
/	S E T
/
/
/
/
/
/
/THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE
/AND SHOULD NOT BE CONSTRUED 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) 1977 BY DIGITAL EQUIPMENT CORPORATION.
/
/
/
/

/ EDIT HISTORY: / 19-MAR-77 S.R. REMOVED FROM CAMP V4 / 19-MAR-77 S.R. FIXED BUG WITH SET MTA FILES / 19-MAR-77 S.R. FIXED BUG WITH SET CDR / 19-MAR-77 S.R. FIXED BUG WITH = OPTION / 19-MAR-77 S.R. CONVERTED TO MACREL CODE / 01-APR-77 S.R. TTY PAUSE / 01-APR-77 S.R. TTY HEIGHT / 01-APR-77 S.R. TTY SCOPE / 17-APR-77 S.R. REWROTE TTY PAGE / 17-APR-77 S.R. DEV: DVCODE / 17-APR-77 S.R. FINISHED TTY SCOPE / 27-APR-77 S.R. TTY COL / 27-APR-77 S.R. SYS OPTIONS (INIT, OS8, OS78) / 03-MAY-77 S.R. LA8A, LA78 / 03-MAY-77 S.R. INIT OS78 FIXES TERMINATE / 03-MAY-77 S.R. BASIC FIXES / 29-JUN-77 S.R. TTY ARROW (NOT FOR PS/8) / 29-JUN-77 S.R. TTY ESC (NOT FOR PS/8) / 29-JUN-77 S.R. DEV BLK LOC (NOT FOR PS/8) / MUST SKIP LOCS 1000-1777 LINBUF=1000 AUXBUF=6600 IFDEF EDF <MACREL=1> IFNDEF EDF <MACREL=0> IFNZRO MACREL < .XSECT XSET > IFZERO MACREL < *10 > XR1, 0 XR2, 0 XR3, 0 IFNZRO MACREL < .ZSECT ZSET > IFZERO MACREL < *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 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 RR, 0 NUCODE, 0 SCOP, 0 /NON-0 IF TTY IS SCOPE NUM2, 0 /0000-0777 /SET /1000-1377 /OS/8 LINE BUFFER /1400-1777 /PS/8 LINE BUFFER /2000-6577 /SET /6600-7177 /AUXILIARY I/O BUFFER /7000-7177 /I/O BUFFER FOR TECO CCB /7200-7577 /OS/8 HANDLER /7600-7777 /OS/8 SCPBIT=7726 /BIT 4
IFNZRO MACREL < .ASECT ASET > *200 START, SKP JMP CHN TAD ("# JMS I [TYPE JMS BIT JMS I [READ /READ A LINE INTO OS/8 LINE BUFFER CHN, TAD [LINBUF /CHAIN ENTRY ADDRESS DCA LINPTR /INITIALIZE POINTER TO LINE BUFFER JMS BIT 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 -2305;SET /SE -2605;VERSION /VE -1005;HELP /HE 0 SNA CLA JMP I [GOAWAY JMP I [SYNTAX /NONE OF THESE BIT, 0 CDF 10 TAD I (SCPBIT CDF 0 AND [200 DCA SCOP /NOTE WHETHER TTY IS SCOPE V3D JMP I BIT
/ 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
HELP, JMS I [PRINT TEXT /SET DEV: [NO] ATTRIB [N]/ JMS I [PRINT TEXT /VERSION/ JMS I [PRINT TEXT /HELP/ JMP I [START 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 SET V1B\ 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
SYSOS8, 0 TAD NO /REVERSE MEANING OF 'NO' SNA CLA IAC DCA NO JMS SYS78 JMP I SYSOS8 SYS78, 0 TAD [7771 JMS I [SET200 JMS I [7607 200 AUXBUF 0 JMP I [SYSERR TAD (AUXBUF+371 JMS I [SET200 JMS I [7607 4200 AUXBUF 0 JMP I [SYSERR JMS I [7607 /THERE'S A 2ND COPY 200 /IN BLOCK 11 LOCATION 56 AUXBUF 11 JMP I [SYSERR TAD (AUXBUF+56 JMS I [SET200 JMS I [7607 4200 AUXBUF 11 JMP I [SYSERR JMS I (FIXCCL JMP I SYS78
SYSINI, 0 JMS I [GETC SNA CLA JMP DEFINI /ASSUME @INIT TAD NO SZA CLA JMP I [SYNTAX /SET SYS NO INIT CMD JMS I [BACKC TAD LINPTR DCA SAVLP TAD (-6 /ALLOW A MAXIMUM OF 5 CHARS DCA SAVKN SAVLUP, JMS I [GETC SNA CLA JMP DEFDO ISZ SAVKN JMP SAVLUP JMS I [PRINT TEXT /? INITIAL COMMAND TOO BIG/ JMP I [GOAWAY SAVKN, 0 SAVLP, 0 DEFINI, TAD (INIMSG DCA SAVLP DEFDO, JMS I [7607 200 AUXBUF 0 JMP I [SYSERR TAD NO SZA CLA TAD (400-1077 TAD (1077 DCA I (AUXBUF+77 JMS I [7607 4200 AUXBUF 0 JMP I [SYSERR TAD NO SZA CLA JMP I SYSINI JMS I [7607 200 AUXBUF 11 JMP I [SYSERR STA TAD SAVLP DCA XR2 TAD (AUXBUF-1 DCA XR3 TAD (-5 DCA SAVKN MOVL, TAD I XR2 DCA I XR3 ISZ SAVKN JMP MOVL JMS I [7607 4200 AUXBUF 11 JMP I [SYSERR JMP I SYSINI INIMSG, "@;"I;"N;"I;"T;0 PAGE
*1400 /THIS WON'T ALWAYS WORK UNDER PS/8: TTGGO, JMP I TTGAG TTGAG, 0 JMS I [TTST1 JMS I [PRINT TEXT /A FUNNY THING HAPPENED TO ME ON THE WAY TO THE COMPUTER ROOM./ JMS I [PRINT TEXT /A PANHANDLER CAME UP TO ME AND SAID,/ JMS I [PRINT TEXT /"CAN YOU SPARE ME $25,000 FOR A CUP OF COFFEE?"/ JMS I [PRINT TEXT /"WHY SO MUCH?", I ASKED IN AMAZEMENT./ JMS I [PRINT TEXT /"THINGS HAVE BECOME SO AUTOMATED", HE REPLIED,/ JMS I [PRINT TEXT /"THAT THE ONLY WAY I CAN ORDER IT/ JMS I [PRINT TEXT /IS WITH A COMPUTER ORDER FORM"./ JMP I (TTGGO
TTESC, 0 /V3D JMS I (OLDTST JMS I [SRCH 200;200;44 JMP I [REASEM TAD (-4 DCA TEMP /SEE SOURCE OF KL8E TAD NO SZA CLA TAD (7640-CLA /YES TAD (CLA /NO DCA I TEMP JMP I TTESC TTAROW, 0 /V3D JMS I (OLDTST JMS I [SRCH 200;200;7740 JMP I [REASEM IAC DCA TEMP TAD I TEMP RAL KSPA, SPA CLA JMP I [REASEM ISZ TEMP ISZ TEMP TAD TEMP TAD (3 DCA TEMP2 TAD NO SNA CLA JMP YESARO /YES TAD KSPA /NO NOAROW, DCA I TEMP JMP I TTAROW YESARO, TAD I TEMP2 JMP NOAROW
GENBLK, 0 /V3D JMS I (GENCMN TAD NUM2 DCA BLOK /GET BLOCK NUMBER TAD (LOC JMS I [KEYSRCH JMP I [SYNTAX JMS I (GENCMN /GET LOCATION TAD [-400 CLL TAD NUM2 SZL CLA JMP I [NUMBIG TAD NUM2 TAD PAUXBUF DCA NUM2 JMS I ENTRY /READ BLOCK 200 PAUXBUF,AUXBUF BLOK, 0 JMP I [SYSERR TAD TEMP SNA CLA JMS I (ODT JMS I [ONUM DCA NUM CLA IAC DCA DEVNUM /FAKE OUT - PREVENTS RE-WRITING USED HANDLER TAD FLG SZA CLA JMP I GENBLK JMS I [GETC SZA CLA JMP I [SYNTAX TAD NUM DCA I NUM2 /SET NEW VALUE TAD BLOK DCA BLOK2 JMS I ENTRY 4200 AUXBUF TEMP2, BLOK2, 0 JMP I [SYSERR JMP I GENBLK 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 BADKBM, CDF 0 JMS I [PRINT TEXT /? OLD VERSION OF KBM/ JMP I [GOAWAY
LLS=6666 DBTD=6574 LSF=6661 DBST=6570 LP78, 0 TAD (CMA-NOP JMS LP8A JMP I LP78 LP8A, 0 TAD (NOP /AC MAY BE NON-0 DCA LPKOD JMS I (LPTST1 TAD VNO TAD (-2 SNA CLA JMP I (OLDERR JMS I [SRCH 0;200;7700 JMP I (OLDERR TAD (3 DCA TEMP TAD I TEMP AND [7000 TAD [-7000 SZA CLA /NOP OR CMA JMP I (OLDERR TAD LPKOD DCA I TEMP ISZ TEMP TAD I TEMP AND [7000 TAD (-6000 SZA CLA JMP I (OLDERR TAD LPKOD AND [70 SZA CLA TAD (DBTD-LLS TAD (LLS DCA I TEMP ISZ TEMP TAD LPKOD DCA I TEMP JMS I [SRCH 100;100;6203 JMP I (OLDERR TAD (2 DCA TEMP TAD LPKOD AND [70 SZA CLA TAD (DBST-LSF TAD (LSF DCA I TEMP JMP I LP8A LPKOD, 0 PAGE
/READ A LINE INTO OS/8 LINE BUFFER READ, 0 DCA CTOFLG /ALLOW ECHOING RD1, TAD [LINBUF DCA LINPTR DCA ESCBIT GT, JMS I [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 -223;GT /IGNORE ^S 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 I [TYPE /ECHO IT TAD TEMP /INSERT IN BUFFER DCA I LINPTR ISZ LINPTR /BUMP POINTER JMP GT /NEXT CTRLU, TAD ["^ JMS I [TYPE TAD ("U JMS I [TYPE /ECHO "^U" <CR><LF> JMS I [CRLF RDA, TAD ("# JMS I [TYPE JMP RD1
BS=10 RUBOUT, TAD LINPTR TAD [-LINBUF SNA JMP BOL /AT BEGIN OF LINE TAD [LINBUF-1 DCA LINPTR /MOVE POINTER BACK ONE TAD SCOP SZA CLA TAD (BS-"\ TAD ["\ JMS I [TYPE /ECHO "\" RUB3, TAD SCOP SNA CLA JMP .+3 TAD [40 SKP TAD I LINPTR JMS I [TYPE /ECHO RUBBED-OUT CHARACTER TAD SCOP SNA CLA JMP GT2 TAD [BS JMS I [TYPE GT2, JMS I [GET JMS I [BRANCH -377;RUB2 -216;GT2 /IGNORE ^O -203;CTRLC /^C 0 DCA TEMP /A NEW CHAR TAD SCOP SZA CLA JMP .+3 TAD ["\ JMS I [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 SCOP SZA CLA JMP BOL TAD ["\ JMS I [TYPE BOL, JMS I [CRLF JMP RDA ESCAPE, TAD ["$ /ECHO ESCAPE AS DOLLAR SIGN JMS I [TYPE ISZ ESCBIT /NOTE ESCAPE CR, DCA I LINPTR /INSERT 0 AT END JMS I [CRLF JMP I READ /RETURN, WE GOT LINE
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 /FINISHED, GET SOME MORE CHARS JMS I [TYPE /ECHO CURRENT CHARS JMP LFLP PAGE
/GET A DECIMAL NUMBER, RETURN IT IN AC NUMBER, 0 DCA NUM CLA IAC DCA FLG JMS I [BACKC 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 /POINT 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
OLDTST, 0 /V3D JMS I (ASRTST TAD VNO JMS I [BRANCH -1;OLDERR -2;OLDERR -3;OLDERR -4;OLDERR -5;TSTOK ZBLOCK 4 0 JMP I [NEWERR TSTOK, JMP I OLDTST
TTPAUS, 0 JMS OLDTST JMS I [SRCH 200;100;15 JMP I [REASEM TAD (-3 DCA TEMP /SEE SOURCE OF KL8E FOR EXPLANATION TAD NO SNA CLA TAD (7650-7610 /YES TAD (7610 /NO DCA I TEMP DCA NUM JMS I [GETC SNA CLA JMP NOPA /NO PAUSE VALUE TAD NO SZA CLA JMP I [SYNTAX /SET TTY NO PAUSE N JMS I [NUMBER SNA JMP BADPAUS DCA NUM TAD NUM /SCALE CORRECTLY CLL RAL TAD NUM CLL RTL DCA NUM TAD FLG SZA CLA JMP BADPAUS /NO DIGITS TAD NUM AND [6000 SZA CLA JMP BADPAUS JMS I [SRCH 300;77;7600 JMP I [REASEM TAD (5 DCA TEMP TAD NUM CIA DCA I TEMP NOPA, JMS I (BASLUK JMP I TTPAUS TAD NUM CIA DCA I (AUXBUF+1 JMS I (BASWRI JMP I TTPAUS
BADPAUS,JMS I [PRINT TEXT /? BAD VALUE FOR PAUSE DURATION/ 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
TTCOL, 0 TAD NO SZA CLA JMP I [SYNTAX /SET TTY NO COL JMS I [GETC SNA CLA JMP BADCOL /NO COL SPECIFIED JMS I [NUMBER SNA JMP BADCOL DCA NUM TAD FLG SZA CLA JMP I [SYNTAX TAD NUM AND [7770 SZA CLA JMP BADCOL TAD (CCLNAM /READ IN CCL.SV JMS I [LOOKUP JMP CCLNF /CCL NOT FOUND TAD (2 /WANT 2ND BLOCK IN CCL DCA ARG2 /CCL LOCATIONS 12400-12777 JMS I (7607 200 /READ IN 2 PAGES AUXBUF ARG2, 0 JMP I [SYSERR TAD ARG2 DCA ARG3 TAD I (AUXBUF /GET PTR TO DIRECT COL WORD SPA JMP OLDCCL TAD (AUXBUF-2400 /RELOCATE DCA ARG2 TAD NUM DCA I ARG2 JMS I (7607 4200 AUXBUF ARG3, 0 JMP I [SYSERR JMP I TTCOL
BADCOL, JMS I [PRINT TEXT /? BAD COLUMN COUNT/ JMP I [GOAWAY OLDCCL, CLA JMS I [PRINT TEXT /? WRONG VERSION OF CCL/ JMP I [GOAWAY
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 CCLNAM, FILENAME CCL.SV CCLNF, JMS I [PRINT TEXT /? CCL.SV NOT FOUND/ JMP I [GOAWAY
CCLBLK=67 FIXCCL, 0 JMS I [7607 200 AUXBUF CCLBLK JMP I [SYSERR TAD I (AUXBUF TAD (-"G SPA CLA JMP I (OLDCCL TAD (CCLTBL JMS I (FIXUP JMS I [7607 4200 AUXBUF CCLBLK JMP I [SYSERR JMP I FIXCCL PAGE
ESC, "E;"S;"C;4000+"A;4000+"P;4000+"E;0 TTHGHT, 0 JMS I (OLDTST JMS I [GETC SNA CLA JMP I (BADHIT /NO HEIGHT TAD NO SZA CLA JMP I [SYNTAX /SET TTY NO HEIGHT JMS I [NUMBER SNA JMP I (BADHIT DCA NUM TAD FLG SZA CLA JMP I (BADHIT /NO DIGITS JMS I [SRCH 300;77;7600 JMP I [REASEM TAD (3 DCA TEMP TAD NUM CIA DCA I TEMP TAD I TEMP ISZ TEMP DCA I TEMP JMS I (BASLUK JMP I TTHGHT TAD NUM CIA DCA I (AUXBUF JMS I (BASWRI JMP I TTHGHT
/ LOC YES NO KBMTBL, AUXBUF+313; 0210; 1070 AUXBUF+314; 1313; 2020 AUXBUF+316; 1324; 7240 AUXBUF+317; 4423; 3020 AUXBUF+322; 1313; 1440 AUXBUF+224; 7555; 7403 AUXBUF+225; 1207; 1302 AUXBUF+226; 7557; 7402 AUXBUF+227; 1207; 1302 0 CDTBL, AUXBUF+135; 0210; 1102 AUXBUF+136; 1335; 2024 AUXBUF+140; 1346; 7240 AUXBUF+141; 4466; 3024 AUXBUF+144; 1335; 1420 AUXBUF+33; 7555; 7403 AUXBUF+34; 5207; 5321 AUXBUF+35; 7557; 7402 AUXBUF+36; 5207; 5321 0 CCLTBL, AUXBUF+4; 0024; 0002 AUXBUF+5; 0522; 0143 AUXBUF+6; 5551; 5363 AUXBUF+7; 5600; 6000 0 AROW, "A;"R;"R;"O;"W;0 PAGE
/ SCOPE BIT ON DISK: / BLOCK 0 REL 126 BIT 4 / SCOPE BIT IN MEMORY: / LOC 17726 BIT 4 TTSCOP, 0 /THE FOLLOWING CODE WOULD BE ADDED IF WE WANT TO /ALLOW CHANGING KL8E SCOPE PATTERNS / JMS I (ASRTST / TAD VNO / JMS I [BRANCH / -1;OLDERR / -2;OLDERR / -3;OLDERR / -4;OLDERR / -5;TTSCOK / ZBLOCK 2 / 0 / JMP I [NEWERR TTSCOK, JMS I (7607 200 AUXBUF /READ 2 PAGES INTO AUXILIARY BUFFER 11 JMP I [SYSERR TAD (KBMTBL JMS FIXUP JMS I (7607 4200 AUXBUF 11 JMP I [SYSERR JMS I (7607 200 AUXBUF /READ BLOCK 53 (CD) 53 JMP I [SYSERR TAD (CDTBL JMS FIXUP JMS I (7607 4200 AUXBUF 53 JMP I [SYSERR TAD NO /SET SCOPE BIT SNA CLA IAC DCA SCOP CDF 10 TAD (SCPBIT JMS SET200 CDF 0 JMS I (7607 200 AUXBUF 0 JMP I [SYSERR TAD (AUXBUF+126 JMS SET200 JMS I (7607 4200 AUXBUF 0 JMP I [SYSERR / JMS I [SRCH / 366;11;7770 / JMP I [REASEM / CLA / JMS I [SRCH / 0;200;"\ / JMP I [OLDERR / IAC / DCA TEMP / TAD NO / SNA CLA / TAD (1336-1367 / TAD (1367 / DCA I TEMP JMP I TTSCOP
SET200, 0 /DF IS SPECIALLY SET DCA HLTPTR TAD I HLTPTR AND (7577 DCA TEMP TAD TEMP TAD (-HLT SZA CLA JMP I (BADKBM TAD NO SNA CLA TAD [200 TAD TEMP DCA I HLTPTR JMP I SET200 HLTPTR, 0 FIXUP, 0 DCA FIXPTR FIXLUP, TAD I FIXPTR SNA JMP I FIXUP DCA FIXLOC ISZ FIXPTR TAD NO SZA CLA ISZ FIXPTR TAD I FIXPTR DCA I FIXLOC TAD NO SNA CLA ISZ FIXPTR ISZ FIXPTR JMP FIXLUP FIXPTR, 0 FIXLOC, 0
BASNAM, FILENAME BASIC.SV BASLUK, 0 TAD (BASNAM JMS I (LOOKUP JMP I BASLUK ISZ BASLUK TAD (7 DCA BASBLK JMS I [7607 200 AUXBUF BASBLK, 0 JMP I [SYSERR TAD BASBLK DCA BASB2 TAD I (AUXBUF+2 SNA CLA JMP I BASLUK JMP I (OLDBAS BASWRI, 0 JMS I [7607 4200 AUXBUF BASB2, 0 JMP I [SYSERR JMP I BASWRI PAGE
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
NOTIMPL,JMS I [PRINT TEXT /% OPERATION NOT YET IMPLEMENTED/ JMP I [GOAWAY
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 BADHIT, JMS I [PRINT TEXT /? BAD HEIGHT SPECIFIED/ JMP I [GOAWAY TTALT, 0 JMS I [TTST1 JMP I [NOTIMPL JMP I TTALT PAGE
COLN, STA JMS I [SPACE /IGNORE OPTIONAL SPACES JMS I [GETC SNA JMP I [SYNTAX TAD (-"- SNA CLA JMP HYPH JMS I [BACKC STA TAD DEVNUM SNA CLA JMP SYSDV 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 STA TAD DEVNUM SZA CLA JMS I (HREAD /READ HANDLER JMS I PTR /CALL ROUTINE STA TAD DEVNUM SZA CLA JMS I (HWRITE /REWRITE HANDLER JMP I [GOAWAY SYSDV, ISZ AUXFLG TAD (SYSAUX JMP INTO /V3D ALLOW SET SYS:
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
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
LPTTBL, WIDTH;LPWDTH LC;LPLC LV8E;LPLV LA8A; LP8A LA78; LP78 ZBLOCK 4 0 MTATBL, PARITY;MTAPAR DENSITY;MTADEN FILES;MTAFIL ZBLOCK 4 0
AUX, LOC;GENLOC FILES;GENFIL READO;GENREA VERS;GENVER DVCO;GENDVC /V3D BLK;GENBLK /V3D ZBLOCK 6 0
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 PAUS, "P;"A;"U;"S;"E;0 HGHT, "H;"E;"I;"G;"H;"T;0 SCOPP, "S;"C;"O;"P;"E;0 SYSAUX, INIT; SYSINI OS8; SYSOS8 OS78; SYS78 ZBLOCK 10 0 DVCO, "D;"V;"C;4000+"O;4000+"D;4000+"E;0 COL, "C;"O;"L;4000+"U;4000+"M;4000+"N;0 LA8A, "L;"A;"8;"A;0 LA78, "L;"A;"7;"8;0 INIT, "I;"N;"I;"T;0 OS8, "O;"S;"8;0 OS78, "O;"S;"7;"8;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 -3;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 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 (OLDTST JMS I [SRCH /V3D NEW ROUTINE 215;100;7450 JMP I [REASEM TAD (3 /POINT TO 'SZA CLA' DCA TEMP TAD NO SNA CLA TAD (SZA CLA-CLA /YES TAD (CLA /NO DCA I TEMP 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 BADWID, JMS I [PRINT TEXT /? ILLEGAL WIDTH/ JMP I [GOAWAY BLK, "B;"L;"O;"C;"K;0 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
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 PAUS;TTPAUS /V3D HGHT;TTHGHT /V3D SCOPP;TTSCOP /V3D COL;TTCOL /V3D ESC;TTESC /V3D AROW;TTAROW /V3D ZBLOCK 10 0 PAGE
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 -5;TTOK /V3D ZBLOCK 4 0 JMP I [NEWERR TTOK, JMP I TTST1
OPTEQ, 0 JMS I [GETC TAD (-"= SZA CLA JMP I OPTEQ STA /V3D JMS I [SPACE JMP I OPTEQ PAGE
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 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
GENCMN, 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 I GENCMN TAD (-"= SZA TAD ("=-", SZA CLA JMP I [SYNTAX JMP I GENCMN
GENLOC, 0 JMS GENCMN 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 JMS 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, 0 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 I ODT OLDBAS, JMS I [PRINT TEXT /? OLD BASIC/ JMP I [GOAWAY 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 CIA /V3D IAC /V3D 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
GET, 0 KSF JMP .-1 KRB AND [177 TAD [200 /FORCE TO 8-BIT JMP I GET PAGE
/FIXED FOR V3D: LIST1, 104;105;106 114;115;116 124;125;126;127 134;135;136 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 JMS LOOKUP JMP I TECO /NOT THERE 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
LOOKUP, 0 DCA ARG1 /PTR TO FILENAME IN AC CLA IAC /LOOKUP ON SYS CIF 10 JMS I USR 2 ARG1, 0 /STARTING BLOCK 0 JMP I LOOKUP /NOT FOUND TAD ARG1 ISZ LOOKUP JMP I LOOKUP /RETURN 2 WITH BLOCK # IN AC
GENDVC, 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 TAD NUCODE TAD (-30 SPA CLA JMP I [NUMBIG TAD NUCODE CLL RTL RAL DCA NUCODE TAD (7200 DCA RR DVLUP, JMS I (GETIOT JMP I GENDVC TAD (-30 SPA CLA JMP DVLUP TAD I RR AND (7007 TAD NUCODE DCA I RR JMP DVLUP
CDRTBL, CODE;CDCODE ZBLOCK 4 0 PAGE /7000-7177 BUFFER FOR TECO CCB /7200-7577 BUFFER FOR HANDLER
FIELD 0 *200 $



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search