.NLIST TTM ; UPDATE 1-31-73 MAC.S14 ; UPDATE 1-26-73 MAC.S12 ; UPDATE 1-23-73 3 MAC.S11 ; UPDATE 1-5-72 MAC ; UPDATE 1-18-73 2 MAC.S11 ; UPDATE 1-18-73 MAC.S11 .NLIST TTM ; .TITLE MAC MACRO DEFINITIONS ;* * * ; ; MACRO DEFINITIONS FOR GENERAL USE ; ; * * * ; ; THESE MACROS ARE FOR GENERAL ELITE SYSTEM USE. FOR MACROS THAT ; CALL S .NLIST TTM ; UPDATE 2-16-73 SYE.S18 ; UPDATE 2-11-73 SYE.S17 .TITLE SYE SYSTEM EQUATES ;* * * ; ; SYSTEM EQUATES ; ;* * * ; .SBTTL SYSTEM EQUATES BATPRI = 3 ; BATCH PRIORITY BUFFL = 32.*2 ; CORE BUFFER LENGTH BUFLEN = BUFFL ; DENTSC = 31. ; NO. INDEX ENTRIES PER SECTOR DLBASE = 0 ; BASE NUMBER FOR FILE DESCRIPTORS DSCPRI  .NLIST TTM ;LISTING IN LINE PRINTER FORMAT ; UPDATE ADLEQU.SO4 1/23/73 ; ; ; ASYNCHRONOUS LINK EQUATES ; ; ; EQUATES FOR ROS ; SAVE = 104400 ;TRAP INSTRUCTION FOR CALL TO SAVE (ROS) ; ; DATALINK STATES ; RCVDATA = 0 ;RECEIVE DATA RCVACK = 1 ;RECEIVE ACK XMTDATA = 2 ;TRANSMIT DATA SNDACK = 3 ;SEND ACK CANCL1 = 4 TTVd:A~Tww 4:!Z @Ce* U1 P  w 3 V~`U~ + x,{|B  7 D7 D7 D7 BKD 0 ttj0`j,X0oC0 ~U7jE@    ^ :7 O% 1 1 zOZ~PV?S7qO7 RFRRR7 RS7 SSy@ڨ UBROUTINES THE USER SHOULD CONSULT THE SUBROUTINE WRITE ; UP FOR DETAILS. ; ; MACROS ARE PROVIDED FOR MOST LISTS SO THAT UPDATING CAN BE ; ACCOMPLISHED EASILY FOR TASKS WHEN GOING TO ADVANCED ROS. ; ; .SBTTL DATA DEFINITIONS ;* * * ; DATA DEFINITIONS ;* * * .SBTTL CONACT ACTION CODE OF CONSOLE OUTPUT ; ; CONSOLE OUTPUT DEVICE ROUTING CODE ; .MACRO CONACT .ASCII /.HA/<32> .ENDM .SBTTL CR = 4 ; DISC ACCESS PRIORITY FOR MSG SWITCH ERRLIM = 25. ; ERROR LIMIT FOR ASYNC TERMINALS FCPTAL = 6 ; LENGTH OF CORE POINTER ENTRY FLBASE = 150. ; BASE FOR ROS FILE DIRECTORIES FLSEL = 64.*2 ; FILE ELEMENT LENGTH FLSSZ = 64.*2 ; FILE ELEMENT SIZE FLSIOY = 5 ; FILE CONTROL PRIORITY HRADSZ = 90.*2 ; PACKED HRAF ELEMENT SIZE HRAFSZ = 60 ;CANCEL 1 CANCL2 = 5 ;CANCEL 2 DEAD = 6 ;DEAD WAIT = 7 ;WAIT IDLE3 = 8. ;IDLE 3 IDLE1 = 9. ;IDLE 1 IDLE2 = 10. ;IDLE 2 DISCON = 11. ;DISCONNECT ; STEMAX = 11. ; MAXIMUM STATE VALUE ; ; ; EQUATES FOR DC11 INTERFACE ; ; ; ; DC11 TRANSMITTER STATUS REGISTER (TCSR) BITS ; READY = BIT7 w r2  waHe  θѸ Ѹ~V Ҹ ԸݸP ޸P W w 2T J LKw~@Ww \UZDF " 7 &+ DV%n+w+7iS *V%+SS7B~ V%~WBB 0C FXBX a-$& & & C      wH X ROSII-CIT~0XGO COLD START V01  Zd LFF END OF ERROR MESSAGE ; ; END ERROR MESSAGE MACRO DEF ; .MACRO CRLFF ; .BYTE CR,LF,LF,LF ; PAPER FEED .ENDM ; ; .SBTTL BLCRLF ERROR MESSAGE HEADER ; ; ERROR MESSAGE HEADER MACRO DEF ; .MACRO BLCRLF ; .WORD -1,-1 ; .BYTE CR,LF ; .ENDM ; .SBTTL DCRTE DATA CENTER ROUTING CODE ; ; DATA CENTER ROUTING CODE ; .*2 ; STANDARD HRAF ELEMENT SIZE HRF0SZ = 60.*2 ; STANDARD RAF0 ELEMENT SIZE HRF4SZ = 64.*2 ; STANDARD RAF4 ELEMENT SIZE HUBDST = 1 ; DATA-CENTER DST USAGE ; 0 = NOT ON DST ; 1 = ON DST HUBZON = 3 ; HUB TIME ZONE (CENTRAL) MSQOML = 10. ; TERML OUTPUT QUE COUNT LIMIT MSWEL = 256. ; MESSAGE CE ;TRANSMITTER READY XENABL = BIT6 ;TRANSMITTER INTERRUPT ENABLE CLRSND = BIT1 ;CLEAR TO SEND REQSND = BIT0 ;REQUEST TO SEND XSPEED = 20 ;TRANSMIT SPEED SELECT XSTPCD = BIT8 ;STOP CODE (1 BIT) ; ; ; DC11 RECEIVE CONTROL STATUS REGISTER (RCSR) BITS ; DSTAT = BIT15 ;DATASET STATUS CHANGE CARTRN = BIT14 ;CARRIER TRANSITION RING = BIT13 )~X~ Y~Y .MACRO DCRTE ; .ASCII /TULSA / ; ROUTING CODE .ENDM ; ; .PAGE .SBTTL HUBRTE HUB ROUTING CODE ; ; HUB ROUTING CODE ; .MACRO HUBRTE ; .ASCII /HUB01 / ; ROUTING CODE .ENDM HUBRTE ; .SBTTL INTID INTERCEPT HEADER ; ; INTERCEPT HEADER ID ; .MACRO INTID ; .ASCII /??? / ; INTERCEPT IDENTIFIER LL LENGTH MSWIOD = 1 ; MSG CONTROL POOL DEVICE MSWIOY = 4 ; MSG CONTROL DISC PRIORITY MSWSZ = 256.*2 ; SIZE OF TYPE I CELL (TYPL) MTPRI1 = 0 ; MAG-TAPE PRIORITY LEVEL NALINK = 3 ; # OF ASYNC LINKS NBUFS = 50. ; # OF CORE BUFFERS NSLINK = 1 ; # OF SYNC. LINKS NUMQUE = 10. ; # OF TERMLS IN QUE TABLE NCELLS = 400. ;  ;RING INDICATOR OVRRUN = BIT12 ;RCV OVERRUN DONE = BIT7 ;DONE RENABL = BIT6 ;RECEIVER INTERRUPT ENABLE PARITY = BIT5 ;RECEIVER PARITY CHECK DETECT = BIT2 ;CARRIER DETECT DTRDY = BIT0 ;DATA TERMINAL READY RSPEED = XSPEED ;RECEIVER SPEED SELECT CHRLEN = 0 ;CHARACTER LENGTH ; ; ; OTHER ASYNC LINK EQUATES ; GKSYS = 0 ~Z%R 6 7 % Z6 ~Z~[&~x[ .ENDM ; ; ; .PAGE ; .SBTTL OVRID OVERLOAD ROUTING ID ; ; OVERLOAD ROUTING ID MACRO DEF ; .MACRO OVRID ; .ASCII '/// ' ; .ENDM ; ; .SBTTL RTLID RETRIEVAL REQUESTS & WAITING MESSAGES ; ; RETRIEVAL REQUEST & WAITING QUE ROUTING HEADER ; .MACRO RTLID ; .ASCII /%%% / ; .ENDM ; ; .SBTTL RTVID RETRIEVAL ROUTING ID ; ; NUMBER OF MESSAGE CELLS NELM = 4000. ; NO. OF ELEMENTS IN DATA FILE NELM1 = 4001. ; START OF MESSAGE POOL AS REF. BY ELM POOL NSEC = 14700 ; NO. OF FILE & MSG SECTORS NCELLS = NSEC-NELM/4 ; # OF MESSAGE CELLS OUTLIM = 5 ; CALL LIMIT FOR NO REPLY MSG ; ; SEND ETX WHEN OUTNUM=OUTLIM PRBASE = 1 ; START OF TASK PRIORITY FOR ROS OVLY PRILIM = 177774  ;GKSYS ROTBUF = 1 ;USE ROTATING BUFFER FOR CHECKOUT ;******* SIMULATE= 2 ;ONE DC11 AND TWO SIMULATED DC11'S ;SIMULATE CHECKOUT= 1 ;******** ETB = 027 ;END OF TRANSMISSION BLOCK EOT = 004 ;END OF TRANSMISSION ACK = 006 ;ACKNOWLEDGE NAK = 025 ;NEGATIVE ACKNOWLEDGE ~[6~h\~\E~X] RETRIVEAL MESSAGE ROUTING ID MACRO DEF ; .MACRO RTVID .ASCII /&&& / ; .ENDM ; .SBTTL STDID STANDARD HEADER ID ; ; STANDARD MESSAGE HEADER ID ; .MACRO STDID ; .ASCII /!!! / ; .ENDM ; ; .SBTTL TRMAC1 TERMINAL .3A ACTION CODE ; ; TERMINAL ASR ACTION CODE MACRO DEFINITION ; .MACRO TRMAC1 ; .ASCII /.3A/<32> ; ACTION CODE  ; LIMIT PRIORITY TO 0 - 3 QUDTC = 26. ; QUEVE FOR DATALINK TO DC QASYNC = QUDTC+NSLINK ; FIRST ASYNC QUE NO. QUPGLM = 15. ; NO. OF PROGRAMS RLTPRI = 1 ; REAL TIME PRIORITY SECSIZ = FLSEL ; TSBASE = 10. ; BASE FOR TASK NUMBERS TSFLBS = 40. ; BASE FOR TASK FILE ID TYPL = 256.*2 ; SIZE OF MESSAGE CELL WATPRI = 2 ; WAITING PRIO STX = 002 ;START OF TEXT CAN = 030 ;CANCEL MSGSIZ = 273. ;MESSAGE SIZE (RECEIVED FROM TERMINAL) BLKSIZ = 273. ;BLOCK SIZE (RECEIVED FROM TERMINAL) ALREGS = 174000 ;BEGINNING ADDRESS OF ASYNCHRONOUS ;LINK DEVICE REGISTERS .IF EQ,SIMULATE-1 ;SIMULATE ALREGS = REGSIM ;SIMULATION REGISTERS ~]T~H^~^c~8_ .ENDM ; ; ; .SBTTL TRMAC2 TERMINAL ASR & RO ACTION CODE ; ; TERMINAL ASR & RO ACTION CODE MACRO DEF ; .MACRO TRMAC2 ; .ASCII /.4A/<32> ; ACTION CODE .ENDM ; ; .PAGE ; .SBTTL TRMAC3 MESSAGE NOT FROM TERMINAL ORIGINALLY ; ; MESSAGE COUNT NOT TO BE REDUCED FOR TERMINAL ; .MACRO TRMAC3 .ASCII /.3C/<32> ; ACTION CODE RITY .CITGO = 1 ; CITGO SYSTEM .CITGOM = 1 ; CITGO TERMINAL INPUT .DCEXT = 0 ; DATA CENTER DOES NOT EXIST .INTML = 980. ; INTERCEPT MAX MESSAGE LENGTH .GULF = 0 ; GULF SYSTEM BEL = 007 ; BELL, DING-A-LING CR = 015 ; CARRAIGE RETURN DEL = 377 ; DELETE CHAR EOR = 032 ; END OF RECORD CHARACTER ETX =  ;SIMULATE .ENDC ;SIMULATE ALVECT = 300 ;BEGINNING ADDRESS OF ASYNCHRONOUS ;LINK DEVICE INTERRUPT VECTOR ALLEVL = 5 ;CPU PRIORITY LEVEL AT WHICH ASYNC ;HANDLER RUNS .IF DF,ROTBUF ;******* ALBSIZ = 300. ;NO. OF INTERRUPTS TO SAVE IN ;******** ~_r~(`~`~a! .ENDM ; .SBTTL TRMAC4 MESSAGE NOT TERMINAL ORIGINATED ; ; MESSAGE COUNT NOT TO BE REDUCED ; SEND TO ASR & RO ; .MACRO TRMAC4 .ASCII /.4C/<32> ; ACTION CODE .ENDM ; .PAGE .SBTTL FILE CONTROL ;* * * ; ; FILE CONTROL ; ;* * * .SBTTL FILEC FILE AND MESSAGE CONTROL ; ; FILE CONTROL MACRO DEFINITION / MESSAGE CONTROL MACRO DEFINITION ; ; ; USER MUST DEFINE ERR A" 003 ; END OF TEXT LF = 012 ; LINE FEED NUL = 000 ; NULL CHARACTER SPCE = 40 ; SPACE CHARACTER ; ; DATA LINK CHARACTERS ; NAK = 025 ; NEGATIVE ACKNOWLEDGE CAN = 030 ; CANCEL ACK = 006 ; ACKNOWLEDGE STX = 002 ; START OF TEXT PAD = 377 ; DATA LINK PAD CHARACTER .PAGE ; DISC SPO# .ENDC ;******** ;ROTATING BUFFER RCSR = 0 ;ASYNC RCV STATUS REG (RELATIVE TO RCSR) RBUF = 2 ;ASYNC RCV REG (RELATIVE TO RCSR) XCSR = 4 ;ASYNC XMT STATUS REG (RELATIVE TO RCSR) XBUF = 6 ;ASYNC XMT REG (RELATIVE TO RCSR) ALREGL = 8. ; LENGTH OF DEVICE REGS AIBUFL = 1 ;ASYNC I$~a~b~bbXc m%S A COMMON ERROR RETURN TO DEFAULT ; .MACRO FILEC NAME,LIST,TEMP,LCK,PAR,ERR1,ERR2,ERR3,?Y,?U,?V .IF NB,LCK ; MOVB LCK,LIST'+MSPLCK ; SET LOCK .ENDC ; .IF NB,PAR ; MOVB PAR,LIST'+MSPPAR ; SET PARAMETER .ENDC ; MOV #LIST,-(SP) ; JSR PC,NAME ; MOV (SP)+,TEMP ; GET ERROR CONDITION TSTB TEMP ; TEST IT BEQ Y ; NO E&OL VALUES LSTELM = 8192. ; END OF DISC SECTOR ADDR LSTDIS = 1 ; LAST DISC # FOR SYSTEM DISSTR = 64. ; START SECTOR FOR ALL DISC,EXCEPT ROS DISC MSGST = NELM1 ; START OF MSG SECTORS FOR ELM POOL .PAGE ; ; ROS PARAMETERS FOR CITGO ; ; DATA FILE ID = 150. - 169. FILBAS ; TASK NO. = 10. - 44. TSBASE ; TASK FILE ID = 50. - 84. TSFLBS 'NPUT CORE BUFFER LEVEL AOBUFL = 2 ;ASYNC OUTPUT CORE BUFFER LEVEL PAD = 377 ;PAD CHAR HPAD = 17 ;LOWER HALF OF PAD CHAR TCOUNT = 4 ;RELATIVE POINTER FOR TIMER COUNTER ;IN TIMER MODULE TMRFLG = 6. ;RELATIVE POINTER TO FLAG ADDRESS WORD TM1OPT = 060 ;TM1 TIMER OPTIONS = F,J TM1RES = 3 ;TM1 TIMER RESOLUTION = .1 SEC TM2O(~bJ:c <*c %Hc vccccccd&dkkl~pc8lJl^l ENTER DEVICE NUMBER WRITE RING. ILL DATA.  ENTER COMMAND UNIT 2 ASSIGNED. * MAG TA~cPE DUMP IN OCTAL RECORD  EOF AFTER RECORDS. @~`d)RROR .IF NB,ERR1 ; CMPB #1,TEMP ; TO COND 1 BEQ U ; ERROR .ENDC ; .IF NB,ERR2 ; CMPB #2,TEMP ; BEQ V ; COND 2 .ENDC ; .IF NB,ERR3 ; JMP ERR3 ; TO COND 3 ERROR SERVICE .ENDC ; JMP ERR ; USER ERROR .IF NB,ERR1 ; U: JMP *; ; .PAGE ; .SBTTL TASK PRIORITY EQUATES ; ; TASK PRIORITY EQUATES ; ; TASK ACTION DURING SPECIAL SYSTEM CONDITIONS IS DETERMINED BY ; THE SYSTEM INHIBIT FLAG (SYDINH). THE VALUE SET INTO SYDINH ; CORRESPONDS TO THE RUN LEVELS ASSIGNED TO THE TASKS. TASKS WITH ; A VALUE EQUAL TO OR GREATER THAN THE CONTENTS OF SYSINH ARE ; ALLOWED TO OPERATE. EACH TASK SHOULD CHECK THIS FLAG TO ASSURE ; THAT IT IS PERMITTED+PT = 060 ;TM2 TIMER OPTIONS = F,J TM2RES = 5 ;TM2 TIMER RESOLUTION = 1.0 SEC ALTM2R = 21. ;VALUE USED FOR RCV CONNECT TIMER (20 SEC) .IF DF,SIMULATE ;SIMULATE ASTMR2 = 60. ;USE 30 SEC TIMER FOR CHECKOUT ;SIMULATE .ENDC ;SIMULATE ALTM2X = ALTM2R ;VALUE USED FOR XMT CONNECT TIMER ,~dE~Pe~eT~@f- ERR1 ; .ENDC ; .IF NB,ERR2 ; V: JMP ERR2 ; .ENDC ; Y: ; .ENDM ; .PAGE .SBTTL FILGM FILE CONTROL WORK AREA ; ; FILE CONTROL LOCAL WORK AREA ; ; USER MUST DEFINE FLSL1 AND FLSL2, WHICH CONTROL WORK AREA SIZE ; ; FLSL1 TASK EQUATE FOR LENGTH OF TYPE I FILE ELEMENT ; FLSL2 TASK EQUATE FOR LENGTH OF TY. TO RUN. ; ; PRIRCV = 0 ; RECOVERY PRIRTE = 2 ; ROUTING PRIDRS = 3 ; DATA LINK DIRECTOR, SYNC PRIDRA = 3 ; DATA LINK DIRECTOR, ASYNC PRIOPC = 2 ; OPERATOR CONTROL PRICON = 2 ; CONSOLE OUTPUT PRIEOD = 5 ; END OF DAY TRANSACTION PRICNF = 5 ; CONFIGURE PRIRST = 0 ; RETENTION PRIFRM = 5 /ALTMR = 12. ;VALUE USED FOR RECEIVE TIMER (2 SECS) ALTMX = 18. ;VALUE USED FOR TRANSMIT TIMER (3 SECS) ASRRO = 063 ;PRINT TO BOTH ASR & RO AT TERMINAL ASR = 061 ;PRINT TO ASR AT TERMINAL RO = 062 ;PRINT TO RO AT TERMINAL ASROFF = 002 CRCI = 000121 ;INITIALIZATION FOR CLEARING CRC-11 ;STATUS WORD (KG11-A) CRCSR = 170700 0~fc~0g~gr~ h1PE II FILE ELEMENT ; 0 = NOT USED ; FLSL3 TASK EQUATE FOR LENGTH OF ATTACH AREA ; .MACRO FILGM ; FILG: .BLKB FLSDRQ ; POINTERS IOPAC DISC1,FLSIOY,FILGL,FILGP ; FILGL: IODLST 0,FLSEL/2 ; FILGB: .BLKB FLSEL ; BUFFER FILG4: .BLKW 4 ; START OF RAF4 AREA FILG1: .BLKB FLSL1 ; START OF RAF0 OR HRAF TYPE I AREA FILG2: .BLKB FLSL2 ; START HRAF TYPE II AREA FILA2 ; FORMAT CONVERT PRIFIL = 4 ; FILE MAINTENANCE PRIMAN = 5 ; MANUAL ENTRY VERIFICATION PRIDIS = 5 ; TRANSACTION DISPOSITION PRIRTV = 5 ; DOCUMENT RETRIEVAL PRIOVR = 5 ; OVERLOAD PRIMAG = 2 ; DATA CENTER MAG TAPE PRIEIN = 0 ; ELITE FILE INIT PRITSK = 1 ; TASK RUN PRIPRD = 5 ; PRODUCT TOTALS PRIMJD = 3 ;KG11-A STATUS REGISTER CRCBCC = 170702 ;KG11-A BCC REGISTER CRCDR = 170704 ;KG11-A DATA REGISTER .PAGE ; .IF DF,SIMULATE ;SIMULATE ; ; ; LOCAL MACRO DEFINITIONS ; ; DEBUG MACRO ; ; SWR(BIT 14) SET - HALT ON ENTRY MODE = 1 ; SWR(BIT 15) SET - HALT ON ERROR MODE = 2 ; .MACRO DEBUG MODE,?Y .IF NB,MODE 4~h~i~i~j5T: .BLKB FLSL3 ; START OF ATTACH AREA .EVEN ; .ENDM ; ; .SBTTL FLPLST FILE REQUEST LIST ; ; FILE REQUEST LIST MACRO DEF ; .MACRO FLPLST FILE,LOC ; .WORD FILE ; NAME OF FILE .BYTE 0 ; LOCK .BYTE 0 ; PARAMETER .WORD LOC ; ADDRESS OF LOCATOR .WORD FILG ; ADDRESS OF WORK AREA .WORD 61 ; DATE AND TIME UPDATE ; ; ; .PAGE .SBTTL TASK NUMBER EQUATES ;* * * ; ; TASK NUMBER EQUATES ; ;* * * ; ; ; ; TSCONO = TSBASE+1 ; CONSOLE OUTPUT TSDLDA = TSBASE+2 ; ASYNC DATA LINK DIRECTOR TSRETN = TSBASE+3 ; RETENTION TSOVRL = TSBASE+4 ; OVERLOAD TSEODR = TSBASE+5 ; EOD REPORTING TSRECO = TSBASE+6 ; RECOVERY TSFORM = TSBASE+7 ; FORM7 .IF EQ,MODE-1 BIT #BIT14,SWR BEQ Y BPT .ENDC .IF EQ,MODE-2 BIT #BIT15,SWR BEQ Y BPT .ENDC .ENDC .IF B,MODE BPT .ENDC Y: ; .ENDM .PAGE .ENDC H~xj~j'~hkH ADDRESS 0 2 4 6 10 E0 ; RESERVED .WORD 0 ; RESERVED .WORD 0 ; RESERVED .ENDM ; ; .PAGE ; .SBTTL MESGM MESSAGE CONTROL WORK AREA ; ; MESSAGE CONTROL WORK AREA ; ; USER MUST DEFINE MSWL2 WHICH CONTROLS SIZE OF WORK AREA ; MSWL2 = TYPL , TYPE II AREA USED ; = 0 , TYPE II AREA NOT USED ; ; .MACRO MESGM ; MESG: .BLKB MSWDFAT CONVERSION TSFILE = TSBASE+8. ; FILE MAINTAINANCE TSCONF = TSBASE+9. ; CONFIGURE TSOTIN = TSBASE+10. ; OUTSTANDING INVOICES TSDISP = TSBASE+11. ; DISPOSITION TSRTRV = TSBASE+12. ; RETRIEVAL TSMANV = TSBASE+13. ; MANUAL VERIFICATION TSDLDS = TSBASE+14. ; SYNC DATALINK DIRECTOR TSMAGT = TSDLDS ; DATA CENTER MAG TAPE TSROUT = TSBASE+16. ; ROUTING TSOPCO = TSBASE+17. G""""""" """""""""""""""DDDDDDD@DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD """"""""""" """""""""ADD(B 6B B B C@Q .v ~@ GaTMK OLDo8{ K;Do8^ t^^  !Do8K %m$Da ͋,L  B8w&B ` % & }&*C$$Βe E%>k  aʋaՀ$ & * P$ ΋Ί   ΋   d Ί  ( 1'u  Q$f $5@ U C΋ Cb M΋U@ U &  B" .&0 M &0 & M 0 &IRQ ; POINTERS IOPAC MSWIOD,MSWIOY,MESGL,MESGP ; ROS I/O REQUEST LIST MESGL: IODLST FLIMSG,TYPL/2 ; DISC REQUEST LIST MESGB: .BLKW TYPL/2 ; BUFFER MESG1: .REPT TYPHL .BYTE 0 ; TYPE I CELL HEADER .ENDR MESG2: .BLKB TYPL-TYPHL ; START OF MESSAGE AREA MESG3: .BLKB MSWL2 ; START OF MESSAGE CONTINUATION AREA MESG4: ; .EVEN ; .ENDM ; ; J ; OPERATOR CONTROL TSEINT = TSBASE+18. ; ELITE FILE INIT TSHAMB = TSBASE+19. ; CORE ONLY ROS FILE CREATOR TSTASK = TSBASE+20. ; TASK RUN TSMTJD = TSBASE+21. ; JULIAN DATE TAPE UPDATE TSSIM = TSBASE+22. ; ASYNC SIMULATOR TSPRDT = TSBASE+23. ; PRODUCT TOTALS ; TSMAX = 30. ; MAX TSMAXX = TSBASE+30. ; TASK # ; .PAGE .SBTTL QUEUE NAME EQUATES ; ; EQUATES FOR L~k 12 14 16 "FATAL MAG TAPE ERROR. RECORD RESPOND OK WHEN READY.  NOT AT BOT.  NOT ON LI~XlNE.  ^ |x :  f N  X z% D77 : UNUMBER OF WORDS .ENDM ; ; .SBTTL IOPAC I/O REQUEST LIST ; ; I/O REQUEST LIST MACRO DEF ; .MACRO IOPAC DEV,PRI,LST,Y ; .IF NB,Y .BOUND Y: .ENDC .WORD 1 ; THREAD .BYTE DEV ; DEVICE .BYTE 2 ; EXIT TYPE .WORD 0 ; NOT USED .BYTE 0 ; NOT USED .BYTE PRI ; PRIORITY LEVELV ID EQUATES ; ;* * * ; ; TRM = DLBASE+1 ; TERMINAL DESCRIPTOR TMP = DLBASE+2 ; TEMPERATURE DESCRIPTOR MTR = DLBASE+3 ; METER DISCRIPTOR MNT = DLBASE+4 ; MESSAGE NUMBER NMN = DLBASE+5 ; NULL MESSAGE NUMBER CUS = DLBASE+6 ; CUSTOMER CAR = DLBASE+7 ; CARRIER BLD = DLBASE+8. ; BILL OF LADING PCR = DLBASE+9. ; PRODUCT CROSS REFERENCE API W ; TR = GO TO TRANSMIT CONDITION UPON RING ; CA = SEND CANCEL ; NK = SEND NAK TO ALL RECEIVED MESSAGES ; CF = CLEAR ALL FLAGS ; NU = NULL MESSAGE REPLY ; DA = DATA MESSAGE TO BE INPUT FROM KEYBOARD ; DT = SET DATE AND TIME ; EN = END INPUTS ; ; ; EQUIVALENCES ; NALINKS = 1 ; ONLY ONE LINK TYVECT = 60 CLVECT = 0 ;ADDRESS OF VECTOR CLINT = 2 X 2  Е %Ee0 6 6 6  F~q   H 77   |qrrrqhrr 7 %~qu  h XP11  133 1 13 w"w`p~prwTu 4 ww4 w1ww 1wp0 ww~r1w Y .WORD 0 ; ERROR STATUS .WORD 0 ; SYSTEM USE .WORD LST ; ADDR OF IO AREA .ENDM ; ; .PAGE ; ; ; MAGTAPE I/O LIST ; .MACRO MTLIST DEVNO,ADDR,COMD,COUNT,Y ; .IF NB,Y .BOUND Y: .ENDC .WORD 1 ; THREAD .BYTE MTDEVN ; DEVICE TYPE .BYTE 2 ; EXIT TYPE .WORD 0 ; .BZ = DLBASE+10. ; API TABLES PRB = DLBASE+11. ; PRODUCT REBRAND PRD = DLBASE+12. ; PRODUCT TOTALS OPN = DLBASE+13. ; NOT USED OPN = DLBASE+14. ; NOT USED MSK = DLBASE+15. ; MASKS FMT = DLBASE+16. ; FORMATS CST = DLBASE+17. ; CUSTOMER CROSS REFERENCE TRK = DLBASE+25. ; TRUCK CROSS REFERENCE OPN = DLBASE+33. ; NOT USED FLPMAX = PRD-DLBASE-1 [ ;NO.OF INTERRUPTS PER 100 MS CLENAB = 4 ;INTERRUPT ENABLE BIT CLREG = 6 ;ADDRESS OF STATUS REGISTER ALBSIZ = 600. ;NO OF INTERRUPTS TO STORE FOR PRINTING ; EQUATES FOR BCC VALUES IN USE BCCDN = 200 ;DONE BIT (BCC-KG11) BCCCON = 0 ;WORD TO CLEAR(AND SET) BCCCLR = 2 ;ADDRESS OF REG TO RECEIVE BCCCON BCCRT = 4 ;ADDRESS OF ROUTINE TO WAIT CO\ w wx%/ t4tttt 4 4 4R4 e~`sFe&e N9w +% w  %  %wu  w~s\w%:%6%5-  "%1 1 3  ~Ptl ll3 5@5 u * ]% %%w5 ^]YTE DEVNO ; DEVICE #, SUPPLIED BY PREHANDLER .BYTE 0 ; LEVEL, NOT USED .WORD 0,0 ; .WORD ADDR ; ADDR OF BUFFER .WORD 0,0 ; .WORD COMD ; COMMAND .WORD COUNT ; WORD COUNT .WORD 0,0,0,0,0 ; .ENDM ; ; ; ; MAG-TAPE PRE-HANDLER LIST ; .MACRO MPLLST LOGNO,TYPE,COMD,MTLIST ; .BYTE LOGNO ; LOGICAL FUNCTION .BYTE TSKNO ; TASK^; MAX FILE NO. ; ; ; ROS FILE ID EQUATES ; FLIMSG = FLBASE+1 ; MESSAGE SWITCH CELL POOL FLIDST = FLBASE+2 ; CORE ONLY ROS FLIDCV = FLBASE+3 ; DYNAMIC CORE TABLES (DATA) FLICPT = FLBASE+4 ; CORE POINTERS, DYNAMIC DATA (OLD ONLY) ; 512. WORDS LONG, MUST NOT EXCEED 1024. ; WORDS. FLICPL = 512. ; LENGTH OF FLICPT FILE APLDAT = 2000. _MPLETION BCCCH = 6 ;ADDRESS OF REG IN WHICH TO PLACE CHAR BCCRT2 = 8. ;ADDRESS OF ROUTINE TO PICK UP RESULT BCCHI = 174774 ;MSB OF GULF BCC RESULT REGISTER BCCLO = 174776 ;LSB OF GULF BCC RESULT REGISTER BCCRR = 170702 ;KG11 RESULT REGISTER BCCKST = 170700 ;KG11 STATUS REGISTER TKS = 177560 TKB = 177562 TPS = 177564 TPB = 177566 DCFLAG = `~tw%wwe e % w5  u wbw~@uu 6   &u " 0 0 uuuuu~ű6  u h%u %{~0v% %  % 6  Wpea NUMBER .BYTE TYPE ; RECORD TYPE .BYTE COMD ; COMMAND .WORD MTLIST ; ADDR OF M/T LIST (ROS) .WORD 0,0 ; .BYTE 0,0 ; .WORD 0,0 ; .ENDM ; ; .PAGE ; .SBTTL TMRLST ;* * * ; ; TIMER REQUEST LIST FOR ROS ; ;* * * ; ; ; NOTE: IF NO ARGUMENT TO BE PASSED ARG MUST BE BLANK - ; ; b; STARTING SECTOR OF APPL. PGRM. DATA ; FILES. FILNDX = FLBASE+5 ; INDEX TO ELITE FILES FLINDX = FILNDX ; FLIFIL = FLBASE+6 ; FILE ELEMENT POOL FLISIM = FLBASE+7 ; ASYNC SIM FILE ; .PAGE .SBTTL ROS SUB-ROUTINES ;* * * ; ; ROS-ROUTINES ; ;* * * ; .IF NDF,HANDLR ; QUEUE = 1 ; SUSPND = 2 ; UNSPND = 3 c0 ; INDICATES DC11 LINK DLFLAG = 1 ; INDICATES DL11-E LINK DLTRDY = 2 ; DL11-E DATA TERM. READY DENABL = 40 ; DL11-E DATA SET ENABLE DLECDT = 10000 ; DL11-E CARRIER DETECT DLECLS = 20000 ; DL11-E CLEAR TO SEND REQSNE = 4 ; DL11-E REQUEST TO SEND ZENTRY = 0 ; ZERO ENTRY DLRING = 40000 ; DL11-E RING BIT ; ; DISPLACEMENTd7w 6 O~v pe&ώ  dA ~v  6e%  w  6 X~ w  Wpev   Bxv Nw w@AE7V7 Pm~wNHw BmB< 42v,*vmw m A w BBCҕ0~DDca~x%C Br'7. r EU0d~  e ---,RES,,FLAG,--- ; ; IF NO ".BOUND" DESIRED PLACE LABEL ON MACRO CALL AND ; LEAVE LAST FIELD BLANK. ; ; "FLAG" CONTROLS BOTH FLAG AND MASK WORDS. ; ; .MACRO TMRLST OPTION,RES,ARG,FLAG,MASK,SUB,Y,ITSK ; .IF NB,Y .BOUND Y: .ENDC .WORD 1 ; THREAD .IF NB,ITSK .IFT .BYTE ITSK ; TASK .IFF .BYTE 0 ; f ; EXIT = 4 ; FRETSK = 5 ; ABORT = 6 ; QTIME = 7 ; DQTIME = 8. ; QSKED = 9. ; DQSKED = 10. ; TTYOUT = 11. ; TTYIN = 12. ; DECTAP = 13. ; BINASC = 14. ; ASCBIN = 15. ; MASK = 16. ; UNMASK = 17. gS IN LINK CONSTANTS TABLE ; DLVECT = 0 ; INTERRUPT VECTOR DLREGS = DLVECT+2 ; HARDWARE REGISTERS IRCSR = DLREGS+2 ; RCSR INITIAL CONTENTS IXCSR = IRCSR+2 ; XCSR INITIAL CONTENTS XMTX = IXCSR+2 ; READY TO TRANSMIT DTREDY = XMTX+2 ; DATA TERMINAL READY XMTR = DTREDY+2 ; DS ENABLE AND RTS XINT = XMTR+2 ; XMT ENABLE RINT = XINT+2 ; RCV ENABLE h ~ dA@B p@ p(` `}~x~ F 0@AD r@  r(   &f&   @ABAc@e!~ @Y~yAB~ @AB~ BCE@E  ~  BC D~ 6 rE%[%A%~xy:%/%, %,%  @E % % , e@eyw*~yyw+i .ENDC .BYTE OPTION+RES ; OPTION .WORD 0 ; RESERVED .IF NB,ARG .WORD ARG ; ARGUMENT .ENDC .IF NB,FLAG .WORD FLAG ; FLAG-WORD .WORD MASK ; MASK-WORD .ENDC .IF NB,SUB .WORD SUB ; JSTARG .ENDC .ENDM ; .PAGE .SBTTL TTYLST TTY I/O REQUEST LIST ; ; TTY I/O REQUEST j ; ERRTYP = 18. ; DISCIO = 19. ; CREAD = 20. ; LPRNTR = 21. ; GTIME = 25. ; GDATE = 26. ; DEFINE = 41. ; DELETE = 42. ; PRTCT = 43. ; UNPRCT = 44. ; GETBUF = 54. ; PUTBUF = 55. ; JULDAT = 56. ; MAGTAP = 57. ; kSGNMSK = RINT+2 ; MASK FOR SIGN BIT IN RBUF XENRSN = SGNMSK+2 ; XMT ENABLE AND RTS DLIND = XENRSN+2 ; DATA LINK FLAG RNGBIT = DLIND+2 ; RING BIT IN RCSR RSEND = RNGBIT+2 ; REQUEST TO SEND ; MACRO FOR PDP11/45 OPERATIONS ON PDP11/20 .MACRO SOB X,Y DEC X BNE Y .ENDM ; ; ; INITIALIZE THE ROUTINE ; CPDIAG: RESET MOV #STACK,SP ;SETl/~hz~z'~X{~{mLIST MACRO DEF ; .MACRO TTYLST DEV,DATA,?Y,?Z,X ; .IF NB,X .BOUND X: .ENDC .WORD 1 ; THREAD .BYTE DEV ; TTY DEVICE NUMBER .BYTE 2 ; EXIT TYPE .WORD 0 ; NOT USED .BYTE 0 ; NOT USED .BYTE 0 ; PRIORITY Y: .WORD 0 ; ERROR CODE .WORD 0 ; RESERVED Z: .WORD DATA n SDATE = 58. ; SET DATE STIME = 59. ; SET TIME .ENDC ; ; .PAGE .SBTTL ROS DEVICES ;* * * ; ; ROS I/O LIST EQUATES ; ;* * * ; ERROR = 8. ; ERROR PARAMETER DATA = 12. ; ADDR OF DATA BUFFER THREAD = 0 ; CHAIN DEVICE = 2 ; LOGICAL DEVICE NO. TYPE = 3 ; EXIT TYPE EXIT = 4 ; I/O COMPo STACK POINTER MOV 14,-(SP) ;SAVE ODT SETTINGS MOV 16,-(SP) MOV #304,R1 ; ; IN ALL VECTORS FROM 000000 TO 000300 STORE ADDRESS OF NEXT ; WORD AND STORE A HALT AT EACH SUCH ADDRESS. 1$: CLR -(R1) MOV R1,R0 MOV R0,-(R1) TST R1 BNE 1$ MOV (SP)+,16 ;RESTORE ODT SETTINGS MOV (SP)+,14 JSR PC,TTYSET ;TTY ; JSR PC,Cp6~H|DQz z~|L/P 1 PARITY ERROR L/P 1 NOT READY L/P 1 ABORTED||&f&f z 70 &~8}      +:|2|o0 {! q ; ADDR OF DATA .ENDM ; ; .PAGE .SBTTL SUB-ROUTINE CALLS ;* * * ; SUB-ROUTINE CALLS ;* * * .SBTTL ADDDP ADD DOUBLE PRECISION ; ; MACRO DEFINITION - ADDDP - ADD DOUBLE PRECISION ; MEMORY-TO-MEMORY ; ; NOTE: IF NECESSARY, N,V,C BITS WILL BE SET AS USUAL ; BUT THE Z BIT WILL ONLY BE SET FOR DEST- NOT DEST+2 ; rLETE ROUTINE ERRTSK = 6 ; TASK NO. FOR ERROR LEVEL = 7 ; PRIORITY LEVEL OF REQUEST ; ; ; ; ROS TIMER EQUATES ; OPTION = 3 ; TCNT = 4 ; FLAG = 6 ; JSTARG = 10. ; ; ; ; ROS DISC REQUEST EQUATES ; INOUT = 3 ; COMMAND ; 0 = READ ; 1 = WRITE ; sKINIT ;CLOCK ; JSR PC,BCCIT ;INIT FOR BCC DEVICE ; MOVB #ETX,CNDETX MOVB #ETX,NULETX ; MOV #ALBST,MSGS ; CURRENT RCV MOV #ALBST,MSGE ; INTERR DATA AREA CLR MSGFLG ;CLEAR COUNT OF INTERRUPTS ; MOV #ALBST,R1 ; INIT MOV #ALBEND-ALBST,R0 ; TO 2$: MOVB #377,(R1)+ ; MINUS SOB R0,2$ ; ONE MOVB #ETX,RCVBUF ; REtJ~}& Tw#0 {s{3 |3 |3 ||s|3 | n  $ w ~(~|{{  n  M|2{e{2||o&  |& ! fU~~ || : { ${  s{3 ||3 |3 |ns|3 |  *M 3 {~| ^9 M |%|   M| w|  3 ||&z<u .MACRO ADDDP SORC,DEST ; SORC TO DEST ADD 2+SORC,DEST+2 ;LOW ORDER WORDS IN HIGHER ADDRESSES ADC DEST ; (SORC+2, DEST+2) ADD SORC,DEST ;HIGH ORDER WORDS IN LOWER ADDRESSES .ENDM ; ; .PAGE ; .SBTTL CNVAB1 CONVERT ASCII TO BINARY SINGLE PRECISION ; ; CONVERT ASCII TO BINARY SINGLE PRECISION MACRO DEF ; .MACRO CNVAB1 ASC,BIv 2 = WR W/ WR CHK FLEID = 0 ; FILE ID OF DISC DATA RLSECT = 10. ; RELATIVE DISC SECTOR FOR DISC REQUEST LIST NWORD = 12. ; NUMBER OF WORDS READ = 0 ; DISC READ WRTIE = 1 ; DISC WRITE WRCK = 2 ; WRITE CHECK WRWRCK = 3 ; WRITE W/ WRITE CHECK ; .PAGE ; ; ROS DEVICES ; TTY1 = 0 ; wSET BUFFER ; JSR PC,ASYNCI ;INIT FOR ASYNC LINK ; JMP DLDIRA ; .PAGE ; ; ; INCOMING PARAMETERS ; PARIN: JSR PC,SAVEX TST JDATE BNE PARA10 JSR PC,TIMDAT ;GET DATE & TIME PARA10: JSR PC,CRLF JSR R5,PRINT .WORD ETCMST .WORD ETCMEN-ETCMST JSR PC,TTYI ;READ MOVB R4,R0 JSR PC,TTYI SWx 8 MCf{|{ O~ | l |,|< 8   w&ff& | |Aaes!|B3 | D! ! 3 | |&~ % !3 |  ^ĕ  R  s!|5Еs ||  3 | | 5  6 1~& `3 |  4W 1 .W +5(5%D eD   !!5  ~@& 5 55 yN,COUNT ; JSR R5,ABSCNV ; TRANSFER .WORD ASC ; ADDR OF ASCII DATA .WORD BIN ; ADDR OF BINARY WORD .WORD COUNT ; NO. OF ASCII CHAR, CAN NOT EXCEED 5 .ENDM ; ; .SBTTL CNVBA1 CONVERT BINARY TO ASCII SP ; ; CONVERT BINARY TO ASCII SP MACRO DEF ; .MACRO CNVBA1 BADDR,ASCI,CNT ; JSR R5,BASCNV ; .WORD BADDR ;ADDR OF BINz DISC1 = 1 ; CRD = 2 ; LPTR = 3 ; MTDEVN = 4 ; TTY2 = TTY1 ; INTERCEPT TTY .PAGE ;* * * ; ; CITGO TIMER VALUES ; ;* * * ; RES0 = 0 ; 1/60 SEC ; RES1 = 1 ;1/60 SEC ; RES2 = 2 ; /30 SEC ; RES3 = 3 ; 1/6 SEC ; RES4 = 4 ; 1/3 SEC ; RES5 = 5 {AB R4 BIS R4,R0 ;TWO CHARACTERS CLR R2 BR 15$ 10$: TST (R2)+ 15$: CMP #-1,CMDTAB(R2) ; TABLE END ? BEQ 20$ CMP R0,CMDTAB(R2) BNE 10$ JMP @JPTAB(R2) 20$: MOV #77,R4 JSR PC,TTYO BR PARA10 ; ; ; JPTAB: .WORD ENDINP .WORD TRANSM .WORD CANCEL .WORD NACKN .WORD CLEARF | | 3|    ||z~p&< 6 f|  e00& <7|w|@aAa ! @{|w~b f  `Baf| 5 f 61 j7 d&  ~`& & &   !"$'(+-.03569:<12> ETCMEN: .EVEN ; ; TIMIST: .ASCII <15><12>/TIME - / TIMIEN: .EVEN ; ; DATIST: .ASCII <15><12>/DATE - / DATIEN: .EVE~Pd!@HPw > U~ȃw 6 w ,w "1 || F{ %?%;  5 E * "&~@o {w {w {& ܠ{~{ &t{w f{R pX{ ) ՀH{@~ x ; NO. OF DIGITS, LIMIT= 9 DIGITS ; OR VALUE OF 2,147,483,647 .ENDM ; ; ; .SBTTL CNVBA2 CONVERT BINARY TO ASCII DP ; ; CONVERT BINARY TO ASCII DP MACRO DEF ; .MACRO CNVBA2 BADDR,ASCI,CNT ; JSR R5,BADCNV ; .WORD BADDR ; ADDR OF BINARY .WORD ASCI ; ADDR OF ASCII AREA .WORD CNT ; STRING SIZE .ENDM ; ; .PAGE ; ; ;* * * ; .IF NE,.CITGO AUDIT = 1 RETVL = 0 DCOUT = 1 DCIN = 1 LOAD = 0 .ENDC ; .IF NE,.GULF AUDIT = 1 RETVL = 1 DCOUT = 1 DCIN = 1 LOAD = 1 .ENDC ; .PAGE .SBTTL BIT MASKS ; ; BIT MASKS ; BIT0 = 1 ; BIT1 = BIT0*2 ; BIT2 = BIT1*2 ; BIT3 = BIN BCCPST: .ASCII /BCC=/ BCCPRT: .BLKB 6 .ASCII <15><12> BCCPEN: .EVEN .PAGE ; ; END ; ENDINP: JSR PC,CRLF JSR PC,RESTOX RTS PC ; ; TRANSMIT DIRECTLY ; TRANSM: MOVB #1,DLCST+DLCTRN ;SET FLAG CLRB DLCST+DLCCAN ;CLEAR CLRB DLCST+DLCNAK ; CONFLICTS JMP PARA10 ; ; ; CANCEL ; CANCEL: MOVB #1,DLCST+DLCCAN   www 7@ @ I    @72`  ( 7~0 (~1ŀ @ &&  zwoz& ~z n7 ww 7 (7"Ъ`,~ ŜE 4-e      1 w m~ w3 7wVprtj|b@ N! T P'w Հŀ ty w ~ .SBTTL CNQRTE CONVERT ROUTING CODE TO QUEUE ADDR ; ; ROUTING CODE CONVERSION TO QUE ADDR .MACRO CNQRTE FROM,TEMP,ERROR,?Y ; MOV #FROM,-(SP) ; ADDR OF ROUTING CODE JSR PC,CNVRTQ ; TRANSFER MOV (SP)+,TEMP ; GET VALUE CMP #-1,TEMP ; BNE Y ; JMP ERROR ; Y: ; .ENDM ; ; .SBTTL CNXRTE CONVERT ROUTIG CODET2*2 ; BIT4 = BIT3*2 ; BIT5 = BIT4*2 ; BIT6 = BIT5*2 ; BIT7 = BIT6*2 ; BIT8 = BIT7*2 ; BIT9 = BIT8*2 ; BIT10 = BIT9*2 ; BIT11 = BIT10*2 ; BIT12 = BIT11*2 ; BIT13 = BIT12*2 ; BIT14 = BIT13*2 ; BIT15 = BIT14*2 ; ; .PAGE .SBTTL REGISTER EQUATES ; ;SET & CLRB DLCST+DLCXMR ;CLEAR FLAGS CLRB DLCST+DLCNAK CLRB DLCST+DLCTRN JMP PARA10 ; ; SEND NAK ; NACKN: MOVB #1,DLCST+DLCNAK ;SET & NACA10: CLRB DLCST+DLCCAN ;'CLEAR CLRB DLCST+DLCTRN ; FLAGS CLRB DLCST+DLCXMR JMP PARA10 ; ; CLEAR FLAGS ; CLEARF: CLRB DLCST+DLCNAK ;CLEAL ALL BR NACA10 ; ; NULL CANNED MESSAGE ; NULLMS:  *~ rw p l EWq Ca 3 d e  ŜiEqedKsՀs ~BE1f& f&  2j~ @ʇROS DISC SYSTEM INITIALIZED   p p~H4lel %%  d v%%F 0w TO QUEUE INDEX ; ; ROUTING CODE CONVERSION MACRO DEFINITION ; .MACRO CNXRTE FROM,TEMP,ERROR,?Y ; MOV #FROM,-(SP) ; ADDR OF ROUTING CODE JSR PC,CNVRTX ; TRANSFER MOV (SP)+,TEMP ; GET LOCATOR AND SAVE IT CMP #-1,TEMP ; BNE Y ; JMP ERROR ; Y: ; .ENDM ; .PAGE ; .SBTTL DATEG GET DATE FROM ROS ; ; GET DATE FRO REGISTER EQUATES ; R0 = %0 ; R1 = %1 ; R2 = %2 ; R3 = %3 ; R4 = %4 ; R5 = %5 ; SP = %6 ; PC = %7 ; PS = 177776 ; PROCESSOR STATUS SWR = 177570 ; SWITCH REG ON CONSOLE ; .PAGE .SBTTL ACT ACTION CODE TABLE ; ;* * * ; ; EQ JSR PC,TTYI ;READ CHARACTER CMPB #15,R4 ;CR? BNE 10$ ;NO MOVB #3,NULETX ;SET ETX 05$: MOV #1,DLCST+DLCXMT ;SET NULL 07$: JSR PC,CRLF JMP PARA10 10$: CMPB #'B,R4 ;B? BNE 07$ ;NO MOVB #27,NULETX BR 05$ ; ; DATA MSG ; DATAMS: JSR PC,TTYI ;READ CMPB #15,R4 ;CR? BNE  &6  ~xv6 @J@||ĭ}\b^ƒʃԃރK~̩&f&M  w  ы Dĥ  D0 C ``a (~h- 6 vw 6'd w p Օ+  d 0B` e0  w <%Օ- ~ҋ  T  M ROS ; .MACRO DATEG LOC ; EMT GDATE ; TO ROS EMT JULDAT ; TO ROS MOV (SP)+,LOC ; JULIAN DATE MOV (SP)+,LOC+2 ; YEAR MOV (SP)+,LOC+4 ; DAY OF MONTH MOV (SP)+,LOC+6 ; MONTH .ENDM ; ; .SBTTL DEBUG CHECK-OUT TRAP FOR ERRORS ; ; DEBUG MACRO ; ; MODE = 1 , HALT ON ENTRY ; MODE = 2 , HALT ON ERROR ; ; UATES FOR ACTION CODE TABLE ; ;* * * ; ; ; ; ACTID = 0 ; FIRST CHARACTER OF ACTION CODE ; 1 CHAR ACTQNM = ACTID+1 ; NUMBER OF ASSIGNED QUE ; 1 BYTE ACTL = ACTQNM+1 ; END OF LIST ; ; .PAGE .SBTTL CAR CARRIER FILE ;* * * ; ; CARRIER FILE EQUATES ; ;* * * ; .IF NE,.CITGO CAR1L = 4 ; CA 30$ ;NO MOVB #3,CNDETX 10$: CLRB DLCST+DLCXMT ;SET CANNED 20$: JSR PC,CRLF JMP PARA10 30$: CMPB #'B,R4 ;B? BNE 40$ ;NO MOVB #27,CNDETX BR 10$ 40$: CMPB #' ,R4 ;SPACE? BNE 20$ ;NO MOVB #2,DLCST+DLCXMT CLR REPFLG MOV #XMTBUF,R0 CLR COUNT 50$: JSR PCN*f&f&u ~X 4 rv Z wRpu7  fw>  $5  !w~Њ!wh*5tU  wR< E@U!Z T 5BtU5 ~H/5 fנw(נw&,ᆲ 5E!>   :2נ5 (E ]~E@U E E .MACRO DEBUG MODE,?Y ; .IF NB,MODE .IF EQ,MODE-1 CMP #1,SWR BNE Y BPT .ENDC .IF EQ,MODE-2 CMP #2,SWR BNE Y BPT .ENDC .ENDC .IF B,MODE BPT .ENDC Y: ; .ENDM ; .PAGE .SBTTL HEADR TASK HEADER ; ; TASK HEADER MACRO DEFINITION ; ; ; SET TSTAT = TSKFR ; .MACRORRIER CODE CAR2L = 15. ; CARRIER NAME CAR3L = 9. ; EXTRA ; CAR1 = 0 ; SEE ABOVE CAR2 = CAR1+CAR1L ; CAR3 = CAR2+CAR2L ; CARL = CAR3+CAR3L ; CARRIER RECORD LENGTH ; .PAGE .SBTTL CPT CORE POINTER TABLE ;* * * ; ; CORE POINTER TABLES ; ;* * * ; ; CPTWC = 0 ; WORD COUNT,CORE CPTDS = 2 ; DISC SEC,TTYI CMPB #56,R4 ;ETX? BNE 55$ ;NO 51$: MOVB #3,(R0)+ ;YES 52$: TST REPFLG BNE 50$ CLRB DLCST+DLCXMR MOV #3,R3 CLR R2 JSR PC,TTYI CMPB #15,R4 BNE 53$ JSR PC,GETBCC BR 20$ 53$: SUB #60,R4 ASL R2 ASL R2 ASL R2 BIS R4,R2 JSR PC    w22נw U E55E p~8E@ 8 w$U%U5 sUE wU U@ w5 E E@M~  5 "  wVנU EנU 5|rE  5.] &~(l_5 E!>'ע0ע9  wEA5   l UP ~= HEADR TASKNO,TSTAT,ENTRY,MAXTIM,STSIZE,PRIRTY ; .WORD 1 ; THREAD .WORD ENTRY ; .WORD 0 ; INIT = 0 .WORD MAXTIM ; .BYTE STSIZE ; .BYTE PRIRTY ; PRIORITY .WORD 0 ; TIMER .WORD 0 ; ARG .BYTE TSTAT ; STATUS .BYTE TASKNO ; ; .WORD 0 ; .WORD FITOR FOR DATA CPTCA = 4 ; CORE ADDRESS ; ; .PAGE ; .SBTTL CUS CUSTOMER FILE ;* * * ; ; CUSTOMER FILE ; ;* * * ; ; .IF NE,.GULF ; CUS1L = 7 ; SEE ABOVE CUS2L = 2 ; CUS3L = 3 ; CUS4L = 1 ; CUS5L = 1 ; CUS6L = 1 ; CUS7L = 5 ; CUS8L = ,TTYI CMPB #15,R4 BNE 53$ MOV R2,DLAW62 ; SAVE BCC BR 20$ 55$: CMPB #77,R4 ;ETB? BNE 60$ ;NO MOVB #27,(R0)+ BR 52$ 60$: CMPB #52,R4 ;REPEAT? BNE 65$ ;NO TST REPFLG ;1ST? BEQ 62$ ;YES MOV R0,DLCST+DLCRED ;SET END ADDRESS 61$: BR 20$ 62$: MO @ U $`U@    EAU@E@E@ s~h    0 55*qE@E@  U  5qE@E@! ~! ! DqE rrr " Z =~LEID ; .BLKW STSIZE-1 ; STACK AREA PATCH: .BLKW 100. ; PATCH AREA .ENDM ; .PAGE ; .SBTTL JEQ JUMP ON EQUAL ; ; JUMP ON EQUAL MACRO ; .MACRO JEQ ADDR,?X ; BNE X ; JMP ADDR ; X: ; .ENDM ; ; .SBTTL JNE JUMP ON NOT EQUAL ; ; JUMP ON NOT EQUAL ; .MACRO JNE ADDR,? 5 ; ; CUS1 = 0 ; CUSTOMER NUMBER CUS2 = CUS1+CUS1L ; RECORD ID CUS3 = CUS2+CUS2L ; STATE CODE CUS4 = CUS3+CUS3L ; FREIGHT CODE CUS5 = CUS4+CUS4L ; QUANTITY BILLING CODE CUS6 = CUS5+CUS5L ; DELIVERY STATUS CODE CUS7 = CUS6+CUS6L ; EFFECTIVE DATE CUS8 = CUS7+CUS7L ; .ENDC ; ; ; .IF NE,.CITGO ; CUSID VB #1,DLCST+DLCXMR INC REPFLG MOV R0,DLCST+DLCRST BR 50$ 65$: CMPB #53,R4 ;+ = FILL? BNE 70$ ;NO TST REPFLG BNE 70$ MOV R0,R1 66$: MOV #XMTBUF,R2 67$: MOVB (R2)+,(R0)+ INC COUNT CMP #1023.,COUNT BEQ 51$ CMP R2,R1 BLT 67$ BR 66$ 70$: MOVB R4,(R0)+ IN~r~~p~X ; BEQ X ; JMP ADDR ; X: ; .ENDM ; ; .SBTTL BRJ CHANGE A BRANCH TO JUMP ; ; CHANGE BRANCH TO JUMP ; ; ; USED TO CHANGE A ONE WORD ERROR RETURN BRANCH TO A JUMP INSTR ; .MACRO BRJ ADDR,?X,?Y ; BR X ; BR Y ; X: JMP ADDR ; Y: .ENDM ; ; ; .PAGE ; .SBTTL MOVEA AREA= 8. ; LENGTH OF CUSTOMER NUMBER CARID = 4. ; LENGTH OF CARRIER NUMBER PCRID = 2. ; LENGTH OF PRODUCT NUMBER ; ; CUS1L = 4 ; TERML NO. * CUST NO. CUS2L = 4 ; CUST CARD NO. * CUS3L = 11. ; MKT CUST DEST NO. CUS4L = 2 ; STATE CUS5L = 5 ; INVENTORY NO CUS6L = 4 ; FREIGHT CUS7L = 7 C COUNT BR 50$ ; ; GETBCC: JSR PC,SAVEX MOV BCCADD,R4 ;SET R4 TO LIST OF BCC VALUES MOV BCCCON(R4),@BCCCLR(R4) ;INITIALIZE BCC DEVICE MOV R0,R1 ;R1 HAS END ADDRESS MOV #XMTBUF,R2 ;R2 HAS STARTING ADDRESS 10$: JSR PC,@BCCRT(R4) ;READY FOR NEXT BYTE? MOVB (R2)+,R3 MOV R3,@BCCCH(R4) CMP R2,R1 ;DONE? BLT 10$ ~`~ؑ~P~Ȓ BYTE MOVE ; ; AREA MOVE MACRO DEFINITION ; .MACRO MOVEA FROM,TO,COUNT ; JSR R5,MOVA ; TRANSFER TO ROUTINE .WORD FROM ; ADDRESS OF FROM AREA .WORD TO ; ADDRESS OF TWO AREA .WORD COUNT ; NUMBER OF BYTES .ENDM ; ; .SBTTL MOVEC CHARACTER MOVE ; ; AREA CLEAR MACRO DEFINITION ; .MACRO MOVEC CHAR,TO,COUNT ; JSR R5,M ; TERMS CUS8L = 5 ; TYPE CUST CUS9L = 2 ; REGION CUS10L = 1 ; REMIT TO USE CUS11L = 12. ; EXTRA CUS12L = 0 ; NOT USED CUS13L = 5 ; DATE OF LAST USE (YR & JULIAN DAY) CUS14L = 23. ; CONSIGNED TO LINE 1 CUS15L = 0 ; NOT USED CUS16L = 23. ; CONSIGNED TO LINE 2 CUS17L = 0 ; NOT USED CU ;NO JSR PC,@BCCRT(R4) JSR PC,@BCCRT2(R4) MOV BCCRES,COUNT MOV COUNT,R0 MOV #BCCPRT,R1 JSR PC,OCTAS6 JSR PC,CRLF JSR R5,PRINT .WORD BCCPST .WORD BCCPEN-BCCPST MOV COUNT,DLAW62 ; SAVE BCC JSR PC,RESTOX RTS PC ; ; DATE & TIME ; DATTIM: JSR PC,TIMDAT JMP PARA10 ; ; ; CRLF: MOVB '~@~6~0~OVC ; TRANSFER INSTR .WORD CHAR ; BYTE TYPE TO BE MOVED .WORD TO ; ADDR OF AREA .WORD COUNT ; BYTE COUNT FOR MOVE .ENDM ; ; .SBTTL NULSEQ NULL SEQUENCE NUMBER RECORD MARKING ;* * * ; ; MARK NULL SEQUENCE NUMBER TABLE ; ;* * * ; ; MARKS NULL MESSAGE NUMBER TABLE FOR REJECTED TERMINAL MESSAGES. .MACRO NULSEQ SEQ,LOC ; JSR R5,NULS ; S18L = 23. ; 3 CUS19L = 0 ; CUS20L = 23. ; 4 CUS21L = 0 ; CUS22L = 23. ; 5 ; CUS1 = 0 CUS2 = CUS1+CUS1L ; SEE ABOVE CUS3 = CUS2+CUS2L ; CUS4 = CUS3+CUS3L ; CUS5 = CUS4+CUS4L ; CUS6 = CUS5+CUS5L ; CUS7 = CUS6+CUS6L ; CUS8 = CUS7+CUS7L ; CUS9 = #15,R4 JSR PC,TTYO MOVB #CR,R4 JSR PC,TTYO MOVB #12,R4 JSR PC,TTYO RTS PC REPFLG: .WORD 0 .PAGE ; .SBTTL CKINIT ; ; INITIALIZES CLOCK ; CKINIT: JSR R5,PRINT ;IDENTIFY CLOCK .WORD CLOCKQ .WORD CLOCKE-CLOCKQ JSR PC,TTYI ;R4 ON RETURN HAS RESPONSE CMP YES,R4 BEQ 4$ CMP NO,R4 BNE~ ~T~~ .WORD SEQ ; POINTER TO SEQ NO. .WORD LOC ; POINTER TO TERMINAL LOCATOR VALUE .ENDM ; ; .PAGE .SBTTL QUEUE QUEUE A TASK ; ; QUEUE A TASK MACRO DEF ; .MACRO QUEUE TASK,STATUS,?Y ; MOV #TASK,-(SP) ; TASK NUMBER CLR -(SP) ; NOT USED (PRIORITY) CLR -(SP) ; NOT USED (ARG) CLR -(SP) ; NOT USED (RETURN) CUS8+CUS8L ; CUS10 = CUS9+CUS9L ; CUS11 = CUS10+CUS10L ; CUS12 = CUS11+CUS11L ; CUS13 = CUS12+CUS12L ; CUS14 = CUS13+CUS13L ; CUS15 = CUS14+CUS14L ; CUS16 = CUS15+CUS15L ; CUS17 = CUS16+CUS16L ; CUS18 = CUS17+CUS17L ; CUS19 = CUS18+CUS18L ; CUS20 = CUS19+CUS19L ; CUS21 = CUS20+CUS20L ; CUS22 = CUS21+CUS21L ; CUSL = E CKINIT MOV #CCLOCK,R4 ;CRYSTAL CLOCK BR 8$ 4$: MOV #LCLOCK,R4 ; LINE CLOCK ; AT THIS POINT, R4 POINTS TO THE CONSTANTS NEEDED ; FOR THE CLOCK TO BE USED. THEY ARE (IN ORDER),ADDRESS ; OF VECTOR, THE NUMBER OF INTERRUPTS PER 100 MS, BIT ; SETTING TO TURN ON THE INTERRUPT,AND ADDRESS OF THE ; STATUS REGISTER ; 8$: MOV CLVECT(R4),R3 MOV #CLINTR,(R3)+ ;SET ADDRESS VECTOR & MOV #340,c~~xr~Wt EMT QUEUE ; TO ROS .IF NB,STATUS ; MOV (SP)+,STATUS ; SAVE STATUS .ENDC ; .IF B,STATUS ; TST (SP)+ ; READ STATUS ONLY .ENDC ; BEQ Y ; NO - SKIP BISB #1,TSKRN-TSBASE+'TASK ; SET RUN AGAIN FLAG Y: ; .ENDM ; ; .PAGE ; .SBTTL SERCH STRING SEARCH MACRO DEFNITION ; ; STRING SEARCH MACRO DEF ; CUS22+CUS22L ; ; ; .ENDC ; ; .PAGE .SBTTL DLC DATALINK DEVICE TABLE ;* * * ; ; EQUATES FOR DATALINK DEVICE TABLES ; ;* * * ; ; DLCTYP = 0 ; TYPE OF LINK DLCSTE = DLCTYP+1 ; CURRENT DATALINK STATE DLCPHS = DLCSTE+1 ; PHASE COUNTER DLCTRM = DLCPHS+1 ; TERMINAL NO. IN ROUTING TABLE ; VALUE IS INDEX +1 DLCNOT = DLCTRM+1(R3) ;STATUS WORD MOV CLINT(R4),CLCON ;INITIALIZE TIMER CONSTANT MOV CLCON,TICS ;SET TIMER MOV #10.,SUBSEC CLR TIMEMS CLR TIME CLR HOUR CLR MINUTE CLR SECOND MOV CLENAB(R4),@CLREG(R4) ;ENABLE INTERRUPT RTS PC ; ; CLOCK INTERUPT HANDLER ; CLINTR: INC TIMEMS ; +1 EACH MS DEC TICS ;100 MS? BNE 20 Wtk~hee*peh & & & b 9^g-88 8 8/8/777 7> E? g,~6  7e@7g5?-F-U>77 7f4 H) ERROR XXXXX~X SXXXXX SXXXXX SXXXXX SXXXXX RY`gnw r w dVfPf w| z:fw H ~Й7 \+wV4Pfvf& C >  J :  f; NOTE : ; USER MUST PLACE ADDR OF DATA IN R1 ; .MACRO SERCH TADDR,TCNT,DCNT JSR R5,SECHS ; TRANSFER .WORD TADDR ; ADDR OF TEST MASK .BYTE TCNT ; NUMBER OF CHAR IN TEST MASK .BYTE DCNT ; NUMBER OF CHAR IN DATA .ENDM ; ; .SBTTL SUBDP SUBTRACT DOUBLE PRECISION ; ; MACRO DEFINITION - SUBDP - SUBTRACT DOUBLE PRECISION ; ; NOT USED DLCACK = DLCNOT+1 ; CURRENT ACK COUNT (MODULO 2) DLCIF1 = DLCACK+1 ; LINK RECEIVE STATUS DLCIF2 = DLCIF1+2 ; LINK TRANSMIT STATUS DLCIF3 = DLCIF2+2 ; RECVD DATA WORD DLCSTS = DLCIF3+2 ; LINK CONTROL INDICATORS DLCIND = DLCSTS+2 ; LINK SPECIALITY INDICATORS DLCASR = DLCIND+2 ; STATUS OF ASR DLCQNM = DLCASR+1 ; NAME OF QUEUE BEING SERVICED (TERML) DLCQU = DL$ ;NO MOV CLCON,TICS ;YES INC TIME ;100 MS TIME=0? BNE 10$ ;NO INC TIME ;YES 10$: DEC SUBSEC ;1 SEC? BNE 20$ ;NO MOV #10.,SUBSEC ;YES INC SECOND CMP #60.,SECOND ;1 MIN? BNE 20$ ;NO CLR SECOND INC MINUTE CMP #60.,MINUTE ;1 HOUR? ^eee`~H0 E vxz|%~'~8~ MEMORY-TO-MEMORY ; ; NOTE: THE N,V,C BITS WILL BE SET AS USUAL, BUT ; THE Z BIT WILL ONLY BE SET FOR DEST, NOT DEST+2 ; .MACRO SUBDP SORC,DEST ; SORC FROM DEST SUB 2+SORC,DEST+2 ;LOW ORDER WORDS IN HIGHER ADDRESSES SBC DEST ; (SORC+2, DEST+2) SUB SORC,DEST ;HIGH ORDER WORDS IN LOWER ADDRES .ENDM CQNM+1 ; POINTER TO ASSIGNED QUEUE (TERML) DLCBPT = DLCQU+2 ; POINTER TO START OF BUFFER CHAIN DLCPHP = DLCBPT+2 ; POINTER TO CURRENT FORMAT CHAR DLCCPT = DLCPHP+2 ; POINTER TO BUFFER STORAGE LOCATION DLCCHM = DLCCPT+2 ; MESSAGE CHAR COUNT DLCCHB = DLCCHM+2 ; BLOCK CHAR COUNT DLCTMO = DLCCHB+2 ; TIME OUT FLAG ; BIT 0 = TM1 TIMEOUT (1-3 SEC) BNE 20$ ;NO INC HOUR CLR MINUTE CMP #24.,HOUR BNE 20$ CLR HOUR 20$: RTI ; ; CHECK FOR TIME EXPIRED ; TCHECK: MOV 2(SP),-(SP) ;HOLD TIME MOV 2(SP),4(SP) TST (SP) ;TIMER SET? BEQ 10$ ;NO SUB TIME,(SP) ;EXSPIRED? BGT 10$ ;NO TST (R5)+ ;YES 10$: CMw ×&  6  d7aߕC CZo~(V  JCߐW?r ߕ 2 jjC4o2  ߐw r Z~ ee Dw 6 &f c ߕs~ D[7 >6fv$  6 6 Õߕ& 7 f  2 7  ~CCߐ& Xb ; (SORC, DEST) ; .SBTTL TSKRUN TASK RUN CHECK ; ; TASK RUN CHECK MACRO DEF ; ; ; PURPOSE - USED BY EACH TASK TO DETERMINE IF IT IS ALLOWED TO ; RUN. SYDRUN IS SET NON--ZERO TO INDICATE TASK ACTIVITY. ; .MACRO TSKRUN EXIT,?Y ; CMPB #TSKLV,SYDST+SYDINH ; CAN TASK RUN ? BLE Y ; YES - CONT JMP EXIT ; TO EXIT Y: BISB #SYDH1,SYDST+SYDRUN ; SET TASK RUNNING FLAG ; BIT 1 = TM2 TIMEOUT (720 SEC) DLCPRI = DLCTMO+1 ; PRIORITY OF QUE BEING SERVICED DLCTM1 = DLCPRI+1 ; POINTER TO SHORT TIMER MODULE DLCTM2 = DLCTM1+2 ; POINTER TO LONG TIMER MODULE DLCCRC = DLCTM2+2 ; CRC-16 CHECK CHARACTER DLCPAD = DLCCRC+2 ; PAD CHAR (FF) DLCPA2 = DLCPAD+1 DLCPA3 = DLCPA2+1 DLCECT = DLCPA3+1 DLCMCT = DLCECT+1 ; COUNT OF COMMUNICATION ATTEMPTS DLCCON = DLCMCTP (SP)+,(SP)+ RTS R5 ; ; SET A TIMER ; SETIME: ADD TIME,2(SP) BNE 10$ INC 2(SP) 10$: RTS PC ; ; CELLS ; CLOCKQ: .ASCII /LINE CLOCK?/ CLOCKE: .EVEN YES: .WORD 'Y NO: .WORD 'N ; CONSTANTS FOR CRYSTAL CLOCK - VECTOR ADDR,COUNT,BIT,STATUS ADDR CCLOCK: .WORD 320,100,4,167002 ; CONSTANTS FOR LINE CLOCK - VECTOR ADDR,COUNT,BIT,STATUS ADDR LCLOCK: .WC <t0j0tߐ& wߕh 1C~7 T7 0 7 0 HW o Cf awCw p7JmߕC yl(((((ΞΞ(((Ξ4~& ߕ J"2 w A7 7 7 efffffffffoCC&& aߕ~C2 @W"1f `w c4Հ6w  j 70c ;~p .ENDM ; ; ; ; .SBTTL MTSPHY MACRO TO CALL MTSTPH ; ; SET R3 TO ADDRESS OF FIRST BYTE OF RECORD ; WHOSE PHYSICAL DEVICE NUMBER IS IN STACK. ; ; .MACRO MTSPHY PHYNUM ; MOV PHYNUM,-(SP) JSR PC,MTSTPH .ENDM ; ; .PAGE .SBTTL MTSLOG ; ; SET R1 TO BASE ADDRESS OF LOGICAL RECORD AND ; R3 TO CORRESPONDING PHYSICAL RECORD ; ; +1 ; COUNT OF CONNECTS DLCL = DLCCON+1 ; LENGTH OF ENTRY ; ; DLCSTS FLAGS LINK CONTROL CHARACTERS (SEND/RECEIVE) ; DLCF1 = BIT0 ; RVI DLCF2 = BIT1 ; ACK0 DLCF3 = BIT2 ; ACK1 DLCF4 = BIT3 ; WACK DLCF5 = BIT4 ; SOH DLCF6 = BIT5 ; STX DLCF7 = BIT6 ; ETB DLCF8 = BIT7 ; ETX DLCF9 = BIT8 ; ORD 100,6,100,177546 ; CLCON: .WORD 0 ;INITIALIZED TO NO OF INTERRUPTS PER 100 MS TICS: .WORD 0 ; COUNT WHICH WHEN DECREMENTED TO 0 INDICATES ; END OF 100 MS INTERVAL TIMEMS: .WORD 0 ;+1 FOR EACH INTERRUPT TIME: .WORD 0 ; +1 EACH 100 MS (NOT=0) SUBSEC: .WORD 0 ; 10.=INIT (-1 EACH 100 MS) SECOND: .WORD 0 HOUR: .WORD 0 MINUTE: .WORD 0 ; .SBTTL BCCIT ; INITIALE FOR BCC DE ߕC  S / -2LCB tAC ;ߕW"5 t rt tj`jL2j~ 1 oC&& _ ߕ0Cvw  Cw ×&  =7D:ߕ~`C5C ߐ& _ #  jjCߐw `  Fw 6 I~ؠ7 xn kn   ` t!!Tߕ tW Lw.rtje LOGICAL UNIT NUMBER IS IN STACK. ; ON RETURN: STACK=+1 NO PHYSICAL RECORD ASSIGNED ; 0 R3 POINTS TO PHYSICAL RECORD ; ; .MACRO MTSLOG LOGNUM ; MOV LOGNUM,-(SP) ;PUT UNIT # IN STACK JSR PC,MTSTLG ;SET R1 AND R3 .ENDM ; ; .PAGE IUS DLCF10 = BIT9 ; EOT DLCF11 = BIT10 ; NAK DLCF12 = BIT11 ; TTD DLCF13 = BIT12 ; ENQ DLCF14 = BIT13 ; CAN DLCF15 = BIT14 ; DLE DLCF16 = BIT15 ; NOT USED ; ; ; ; DLCIND FLAGS LINK SPECIALTY INDICATORS ; DLCG1 = BIT0 ; BCC1 DLCG2 = BIT1 ; BCC2 DLCG3 = BIT2 ; ACK0 TO BE SENT DLCG4 = BIVICE ; BCCIT: JSR R5,PRINT ;ASK IF KG11 .WORD BCCQ .WORD BCCQE-BCCQ JSR PC,TTYI ;R4 ON RETURN HAS RESPONSE MOV #BCCK,BCCADD CMP YES,R4 BEQ 2$ MOV #BCCG,BCCADD CMP NO,R4 BNE BCCIT ;TRY AGAIN 2$: RTS PC ; ; LIST OF VALUES FOR KG11-A BCC BCCK: .WORD 121,170700,BCCDON,170704,BCCKRT ; LIST OF VALUES FOR GULF-BUILT BCC BCCG: .WORD tj EWC~P7 wC  @E @`eBF& fB 2F 6 v ~ȡ  7 7d7lvEpjd ^ PB "R"^"& $ҝ ~@.( 8wZZ Ģvߋtߋtv~ߋt THIS IS COLOSSUS. ROS IS DEAD. YOU MUST R E B O O T !T3 ; ACK1 TO BE SENT DLCG5 = BIT4 ; NAK TO BE SENT DLCG6 = BIT5 ; NULL MSG FLAG DLCG7 = BIT6 ; CONTROL SEQUENCE BEING RECEIVED DLCG8 = BIT7 ; POWER FAILURE TO MODEM DLCG9 = BIT8 ; * NOT USED DLCG10 = BIT9 ; RING DETECTED DLCG11 = BIT10 ; LINK ERROR DLCG12 = BIT11 ; * NOT USED DLCG13 = BIT12 ; * NOT USED DLCG14 = 0,174770,SHTDLY,174772,BCCGRT BCCADD: .WORD 0 ;CONTAINS ADDRESS OF APPROPRIATE LIST BCCQ: .ASCII /KG11 BCC?/ BCCQE: .EVEN BCCRES: .WORD 0 ; .SBTTL TELETYPE ; ; TELETYPE ROUTINES ; TTYI: ;INCOMING BIS #1,TKS 10$: TSTB TKS ;CHAR READY? BPL 10$ ;NO MOVB TKB,R4 ;YES BIC #177600,R4 ;7 BITS BE\\&-&b e? 6 ~0 e[S& |\t\w v%%]~E Cw  edBA  J6 w 20 "$:2EW t~ 91 7[  fd`[7vBABWCEqJ7z[œ& ‹8~ & 5@& B Œ Œ$Œ&&Do8(-%. ! @!  ? "& f.&  JMNJ7 HM".Lѕ 0 hw Z .r  Dw   Q   .%2 z?  4J& " $&4(J+P|ENTRCANKCFNUDADTENTER CMD eP|^ TIME - V BIT13 ; * NOT USED DLCG15 = BIT14 ; * NOT USED DLCG16 = BIT15 ; LINK ACTIVE ; DLCT1 = 01 ; TM1 TIMEOUT FLAG DLCT2 = 02 ; TM2 TIMEOUT FLAG ; .PAGE .SBTTL FLA FILE ELEMENT EQUATES ;* * * ; ; FILE ELEMENT EQUATES ; ;* * * ; ; FILE ELEMENT FOR RAF0 AND HRAF FILES. ; ; NOTE: CHAINS ARE NOT USED FOR RAF0 FILES. ; ; FLANOF = 0 ; FILE DIRQ TTYI JSR PC,TTYO ;ECHO RTS PC ; ; TTY OUT ; TTYO: TSTB TPS ;READY BPL TTYO ;NO MOVB R4,TPB ;YES RTS PC ; ; TTY BUFFER OUTPUT ; PRINT: JSR PC,SAVEX MOV (R5)+,R0 MOV (R5)+,R1 10$: TST R1 ;DONE? BLE 20$ ;YES DEC R1 MOVB (R0)+,R4 ;NO &f A d`BAWJ ~dZ   ww: ~7 nf  Z  Tj J& ܠ~7&fЕ<<9<2- "PPP-mȵ  @p{ ɕ~xFe DATE - ]  BCC= .  77wZ7.&77wD777w.7+.L ĥ ) Vw ĥB.r ĥ 7 ,w.ĥBĥ p7 $7 &/ $-. vĥ. Е 7M Xĥ . z0 Q <ĥ Vĥ. ?Еĥ* 7 .07ĥ+  % EC NO FOR NEXT ELEMENT ; 1 BYTE FLANOD = 1 ; DEVICE NO FOR NEXT ELEMENT ; 1 BYTE FLANOS = 2 ; SECTOR NO FOR NEXT ELEMENT ; 1 WORD FLANTF = 4 ; FILE DIREC NO FOR NEXT RECORD ; 1 BYTE FLANTD = 5 ; DEVICE NO FOR NEXT RECORD ; 1 BYTE FLAN JSR PC,TTYO TSTB DLCST+DLCSTP BEQ 10$ ;NO CLRB DLCST+DLCSTP TST DMPFLG BEQ 15$ MOV #-1,DMPFLG 15$: MOV #15,R4 JSR PC,TTYO MOVB #12,R4 JSR PC,TTYO 20$: JSR PC,RESTOX RTS R5 .PAGE ; ; TTY INTERUPT HANDLER ; TTYINT: MOV R0,-(SP) MOVB TKB,R0 BIC #177600,R0 CMPB %!G7LY& ^< 72$Ye"2 7*~ YB f  D &  ‹ & & N & yeXIwX5~h7X& 5E -?-   Ν   Bey~ (- -- ee  E E Ev Ý=`Ý37.V   <   $-.|   PL : . ".w  4 t wĕ   .ĕ ĕ |w  P- .-87 8. 7 7 7 7 7 < o.: &   1.`%<~7 x x%<r  j7 h%-.`7 Z @ %mA#TS = 6 ; SECTOR NO FOR NEXT RECORD ; 1 WORD FLADAT = 8. ; START OF DATA ; ; .PAGE ; .SBTTL FLP FILE CONTROL REQUEST LIST ;* * * ; ; EQUATES FOR FILE CONTROL REQUEST LIST ; ;* * * ; ; ; ; ; FLPNAM = 0 ; FILE NAME FLPLCK = FLPNAM+2 ; FILE LOCK PARAMETER FLPPAR = FLPLCK+1 ; USER CALLING PARAMETER FLPLOC #3,R0 ;RESTART? BNE 10$ ;NO MOVB #1,DLCST+DLCCCC CLR TKS BR 20$ 10$: CMPB #4,R0 ;STOP PRINT? BNE 20$ ;NO MOVB #1,DLCST+DLCSTP 20$: MOV (SP)+,R0 RTI ; ; TTY INIT ; TTYSET: MOV #TTYINT,TYVECT ;SET TRAP MOV #340,TYVECT+2 ; VECTOR RTS PC .PAGE ; ; OCTAL TO ASCII ; OCTAS6: ~X`Ý,`%<< % ÝÜ{    UUGPW&FW-zE e~Шet?p6  Ww V%%LBA  J6 w N UFL)~HNLRG&bV <-HV7 ~6 w 4߀eV  7 5 3 0m85q *{œ{| 4  LINE CLOCK?  .YN@@@fw .p( @(--Q/(R) KG11 BCC? P 6.6UppĝrE t7U ppr$t.\v @A   7 5 vu. ĕ &rEp &rW.w7 pdZ pk.02e = FLPPAR+1 ; ADDR OF FILE MEMBER LOCATOR FLPWRK = FLPLOC+2 ; ADDR OF WORK AREA FLPSVC = FLPWRK+2 ; RESERVED FOR FILE CONTROL FLPRES = FLPSVC+2 ; RESERVED FLPLCS = FLPRES+2 ; LOCATOR VALUE SAVE FLPL = FLPLCS+2 ; LENGTH OF LIST ; .PAGE ; FILE CONTROL POINTER EQUATES ; FLSPRI = 0 ; PREVIOUS TYPE I ELEMENT ; ; 2 WORDS FLSTSI = ;WORD CONVERT MOV #5,R2 ;SET ADD #6,R1 ; UP MOV #177776,OCTMSK OCTAS: MOV R1,R3 10$: ;3 BITS MOV R0,R4 BIC #177770,R4 BISB #60,R4 ;TO ASCII MOVB R4,-(R3) ;STORE ROR R0 ; POSITION ROR R0 ; NEXT ROR R0 ; 3 BITS SOB R2,10$ Da`U~8FӵeK6 w UU V $5& H H H)~ @AF~(~$CE00 2.# M0#e. 7 ͥ+ͥ_@T.@ͥ ͥ ͥ 77 ѕ Q~.fQ x r%Alѕ ѕ 7 \.TL7 HD @pw   p&f.7 p  lѕ(@ Dѕ)e py.7  .  6 rX.   V+@ %-(-.$ ѕ ѕ FLSPRI+4 ; THIS ; ; 2 WORDS FLSNXI = FLSTSI+4 ; NEXT ; ; 2 WORDS FLSPRT = FLSNXI+4 ; PREVIOUS TYPE II ELEMENT ; ; 2 WORDS FLSTST = FLSPRT+4 ; THIS ; ; 2 WORDS FLSNXT = FLSTST+4 ; NEXT ; ; 2 WORDS FLSWAA = FLSNXT+4 ; CELL TO BE ATTACHED ;DONE? BIC OCTMSK,R0 ;YES. DO BIT 15 BISB #60,R0 MOVB R0,-(R3) ;STORE RTS PC OCTMSK: .WORD 0 ; ; BYTE OCTAL TO ASCII ; OCTAS3: MOV #2,R2 ADD #3,R1 MOV #177774,OCTMSK BR OCTAS .PAGE ; ; DUMP OF RECEIVE BUFFER ; DMPRCV: JSR PC,SAVEX MOV #PRTBUF,R1 ;TO MOV #RCVBUF,R5 ;FROM MOV #256.,DMPCNT 6~~E~~dѕ  @pB(pN.Jw 7 p -2 7  p.p<>  :X@e%.-_  0 - .:$% w6   ,  B.@pw t7 p t;7 dpp .  &ĥMĥLĥA  7 |..> 74 pĝrE w pr.T ĥ 37| 7u7 tw XD(; ; 2 WORDS FLSFST = FLSWAA+4 ; FIRST TYPE II CELL ADDR ; ; 2 WORDS FLSDRQ = FLSFST+4 ; DISC I/O REQUEST ; ; 7 WORDS FLSDHD = FLSDRQ+14. ; DISK I/O HEADER ; ; 7 WORDS FLSDBF = FLSDHD+14. ; CONTROL BUFFER ; ; 64 WORDS FLSRF4 = FLSDBF+128. ; RAF4 ELEMENT ;COUNT CLR COUNT 8$: CMPB #3,(R5) ; ETX ? BEQ 20$ ;YES CMPB #137,(R5) ;READABLE ASCII? BLO 30$ ;NO CMPB #40,(R5) ;TOO SMALL AN ACSII CHAR? BLOS 10$ ;NO. OK CMPB #15,(R5) ;CR? BEQ 10$ ;YES CMPB #12,(R5) ;LF? BNE 30$ CLR COUNT MOVB #15,(R1)+ MOVB (R5)&@&& f&f 1 RR iR 7~D7!_ ŊY BT Q BMJ D EE B? 9W51 4 @ ĪQQ)~p̪̪ `kK  o ƪ5ͪ\Qf F wwww6ªpȪD ~(l2 de wiEed   Հ E ``eЪ  Ϊ ~`Ϫ == =.z 7^ 7W7 Xw :w \ ". 7 $ 74 7- |7&w (. Hw  Z- =$.w D!- c-D.e, w H"U ".8Zl 1    Z l .^  $5L Mh GD!.w!w|9U  x. | AREA ; ; 4 WORDS FLSTY1 = FLSRF4+8. ; RAF0 ELEMENT AREA OR HRAF TYPE I ; ; 60 OR 90 WORDS ; ; NOTE: USER MUST DEFINE FLSTY2 & FLSATH IF USED ; ; FLSTY2 = FLSTY1+FLSL1 ; ; FLSATH = FLSTY2+FLSL2 ; ; FLSEND = FLSATH+FLSL3 ; ; ; FLSCHL = 4 ; LENGTH OF ELEMENT CHAIN ; .PAGE .SBTTL FLX FILE INDEX ;* * * ; ; FILE INDEX+,(R1)+ CLRB (R1)+ SUB #2,DMPCNT BR 12$ 10$: MOVB (R5)+,(R1)+ ;TO PRINT BUFF INC COUNT 12$: DEC DMPCNT ;DONE BEQ 20$ 15$: CMP #65.,COUNT BGT 8$ ; MOVB #CR,(R1)+ MOVB #LF,(R1)+ CLRB (R1)+ CLR COUNT SUB #2,DMPCNT BR 12$ 20$: SUB #256.,DMPCNT NEG DMPCNT =UAʪCjP^P ͪ LPwډ >P ,Py~د 5P & wŀ5 EOO7 n_O5@ ~P!% 4e 45 1   +5% `2 lm ll~Ȱ m 44 e   xf 5? @NNE <( $M U=4.  < .E wt<U5 5Q. Fנwנw,憲 5A.B  נ5 E .h JMp U E E<. נwlU Ew5. 5E M 2 w. $Uw%UwUE4.  wU U@ w&5 E.&  M 2 wנU ; ;* * * ; ; THE FILE INDEX CONTAINS POINTERS TO ALL ELEMENTS ASSIGNED TO ; FILES. THERE IS AN INDEX FOR EACH FILE. AN INDEX FOR A FILE IS ; COMPOSED OF A FIXED NUMBER OF ENTRIES. ; ; THERE ARE 31 ENTRIES PER 64 WORD SECTOR IN AN INDEX. THE LAST ; WORD OF EACH SECTOR IS A CHECKSUM. ; ; FLXRF = 0 ; FILE DIRECTORY NUMBER OF ELEMENT ; 1 BYTE FLXRD = 1 ; DEVICE NO FOR ELEMENT MOV DMPCNT,26$ JSR PC,CRLF MOV #100,TKS ;ALLOW ABORT JSR R5,PRINT .WORD PRTBUF 26$: .WORD 0 CLR TKS ;DISABLE ABORT JSR PC,CRLF JSR PC,RESTOX RTS PC 30$: MOVB #50,(R1)+ ;BRACKET MOVB (R5)+,R0 JSR PC,OCTAS3 MOVB #51,(R1)+ ADD #5,COUNT SUB #5,DMPCNT BGT 15$ CLR DMPC~@Nwͪ CJNAȪD 5w wW& N & @ªDĪC `` HN~BNc  ̪ B oN jַ NWf  @ M ƪͪ  ƪM~0MwطM5 wMwvM@ u̪wwfw w A@ 525Ϊ B~ʪ E w B2r2rr  tt w| .L EwTנU E   .r 57Y/w . `O"5 !ע.ע7t. ]%"7" . 4 <MM5  . ]wU $`U@.0  MM]1.V M~Mvwx04.| w >rrr ~.  2  --" ; 1 BYTE FLXRS = 2 ; RELATIVE SECTOR OF ELEMENT ; 1 WORD ; ; ; .PAGE ; .SBTTL HDR STANDARD MESSAGE HEADER ;* * * ; ; MESSAGE ROUTING HEADER ; ;* * * ; ; A STANDARD HEADER IS ATTACHED TO ALL MESSAGES FOR ROUTING. THE ; VALUES PLACED IN THE FIELDS HDRTO AND HDRACT DIRECT THE MESSAGE ; TO THE QUEUE ASSIGNED FOR MESSAGE PROCESSINT ;YES BR 20$ DMPCNT: .WORD 0 COUNT: .WORD 0 .WORD 0 ; ; DUMP OF ROTATING BUFFER ; DMPROT: JSR PC,SAVEX JSR PC,CRLF MOV MSGFLG,R5 ;TEST NO OF INTERRUPTS SINCE RING BEQ 60$ ;NONE INC DMPFLG SUB #ALBSIZ,R5 ;DID WRAP-AROUND OCCUR? BMI 8$ ;NO MOV MSGE,R5 ;YES - START AT FIRST SAVED INTERRUPT Fͪ wB@~ ͪAȪD Ϫ d  1f& f& lnNrķ$nrķ'~<w VՀ [0 S OW LGW D?D =W  70 0 ~?Z7V D:沊o  8/@d r, 7 l  0bw Ԏ~ f  w `& Xw"O  .  6 U 5 .  B 7 w . X @A% 5%0U  .: %9U~UxE7n7 hmf".` `w ZmZT %LJ  @. >   $"m"w m. U l LA . wBCҕ0 DDcC . eEU0d  &f#. &   @ABBNG. ; ; ; ROUTING HEADER FIELDS ; ; ; HEADER FIELD LENGTHS ; HDRLID = 3 ; HEADER ID HDRLFR = 5 ; ROUTING CODE OF SENDER HDRLTO = 5 ; ROUTING CODE OF RECIPIENT HDRLSE = 3 ; MESAGE SEQUENCE NUMBER HDRLPR = 1 ; MESSAGE PRIORITY LEVEL HDRLAC = 3 ; ACTION CODE ; ; HEADER FIELDS ; HDRID = 0 ; AS ABOVE HDRFR = BR 10$ 8$: MOV MSGS,R5 ;START AT FIRST INTERRUPT AFTER THE RING 10$: MOV #4,COUNT MOV #PRTBUF,R1 TST DMPWCH ;ASCII WANTED BNE DMPASC 20$: MOV (R5)+,R0 ;WORD JSR PC,OCTAS6 ;CONVERT CMP #ALBEND,R5 ;BUFF END? BHI 30$ ;NO MOV #ROTBUF,R5 ;YES 30$: DEC COUNT ;LINE DONE? BEQ 40$  80b7xlt]~ o F& &  D: Ԁ r,  f w7l9~x 0w v d'b 7l  o & & \ w &Ӈ (~  o T҇   f`Ud  bt`   U~hd  b   f`.D Ac@e !   @AB   .j @AB  5xG "xU. :5w9wE% H . }`5wRW  `v. ĝT n 1 7 F 3. UU@p7 2 ]w\ po.(Z w1 ĝ  5w.N,56w~5 wLw  &!.twwN X1 ĝ Xw M.HDRID+HDRLID+1 ; HDRTO = HDRFR+HDRLFR+1 ; HDRSEQ = HDRTO+HDRLTO+1 ; HDRPRI = HDRSEQ+HDRLSE+1 ; HDRACT = HDRPRI+HDRLPR+1 ; HDRL = HDRACT+HDRLAC+1 ; ; HDRLRT = 4 ; RETRIEVAL NUMBER (3 DIGITS + TAPE NO.) HDRLRS = 10. ; RANGE FOR RETRVL # SPACE SEA-CH ; .PAGE ; SBTTL MPQ PROGRAM MESSAGE QUEUE ;* * * ; ; PROGRAM MESSAGE QUE ; ;* * * ; ; MPQIS = 0 ; ;YES MOVB #40,(R1)+ BR 20$ 40$: MOVB #15,(R1)+ MOVB #12,(R1)+ MOV #29.,50$ ; MOV #100,TKS JSR R5,PRINT .WORD PRTBUF 50$: .WORD 0 CLR TKS TST DMPFLG BLT 60$ CMP MSGE,R5 ;DONE? BNE 10$ ;NO 60$: CLR DMPFLG JSR PC,RESTOX ;YES RTS PC DMPFLG: .WORD 0 DMPWCH: .WORD EUUd  bt 0`b   ~6Ud   b  Ud  bt   Ud 7b3~XUd0 w  b    U@  Ud      b  x~зF   U  U d     @dt dU0 ,b ~H%<   19w ĝG.w w$ ĝh ~ w\ ĝU. jwL dĝK Z W."W.. (B Bw 6$  qBB+.2w:U  $8.X/@2@014@2 (.~1w$ %xh(x.w25 w5w ĝv .wĝk ~ wE@pĝU f g paSTART OF INPUT QUE MPQIE = 2 ; END OF INPUT QUE MPQOS = 4 ; START OF OUTPUT QUE MPQOE = 6 ; END OF INPUT QUE MPQIB = MPQIS ; INPUT QUE BUSY MPQIH = MPQIE ; INHIBIT INPUT TO QUE MPQRB = MPQOS ; REAL TIME QUE BUSY MPQRH = MPQOE ; INHIBIT OUTPUT MPQL = 8. ; LENGTH OF ENTRY ; .PAGE ; .SBTTL MSP MESSAG 0 ; ; DUMP THE ROTATING BUFFER IN ASCII,WHERE POSSIBLE ; DMPASC: MOV #74,(R1)+ ;SET UP FOR NON-PRINTABLES MOV #76,3(R1) MOV #CR,4(R1) MOV #LF,5(R1) MOV #72,COUNT ; LOOP TO PRINT THE CHARACTERS RECEIVED AND SENT SINCE LAST RING 4$: MOV 4(5),R0 ADD #10,R5 CMP #ALBEND,R5 BHI 6$ MOV #ROTBUF,R5 6$: ;LOOK FOR NON-PRINTABL f6 wet6 ptrv¸5θL0ϸ3~5иw  <  rҸ)Fw ώ&& && ,S~8 w F& w~籊Ҹ5޸ѸЀѸF w  h ӸӸ5Ѹ1Ѹ~LFEE ڸD,FԸDٸ |1ڸw**6D^p~ȻԻոWոH@޸  -m>. 1 1  2 .wh ċw\ĥwĥPwH#.< w@ "w8f w <w( Hĝ.b wf w wf w .w  ĝ wJ &.M&M"Q.nn^".ZTw yw |!y&(|. w ~w yCw yh  ~yCyE CONTROL REQUEST LIST ;* * * ; ; EQUATES FOR MESSAGE CONTROL REQUEST LIST ; ;* * * ; ; QUEUE LOCK PARAMETER ; MSSN ; 0 = UNLOCK QUEUE ; 1 = LOCK QUEUE ; CALL PARAM ; MSSN ; 0 = FIRST CALL ; 1 = SCANES CMPB #137,R0 BLO 16$ CMPB #40,R0 BHI 14$ 7$: MOV R0,R4 JSR PC,TTYO DEC COUNT ;EDGE OF PAPER? BHI 8$ ;NO JSR PC,CRLF ;YES, RE-POSITION MOV #72,COUNT 8$: CMP #MSGE,R5 ; ALL DONE BNE 4$ 9$: JSR PC,CRLF JMP DMPRET 14$: ;CHECK FOR CARRIAGE RETURN, LF ~(=  ٸwf , == && & Ѹ  Pw h ~w j o&   v1Ѹ  %EѸ5޸ 1Ҹ%D5 @wB1ӸѸDp~ոf V ٸ1ո ٸܸ ٸ1ܸUٸո^ٸ}׸ٸոd~ ٸ1ٸwj 1ո ٸ ٸ1ո@wtݸw&ݸw .F `&w >5x5xE@px x(p#.l ċĥP U@p5x 5p x.& 5$.xw ew $& 5.'(1 1 1 1 1 1 E. Dy ¥.*¥    w,$ $PL~ . L~   nl4 FOR TYPE I CELL ONLY ; 2 = SCAN FOR TYPE II CELL ; ; MSAT ; 0 = FORM TYPE I CELL ; 1 = FORM TYPE I & II CELLS ; 2 = FORM TYPE II CELL ; 3 = ATTACH MESSAGE TO QUEUE ; 4 = ATTACH MESSAGE TO OUTPUT QUEUE ; CMPB #12,R0 BEQ 18$ CMPB #15,R0 BEQ 18$ 16$: ;CONVERT CHARACTER TO ASCII MOV PRTBUF+1,R1 JSR PC,OCTAS3 MOV #100,TKS JSR R5,PRINT .WORD PRTBUF .WORD 7 CLR TKS TST DMPFLG BLT 9$ BR 8$ 18$: MOV #73,COUNT BR 7$ DMPRET: CLR DMPFLG JSR PC,RESTOX  DEE D@~ f D+ŀ| n *-el.ָBE,I  5@ =C~5@@wĕ ٸ^ٸ2    ށ ָ ָĕ\ٸ׸Ē1ָ  1׸ĕ\ٸظ~ظf v = ٸf Z ĕ=ٸ : 4Bw f4 W<35;Ap ~p+' &0  0 oC `0  NBl0 "4  l' G.PQ@@A d `&@`@@  DC11?  ..RINEACBMTD.@XS3 THE QUICK BROWN FOX JUMPED O6.fVER THE LAZY DOGS BACK 3 A BIT 7 = FORCE WRITE OF TYPE I ; ; MSDT ; 0 = DETACH & READ TYPE I ; 1 = DETACH & READ TYPE I & II ; ; MSPNUM = 0 ; QUEUE NUMBER ; ; 1 WORD MSPLCK = MSPNUM+2 ; QUEUE LOCK PARAMETER ; ; 1 BYTE MSPPAR = MSPLCK+1 ; USER CALLING PARAMETER ;  RTS PC .PAGE ; ; DUMPS CONTROL ; DUMPS: JSR PC,TTYI ;GET CHAR CMPB #'M,R4 ;MSG DUMP? BEQ 20$ ;YES CMPB #'L,R4 ;LOG DUMP? BEQ 30$ ;YES CMPB #'A,R4 BEQ 50$ RTS PC 20$: JSR PC,DMPRCV RTS PC 30$: CLR DMPWCH ;SET FOR OCTAL DUMP 40$: JSR PC,DMPROT RTS 5@A& ~ & N > z<4긷A& & b4e4긷Af `D` ԸݸCD~`1۸Ѹ1ٸ@޸ 4   ٸ=f@ b J@ 3 1ظ1ָٸDA5@ =f~ؾݸ ٸfÝڸ A7ԸwѸ@޸@hf7 d 5@q 5~Pj5f5 U==&t^(~ (zzl.z  7 w  .w 71 A w  7xw 1 A .w XĝZ77J F p$(p. !0w & 20 $2(0#.@p D A  &DCc   pw.8w @w  w  ' 7  .^ &w \w wXw w 2. ; BYTE MSPPRI = MSPPAR+1 ; QUEUE PRIORITY ; ; WORD MSPWRK = MSPPRI+2 ; ADDR OF WORK AREA ; ; WORD MSPSVC = MSPWRK+2 ; RESERVED FOR SYSTEM USE ; ; O = FIRST CALL MSPL = MSPSVC+2 ; END OF LIST ; .PAGE .SBTTL MSQ MESSAGE QUE TABLE ;* * * ; ; EQUATES FOR MESSAGE QUEUPC 50$: MOV R4,DMPWCH ;SET FOR ASCII DUMP BR 40$ .PAGE TTYINQ: CLR R4 TSTB TKS BPL 10$ MOVB TKB,R4 BIC #177600,R4 JSR PC,TTYO 10$: RTS PC ; ; DATE & TIME INPUT ; TIMDAT: JSR R5,PRINT .WORD TIMIST .WORD TIMIEN-TIMIST JSR PC,TTYI CMPB #15,R4 ;CR? BEQ 10$ ;YES p w B e @ee :J  >@ Ѹ~ȿ!ѸѸҸҸӸӸ E ޸޸ื @ NѸ3Ҹ3Ӹ ?}f 3ڸ۸۸ -Z~@ Rه~E =ܸ7n@^ٸ?x?f&@ ݸ& & D w ~*&&2TVFXf~0ffffff  fw  w 7 wtwhb.w k  %{ E e wh k {  .d D - =w TD = w Hd - 2.6 w @/ w 8 w 0w 8 7 w .*7 w "7 7  - XH - T.Bw7  ww (b ww .hw A B` %. w| 7wrxwh.u E 74~wh^ E ` 4. t4P  ES ; ;* * * MSQIS = 0 ; START OF INPUT QUEUE ; ; BIT 15 = INPUT QUE BUSY ; BIT 14 = MSG IN PROGRESS FLAG ; MSQIE = MSQIS+2 ; ; ; BIT 15 = INHIBIT INPUT MSQRS = MSQIE+2 ; START OF REAL TIME OUTPUT QUE ; ; BIT 15 = REAL TIME QUE BUSY ; ; BIT 14 = STATION DOW  MOVB R4,COUNT ;GET TIME JSR PC,TTYI MOVB R4,COUNT+1 ;IN & CLR HOUR CNVAB1 COUNT,HOUR,2 ;CONVERT JSR PC,TTYI MOVB R4,COUNT ; TO BINARY JSR PC,TTYI MOVB R4,COUNT+1 CLR MINUTE CNVAB1 COUNT,MINUTE,2 JSR R5,PRINT .WORD DATIST .WORD DATIEN-DATIST CLR JDATE JSR PC,TTYI MOVB R4,COUNT ff >>> 7 wr>w 7+w  D~7xw w XĝZ7<>7J F <>Z4>!0w & :>4>@n= D A  &DCc ~ w @w  w  ' 7  &w \w wXw w  fw  w 7 wtwhw ~U %eE e whND  =w TD = w H6 w @/ w 8 w 0w 8 7 w *7 w " 4Iw ,-; 44a.% w  =w $7v.&  4=w e0w ,w %  4.L@w ke=.rw @w fwww=w . w  rw 8Ae0w ,w F.|VPTw D- <@7.4: (6 4,*w i 4.  ?w "7 w 777 .0   w %0 %7E ` D.V 1O N FLAG MSQRE = MSQRS+2 ; END OF REAL TIME OUTPUT QUE ; ; BIT 15 = INHIBIT OUTPUT FROM RT ; ; BIT 14 = LOWER PRIORITY OF MSG ; MSQWS = MSQRE+2 ; START OF WAITING OUTPUT QUE ; BIT 15 = WAITING QUE BUSY ; BIT 14 = WAITING QUE SERVICE MSQWE = MSQWS+2 ; END OF WAITING OUTPUT QUE ;  ;GET JULIAN JSR PC,TTYI MOVB R4,COUNT+1 JSR PC,TTYI ;DATE & MOVB R4,COUNT+2 CNVAB1 COUNT,JDATE,3 ;CONVERT TO BINARY 10$: RTS PC JDATE: .WORD 0 .PAGE ;*********************************************************************** ; * ; A S Y N C * ; ~7 7   Xw7  ww (b ww w A B` % w| ~7wrxwhu E 7~wh^ E tP Iw ,-% w  =w t~$7  =w e0w ,w %@w ke=w @w fwww~xĢ=w  w  rw 8Ae0w ,w |VPTw D- <@7 W ֆ m7H O "| y(8R4.  (8R4NJ,dl. N J,dl .\ h7cJW*\  (.D @ 7<76%.* ."w %=w (w . w w ww  .B 7mw .hw  ; BIT 15 = INHIBIT OUTPUT FROM WT MSQBS = MSQWE+2 ; START OF BATCH OUTPUT QUE ; BIT 15 = BATCH QUE BUSY ; MSQBE = MSQBS+2 ; END OF BATCH OUTPUT QUE ; BIT 15 = INHIBIT OUTPUT FROM BT MSQCRT = MSQBE+2 ; MSG COUNT FOR QUES MSQL = MSQCRT+2 ; END OF LIST ; MSQF1 = BIT15 ; INPUT QUE BUSY MSQF2 = BIT1 * ; PROGRAM IDENTIFICATION. ASYNC - ASYNCHRONOUS DATALINK HANDLER * ; * ; PURPOSE. THIS ROUTINE SERVICES INTERRUPTS PRODUCED BY DATA AND* ; CONTROL SIGNALS ON THE ASYNCHRONOUS COMMUNICATIONS LINK. IT * ; PERFORMS THE AUTOMATIC LINE CONTROL FUNCTIONS REQUIRED AND * ; REPORTS THE LINK STATUS TO THE DATALINK DIRECTOR (DLDIRA) * ; : (6 4,*w J~ ?w "7 w 777    w %0 %7E `  19 W ֆ m7~h ynŦŴžƔ¼"<xƜ84NJNVÀôFrzľh7cJD @ 7<76%.* N~"w %=w (w  w w ww   7mw ~XƬw %/w \  j~~f  %/w \P.  j~~|  L eD| (D.  !RB !R=L !6RR!.4D4 V | !4Dh4 V D V| D"h&V..% w *  @w @.& % % w  ww .L D  &.rC@AEPA&fw w /w .w Hw   ` y.E ` V5 ; INHIBIT INPUT TO QUE MSQF3 = BIT15 ; REAL TIME QUE BUSY MSQF4 = BIT15 ; INHIBIT OUTPUT FROM REALTIME QUE MSQF5 = BIT15 ; WAITING QUE BUSY MSQF6 = BIT15 ; INHIBIT OUTPUT FROM WAITING QUE MSQF7 = BIT15 ; BATCH QUE BUSY MSQF8 = BIT15 ; INHIBIT OUTPUT FROM BATCH QUE MSQF9 = BIT14 ; STATION DOWN FLAG MSQF10 = BIT14 ; LOWER PRIRORITY OF REAL TIME * ; USAGE. THE ROUTINE IS ENTERED THROUGH THE DL11 INTERFACE * ; RECEIVER AND TRANSMITTER INTERRUPT VECTORS AT ENTRY POINTS * ; ASYNCR AND ASYNCX RESPECTIVELY. THE INTERRUPT ROUTINE * ; OBTAINS THE DEVICE NUMBER OF THE INTERRUPTING DEVICE FROM THE * ; LOW ORDER 4 BITS OF THE PS WORD (2ND WORD OF VECTOR). * ; NOTE THAT THIS DEVICE NUMBER IDENTIFICATION SCHEME SPEEDS UP * ; SERVICE;L e.  !%ĕtB C ,.D72 VVw Bw .eDVV. MESSAGES MSQF11 = BIT14 ; INPUT MESSAGE IN PROGRESS FLAG MSQF12 = BIT14 ; WAITING QUE BEING SERVICED MSQAMK = 170000 ; MASK TO GET CELL NO. MSQMAX = QUDTC+NSLINK+NUMQUE-1 ; MAX NO OF QUES ; .PAGE ; ; MSQIB = MSQIS ; INPUT QUE BUSY MSQIH = MSQIE ; INHIBIT INPUT TO QUE MSQRB = MSQRS ; REAL TIME QUE BUSY MSQRH = MSQRE ; INHIBIT OUTPUT FROM REALTIME QUE  HOWEVER, LIMITS THE MAXIMUM MUMBER OF DEVICES TO 16. * ; THIS ROUTINE IS DESIGNED TO USE A DC-11 AS THE ASYNCHRONOUS * ; INTERFACE. * ; ; REGISTER USAGE - * ; R0 CONTAINS THE DEVICE NUMBER ; R1 CONTAINS THE ADDRESS OF DEVICE REGISTERS (RCSR) * ; R2 CONTAINS THE ADDRESS OF DEVICE TABLE * ; 7w @ŝŝwj7vt wjt!. ~ w w J,-w @e>%ĕt.72 @@w Bw .e` w ;w ĝ.w wS~(ɷ f&f 4.R. 5575755w r555Y~5g5b5V  <R. !%& &e N @ e0w &  ~` w ;w ĝDw w  D.:"f&f ' ".`4DhD bDh$D.pt7p7ttw r ptptt3.t5ppgpbtV t ppp tC. <hD !%&Th D-. &e N @ e0w &  e. 4 t7 4$tMSQWB = MSQWS ; WAITING QUE BUSY MSQWH = MSQWE ; INHIBIT OUTPUT FROM WAITING QUE MSQBB = MSQBS ; BATCH QUE BUSY MSQBH = MSQBE ; INHIBIT OUTPUT FROM BATCH QUE MSQSD = MSQRS ; STATION DOWN FLAG MSQCP = MSQRE ; LOWER PRIORITY OF REAL TIME MESSAGES MSQIP = MSQIS ; MESSAGE IN PROGRESS FLAG MSQWAT = MSQWS ; WAITING QUE BEING SERVICED MSQADR = 160000  * ; PROGRAMMER: 51 * ; DATE: * ; REVISION: * ; * ; G U L F E L E C T R O N I C S Y S T E M S * ;*********************************************************************** ; ;* * * ; ; ASYN  J57F5:565E w   w ׭4 ^w Uw w-~r nj  7,XR-P Dw@ 78 %(!  %??~786w N%w 77w Z e0w ,w w p'~ Cå å$ נA   e`   Ëנe ee e !.D vprE w v prm.j   w ׭r  $rY. ^w Uw wr n . j  7,4XR4-P DQ44[. w@ 78 %(! . %??M N ; M &N .( L w N%w 77w _ L .N Z e0w ,w w .t p" ; CLEAR QUE ADDR MSQADB = 017777 ; CLEAR QUE BITS ; ; .PAGE .SBTTL MSW MESSAGE CONTROL EQUATES ; ; MESSAGE CONTROL EQUATES ; MSWPRI = 0 ; PREVIOUS TYPE I CELL ADDR MSWTSI = MSWPRI+2 ; THIS TYPE I CELL ADDR-979,979 MSWNXI = MSWTSI+2 ; NEXT TYPE I CELL ADDR MSWPRT = MSWNXI+2 ; PREVIOUS TYPE II CELL ADDR MSWTST = MSWPRT+2 ; THIS TYPE II CELL ADDR MSWNXT = #CI - ASYNC LINK INITIALIZATION ROUTINE ; ;* * * ; ; CALLING SEQUENCE -- ; ; JSR PC,ASYNCI ; ; ASYNCI: JSR PC,SAVEX ; JSR R5,PRINT ; DETERMINE WHICH DATA LINK .WORD LKQUES .WORD ENQUES-LKQUES JSR PC,TTYI ;R4 ON RETURN HAS RESPONSE CMP YES,R4 ; DC11 LINK ? BEQ 1$ ; YES MOV #DLTABL,3$ ; NO, SET UP FOR DL11-E $ѐ ~ˀ @(,p,p@ ODT-11R V003ABEFX,p,p *;/\ $G _<^,OWEBP@>SRC-FI!XASPMCFRB'~pG~~` CQ. å å$ נA  @.  e`   <   . Ëנe ee e ѐ   @(}  . ODT-11R V003A B BE H .H *;/\ $G _<^,OWEBP@>SRC-FI!XASPMn CFRBQ | b | h .<&MSWTST+2 ; NEXT TYPE II CELL ADDR MSWWAA = MSWNXT+2 ; ADDR OF CELL OBTAINED FROM POOL MSWFST = MSWWAA+2 ; ADDR OF FIRST TYPE II MSWDRQ = MSWFST+2 ; DISC I/O REQUEST ; ; .PAGE .SBTTL MTR METER DESCRIPTOR ;* * * ; ; METER DESCRIPTOR EQUATES ; ;* * * ; ; THREE (3) SPOTS PER FILE ELEMENT ; TEN (10) METERS PER SPOT ; ; MTRRT = 0 ; RELATIVE NO. OF TEMP PROBE (1-16) ' BR 2$ 1$: MOV #DCTABL,3$ ; SET UP FOR DC11 2$: JSR R5,MOVA ; MOVE CORRECT LINK CONSTANTS TO TABLE 3$: .WORD 0 ; ADDRESS IS FILLED IN ABOVE .WORD LKTABL .WORD LKTABE-LKTABL MOV #ALBST,R4 ;ALL ONES TO ROTATING BUF FOR CHECKOUT ;******** ASYI02: ; ;******** MOV #-1,(R4)+ ; ;******** (T~~Ph~~@)$  90Do8D ,! @!  ,&  JMNJ7 HL,Lѕ 0 hw Z,r  Dw   Q  ,%2 z?  4J)P|ENTRCANKCFNUDADTENTER CMD b TIME - Y DATE - ` BCC=,  77wZ7,&77wD777w.7.,L ĥ ) Vw ĥB,r * ; 1 BYTE MTRPD = 1 ; STANDARD PRODUCT NO. (1-99) ; 1 BYTE MTRTY = 2 ; METER USAGE (1 BYTE) ; 1 = LOAD RACK DISPOSAL ; 2 = FUELING ; 3 = PIPELINE RECEIPT ; 4 = PRODUCT RETURN ; 5 = PIPELINE DISPOSAL MTRNS = +CMP R4,#ALBEND ; ;******** BLO ASYI02 ; ;******** MOV LKTABL+DLVECT,R5 ; GET ADDRESS OF INTERRUPT VECTOR CLR R0 ;SET DEVICE NO. TO ZERO ASYI05: JSR PC,GETPTR ;GET POINTERS TO A DEVICE'S REGS & TABLES MOV R2,R3 ;GET POINTER TO BEGINNING OF DEV TABLE MOV R2,R4 ;GET POINTER TO END OF DEVICE TABLE ,TULSA ~2222@2@dd6~02~t~ -ĥ 7 ,w,ĥBĥ p7 $7 &0, vĥ. Е 7M Xĥ , z0 Q <ĥ Vĥ, ?Еĥ* 7 ,07ĥ+  %,V   <  ,|   PL : /,w  4 t wĕ ,ĕ ĕ |w  P-,-87, 7 7 . 3 ; METER NOISE ACCUMULATION ; 1 BYTE MTRL = 4 ; ENTRY LENGTH .PAGE .SBTTL OUT MESSAGE NUMBER TABLE ;* * * ; ; EQUATES FOR OUTSTANDING MESSAGE COUNT TABLE ; ;* * * ; ; OUTEMP = 0 ; COUNT OF OUTSTANDING REPLIES ; 1 BYTE OUTNUM = OUTEMP+1 ; COUNT OF CONNECTS SINCE LAST MSG XMTD ; / ADD #DLCL,R4 ASYI10: CLRB (R3)+ ;ZERO THE DEVICE TABLE CMP R3,R4 BLO ASYI10 MOVEC 0,DLCST+DLCL+2,20. ; MOVB #WAIT,DLCSTE(R2);SET LINK STATE TO WAIT MOV R0,R4 ;MAKE PS WORD FOR VECTORS WITH BIS #340,R4 ;UNIT NO IN BITS 0-3 AND CPU LEV AT 7 MOV #ASYNCR,(R5)+ ;SET UP RCV INTERRUPT VECTOR MOV R4,(R5)+ MOV #ASYNCX,(R5)+ ;SET UP XM0n~w& 2222~~'~17 7 7 < r,: &   4,`%<~7 x x%<r  j7 h%0,`7 Z @ %mD!4  LINE CLOCK? ,YN@@@fw ,p( @(--Q,' KG11 BCC? K,6U2.ĝ*E 7,\ @A   7 , ĕ &E ,w7 d2 1 BYTE ; MAX VALUE = OUTLIM OUTSEQ = OUTNUM+1 ; LAST SEQUENCE NUMBER RECEIVED ; ; 1 WORD OUTRTV = OUTSEQ+2 ; LAST RETRIEVAL NUMBER TRANSMITTED ; ; 1 WORD OUTL = OUTRTV+2 ; END OF LIST ; .PAGE .SBTTL PCR PRODUCT CROSS REFERENCE ;* * * ; ; PRODUCT CROSS REFERENCE FILE EQUATES ; ;* * * ; .IF 3T INTERRUPT VECTOR MOV R4,(R5)+ CLR RBUF(R1) ;CLR RCV BUF REGISTER MOV LKTABL+IXCSR,XCSR(R1) ; SPEED AND STOP CODE MOV LKTABL+IRCSR,RCSR(R1) ; SPEED, LENGTH, ENABLE INTERRUPT JSR PC,RESTOX ; RTS PC ;RETURN .PAGE ;* * * ; ; ENTRY POINT FOR ASYNCHRONOUS LINK RECEIVE INTERRUPTS ; ASYNCR: JSR PC,SAVEX ; JSR PC,ENTSVC ;DO ENTRY SERVICE 4~x6~~h5,^Ze$CE0,# M0#e!, 7 ͥ+ͥ_@,@ͥ ͥ ͥ 77 ѕ Q~,fQ x r%Alѕ ѕ 7 \,TL7 HD @w ,7  lѕ(@ Dѕ)e,7  .  6 rX,   V+@ %/,$ ѕ ѕ ѕ  @&,Jw 7  -2 7  6 NE,.CITGO ; PCR1L = 2 ; PROD ID PCR2L = 5 ; PROD CODE PCR3L = 9. ; PROD NAME PCR4L = 3 ; EXTRA ; PCR1 = 0 ; SEE ABOVE PCR2 = PCR1+PCR1L ; PCR3 = PCR2+PCR2L ; PCR4 = PCR3+PCR3L ; PCRL = PCR4+PCR4L ; PRODUCT RECORD LENGTH .PAGE .SBTTL RHD TERMINAL RECEIVED HEADER ;* * * ; ; TERMINAL REC7 TST DLCIF1(R2) ;DATASET STATUS CHANGE? BMI ASY040 ;YES BIT #DONE,DLCIF1(R2);IS CHARACTER AVAILABLE? BEQ ASY060 ; NO, INVALID INTRR MOV DLCIF3(R2),R3 ; GET RBUF CONTENTS BIC LKTABL+SGNMSK,R3 ; CHECK FOR DATA ERROR IF DL11-E BMI ASY060 ; BRANCH IF OVERRUN OR FRAMING ERROR MOVB DLCSTE(R2),R4 ;GET DATALINK STATE BMI ASY060 ; INVALID STATE 8E~~XT~~H9,p<>  :X@e%,/_  0 ,:$% w6   ,,@w t7 | t;7 d,  &ĥMĥLĥA  7 ,. > 74 .ĝ*E w e,T  ĥ 37| 7u7 tw XC,z  7^ 7W7 Xw :w Y,  7 $ 74 7- |7&w ,  Hw  Z- :, w D!/ ^:EIVED HEADER EQUATES ; ;* * * ; ; ; RHDPRT = 0 ; PRINTER CONTROL (1 BYTE) RHDDAT = RHDPRT+1 ; JULIAN DATE (3 DIGITS) RHDTIM = RHDDAT+3 ; TIME (4 DIGITS) RHDL = RHDTIM+4 ; ; ; .PAGE ; .SBTTL RTE ROUTING TABLE ;* * * ; ; EQUATES FOR MESSAGE ROUTING TABLE ; ;* * * ; ; RTELID = 5 ; SEE BELOW RTELSP = ;CMP R4,#RCVACK JEQ ASY230 ;RCV ACK STATE CMP R4,#RCVDAT ; RCV DATA STATE ? JEQ ASY070 ; YES - BR ASY060 ; NO - ERROR, GET OUT ;INVALID STATE ; ; ; ERROR RETURN ; ASY010: BIS #DLCG11,DLCIND(R2);SET LINK ERROR FLAG BR ASY030 ; ; ; ; SET CHARACTER TIMER ; ASY020: MOV #ALTMR,-(SP) ; JS<c~~8r~~(=, e, w H"U,8 Z l 1    ,^  $5L Mh GD!, w!w|9U  {, | <( $M U=7,   < , E wt<U5 5T, Fנwנw,憲 5D,B  נ5 E ,h JMp U E E?, נwlU Ew5> 1 ; ; ; RTEID = 0 ; ROUTING CODE RTEQNM = RTEID+RTELID ; PAD TO WORD BOUNDARY RTEL = RTEQNM+RTELSP ; LENGTH OF LIST ; .PAGE .SBTTL SHD FILE DESCRIPTOR EQUATES ;* ** ; ; EQUATES FOR FILE DESCRIPTOR LIST ; ;* * * ; ; ; ; ; SHDDA = 0 ;ADDR OF INDEX ENTRY (REL SECTOR - DSK) SHDNDE = SHDDA+2 ;NO. OF ENTRIES IN INDEX ; ?R PC,SETIME ; MOV (SP)+,DLCTM1(R2) ; ; ; ; RETURN ; ASY030: JSR PC,RESTOX ; RTI ; ; ; ; PROCESS DATASET STATUS CHANGE ; ASY040: CMPB DLCSTE(R2),#WAIT;WAIT STATE? BNE ASY052 ; NO, CHECK FOR TRANSMITION STATES BIT DLCIF1(R2),LKTABL+RNGBIT ; IS THIS A RING? BEQ ASY060 ;NO, ERROR BIC LKTABL+RINT,RCSR(R1) ; YES, DIS@~ ~~~A, 5E M 2 w!, $Uw%UwUE7,  wU U@ w&5 E,&  M 2 wנU ,L EwTנU E   ,r 57Y/w , `O"5 !ע.ע7w, ]%"7", 4 <MM5  , ]wU $`U@,0  MM]4B USED FOR CHECK - LOCATOR IN RANGE SHDDAT = SHDNDE+2 ;TYPE DATA (ASC11=0, RADAC=1) SHDSZ = SHDDAT+1 ; NO. OF BYTES IN RECORD SHDLCT = SHDSZ+1 ;NO. OF CHAR IN LOCATOR ; 0 = LOCAT3- +S A VALUE SHDFTP = SHDLCT+1 ;FILE TYPE (RAF0=0,RAF4=1,HRAF=2) SHDUNM = SHDFTP+1 ;USER NO. MODIFYING FILE ; INDICATES WRITE-LOCK SHDRDC = SHDUNM+1 ;FILE CABLE RCV INT. BIS #DLCG10,DLCIND(R2);SET RING DETECTED FLAG ASY050: BR ASY030 ;GO RETURN ASY052: BIT LKTABL+DLIND,#DLFLAG ; IS LINK DL11-E ? BEQ ASY060 ; NO, ERROR COND. FOR DC11 CMPB DLCSTE(R2),#XMTDATA ; IS STATE XMT DATA ? BEQ ASY054 ; YES CMPB DLCSTE(R2),#CANCL1 ; IS STATE CANCEL 1 ? BEQ ASY054 ; YES CMPB DLCSTE(R2),#SNDACK ; IS STATE SEND D~'~~p6~E,V M~Mvwx04,| w >rrr ,  2  /,  6 U 5,  B 7 w ,X@A% 5%0U,:%9U~UxE7n7 hmf%,``w ZmZT %LJ  @,>   $"m"w m,U l LA ,wBCҕ0 DDcC FREAD COUNT ; 1 BYTE ; TALLIES NO. OF USERS READING FILE ; INDICATES READ-LOCK SHDL = SHDRDC+1 ; LENGTH OF ENTRY ; .PAGE .SBTTL SXT PRODUCT DISPOSITION EQUATES ;* * * ; ; PRODUCT DISPOSITION EQUATES ; ;* * * ; ; ; STAT LINE SXT1L = 3 ; AS BELOW SXT2L = 7 ; SXT3L = GACK ? BNE ASY060 ; NO, ERROR ASY054: BIT DLCIF1(R2),#DLECLS ; JUST GOT CLEAR TO SEND ? BEQ ASY056 ; NO BIC #DENABL,RCSR(R1) ; DISABLE INT. JMP ASY400 ; GO TO START TRANSMISSION ASY056: BIT DLCIF1(R2),#DLECDT ; WAS INT. A CARRIER DETECT ? BNE ASY030 ; YES, IGNORE AND RETURN ASY060: BIS #DLCG11,DLCIND(R2);SET LINK ERROR FLAG BR ASY030 ;GH~`E~~PI, eEU0d  &f&,&   @ABE,DAc@e !   @AB   ,j @AB  5,:5w9wE% I, }`5wRW !,ĝT n 1 7 G, UU@`7 2 ]w,(Z w1 ĝ  5w,N,56w~5 wLw ,twwN X1 ĝ Xw MJ1 ; SXT4L = 7 ; SXT5L = 4 ; SXT6L = 4 ; SXT7L = 3 ; SXT8L = 5 ; SXT9L = 3 ; SXT10L = 4 ; SXT11L = 3 ; SXT12L = 1 ; SXT13L = 0 ; SXT14L = 0 ; SXT1 = 0 ; INPUT ID SXT2 = SXT1+SXT1L ; TERMINAL ID SXKO RETURN ; ; ; RCV DATA STATE ; ASY070: BIT #DLCF6,DLCSTS(R2);STX RCVD FLAG SET? BEQ ASY100 ;NO BIT #DLCF7!DLCF8,DLCSTS(R2);ETB OR ETX RCVD? BNE ASY150 ;YES CMPB R3,#ETX ;IS CHAR ETX? JEQ ASY210 ;YES CMPB R3,#ETB ;IS CHAR ETB? JEQ ASY220 ;YES CMP DLCCHB(R2),#BLKSIZ;BLOCK CHAR CNT EXCEEDED? BHIS ASY060 LT~~@c~t~0ߔ 000)eJ x   N Ê <%! ,M,<   19w ĝJ,w w$ ĝh ~ w\ ĝU, jwL dĝK Z W."W., (B Bw 6$  q,2w:U ,X/@2@014@2,~1w$ %,w25 w5w ĝv ,wĝk ~ wE@ĝU f b, 1 1  2 ,wh ċw\ĥwĥPwH&NT3 = SXT2+SXT2L ; DDI SXT4 = SXT3+SXT3L ; CUSTOMER NUMBER SXT5 = SXT4+SXT4L ; TRUCK NUMBER SXT6 = SXT5+SXT5L ; CARRIER NUMBER SXT7 = SXT6+SXT6L ; DRIVER NUMBER SXT8 = SXT7+SXT7L ; INVOICE NUMBER SXT9 = SXT8+SXT8L ; DATE SXT10 = SXT9+SXT9L ; TIME SXT11 = SXT10+SXT10L ; FOLIO SXT12 = SXT11+SXT11L ; EOR SXT13 = SXT12+SXT12L ; - SXT14 = SXT13+O;YES, ERROR INC DLCCHB(R2) ;INCR BLOCK CHAR CNT ASY075: BIT #DLCG11,DLCIND(R2);NO, IS LINK ERROR FLAG SET? BNE ASY020 ;YES, DON'T INSERT CHAR IN BUFFER ASY080: MOVB R3,@DLCCPT(R2) ;PUT CHAR RCVD IN BUFFER INC DLCCPT(R2) ;INCR CHAR POINTER ASY085: BR ASY020 ; ; ; ; ASY100: CMPB R3,#STX ;IS CHAR STX? BEQ ASY130 ;YES BIT #DLCF10,DLCSTS(R2)c ѐjˋÜ`E ^߷&  P   cLwZ ɋr߷ p^VQ,< w@ "w8f w <w( Hĝ,b wf w wf w ,w  ĝ wJRj,LM&M"<,nn^%,ZTw yw |, w ~w yCw y_,F `&w >55E@.,l ċĥP U@5 n,& 5PH,xw ew $&RSXT13L ; - ; ; ; ; ; ; PRODUCT LINE ; SXT20L = 2 ; SEE BELOW SXT21L = 3 ; SXT22L = 5 ; SXT23L = 1 ; SXT24L = 1 ; SXT25L = 0 ; SXT26L = 0 ; SXT20 = SXT14+SXT14L ; PRODUCT ID SXT21 = SXT20+SXT20L ; PRODUCT TEMPERATURE SXT22 = SXT21+SXT21L ; PRODUCT QUANTITY SXT23 = SXT22+SXT22L S;IS EOT RCVD FLAG SET? BEQ ASY140 ;NO BIC #177760,R3 ;ARE 4 LSB'S OF CHAR PART OF PAD CHAR? CMP R3,#HPAD BNE ASY200 ;NO BIC LKTABL+RINT,RCSR(R1) ; DISABLE RCV INTERRUPTS MOVB #IDLE3,DLCSTE(R2);SET LINK STATE TO IDLE 3 BR ASY050 ;GO QUEUE DIRECTOR ; ; STX RECEIVED ; ASY130: BIS #DLCF6,DLCSTS(R2);SET STX RCVD FLAG BIC #DLCF10,DLCSTS(R2) ;INSURETCPDIAG ELITE CP DIAGNOSTIC RMACRO V005B PAGE 1    PRIVATE DATA GULF ENERGY & ENVIRONMENTAL SYSTEMS FOR INTERNAL USE ONLY 1      .NLIST TTM 2     ; UPDATE 12-APR-73 CPDIAG.S15 3     ; UPDATE 03-APR-73 CPDIAG.S14 4     ; UPDATE 29-MAR-73 CPDIAG.S13 5      .TITLE CPDIAG ELITE CP DIAGNOSTIC 6     ; 7     ; PROGRAM IDENTIFICATION: CPDIAG - ELITE CU,'(1 1 1 1 1 1 E, Dy ¥,*¥    w,$ "PL~l4l0 *,PQ@@A c`&@`@@ DC11? ,,RINEACBMTD,@XS3 THE QUICK BROWN FOX JUMPED O9,fVER THE LAZY DOGS BACK 3 D,0 V; SIGN SXT24 = SXT23+SXT23L ; EOR SXT25 = SXT24+SXT24L ; - SXT26 = SXT25+SXT25L ; - ; ; ; .IF NE,.CITGO SXTBL = 3 ; DUMMY PAD SXTIDL = 4 ; LENGTH OT TERM ID IN SXT .ENDC .IF NE,.GULF SXTBL = 0 ; NO PAD SXTIDL = 7 ; LENGTH OT TERM ID IN SXT .ENDC ; ; NOTE: ; THE MOVE TO SXT2 OF TERML ID SHOULD BE CODEDW THAT EOT FLAG IS CLEARED BIC #DLCG11,DLCIND(R2);CLR LINK ERROR FLAG MOV DLCBPT(R2),DLCCPT(R2) ;INIT CHAR STORE POINTER BR ASY085 ; ; EOT PROCESSING ; ASY140: CMPB R3,#EOT ;IS CHAR EOT? JNE ASY060 ;NO, ERROR BIS #DLCF10,DLCSTS(R2);SET EOT RCVD FLAG BIC #DLCG11,DLCIND(R2);CLEAR ERROR FLAG JMP ASY020 ; ; BCC PROCESSING ; ASY150: BIT #DLCG1,DLCINXP DIAGNOSTIC. 8     ; 9     ; 10     ; USE OF SWITCHES DURING COMMUNICATION 11     ; 12     ; THE SWITCHES ARE USED FOR LIMITED CONTROL WHEN A COMMUNICATION 13     ; SEQUENCE IS STARTED. 14     ; 15     ; SW0 = 1 LINK PAUSES AFTER EACH MAJOR PRASE 16     ; RECEIPT OF MESSAGE FROM CP 17     ; TRANSMISSION OF MESSAGE TO CP 18     ; YϢ 7 wJ,B0ςw 7/::w  7xw ,h0w XĝZ77J F 7S,0|!00w & |ω,0@ D A  &DCc  ,0w @w  w  ' 7  9,1 &w \w wXw w e,&1 fw  w 7 wtwh,L1w  ; %;E e/ wh,r1;D : =w TD = w H,16 w @/ w 8 w 0w 8 7 w ,1*7 w Z ; AS SXT2+SXTBL. THE NUMBER OF CHARACTERS TO MOVE IS SXTIDL. ; .PAGE .SBTTL SYD SYSTEM DATA EQUATES ;* * * ; ; SYSTEM DATA EQUATES ; ;* * * ; ; SYDRCY = 0 ; SYSTEM RECOVERY MODE INDICATORS SYDPIT = BIT7 ; OPCON PROCESSING INPUT M/T SYDPS2 = BIT0 ; IN RECOVERY SYDDSK = BIT1 ; DISC START ; ; SYDMTF = 1 ; AUDIT TRAIL FAILURE SYDIDL = [D(R2);IS BCC1 RCVD FLAG SET? BEQ ASY170 ;NO BIT #DLCG2,DLCIND(R2);IS BCC2 RCVD FLAG SET? BEQ ASY180 ;NO BIC #177760,R3 ;ARE 4 LSB'S OF CHAR PART OF CMP R3,#HPAD ;THE PAD CHAR? BNE ASY190 ;NO, ERROR ASY160: BIC LKTABL+RINT,RCSR(R1) ; DISABLE RCV INTERRUPTS MOVB #IDLE3,DLCSTE(R2); SET ASYNC LINK STATE TO IDLE 3 CLR DLCTM1(R2) ; CLEAR TIMER \ 19     ; AT THESE TIMES SW1 CAN BE USED TO OBTAIN DUMPS OF THE DATA 20     ; 21     ; SW1 = 1 ACTIVATES DUMP PROGRAM 22     ; TYPING "L" = DUMP LOG 23     ; TYPING "M" = DUMP MESSAGE (RECEIVE ONLY) 24     ; 25     ; SW2 = 1 REPEAT TRANSMISSION OF OUTPUT MESSAGE 26     ; REPEATS FOR ACK,NAK OR TIME-OUT 27     ; 28     ; SW 15=1 GO TO]"7 7 :: X,1w7  ww (b ww , 2w A B` %,02 w| 7wrxwh,V2u E 7/~wh^ E ,|2 t/P /Iw ,-,2% w  =w $7,2  /=w e0w ,w %*,2@w ke=,3w @w fwww=w ,:3 w  rw 8Ae0w ,w y,`3|VP^1 ; SYSTEM IDLE FLAG SYDOVL = 1 ; OVERLOAD FAILURE SYDDCF = 2 ; DATA-CENTER APPL PROGRAM FA+LU-E SYDDCL = 2 ; DATA-CENTER COMMUNICATIONS FAILURE SYDOLE = 2 ; SYSTEM OVERLOAD IN EFFECT SYDINH = 3 ; TASK INHIBIT LEVEL SYDRUN = 4 ; PROGRAM RUNNING FLAG SYDRNT = 4 ; SYSTEM RUN TEST FLAG SYDQUT = 6 ;QUIESCENCE FLAGS SYDK_ JMP ASY030 ; ; ASY170: MOVB R3,DLCCRC(R2) ;SAVE BCC1 BIS #DLCG1,DLCIND(R2) ;SET BCC1 RCVD FLAG JMP ASY020 ; ; ASY180: MOVB R3,DLCCRC+1(R2) ;SAVE BCC2 BIS #DLCG2,DLCIND(R2) ;SET BCC2 RCVD FLAG ASY185: JMP ASY020 ; ; ASY190: BIS #DLCG11,DLCIND(R2);SET LINK ERROR FLAG BR ASY160 ; ; ASY200: BIC #DLCF10,DLCSTS(R2);CLEAR EOT RCVD FLAG ASY205: JMP ` ODT 29     ; 30     ; 31     ; INPUT COMMANDS FROM TTY 32     ; 33     ; TR = GO TO TRANSMIT CONDITION UPON RING 34     ; CA = SEND CANCEL 35     ; NK = SEND NAK TO ALL RECEIVED MESSAGES 36     ; CF = CLEAR ALL FLAGS 37     ; NU = NULL MESSAGE REPLY 38     ; DA = DATA MESSAGE TO BE INPUT FROM KEYBOARD 39     ; DT = SaTw D- <@7F,3/: (6 4,*w ,3 ?w "7 w 777 ,3   w %0 %7E ` x,3 1: W ֆ m7 4 y&4^4l4v44L1t64148405T2555B562282,L4l22*33323v100h7cJ+,r4D @ 7<76%.* 2,4"w %=w (w  ,4 w w ww  ,4 7mw , 5b1 = BIT0 ;QUIESCENT SYDK2 = BIT1 ;QUIESCENT PROCESS IN PROGRESS. SYDSBF = 8. ;SAVE BUFFER ADDR FOR RETENTION SYDRTV = 5 ; SYSTEM RETRIEVAL INDICATOR SYDDCI = 10. ; DATA-CENTER MAG-TAPE CONTROL ; ; 0 = TAPE NOT ASSIGNED ; ; 1 = OUTPUT TAPE ASSIGNED ; ; 2 = INPUT TAPE ASSIGNED SYDDST = c ASY060 ; CONT ; ; ASY210: BIS #DLCF8,DLCSTS(R2);SET ETX RCVD FLAG BR ASY225 ; ; ASY220: BIS #DLCF7,DLCSTS(R2);SET ETB RCVD FLAG ASY225: JMP ASY075 ; ; ; PROCESS RECEIVE ACK STATE ; ASY230: BIT #DLCF2!DLCF11,DLCSTS(R2);IS ACK OR NAK RCVD FLAG SET? BEQ ASY240 ;NO BIC #177760,R3 ;ARE 4 LSB'S OF CHAR PART OF CMP R3,#HPAD ;THE PAD CHAR? dET DATE AND TIME 40     ; EN = END INPUTS 41     ; 42     ; 43     ; EQUIVALENCES 44     ; 45  000001   NALINKS = 1 ; ONLY ONE LINK 46  000060   TYVECT = 60 47  000000   CLVECT = 0 ;ADDRESS OF VECTOR 48  000002   CLINT = 2 ;NO.OF INTERRUPTS PER 100 MS 49  000004   CLENAB = 4 ;INTERRUPT ENABLew %/w \,05  j~~;  L e/~,V5  !/B !/=L !6F,|54/4 / ;!4/ 04 / 8,5% w *  @w @,5 % % w  ww ,5 D  &,6C@AEPA&fw w /w ,:6w Hw   ` ,`6E ` V F ,6 w8jw 7-U&"E,6w f11. ; DST INDICATOR ; 0 = STANDARD TIME IN EFFECT ; 1 = DST IN EFFECT SYDCPB = 13. ; CELL POOL BUSY FLAG ; 0 = POOL AVAILABLE ; 1 = POOL IN USE SYDEPB = 14. ; ELEMENT POOL BUSY FLAG ; 0 = POOL AVAIL ; 1 = POOL IN USE SYDSGL = 16. g BNE ASY240 ; NO BIC LKTABL+RINT,RCSR(R1) ; DISABLE RCV INTERRUPTS ASY235: ASY237: MOVB #IDLE2,DLCSTE(R2);SET STATE TO IDLE 2 CLR DLCTM1(R2) ; CLEAR TIMER JMP ASY050 ; ; ASY240: CMPB R3,#ACK ;IS CHAR AN ACK? BNE ASY250 ;NO BIS #DLCF2,DLCSTS(R2);SET ACK RCVD FLAG BIC #DLCG11,DLCIND(R2);CLR LINK ERROR FLAG JMP ASY030 ; ; ASY250: hE BIT 50  000006   CLREG = 6 ;ADDRESS OF STATUS REGISTER 51  001130   ALBSIZ = 600. ;NO OF INTERRUPTS TO STORE FOR PRINTING 52     ; EQUATES FOR BCC VALUES IN USE 53  000200   BCCDN = 200 ;DONE BIT (BCC-KG11) CPDIAG ELITE CP DIAGNOSTIC RMACRO V005B PAGE 1+    PRIVATE DATA GULF ENERGY & ENVIRONMENTAL SYSTEMS FOR INTERNAL USE ONLY 54  000000   Bib7DE2\,6  p/w V׭,6ȷU$,77w @ŝŝ,D7wvt wjt!/ ,j7w w J::w @e>%ĕt&,7/72 //w Bw .e,7` w ;w ĝ/w wT,7/f&f ,84/ 0/ !,(8@Ǚ>ǔ74740w r&,N8$5j ; SINGLE MODE OPERATION ; 1 BYTE SYDDTM = 17. ; DATE/TIME FLAGS (1 BYTE) SYDDTI = BIT0 ; DATE IN SYDTMI = BIT1 ; TIME IN SYDED1 = 18. ; EOD FLAG ; 1 WORD SYDMTD = 20. ; M/T DUMP FLAG (1 BYTE) ; BIT 0 = DUMP DCOUT TAPE ; BIT 1 = DUMP DCIN TAPE SYDL = k CMPB R3,#NAK ;IS CHAR A NAK? BNE ASY260 ;NO BIS #DLCF11,DLCSTS(R2);SET NAK RCVD FLAG BR ASY205 ; ASY260: BIC #DLCF2!DLCF11,DLCSTS(R2) ; CLEAR ACK & NAK RECVD FLAGS BR ASY205 .PAGE ;* * * ; ASYNCX - ENTRY POINT FOR XMT INTERRUPTS ON THE ASYNC LINK ; ; ASYNCX: JSR PC,SAVEX ; JSR PC,ENTSVC ;DO ENTRY SERVICE ASY400: BIT #READY,DlCCCON = 0 ;WORD TO CLEAR(AND SET) 55  000002   BCCCLR = 2 ;ADDRESS OF REG TO RECEIVE BCCCON 56  000004   BCCRT = 4 ;ADDRESS OF ROUTINE TO WAIT COMPLETION 57  000006   BCCCH = 6 ;ADDRESS OF REG IN WHICH TO PLACE CHAR 58  000010   BCCRT2 = 8. ;ADDRESS OF ROUTINE TO PICK UP RESULT 59  174774   BCCHI = 174774 ;MSB OF GULF BCC RESULT Rmg bDžV ,t8 < 0/ !%&,8 &e N @ e0w &  ,8 / 7,8ƅ~E w Q, 9  w ׭Dƕ Q,29^w Uw /wr n,X9j  7,/XR/-P D,~9w@ 78 %(! G,9 %??::,9:w N%w 77w ,9Z e0w n100. ; LENGTH OF RESERVED AREA ; SYDF1 = BIT7 ; SEE ABOVE SYDF2 = BIT6 ; SYDF3 = BIT5 ; SYDG1 = BIT0 ; SYDG2 = BIT1 ; SYDG3 = BIT2 ; SYDH1 = BIT0 ; SYDH2 = BIT1 ; SYDJ1 = BIT0 ; ; ; SYSTEM VARIABLES ; SYDDEF = 0 ; DEFINE FILE RUN FLAG ; 0oLCIF2(R2);TRANSMITTER READY? BEQ ASY530 ;NO, INVALID INTERRUPT TSTB DLCPHS(R2) ;PHASE CONDITION SET? BHI ASY590 ;YES TSTB DLCXMR(R2) ;REPEAT FLAG SET? JNE ASY700 ; YES - REESTABLISH PHASE COND CMPB DLCSTE(R2),#XMTDATA;IS STATE XMT DATA BEQ ASY500 ;YES CMPB #CANCL1,DLCSTE(R2) ; IS STATE CANCEL 1 ? BEQ ASY610 ;CANCEL 1 STATE CMpEGISTER 60  174776   BCCLO = 174776 ;LSB OF GULF BCC RESULT REGISTER 61  170702   BCCRR = 170702 ;KG11 RESULT REGISTER 62  170700   BCCKST = 770700 ;KG11 STATUS REGISTER 63  177560   TKS = 177560 64  177562   TKB = 177562 65  177564   TPS = 177564 66  177566   TPB = 177566 67  000000   DCFLAG = 0 ; INDICATES D,w w ,:p C,<:å å$ נA  s,b:  e` : ,: Ëנe ee e ѐ : @(,: ODT-11R V003A :BEO,: *;/\ $G _<^,OWEBP@>SRC-FI!XASPM;CFRB;,//r = EINIT CAN RUN ; 1 = EINIT CAN NOT RUN SYDHAM = 1 ; CORE ONLY ROS COPY ; 0 = CORE ONLY ROS NOT ON DISC ; 1 = CORE ONLY ROS ON DISC .PAGE .SBTTL TET TERMINAL ERROR TABLE ;* * * ; ; EQUATES FOR TERMINAL ERROR TABLE ; ;* * * ; ; TETECT = 0 ; COUNT OF ERRORS ; 1 BYTE (0-255) ; sPB #SNDACK,DLCSTE(R2); IS STATE SEND ACK ? BEQ ASY600 ; BR ASY530 ;INVALID STATE, IGNORE INTERRUPT ; ; ; XMT DATA STATE ; ASY500: BIT #DLCF7!DLCF8,DLCSTS(R2);HAS ETX OR ETB BEEN SENT? BNE ASY540 ;YES ASY505: MOV DLCCPT(R2),R3 ;GET ADDR OF NEXT CHAR IN BUF CMPB (R3),#ETX ;IS CHAR ETX? BEQ ASY560 ;YES CMPB (R3),#ETB ;IS CHAR ETB? tC11 LINK 68  000001   DLFLAG = 1 ; INDICATES DL11-E LINK 69  000002   DLTRDY = 2 ; DL11-E DATA TERM. READY 70  000040   DENABL = 40 ; DL11-E DATA SET ENABLE 71  010000   DLECDT = 10000 ; DL11-E CARRIER DETECT 72  020000   DLECLS = 20000 ; DL11-E CLEAR TO SEND 73  000004   REQSNE = 4 ; DL11-E REQUEST TO SEND 74  000000S PTRUERNT IESICRVSEE INUTROS HI T. SEPOUR P ;    4 82 * ;     23 8 * R LENDHAK INALAT DUSNOROCHYNAS- C YNAS N.IOATICIFNTDE IAMGRRO P ;    2 82 * ;     21 8 * C N Y S A ;    0 82 * ;  v ; TETMCT = TETECT+1 ; COUNT OF MESSAGE TRANSFERS ATTEMPTED ; ; 1 BYTE (0-255) ; RESET TETECT & TETMCT & TETCNT ; IF ANY = 255 TETCNT = TETMCT+1 ; CONNECT COUNT ; 1 BYTE TETL = TETCNT+2 ; LENGTH OF LIST .PAGE .SBTTL THD TERMINAL TRANSMITTED HEADER ;* * *w BEQ ASY580 ;YES ASY520: INC DLCCPT(R2) ; ADVANCE CHAR PTR ASY522: MOVB (R3),XBUF(R1) ; XMT A CHAR BIS LKTABL+XINT,XCSR(R1) ; ENABLE TRANSMIT INT. CMP #ALBST,MSGE ; CHECK IF AT START OF BUFFER BNE 10$ ; MOVB (R3),ALBEND-4 CLRB ALBEND-3 BR 20$ ; 10$: MOV MSGE,R4 ; MOVB (R3),-4(R4) CLRB -3(R4) 20$:x   ZENTRY = 0 ; ZERO ENTRY 75  040000   DLRING = 40000 ; DL11-E RING BIT 76     ; 77     ; DISPLACEMENTS IN LINK CONSTANTS TABLE 78     ; 79  000000   DLVECT = 0 ; INTERRUPT VECTOR 80  000002   DLREGS = DLVECT+2 ; HARDWARE REGISTERS 81  000004   IRCSR = DLREGS+2 ; RCSR INITIAL CONTENTS 82  000006   IXCSR = IRCSR+2   19 8 * **********************************************************************;    8 81 LYONE USL NAERNT IOR F MSTEYS SALNTMEONIRNV E &GYERENF UL G TADAE ATIVPR    PETYLETE 10E AG PB 05V0O CRMAR ICSTNOAGDIP CTELI EG IAPDC GEPA .      7 81 0 RDWO .: TEDAJ   000000 203400 16 8 C P TS R    7 200006 410305 81 $:10    163400 14 8 Y ARIN BTOT ERNVCO ; ,3TEDA,JNTOU C1 ABNV C     4 400303 81 z ; ; TERMINAL TRANSMITTED HEADER EQUATES ; ;* * * ; ; ; THDRTE = 2 ; TERMINAL ROUTING CODE (5 CHAR) THDSTS = THDRTE+6 ; ASR STATUS (1 BYTE) ; BIT 1, 0 = ON LINE (ASR) ; 1 = OFF LINE (ASR) THDACT = THDSTS+2 ; MESSAGE ACTION CODE (1 BYTE) ; 0 = NULL MESSAGE { ASY530: JSR PC,RESTOX ; RTI ; ; ; ETX/ETB SENT PROCESSING ; ASY540: BIC LKTABL+XENRSN,XCSR(R1) ; DISABLE XMT INT., DROP RTS BIC LKTABL+RSEND,RCSR(R1) BIT #DLCG6,DLCIND(R2);DID WE XMT A NULL MSG? BNE ASY235 ;YES, DON'T WAIT FOR ACK! MOVB #RCVACK,DLCSTE(R2);SET STATE TO RCV ACK BIS LKTABL+IRCSR,RCSR(R1) ; ENABLE RCV INT. JMP ASY020 | ; XCSR INITIAL CONTENTS 83  000010   XMTX = IXCSR+2 ; READY TO TRANSMIT 84  000012   DTREDY = XMTX+2 ; DATA TERMINAL READY 85  000014   XMTR = DTREDY+2 ; DS ENABLE AND RTS 86  000016   XINT = XMTR+2 ; XMT ENABLE 87  000020   RINT = XINT+2 ; RCV ENABLE 88  000022   SGNMSK = RINT+2 ; MASK FOR SIGN BIT IN RBUF 89  000024   XE +2NTOU,CR4 VBMO  347317 670411 003400 12 8 & E AT;D I TY,TPC R JS  646417 674700 743300 11 8 1 T+UNCO4, R B OV M   3 347717 461010 370300 81 YITTC, P SR J   4 477617 760404 360309 80 ANLIJUT GE ; T UNCO4, R B OV M   2 357717 461010 360308 80 YITTC, P SR J   4 507617 760404 350307 80 TEDA J LR C   4 040007 060500 350306 80 STTIDAN-IEAT D RDWO .    1 010006 34~ ; BIT 1 = AUTOMATIC TRANSACTION ; BIT 2 = MANUAL TRANSACTION ; BIT 3 = FACILITY ENTRY ; BIT 4 = P/T TRAIL TRANSACTION THDTIM = THDACT+2 ; TIME (4 DIGT) THDDAT = THDTIM+5 ; JULIAN DAY (3 DIGT) THDMSN = THDDAT+3 ; MESSAGE SEQ.NO. (3 DIGT) THDL = 31 ; LENGTH OF HEADER ; ;  ; ; ; ETX PROCESSING ; ASY560: BIS #DLCF8,DLCSTS(R2);SET ETX SENT FLAG ASY570: MOVB #5,DLCPHS(R2) ; SET PHASE COUNTER TO 5 MOV #DLCCRC,DLCPHP(R2);SET CURRENT FORMAT CHAR POINTER ADD R2,DLCPHP(R2) BR ASY522 ; GO XMT CHAR ; ; ETB PROCESSING ; ASY580: BIS #DLCF7,DLCSTS(R2);SET ETB SENT FLAG BR ASY570 ; ; ; PROCESS PHASE CONDITION ; ASY590: MOV NRSN = SGNMSK+2 ; XMT ENABLE AND RTS 90  000026   DLIND = XENRSN+2 ; DATA LINK FLAG 91  000030   RNGBIT = DLIND+2 ; RING BIT IN RCSR 92  000032   RSEND = RNGBIT+2 ; REQUEST TO SEND 93     ; 94     ; INITIALIZE THE ROUTINE 95     ; 96 000000    CPDIAG: 97 000000 000005    RESET 98 000002 012706 014000'   MOV #STACK,SP ;SE0305 80 STTIDA D OR.W   4'350004 340304 80 NTRI,PR5 R JS  706517 674500 403300 03 8 2 E,UTIN,MNTOU C1 ABNV C     6 320302 80 TENUMI R CL  206417 675000 223300 01 8 1 T+UNCO4, R B OV M   5 417717 461016 310300 80 YITTC, P SR J   6 547617 760402 310309 79 RYNABIO T ; T UNCO4, R B OV M   4 427717 461016 300308 79 YITTC, P SR J   6 557617 760402 300307 79 RTVE .PAGE .SBTTL TRM TERMINAL DESCRIPTOR ;* * * ; ; EQUATES FOR TERMINAL DESCRIPTOR ; ;* * * ; ; THE TERMINAL DESCRIPTOR IS PART OF THE TERMINAL PERSONALITY ; TABLE. CONTAINS INFORMATION ABOUT THE TERMINAL AND DOCUMENT ; PREPERATION. ; ; ; TERMINAL DATA ; TRMID = 0 ; TERMINAL ID ; ; 7 DIGITS TRMDST = 8. ; DAYLIGHT SAVINGS INDICATOR ;  DLCPHP(R2),R3 ; GET ADDR OF CURRENT FORMAT CHAR DECB DLCPHS(R2) ;DECR PHASE COUNTER INC DLCPHP(R2) ;INCR PHASE BUF CHAR POINTER BR ASY522 ; GO RETURN ; ; ; SEND ACK STATE ; ASY600: BIC LKTABL+XENRSN,XCSR(R1) ; DISABLE XMT INT., DROP RTS BIC LKTABL+RSEND,RCSR(R1) MOVB #RCVDAT,DLCSTE(R2);ADVANCE STATE TO RCV DATA (EOT) BIS LKTABL+RINT,RCSR(R1) ; ENABLE RCV INT. BR T STACK POINTER 99 000006 012701 000003   MOV #3,R1 ; INIT INTR VECTORS 100 000012 005000    CLR R0 ; 101 000014 012720 007766'  12$: MOV #DLAR45,(R0)+ ; 102 000020 012720 000340   MOV #340,(R0)+ ; 103 000024 077105    SOB R1,12$ ; 104 000026 022020    CMP (R0)+,(R0)+ ; INIT RMAINDER OF VECTORS 105 000030 012701 000075   MOV ON;C ,2URHOT,UNCO B1VACN    703200 96 7 R OU H LR C   4 457617 060504 260305 79 &IN ; 1 T+UNCO4, R B OV M   3 457717 461010 260304 79 YITTC, P SR J   4 607617 760404 250303 79 METIT GE ; T UNCO4, R B OV M   2 467717 461010 250302 79 ES;Y $ 10 Q BE   631400 463200 91 7 ? CR ; R45,#1 B MP C   5 010004 702212 240300 79 YITTC, P SR J   2 627617 7604 ; 1 BYTE ; ; 1 = DAYLIGHT SAVINGS TIME ; ; 2 = NOT DST ; ; TRMEDY = 9. ; YEAR FOR EOD & EOM TRANSACTION ; ; 1 BYTE (1-99) ; ; TRMNT = 11. ; NOT USED TRMCPX = 12. ; NUMBER OF 1440 CENTER ; ; 1 BYTE (1-11) ;  ASY530 ;GO RETURN ; ; ; CANCEL 1 STATE ; ASY610: BIC LKTABL+RINT,RCSR(R1) ; DISABLE RCV AND XMT INTS. BIC LKTABL+XINT,XCSR(R1) ; MOVB #CANCL2,DLCSTE(R2);SET STATE TO CANCEL 2 JMP ASY530 ; .PAGE ; ; RESET PHASE CONDITIONS ; ASY700: MOV DLCRST(R2),DLCPHP(R2) ;SET PHASE POINTER TO DATA MOVB DLCRCT(R2),DLCPHS(R2) ;SET PHASE COUNTER FOR CHAR JMP ASY590  #75,R1 ; 106 000034    20$: CPDIAG ELITE CP DIAGNOSTIC RMACRO V005B PAGE 1+    PRIVATE DATA GULF ENERGY & ENVIRONMENTAL SYSTEMS FOR INTERNAL USE ONLY 107 000034 012720 007766'   MOV #DLAR45,(R0)+ 108 000040 012720 000340   MOV #340,(R0)+ ; 109 000044 077105    SOB R1,20$ ; 110 000046 004767 002236   JSR PC,TTYSET ;TTY 111     ; 06 230309 78 STMITIN-IEIM T RDWO .    110000 343200 88 7 T ISIM T RDWO .    ' 420300 323200 87 7 T INPR5, R SR J   2 707617 560406 220306 78 T:DAIMT   6 220305 78 ;    4 78 UTNP IMETI& E AT D ;    3 78 ;    2 78 PC S RT   070200 243200 81 7 : 0$1   4 220300 78 YOTTC, P SR J   4 677617 760400 220309 77 R40,6077#1 IC B   0 607714 704204 210308 77  ; TRMTMZ = 13. ; TIME ZONE ; ; 1 BYTE ; ; 1 = PACIFIC ; ; 2 = MOUNTAIN ; ; 3 = CENTRAL ; ; 4 = EASTERN ; 5 = ATLANTIC ; ; TRMEOD = 14. ; TIME FOR EOD ; ;  ; CONT ; ;* * * ; ; ENTSYC - ENTRY SERVICE ROUTINE ; ; CALLING SEQUENCE - ; ; JSR PC,ENTSVC ; ; CONDITIONS UPON EXIT - ; ; R0 CONTAINS THE DEVICE NUMBER ; R1 CONTAINS ADDRESS OF DEVICE REGISTER (RCSR) ; R2 CONTAINS ADDRESS OF DEVICE TABLE ; ; RCSR, XCSR AND RBUF HAVE BEEN ENTERED TO ; DEVICE TABLE ; ; ENTSVC: CLR R0  112 000052 004767 001252   JSR PC,CKINIT ;CLOCK 113     ; 114 000056 004767 001666   JSR PC,BCCIT ;INIT FOR BCC DEVICE 115     ; 116 000062 004767 003334   JSR PC,ASYNCI ;INIT FOR ASYNC LINK 117     ; 118     ; 119 000066 112767 000003 011216  MOVB #ETX,CNDETX 120 000074 112767 000003 011221  MOVB #ETX,NULETX 121     ; 122 000102  R4B,TK VBMO  627517 046711 103200 77 7 $ 10 L BP   060010 063200 76 7 S TK TBTS  607517 675710 023200 75 7 4 R LR C    4 000500 200304 77 Q:INTYT   0 200303 77 LYONE USL NAERNT IOR F MSTEYS SALNTMEONIRNV E &GYERENF UL G TADAE ATIVPR    PETYLETE 9GEPA 5B00 VROACRM C TIOSGNIA DCPE ITEL AGDICP E AG.P     72 7 C P TS R    7 200006 170301 77 OTPRDMC,{ 2 BYTES (0:15-23:45) ; ; TRMDLY = 16. ; NOT USED TRMEOM = 17. ; DAY FOR EOM TRANSACTION ; ; 1 BYTE ; ; 1 = FIRST DAY OF MONTH ; ; 2 = LAST DAY OF MONTH TRMFLN = 20. ; FOLIO NUMBER ; ; 1 BYTE (1-31) ; ; TRMBFL = 21.  ; JSR PC,GETPTR ;GET DEVICE TABLE AND REG ADDRESSES MOV RCSR(R1),DLCIF1(R2) ; GET RCSR MOV XCSR(R1),DLCIF2(R2) ;GET XCSR MOV RBUF(R1),DLCIF3(R2) ;GET RBUF MOV MSGE,R3 ; GET ROTATING BUF PTR MOV DLCIF1(R2),(R3)+;RCSR TO ROTATING BUFFER ********* MOV DLCIF2(R2),(R3)+; MOV DLCIF3(R2),(R3)+;RBUF TO ROTATING BUFFER ******** MOV TIMEMS,(R3012767 015054' 010622  MOV #ALBST,MSGS ; CURRENT RCV 123 000110 012767 015054' 010616  MOV #ALBST,MSGE ; INTERR DATA AREA 124 000116 005067 010614   CLR MSGFLG ;CLEAR COUNT OF INTERRUPTS 125     ; 126 000122 012701 015054'   MOV #ALBST,R1 ; INIT 127 000126 012700 011300   MOV #ALBEND-ALBST,R0 ; TO 128 000132 112721 000377  2$: MOVB #377,(R1)+ ; MINUS P SR J   4 547717 760402 170300 77 $:30    723100 69 7 C P TS R    7 200000 170308 76 CVPRDMC, P SR J   0 247717 760404 160307 76 $:20    643100 66 7 C P TS R    7 200002 160305 76 ES;Y $ 30 Q BE   041400 603100 64 7 ? MPDUG LO ; R4L,#' B MP C   4 110004 702214 150303 76 ES;Y $ 20 Q BE   041400 523100 62 7 ? MPDUG MS ; R4M,w ; NOT USED TRMEDM = 22. ; DAY FOR NEXT EOD ; ; 1 WORD (1-366) ; ; TRMEMM = 24. ; DAY FOR NEXT EOM REPORT ; ; 1 WORD (1-366) ; ; TRMRTE = 26. ; TERMINAL ROUTING CODE ; ; 5 CHARACTERS TRMAED = 31. ; PREPARE EOD ON PASS 2 )+ ; SAVE TIME OF INTERRUPT INC MSGFLG ;COUNT INTERRUPTS CMP R3,#ALBEND ;ARE WE AT END OF ROTATING BUFFER? ;******* BHIS ENT010 ;YES ;******** MOV R3,MSGE ; UPDATE POINTER 16$: RTS PC ;RETURN ENT010: ;******** MOV #ALBST,MSGE ; SET PTR TO START OF BUF RTS PC  129 000136 077003    SOB R0,2$ ; ONE 130 000140 112767 000003 013166  MOVB #ETX,RCVBUF ; RESET BUFFER 131 000146 000167 006154   JMP DLDIRA 132     ; 133      .PAGE CPDIAG ELITE CP DIAGNOSTIC RMACRO V005B PAGE 2    PRIVATE DATA GULF ENERGY & ENVIRONMENTAL SYSTEMS FOR INTERNAL USE ONLY 134     ; 135     ; 136     ; #' B MP C   5 110004 70221 463100 61 7 R HA CET;G I TY,TPC R JS  166717 674700 423100 60 7 : PSUMD   2 140309 75 ;    8 75 OLTRON CPSUM D ;    7 75 ;    6 75 LYONE USL NAERNT IOR F MSTEYS SALNTMEONIRNV E &GYERENF UL G TADAE ATIVPR    PETYLETE 8GEPA 5B00 VROACRM C TIOSGNIA DCPE ITEL AGDICP GEPA .      5 75 0 RDWO .G:FLMPD  0 000000 140304 75 PC S RT s ; 1 BYTE ; ; TRMACC = 32. ; NOT USED TRMEFY = 34. ; EFFECTIVE YEAR ; 1 BYTE (0-99) TRMEFR = 35. ; EFFECTIVE DATE EXPIRATION REPORTED ; 1 BYTE ; 0 = EXPIRATION NOT REPORTED ; 1 = EXPIRATION REPORTED TRMEFD = 36. ; EFFECT ;RETURN ;******** .PAGE ;* * * ; ; GETPTR - SUBROUTINE TO GET DEVICE TABLE AND DEVICE REGISTER POINTERS ; ; CONDITIONS UPON EXIT - ; ; R1 CONTAINS ADDRESS OF DEVICE REGISTERS (RCSR) ; R2 CONTAINS ADDRESS OF DEVICE TABLE ; ; GETPTR: MOV LKTABL+DLREGS,R1 MOV #DLCST,R2 RTS PC ;RETURN .PAGE .SBTTL ASB ASC INCOMING PARAMETERS 137     ; 138 000152    PARIN: 139 000152 004767 006004   JSR PC,SAVEX 140 000156 005767 003236   TST JDATE 141 000162 001002    BNE PARA10 142 000164 004767 003036   JSR PC,TIMDAT ;GET DATE & TIME 143 000170    PARA10: 144 000170 004767 001100   JSR PC,CRLF 145 000174 004567 001734   JSR R5,PRINT 146 000200 000326'    070200 363100 53 7 S YE ; OXSTREC, P SR J   4 040307 760402 130302 75 LGPFDM R CL $:60  060000 675000 263100 51 7 O ;N $ 10 E BN   271300 243100 50 7 Y NL OSE UALRNTEINR FO S EMSTSYL TAENNMROVIEN& Y RGNE ELFGU A AT DTEVARI P   E YPETEL T+ 7GEPA 5B00 VROACRM C TIOSGNIA DCPE ITEL AGDICP ? NEDO ; R5E,SG M MP C   0 610505 702600 120309 74 0$ 6 LT B    3 oIVE DAY ; 1 WORD (1-366) TRMPPD = 90. ; NEW PRODUCT NO. ; ; 1 BYTE (1-99) ; ; TRMGRV = 91. ; GRAVITY GROUP ; ; 1 BYTE (1-8) ; ; TRMGPL = 16. ; NUMBER OF PROD/GRAV ENTRIES ; ; ; .PAGE ; ; ; II TO BINARY ; ;* * * ; ; ; PROGRAM NAME - ABSCNV , ABDCNV -ASCII-TO-BINARY SINGLE/DOUBLE PRECISION ; ; PURPOSE - CONVERT ASCII STRING TO SINGLE (ABSCNV) OR DOUBLE (ABDCNV) ; PRECISION BINARY VALUES. ; ; REQUIREMENTS - STRING MUST CONTAIN NUMBERS ONLY (0-9) ; AN ERROR WILL BE RETURNED IF A NON-NUMERIC CHAR IS ; ENCOUNTERED,OR IF THE STRING EXCEEDS THE BINARY SPACE AVAILABLE ; ( SINGLE = 32,767 ; DOUB  .WORD ETCMST 147 000202 000013    .WORD ETCMEN-ETCMST 148 000204 004767 001654   JSR PC,TTYI ;READ 149 000210 110400    MOVB R4,R0 150 000212 004767 001646   JSR PC,TTYI 151 000216 000304    SWAB R4 152 000220 050400    BIS R4,R0 ;TWO CHARACTERS 153 000222 005002    CLR R2 154 000224 000401    BR 15$ 155 00 ND.E RADIDLF OND E ; : NDAEDL ; NDBEAL = . ; . Z+SILB*A8. = NDBEAL ;  INVOICE DATA ; ; .IF NE,.GULF TRMSL = 25. ; SHIPPED FROM LINE LENGTH TRMFL = 21. ; FRT BILL LINE LENGTH TRMRLN = 2 ; # OF LINES IN FRT BILL TRMLID = 7 ; TERMINAL ID LENGTH ; ; ; TRMSHD = 0 ; SHIPPED FROM DESCRIPTION ; ; 25 CHAR ; ; TRMPMI = 25. ; PLANT MGRS INITIALS ; LE = 2,147,483,647 ). ; ; CALLING SEQUENCE FOR B0TH ROUTINES ; - ; JSR R5,NAME TRANSFER CONTROL ; .WORD FROM ADDRESS OF ASCII STRING ; .WORD TO ADDRESS OF BINARY STRING ; .WORD CNT NO BYTES IN ASCII STRING ; - ; ; ; ON AN ERROR THE "N" COND CODE IS SET FOR THE USER. ; ERRORS ARE : ; 1. NON-NUMERIC DATA ; 2. CON0226    10$: 156 000226 005722    TST (R2)+ 157 000230 022762 177777 000304' 15$: CMP #-1,CMDTAB(R2) ; TABLE END ? 158 000236 001405    BEQ 20$ 159 000240 020062 000304'   CMP R0,CMDTAB(R2) 160 000244 001370    BNE 10$ 161 000246 000172 000264'   JMP @JPTAB(R2) 162 000252    20$: 163 000252 012704 000077   MOV #77,R4 164 000256 004767 001636 . = UFTBRO ; T BSAL = . 0.30.+ = T BSAL ; 6.25.+ = . ; . = UFTBPR ; K ACST = . ; 00+30.10.+ = K ACST ; UFVBRC = . . 3010.+ = UFVBRC ; : UFTBXM X STX,ST E YT.B ; E AG.P N VE.E ; X ET E YT.B: TXLENU ; // IISC.A ; // IISC.A ; / / g ; 3 CHAR ; ; TRMSHN = 29. ; SHIPPED FROM NUMERIC CODE ; ; 8 DIGITS ; ; TRMPLD = 36. ; NORMAL SUPPLY, PL DISPOSAL ; ; 7 DIGITS ; ; TRMPLR = 44. ; NORMAL SUPPLY, PL RECEIPTS ; ; 7 DIGITS ; VERTED VALUE TOO GREAT FOR CONVERT ; OVERFLOW OCCURRED ; ; USAGE - THE CONVERTED STRING WILL BE STORED IN THE LOCATION SPECIFIED ; BY 'TO'. ; --NOTE--FOR DOUBLE PRECISION, THIS ROUTINE PLACES THE HIGH ORDER WORD ; IN THE LOWER ADDRESS. ; ; R0 POINTS THROUGH ASCII STRING ; R1 CONTAINS NO CHAR IN STRING ; R4 - R5 USED TO MULTIPLY BY 10. ; ; PROGRAMMER - 64 ; DATE - 8/17/72 ; REVISION - 0 ; ; ;   JSR PC,TTYO 165 000262 000742    BR PARA10 166     ; 167     ; 168     ; 169 000264    JPTAB: 170 000264 000402'    .WORD ENDINP 171 000266 000414'    .WORD TRANSM 172 000270 000436'    .WORD CANCEL 173 000272 000464'    .WORD NACKN 174 000274 000512'    .WORD CLEARF 175 000276 000520'    .WORD NULLMS 176 000300 IISC.A ; / /3 IISC.A : UFLBNU ; ; X ET E YT.B: TXDECN F ,LLFF,,LCR E YT.B K/AC BGSDOY AZ LHE TEROVD PEUM JOX FWNRO BCKUI QHE/T IISC.A N MI; // IISC.A URHO; // IISC.A Y DA; / / IISC.A SR A &RO; / /3 IISC.A : UFDBCN ; ; ; N VE.E TADAD EN;S / /S IISC.A: 12MSDL UT-OMETIT XM;; / /X IISC.A: 11MSDL D EA;D c; TRMFB1 = 52. ; FRT BILL MAIL TO ADDR, LINE 1 ; ; 25 CHAR ; ; TRMFB2 = 73. ; FRT BILL MAIL TO ADDR, LINE 2 ; ; 25 CHAR ; ; .ENDC ; ; .PAGE ; ; .IF NE,.CITGO ; ; TRMSL = 17. ; SHIPPED FROM LENGTH TRMFL = 25. ; REMIT TO LINE LENGTH TRMRLN; ABSCNV: JSR PC,ABSCOM ; CONVERT VALUE TST ASBZ10 ; ANY BITS IN HIGH ORDER WORD ? BEQ 2$ ; NO - BIS #1,ASBZ14 ; YES - SET ERROR 2$: MOV ASBZ11,@(R5)+ ; MOVE TO USER ABSA10: TST (R5)+ ; ADVANCE PAST COUNT CCC ; CLEAR FLAGS BIT #BIT0,ASBZ14 ; ERROR OCCUR ? BEQ 2$ ; NO - SEN ; YES - SET 000574'    .WORD DATAMS 177 000302 001264'    .WORD DATTIM 178     ; 179     ; 180 000304    CMDTAB: 181 000304  105  116   .ASCII /EN/ 182 000306  124  122   .ASCII /TR/ 183 000310  103  101   .ASCII /CA/ 184 000312  116  113   .ASCII /NK/ 185 000314  103  106   .ASCII /CF/ 186 000316  116  125   .ASCII /NU/ / /D IISC.A: 10MSDL UT-OMETIV EC;R / /T IISC.A: 09MSDL D CV RAK;N / /M IISC.A: 08MSDL D CV RCK;A / /B IISC.A: 07MSDL T EN SAN;C / /C IISC.A: 06MSDL T EN SCK;A / /A IISC.A: 05MSDL D CV ROT;E / /E IISC.A: 04MSDL T EN SAK;N / /N IISC.A: 03MSDL D CV RSG;M / /I IISC.A: 02MSDL VDRCG IN R -LFR,;C / /R IISC.A: 01MSDL ; TY TTOG LOG MS ; ; ; ; R ND.E 0 E YT.B _ = 3 ; # OF REMIT TO LINES TRMLID = 7 ; TERMINAL ID FIELD LENGTH ; TRMSHD = 0 ; SHIPPED FROM DESCRIPTION TRMFB1 = TRMSHD+TRMSL ; REMIT TRMFB2 = TRMFB1+TRMFL ; TO TRMFB3 = TRMFB2+TRMFL ; ADDRESS TRMEND = TRMFB3+TRMFL ; ; ; ; .ENDC .PAGE .SBTTL TYP TYPE I CELL ;* * * ; ; EQUATES FOR TYPE I CELL ; ;* * * ; ; ; TYPCH1 = 0 NEGATIVE FLAG COND CODE 2$: RTS R5 ; RETURN ; ABDCNV: JSR PC,ABSCOM ; CONVERT VALUE MOV R2,-(SP) ; SAVE R2 MOV (R5)+,R2 ; MOVE BINARY MOV ASBZ10,(R2) ; VALUE MOV ASBZ11,2(R2) ; TO USER MOV (SP)+,R2 ; RESTORE R2 BR ABSA10 ; CONT, TO EXIT ; ABSCOM: JSR PC,SAVEX ; SAVE REGS CLR ASBZ14 ; CLEAR ENTRANCE FLAG CPDIAG ELITE CP DIAGNOSTIC RMACRO V005B PAGE 2+    PRIVATE DATA GULF ENERGY & ENVIRONMENTAL SYSTEMS FOR INTERNAL USE ONLY 187 000320  104  101   .ASCII /DA/ 188 000322  104  124   .ASCII /DT/ 189 000324 177777    .WORD -1 190 000326    ETCMST: 191 000326  105  116  124  .ASCII /ENTER CMD/<15><12> 000331  105  122  040 000334  103  115  104 00033S ONTIDIADW NE; . 20 T EP.R -1 D OR.W R ND.E 0 E YT.B LEAB TALINIGOR; CLDL T EP.R T:CSDL N VE.E : ESQUEN > LF>/BLTADCL-ABLT<12>/TIME - / 000345  111  115  105 000350  040  055  040 198 000353    TIMIEN: 199      .EVEN 200     ; 201     ; 202 000354    DATIST: 203 000354  015  012  104  .ASCII <15><12>/DATE - /TS RND ALEABENT XM; BLNAXE D OR.W F BU RINT BIN IG SOR FSKMA; 0 4077 D OR.W LEABENV RC; L ABEN!DBLNARE D OR.W LEABENT XM; BLNAXE D OR.W DYEA RM.ER TS,RTD ANE BLNA EDS; DYTRDLE!SNEQ!RBLNADE D OR.W Y ADREL NAMIER TTADA; DYTRDL D OR.W T MINSRA TTOY ADRE; RYNTZE D OR.W S NTTEON CALTINI ISRXC; RYNTZE D OR.W S NTTEON CALTINI ISRRC; L ABEN!DBLNARE D OR.W RSTEW+2 ; INPUT QUEUE NUMBER * TYPRVN = TYPQUN+2 ; RETRIEVAL NUMBER * TYPMSN = TYPRVN+2 ; INPUT MSG SEQ NO * TYPINV = TYPMSN+2 ; INVOICE NUMBER * TYPINV = TYPMSN+2 ; INVOICE NUMBER TYPTAP = TYPINV+4 ; TAPE NUMBER TYPST = TYPTAP+6 ; START OF XMT BLOCK 2 TYPSTW = TYPST+2 ; BYTE OF CELL IN TYPST TYPEN = TYPSTW+2 ; END OF BLOCK B ; IS VALUE BLE 6$ ; 060 OR GREATER ? BIS #1,ASBZ14 ; NO - ERROR 6$: CMP #71,R4 ; IS VALUE BGE 7$ ; 071 OR LESS ? BIS #1,ASBZ14 ; NO - ERROR 7$: BIS #BIT1,ASBZ14 ; SET NUMERIC FLAG 8$: BIC #177760,R4 ; AND LIMIT IT MOV R4,ASBZ13 ; MOVE TO CLR ASBZ12 ; WORK AREA ADDD 000357  101  124  105 000362  040  055  040 204 000365    DATIEN: 205      .EVEN 206 000366    BCCPST: 207 000366  102  103  103  .ASCII /BCC=/ 000371  075 208 000372    BCCPRT: .BLKB 6 209 000400  015  012   .ASCII <15><12> 210 000402    BCCPEN: 211      .EVEN 212      .PAGE CPDIAG ELITE CP DIAGNOSTIC RMACRO ISEG RREWARDHA; 305617 D OR.W ORCTVET UPRRTEIN; 0 34 D OR.W S NTTANSCOK IN L-E11DL; : BLTADL D EN STOT ESQURE; RYNTZE D OR.W SRRCN IIT BNGRI; NGRI D OR.W AGFLK IN LTADA; AGFLDC D OR.W TS RND ALEABENT XM; D SNEQ!RBLNAXE D OR.W F BU RINT BIN IG SOR FSKMA; 007417 D OR.W LEABENV RC; BLNARE D OR.W LEABENT XM; BLNAXE D ORSEING XMTD CELL TYPENW = TYPEN+2 ; BYTE OF CELL IN TYPEN TYPHL = TYPENW+2 ; END OF HEADER FOR TYPE 1 CELL ; ; TYPF1 = BIT15 ; MSG SEQ NO IN NULL MSG TABLE TYPF2 = BIT14 ; MSG IN PRINT IMAGE BY LINE TYPF3 = BIT13 ; NOT FOR RETRIEVAL TYPF4 = BIT13 ; NOT FOR RECOVERY TYPF5 = BIT12 ; MESSAGE WRITTEN TO AUDIT & RTRVL * TYPF6 = BIT11 ; DC OUT MESSAGE ; TYPF9 P ASBZ12,ASBZ10 ; ADD TO OLD VALUE DEC R1 ; ALL DIGITS SERVICED ? BEQ 14$ ; YES - MOV ASBZ10,R2 ; MULTIPLY MOV ASBZ11,R3 ; OLD VALUE ASL R2 ; BY 10 ASL R3 BCC 11$ INC R2 11$: MOV R2,ASBZ12 ; FOR MOV R3,ASBZ13 ; NEXT ASL R2 ASL R3 BCC 12$ INC R2 V005B PAGE 3    PRIVATE DATA GULF ENERGY & ENVIRONMENTAL SYSTEMS FOR INTERNAL USE ONLY 213     ; 214     ; END 215     ; 216 000402    ENDINP: 217 000402 004767 000666   JSR PC,CRLF 218 000406 004767 005570   JSR PC,RESTOX 219 000412 000207    RTS PC 220     ; 221     ; TRANSMIT DIRECTLY 222     ; 223 000414    TRANSM: 224 000414 .W E IM TNDOUARRNTUT ATSENNTCOR CS R ;Y RDDTD!EESP!RENRLCH D OR.W Y ADREL NAMIER TTADA; Y RDDT D OR.W ITSMANTRO TDYEA R ;D PCST!XEDPEXSD!SNEQ!RBLNAXE D OR.W S NTTEON CALTINI ISRXC; D PCST!XEDPEXS D OR.W S NTTEON CALTINI ISRRC; ENRLCHD!EESP!RBLNARE D OR.W RSTEISEG RREWARDHA; 004017 D OR.W ORCTVET UPRRTEIN; 0 30 D OR.W S NTTANSCOK IN L11DC; : BLTADC G IN RSTLAE NCSIS O = BIT7 ; TRAIL FLAG FOR NON-EXT TRANSAC TO DC TYPF10 = BIT6 ; TRAIL FLAG FOR NON-EXT TRANSAC TO TRML ; ; TYPIML = TYPL-TYPHL ; CELL I MESSAGE LENGTH TYP2ML = TYPL-4 ; CELL II MESSAG LENGTH TYPCL = TYPEXT ; LENGTH OF CHAIN FIELDS ; ; ; * TO BE FILLED IN FOR RECOVERY ; ; .PAGE ; ; MAG TAPE EQUATES ; ; POSITIONAL FOR PRE-HANDLER LIST ; MPLLOG = 0 12$: ASL R2 ASL R3 BCC 13$ INC R2 13$: MOV R2,ASBZ10 ; INSERTION MOV R3,ASBZ11 ; IN VALUE ADDDP ASBZ12,ASBZ10 ; X*2+X*8.= X*10. BCC 10$ ; CARRY BIT SET ? BIS #1,ASBZ14 ; YES - ERROR 10$: BR 2$ ; CONT ; 14$: JSR PC,RESTOX ; RESTORE REGS RTS PC ; RETURN ; ASBZ10: .W112767 000001 010543  MOVB #1,DLCST+DLCTRN ;SET FLAG 225 000422 105067 010536   CLRB DLCST+DLCCAN ;CLEAR 226 000426 105067 010531   CLRB DLCST+DLCNAK ; CONFLICTS 227 000432 000167 177532   JMP PARA10 ; 228     ; 229     ; CANCEL 230     ; 231 000436    CANCEL: 232 000436 112767 000001 010520  MOVB #1,DLCST+DLCCAN ;SET & 233 000444 105067 010505PTRUERNT IOR FERNTOU;C 0 D OR.W: LGGFMS A AT DNTREUR COFD EN; T BSAL D OR.W : GEMS A AT DNTREUR COFT ARST; T BSAL D OR.W : GSMS N VE.E D PAD,PAD,PAK,AC E YT.B: UFKBAC D PAD,PAD,PAN,CA E YT.B: UFNBCA X ST E YT.B: UFXBST D PAD,PAD,PAK,NA E YT.B: UFKBNA ; ; ; N VE.E ; : 64AXDL X ETB/ET; 0 E YT.B: 63AXDL METI; / / IISC.A: 62AXDL TEDA; / / IISC.A: 61AXK ;LOGICAL FUNCTION MPLTSK = 1 ;TASK NUMBER MPLTYP = 2 ;RECORD TYPE MPLCMD = 3 ;COMMAND MPLHLT = 4 ;HANDLER LIST ADDRESS MPLERR = 6 ;ERROR MPLARG = 10 ;TAPE NUMBER OR PHYSICAL DEVICE MPLIND = 12 ;EOF/EOT INDICATOR ; ; LOGICAL FUNCTIONS ; MPLAUD = 1 ;AUDIT TRAIL MPLRTR = 2 ;RETRIEVAL MPLDCOORD 0 ; WORK ASBZ11: .WORD 0 ; AREA ASBZ12: .WORD 0 ; FOR ASBZ13: .WORD 0 ; DP CONVERT ASBZ14: .WORD 0 ; ERROR FLAG, 1 = ERROR, 0 = OK .PAGE .SBTTL BAS BINARY TO ASCII ; ; ; ;* * * ; ; ; PROGRAM NAME - BASCNV , BADCNV -BINARY-TO-ASCII SINGLE/DOUBLE PRECISION ; ; PURPOSE - CONVERTS A SINGLE (BASCNV) OR DOUBLE (BADCNV) PRECISION ; VALUE TO   CLRB DLCST+DLCXMR ;CLEAR FLAGS 234 000450 105067 010507   CLRB DLCST+DLCNAK 235 000454 105067 010505   CLRB DLCST+DLCTRN 236 000460 000167 177504   JMP PARA10 237     ; 238     ; SEND NAK 239     ; 240 000464    NACKN: 241 000464 112767 000001 010471  MOVB #1,DLCST+DLCNAK ;SET & 242 000472 105067 010466  NACA10: CLRB DLCST+DLCCAN ;'CLEAR 243 DL ALINRMTEO TSG MLLNU; '0 E YT.B: 60AXDL ; ; ; ; CTNEONSCDI- 1 ;1 10AHDL * 2LEID- 0 ;1 10ADDL * 1LEID- 9 ; 10ACDL * 3LEID- 8 ; 10ABDL ITWA- 7 ; 10AFDL * ADDE- 6 ; 10AEDL * 2ELNCCA- 5 ; 55ABDL 1ELNCCA= 4 ; 55AADL CK ANDSE= 3 ; G = 3 ;DC OUTPUT MPLDCI = 4 ;DC INPUT MPLOAD = 5 ;LOAD MODULE REPLACEMENT ; ; COMMANDS ; ATTACH = 1 ; DETACH = 2 ; ASSIGN = 3 ; DESIGN = 4 ;DE-ASSIGN AND DETACH REQTNO = 5 ; ; ; ERROR CODES ; MPLLGE = 1 ;LOGICAL FUNCTION MPLRTE = 2 ;RECORD TYPE MPLCDE =  ASCII CHARACTERS. ; ; USAGE - CALLING SEQUENCE FOR BOTH ROUTINES IS: ; - ; JSR R5,NAME TRANSFER ; .WORD BINARY ADDRESS OF BINAR WORD(5) ; .WORD ASCII ADDRESS OF ASCII STRING ; .WORD ACNT ASCII STRING SIZE (BYTES) ; ; THE CONVERTED ASCII STRING IS PLACED IN THE USER'S DESTINATION. ; SINGLE = 65,535. 000476 105067 010463   CLRB DLCST+DLCTRN ; FLAGS 244 000502 105067 010447   CLRB DLCST+DLCXMR 245 000506 000167 177456   JMP PARA10 246     ; 247     ; CLEAR FLAGS 248     ; 249 000512    CLEARF: 250 000512 105067 010445   CLRB DLCST+DLCNAK ;CLEAL ALL 251 000516 000765    BR NACA10 252     ; 253     ; NULL CANNED MESSAGE 254 55AADL TADAT XM= 2 ; 55AADL CK ACVRE= 1 ; 10AIDL A AT DCVRE- 0 ; 10AGDL: 20AXDL ; # V DE; 0 D OR.W: 70AWDL GESAES MTADAR FOC BC; 0 D OR.W: 62AWDL VESAC BC; 0 D OR.W: 60AWDL X STF ODRAD; UFXBST D OR.W: 34AWDL E OVABN IARCHF ONO; 4 D OR.W: 33AWDL N CAF ODRAD; UFNBCA D OR.W: 32AWDL K ACF ODRAD; UFKBAC D OR.W: C3 ;COMMAND MPLTNE = 4 ;TASK NUMBER MPLARE = 5 ;ARGUEMENT MPLASE = 6 ;ILLEGAL USE OF ASSIGN COMMAND MPLFRM = 7 ;INVALID FORMAT OR ENTRY IN HANDLER LIST. MPLOVF = 10 ;OVERFLOW ON READ MPLCHK = 11 ;CHECKSUM ERROR ON READ MPLMTE = 12 ;FATAL MAG TAPE ERROR MPLTIM = 13 ;TIME-OUT READ OR RE-WIND MPLBSY = 14  DOUBLE = 655,359,999. ; THE RETURNED ASCII STRING IS ORIENTED WITH LEADING ; ZEROES WHERE APPLICABLE. ; ; NOTE: FOR DOUBLE PRECISION, THIS ROUTINE ASSUMES THE HIGH ORDER WORD ; TO BE IN THE LOWER MEMORY ADDRESS. ; ; R0-R1 HIGH ORDER BINARY WORD USED FOR DIVISIOM ; R2-R3 LOW ORDER BINARY WORD ; R4 POINTS TO END OF ASCII STRING AND MOVES FORWARD ; ; PROGRAMMER - 64 ; DATE - 8/17/72 ; REVISION - 0 ;     ; 255 000520    NULLMS: 256 000520 004767 001340   JSR PC,TTYI ;READ CHARACTER 257 000524 122704 000015   CMPB #15,R4 ;CR? 258 000530 001012    BNE 10$ ;NO 259 000532 112767 000003 010563  MOVB #3,NULETX ;SET ETX 260 000540 012767 000001 010406 05$: MOV #1,DLCST+DLCXMT ;SET NULL 261 000546 004767 000522  07$: JSR PC,CRLF 262 000552 ND.E  ;LOGICAL FUNCTION BUSY MPLNPH = 15 ;NO PHYSICAL UNIT ASSIGNED ; ; BIT ASSIGNMENTS IN MPLIND ; MPLEOT = BIT0 ;EOT MPLEOF = BIT1 ;EOF ; ; POSITIONAL FOR HANDLER LIST ; MPHEXT = 3 ;EXIT TYPE MPHDVN = 6 ;PHYSICAL DEVICE NUMBER MPHERR = 10 ;ERROR MPHDTB = 14 ;ADDRESS OF DATA BUFFER MPHFNC = 22 ;HANDLER FUNCTION MPHN; ; BASCNV: JSR PC,SAVEX ; SAVE REGS MOV @(R5)+,R1 ; GET LOW ORDER CLR R0 ; SET HIGH ORDER TO ZERO JMP CONCOM ; COMPUTE CONCOM: MOV (R5),R2 ; INIT MOV 2(R5),R3 ; USER 2$: MOVB #'0,(R2)+ ; AREA SOB R3,2$ ; TO ZERO ; MOV (R5)+,R4 ; POINTER TO ADD (R5),R4 ; TO USER ASCII AREA MOV (R5)+,R3 000167 177412   JMP PARA10 263 000556 122704 000102  10$: CMPB #'B,R4 ;B? 264 000562 001371    BNE 07$ ;NO 265 000564 112767 000027 010531  MOVB #27,NULETX CPDIAG ELITE CP DIAGNOSTIC RMACRO V005B PAGE 3+    PRIVATE DATA GULF ENERGY & ENVIRONMENTAL SYSTEMS FOR INTERNAL USE ONLY 266 000572 000762    BR 05$ 267     ; 268     ; RADIDLF OND E ; : NDAEDL ; NDBEAL = . ; . Z+SILB*A8. = NDBEAL ; . = UFTBRO ; T BSAL = . 0.30.+ = T BSAL ; 6.25.+ = . ; . = UFTBPR ; K ACST = . ; 00+30.10.+ = K ACST ; UFVBRC = . . 3010.+ = UFVBRC ; : UFTBXM X STX,ST E YT.B ; E AG.P ;WD = 24 ;NUMBER WORDS MPHCNT = 26 ;COUNT MPHSTA = 30 ;STATUS REGISTER ; ; HANDLER FUNCTIONS ; MPHOPN = 1 ;OPEN MPHCLS = 2 ;CLOSE MPHRED = 3 ;READ MPHWRT = 4 ;WRITE MPHWEO = 5 ;WRITE EOF MPHRWD = 6 ;RE-WIND MPHSPC = 7 ;SPACE MPHSKP = 10 ;SKIP ; ; ER ; FOR CLR R2 ; NUMBER OF DIGITS (UP TO 4), 8$: CLR R0 ; CLEAR FOR DIVIDE TST R1 ; IS VALUE ZERO BEQ 12$ ; YES - SKIP DIVIDE 14$: SUB #10,R1 ; DIVIDE BY SUBTRACTION BMI 16$ INC R0 BR 14$ 16$: ADD #10,R1 BIC #177760,R1 ; STRIP TO FOUR BITS 10$: BIS #60,R1 ; CONVERT TO ASCII DIGIT MOVB DATA MSG 269     ; 270 000574    DATAMS: 271 000574 004767 001264   JSR PC,TTYI ;READ 272 000600 122704 000015   CMPB #15,R4 ;CR? 273 000604 001011    BNE 30$ ;NO 274 000606 112767 000003 010476  MOVB #3,CNDETX 275 000614    10$: 276 000614 105067 010334   CLRB DLCST+DLCXMT ;SET CANNED 277 000620    20$: 278 000620 004767 0004 N VE.E ; X ET E YT.B: TXLENU ; // IISC.A ; // IISC.A ; / / IISC.A ; / /3 IISC.A : UFLBNU ; ; X ET E YT.B: TXDECN F ,LLFF,,LCR E YT.B K/AC BGSDOY AZ LHE TEROVD PEUM JOX FWNRO BCKUI QHE/T IISC.A N MI; // IISC.A URHO; // IISC.A Y DA; / / IISC.A SR A &RO; / /3 IISC.A 7RORS IN HANDLER LIST ; MPHEXE = 3 ;EXIT TYPE MPHFNE = 10 ;INVALID FUNCTION MPHFAT = 11 ;FATAL ERROR MPHTMO = 12 ;TIME OUT. MPHNWE = 15 ;OFF-SET TO WORD COUNT. ; ; BIT ASSIGNMENTS IN STATUS REGISTER ; MPHEOF = BIT15 ;EOF MPHBET = BIT14 ;BOT/EOT MPHOVF = BIT13 ;OVERFLOW MPHRDY = BIT7 ;READY MPHBSY = BIT6  R1,-(R4) ; AND STORE IT MOV R0,R1 ; REFRESH VALUE SOB R3,8$ ; CONT ; 12$: JSR PC,RESTOX ; RESTORE REGS CCC ; CLEAR FLAGS RTS R5 ; RETURN ; BASZ1: .WORD 0 ; TEMP SAVE > 10,000. ; .PAGE .SBTTL SAVEX ; ;* * * ; ; ; PROGRAM NAME - SAVEX ; ; PURPOSE - SAVES REGISTERS R0 - RV ; ; USAGE - THE CALLI50   JSR PC,CRLF 279 000624 000167 177340   JMP PARA10 280 000630    30$: 281 000630 122704 000102   CMPB #'B,R4 ;B? 282 000634 001004    BNE 40$ ;NO 283 000636 112767 000027 010446  MOVB #27,CNDETX 284 000644 000763    BR 10$ 285 000646    40$: 286 000646 122704 000040   CMPB #' ,R4 ;SPACE? 287 000652 001362    : UFDBCN ; ; ; N VE.E TADAD EN;S / /S IISC.A: 12MSDL UT-OMETIT XM;; / /X IISC.A: 11MSDL D EA;D / /D IISC.A: 10MSDL UT-OMETIV EC;R / /T IISC.A: 09MSDL D CV RAK;N / /M IISC.A: 08MSDL D CV RCK;A / /B IISC.A: 07MSDL T EN SAN;C / /C IISC.A: 06MSDL T EN SCK;A / /A IISC.A: 05MSDL D CV ROT;E / /E IISC.A: 04MSDL T EN SAK;N / /N IISC.A: 03MSDL D CV RSG;M 3 ;BUSY MPHLDP = BIT1 ;LOAD POINT MPHWTR = BIT0 ;WRITE RING ; ; MPLOPC = TSOPCO ;OPERATOR-CONTROL-OF-MT TASK NUMBER. MPHDSZ = 32. ;HEADER SIZE ; ; LIST OF MAXIMA ; MTMXRT = 22 ; RECORD TYPE MAX VALUE MTMXCD = 5 ;COMMAND MTMXPU = 2 ;ACTUAL PHYSICAL UNITS MTMXLF = 5 ;ACTUAL LOGICAL FUNCTIONS MTLOGL = 30 NG SEQUENCE IS ; ; JSR PC,SAVEX ; ; NOTE: THIS SUBROUTINE MUST BE USED WITH R E S T O X SUBROUTINE. ; THIS SUBROUTINE SAVES THE REGISTERS R0-R4 BY MOVING THEM ONTO ; THE STACK. ; ; PROGRAMMER - 50 ; DATE - 7/21/72 ; REVISION - 0 ; ; SAVEX = . ; MOV R0,-(SP) ;MOVE MOV R1,-(SP) ; THE MOV R2,-(SP) ; REGISTERS MOV  BNE 20$ ;NO 288 000654 112767 000002 010272  MOVB #2,DLCST+DLCXMT 289 000662 005067 000440   CLR REPFLG 290 000666 012700 011326'   MOV #XMTBUF,R0 291 000672 005067 002040   CLR COUNT 292 000676    50$: 293 000676 004767 001162   JSR PC,TTYI 294 000702 122704 000056   CMPB #56,R4 ;ETX? 295 000706 001036    BNE 55$ / /I IISC.A: 02MSDL VDRCG IN R -LFR,;C / /R IISC.A: 01MSDL ; TY TTOG LOG MS ; ; ; ; R ND.E 0 E YT.B S ONTIDIADW NE; . 20 T EP.R -1 D OR.W R ND.E 0 E YT.B LEAB TALINIGOR; CLDL T EP.R T:CSDL N VE.E : ESQUEN > LF>/BLTADCL-ABLT++FLSEL-2>/SECSIZ ENT1L = <++FLSEL-2>/SECSIZ ENT2L = <++FLSEL-2>/SECSIZ ENT3L = <++FLSEL-2>/SECSIZ ENT4L = <++FLSEL-2>/SECSIZ ENT5L = <++FLSEL-2>/SECSIZ ENT6L = <++FLSEL-2>/SECSIZ ENT7L = <++FLSEL-2>/SECSIZ ENT8L = <++FLSEL-2>/SEORE REGS RTS R5 ;EXIT .PAGE .SBTTL MOVC ; ;* * * ; ; ; ; PROGRAM NAME - MOVC ; ; PURPOSE - MOVES A SINGLE CHARACTER TO A FILE. ; ; CALLING SEQUENCE - ; JSR R5,MOVC TRANSFER CONTROL TO ROUTINE ; .WORD CHAR CHARACTER TO BE SENT ; .WORD TO ADDRESS OF RECEIVING FILE ; .WORRO V005B PAGE 3+    PRIVATE DATA GULF ENERGY & ENVIRONMENTAL SYSTEMS FOR INTERNAL USE ONLY 372 001224 012701 000372'   MOV #BCCPRT,R1 373 001230 004767 001072   JSR PC,OCTAS6 374 001234 004767 000034   JSR PC,CRLF 375 001240 004567 000670   JSR R5,PRINT 376 001244 000366'    .WORD BCCPST 377 001246 000014    .WORD BCCPEN-BCCPST 378 001250 016767 001462 007370  RSTOCADIINY LTIAECSPK IN LARLE C ; 1)(RTSCSDL R CL NTOU CLK BARLE C ; 1)(RHBCCDL R CL NTOU CSG MARLE C ; 1)(RHMCCDL R CL E AV SEG R ; 1)(RF3CIDL R CL USATSTV DE ; 1)(RF2CIDL R CL ARLE C ; 1)(RF1CIDL R CL: 15ASDL ; S ORATICND ITYALCIPE S &GSLA FORRR EITIN ; ; ; RNTURE; PC S RT 1)(RA3CPDLD,PA # VBMO 1)CSIZ ENT9L = <++FLSEL-2>/SECSIZ ENT10L = <++FLSEL-2>/SECSIZ ENT11L = <++FLSEL-2>/SECSIZ ; ; ; ; ; ENT0 = 0 ; TRM ENT1 = ENT0+ENT0L ; TMP ENT2 = ENT1+ENT1L ; MTR ENT3 = ENT2+ENT2L ; MNT ENT4 = ENT3+ENT3L ; NMN ENT5 = ENT4+ENT4L ; CUS ENT6 = ENT5+ENT5L ; CAR ENT7 = ENT6+ENTD COUNT NO. OF TIMES CHAR IS ISSUED ; ; R0 CONTAINS CHARACTER TO BE SENT ; R1 POINTS TO AND MOVES THROUGH DST FILE ; R2 COUNTS NUMBER OF TIMES CHAR. IS SENT ; ; PROGRAMMER - 50 ; DATE - 7/24/72 ; REVISION - 0 ; ; ; ; MOVC = . ; JSR PC,SAVEX ;SAVE REGISTERS 0-4 MOV (R5)+,R0 ;R0 IS CHAR TO BE SENT MOV (R5)+,R1 ;R1 IS DESINATION MOV (R5)+, MOV COUNT,DLAW62 ; SAVE BCC 379 001256 004767 004720   JSR PC,RESTOX 380 001262 000207    RTS PC 381     ; 382     ; DATE & TIME 383     ; 384 001264    DATTIM: 385 001264 004767 001736   JSR PC,TIMDAT 386 001270 000167 176674   JMP PARA10 387     ; 388     ; 389     ; 390 001274    CRLF: 391 001274 112704 000015  (RA2CPDLD,PA # VBMO E BLTAK IN LTOINR HA CAD PUT;P) R1D(PALC,DAD#P VBMO LEAB TCEVIDE ; P TYLC-DRCCCDL D OR.W E THF O ; 0 D OR.W : 4$ RTPA ; 0 D OR.W STIR F; C OV,MR5 R JS HE T; $ ,4TECSDL # D AD R EACL; $ ,4R1 V MO: 10ASDL ; E BLTAE ICEV DHE TITIN ; ; ; E AG.P ; PC S RT ESCRBCR,CRBC V MO: RTCKBC ; CC B11KGR FOT ULES RCC BVESA 6L ; BLD ENT8 = ENT7+ENT7L ; PCR ENT9 = ENT8+ENT8L ; API ENT10 = ENT9+ENT9L ; PRB ENT11 = ENT10+ENT10L ; PRD ENT12 = ENT11+ENT11L ; SPARE ENTL = ENT12+NSPR ; END OF LIST ; ; .PAGE .PAGE R2 ;R2 IS NO. OF TIMES CHAR IS SENT TST R2 ; COUNT ZERO ? BEQ MOVD20 ; YES - EXIT MOVC10: MOVB R0,(R1)+ ;SEND CHARACTERS SOB R2,MOVC10 ; UNTIL COUNT IS REACHED BR MOVD20 ; TO EXIT .PAGE ;* * * ; ; NAME - DLDIRA ASYNCHRONOUS DATALINK DIRECTOR ; ;* * * ; ; ; PRIMARY REGISTER USAGE ; ; VOLATILE REGISTER R0 ; DLC FIELDS USE R1 ; DE MOVB #15,R4 392 001300 004767 000614   JSR PC,TTYO 393 001304 112704 000015   MOVB #CR,R4 394 001310 004767 000604   JSR PC,TTYO 395 001314 112704 000012   MOVB #12,R4 396 001320 004767 000574   JSR PC,TTYO 397 001324 000207    RTS PC 398 001326 000000   REPFLG: .WORD 0 399      .PAGE CPDIAG ELITE CP DIAGNOSTIC RMACRO  600000 002715 762300 31 6 5 1IT BDO. ES;Y 0 ,RSKTMOC C BI  100000 006704 722300 30 6 ? NEDO ; $ 102, R OB S    2 217700 370209 62 TSBI3 ; R0 R RO   006000 662300 28 6 T EX N ; 0 R OR R    0 00060 642300 27 6 N IOITOS P ; 0 R OR R    0 000602 360206 62 RETO;S 3)(R,-R4 VBMO   430411 602300 25 6 I CIASO ;T 4 ,R60 # SB3; ; PC S RT +1ESCRBCI,CHBC VBMO ESCRBCO,CLBC VBMO: RTCGBC ; CC BLFGUR FOT ULES RCC BVESA ; ; PC S RT INGA ARY T -NO ; ONCDBC Q BE N" OIT BNEDOS ;I STCKBCN,CDBC # T BI : ONCDBC ; ) ONTILACUAL CCC(BT SET BIE ON DOR FSTTE ; ; PC S RT R0+,P)(S V MO $ ,2R0 B SO : 2$ R0.,20 # V MO ; P)(S,-R0 V MO : LYTDSH ; REWARDHAC BCR FOY LADET ORSH ; VICE REGISTERS USE R2 ; OUT FIELDS USE R3 ; VOLATILE REGISTER R4 ; VOLATILE REGISTER R5 ; GENERAL INFORMATION - ; ; ; PROGRAMMER - 50 ; DATE - 9/12/72 ; REVISION - 0 ; ; ; ; NOTE: THIS TASK REQURES ASYNCRONOUS DATALINK EQUATES DURING ASSEMBLY ; ALTMR = 20. ; TIMER DELAY VALUE NULLEN = BIT0!BIT1!BIT2!BIT3 ; NULL MSG AUTOEN = BIT0 ; AUTOMATIC ENTRY AUDTEN =  V005B PAGE 4    PRIVATE DATA GULF ENERGY & ENVIRONMENTAL SYSTEMS FOR INTERNAL USE ONLY 400     ; 401      .SBTTL CKINIT 402     ; 403     ; INITIALIZES CLOCK 404     ; 405 001330    CKINIT: 406 001330 004567 000600   JSR R5,PRINT ;IDENTIFY CLOCK 407 001334 001664'    .WORD CLOCKQ 408 001336 000017    .WORD CLOCKE-CLOCKQ 409 001340 004767 000520BI  600000 042715 542300 24 6 4 ,R707717 # C BI  707717 042704 502300 23 6 4 ,RR0 V MO   040001 462300 22 6 S IT B;3 $:10    462300 21 6 3 ,RR1 V MO S:TAOC   030101 442300 20 6 K MSCT,O767717 # V MO 420000 767717 672701 362300 19 6 P U ; 1 ,R#6 DD A   6 000001 706202 330208 61 ET;S R25, # V MO  050000 022701 262300 17 6 T ERNVCOD OR;W ; RNTURE; PC S RT E USPA; AYEL,DPC R JS $:16 ; 4$ E BN ?ITWA; WR,ST0BI # T BI : 6$ RRNT ITY TLEABEN; KS,TT6BI # S BI : 5$ ; PSUM,DPC R JS 5$ E BN 4 ,R'P # PBCM 5$ Q BE R4 TBTS Q INTY,TPC R JS R TRINY TTE BLSADI; KS,TT6BI # C BI ; - NO ; 6$ Q BE ?MPDUT AN WEROP; WR,ST1BI BIT3 ; AUDIT TRAIL ENTRY CONFEN = BIT2 ; CONFIGURATION ENTRY FROM TERML MANLEN = BIT1 ; MANUAL ENTRY FROM TERML (DATA) OUTSIZ = 1000. ; OUTPUT BLOCK SIZE CNCLIM = 10. ; NUMBER OF CONNECTS FOR SIGNIFICANCE DLCXMT = DLCL+2 ; TRANSMIT MODE ; 0 = CANNED DATA ; 1 = CANNED NULL ; 2 = VARIABLE DATA DLCN   JSR PC,TTYI ;R4 ON RETURN HAS RESPONSE 410 001344 026704 000334   CMP YES,R4 411 001350 001406    BEQ 4$ 412 001352 026704 000330   CMP NO,R4 413 001356 001364    BNE CKINIT 414 001360 012704 001710'   MOV #CCLOCK,R4 ;CRYSTAL CLOCK 415 001364 000402    BR 8$ 416 001366 012704 001720'  4$: MOV #LCLOCK,R4 ; LINE CLOCK 417   : S6TAOC    262300 16 6 ;     15 6 I CIASO TALCT O ;    4 61 ;    3 61 LYONE USL NAERNT IOR F MSTEYS SALNTMEONIRNV E &GYERENF UL G TADAE ATIVPR    PETYLETE 6GEPA 5B00 VROACRM C TIOSGNIA DCPE ITEL AGDICP GEPA .      2 61 PC S RT   070200 242300 11 6 R TOEC V ; 2 T+ECYV,T40#3 OV M  2 060000 340007 761206 310200 61 APTRT SE ; CTVETYT,IN # T BI : 4$ ITEXO T -NO ; $ 16 Q BE ? L RONTCOT AN WEROP; WR,ST0BI # T BI ; ; S:ITWA ; ONTICANIMUOM CNGRIDUD ANMMCOR TORAPE OOR FITWA ; ; RNTURE; PC S RT T YET NO; 2$ BR UPS IMETIF I; K ECCH,TR5 R JS K ECCH; P)(S,-R0 V MO : 2$ MS0 20R FO ; R0+,P)(S V MO ; E IMET,SPC R JS T SE; ) SP-(2, # V MO UL = DLCXMT ; SEND NULL DLCCAN = DLCXMT ; SEND CANNED DATA DLCXMR = DLCXMT+1 ; REPEAT DLCRST = DLCXMR+1 ; START OF REPEAT DATA DLCRED = DLCRST+2 ; END OF REPEAT DATA DLCRCT = DLCRED+2 ; BYTE COUNT OF REPEAT DATA DLCNAK = DLCRCT+1 ; SEND NAK ON ALL RECVD MSG DLCCAN = DLCNAK+1 ; SEND CANCEL DLCTRN = DLCCAN+1 ; SKIP TO XMT DLCSTP = DLCTRN+1 ; STOP PRINT  ; AT THIS POINT, R4 POINTS TO THE CONSTANTS NEEDED 418     ; FOR THE CLOCK TO BE USED. THEY ARE (IN ORDER),ADDRESS 419     ; OF VECTOR, THE NUMBER OF INTERRUPTS PER 100 MS, BIT 420     ; SETTING TO TURN ON THE INTERRUPT,AND ADDRESS OF THE 421     ; STATUS REGISTER 422     ; 423 001372 016403 000000  8$: MOV CLVECT(R4),R3 424 001376 012723 001464'   MOV #CLINTR,(R3)+ ;SET ADDRESS VECTY#T OV M  0 06000' 342200 672701 102300 09 6 : ETYSTT    102300 08 6 ;     07 6 T NI ITY T ;    6 60 ;    5 60 TI R    2 000006 300204 60 R0+,P)(S V MO   002601 042300 03 6 : 0$2   4 300202 60 TPCSDLT+CSDL1, # VBMO 626600 010000 672711 762200 01 6 O ;N $ 20 E BN   031000 742200 00 6 ? NTRI POPST ; 0 ,R#4 B MP C   4 000000 702210 270209 59 Y:LADE ; MS0 10R FOY LADE ; ; ; N URET R ; PC S RT ESAGSSMED NEAN CTO ; -1DLRH1,F+BUUL,N61AXDL A VEMO E AT DND AMETIE OV M ; -1DLRH1,F+BUND,C61AXDL A VEMO ; AY D & ; 2 2,2+X6LA,DTENUMI A1VBCN METI ; 2 2,X6LA,DURHO A1VBCN ET G ; ,361AXDLE,ATJD A1VBCN : DTDRTH ; R FEUF BINR DEEA HINE AT DRMFO ; ; E AG.P ; N URET R ;  DLCCCC = DLCSTP+1 ; ATTENTION INTRR OCCURRED ; TKS = 177560 ; TTY INPUT INTERRUPT ENABLE ATTEN = 3 .PAGE ; ; TASK ENTRY POINT ; ; DLDIRA: DLAA50: DLAA55: DEBUG 2 ; ; ; INIT FOR DEVICE SERVICE ; MOV #DLCST,R1 ; SET DEV TBL MOV LKTABL+DLREGS,R2 ; AND DEV REG ADDR PTRS ; ; BRANCH TO SERVICE ; DLAA57: BIT #DLCG16,DLCIND(R1); IS LINK ACTIVE TOR & 425 001402 012713 000340   MOV #340,(R3) ;STATUS WORD 426 001406 016467 000002 000314  MOV CLINT(R4),CLCON ;INITIALIZE TIMER CONSTANT 427 001414 016767 000310 000310  MOV CLCON,TICS ;SET TIMER 428 001422 012767 000012 000310  MOV #10.,SUBSEC 429 001430 005067 000300   CLR TIMEMS 430 001434 005067 000276   CLR TIME 431 001440 005067 000300   CLR $:10    702200 98 5 $ 20 BR   060400 662200 97 5 S TK R CL  607517 675000 622200 96 5 C CCLC+DSTLC,D#1 B OV M  5 700601 000007 761214 250205 59 NO ; 0$ 1 NE B    6 000102 250204 59 T?ARSTRE ; 0 ,R#3 B MP C   3 000000 702216 240203 59 R00,6077#1 IC B   0 607710 704202 240202 59 R0B,TK VBMO  627517 006711 362200 91 5 ) SP-(0, R OV M    6 PC S RT R TEUNCOD AN ; ) R1S(PHLC,D#1 VBMO ERNTOI PET S ; ) R1P(PHLC,D34AWDL V MO X:DSSN ; X STD EN STON IOITNDCOT SE ; ; ; N URET R ; PC S RT D PAN,CAD EN STOR TEUNCO ; ) R1S(PHLC,D33AWDL VBMO ND AERNTOI PET S ; ) R1P(PHLC,D32AWDL V MO 1ELNCCAO TTETA SET S ; ) R1E(STLC,DL1NCCA # VBMO N:DCSN ; N CAD EN STON IOITNDCOT SE ; ; ; N URET R ;  JEQ DLAA60 ; NO - GO CHK FOR RING TSTB DLCCCC(R1) ; JNE DLAB55 ; MOVB DLCSTE(R1),R5 ; GET STATE CMP #STEMAX,R5 ; INVALID STATE ? BLO 2$ ; YES ASL R5 ; MUL BY 2 JMP @DLAX20(R5) ; AND GO TO SERVICE ; 2$: HALT ; ; ; SERVICE INACTIVE DEVICE ; DLAA60: ; DLAA70: BIT #DLCG10,DLCIND(R1) ; WAS RING DETECTED HOUR 432 001444 005067 000276   CLR MINUTE 433 001450 005067 000266   CLR SECOND 434 001454 016474 000004 000006  MOV CLENAB(R4),@CLREG(R4) ;ENABLE INTERRUPT 435 001462 000207    RTS PC 436     ; 437     ; CLOCK INTERUPT HANDLER 438     ; 439 001464    CLINTR: 440 001464 005267 000244   INC TIMEMS ; +1 EACH MS 441 001470 005367 000236  041004 230200 59 T:INTYT   4 230209 58 ;    8 58 ERDLAN HPTRUTEINY TT ;     87 5 ;     86 5 Y NL OSE UALRNTEINR FO S EMSTSYL TAENNMROVIEN& Y RGNE ELFGU A AT DTEVARI P   E YPETEL T5 E AG PB 05V0O CRMAR ICSTNOAGDIP CTELI EG IAPDC GEPA .      5 58 R5 S RT   050200 322200 84 5 X TOES,RPC R JS  503700 674700 262200 83 5 : 0$2   6 220202 58 YOTTC, P SR J PC S RT D PAK,NAR FOR TEUNCO ; ) R1S(PHLC,D33AWDL VBMO ND AERNTOI PET S ; ) R1P(PHLC,D30AWDL V MO CK ANDSEO TTETA SET S ; ) R1E(STLC,DCKDASN # VBMO K:DNSN ; K NAD EN STON IOITNDCOT SE ; ; ; N URET R ; PC S RT D PAK,ACR FOR TEUNCO ; ) R1S(PHLC,D33AWDL VBMO ND AERNTOI PET S ; ) R1P(PHLC,D31AWDL V MO CK ANDSEO TTETA SET S ; ) R1E(STLC,D BNE DLAA80 ; YES - JMP DLAF10 ; .PAGE ; ; ; SET UP LINK FOR RECEIVE ; DLAA80: CMPB DLCSTE(R1),#WAIT; WAIT STATE ? BEQ 1$ ; YES DEBUG ; NO, FATAL ERROR 1$: MOV LKTABL+DTREDY,RCSR(R2) ; SET DATA TERMINAL READY JSR PC,CRLF MOVB DLMS01,R4 ;RING RECEIVED JSR PC,TTYO JSR PC,DLAS10 ; CLEAN OUT DEVICE  DEC TICS ;100 MS? 442 001474 001046    BNE 20$ ;NO 443 001476 016767 000226 000226  MOV CLCON,TICS ;YES 444 001504 005267 000226   INC TIME ;100 MS TIME=0? 445 001510 001002    BNE 10$ ;NO 446 001512 005267 000220   INC TIME ;YES 447 001516    10$: 448 001516 005367 000216   DEC SUBSEC ;1 S  2 677717 760402 220201 58 R42,#1 B OV M   2 010004 701216 210200 58 YOTTC, P SR J   2 707717 760402 210209 57 R45,#1 OV M   5 010004 701206 200208 57 $:15    062200 77 5 G FLMP,D-1 # V MO 320700 777717 672701 002200 76 5 $ 15 Q BE   031400 762100 75 5 G FLMP D ST T   2 740007 760502 170204 57 TPCSDLT+CSDL RBCL  746700 675010 662100 73 5 O ;N $ 10 Q CKDASN # VBMO K:DASN ; K ACD EN STON IOITNDCOT SE ; ; ; E AG.P ; N URET R ; PC S RT L VELER WELO; PS+,P)(S VBMO . TSINV RCD AN; 2)(RSRRCT,IN+RBLTALK C BI T XME BLSADI; 2)(RSRXCT,IN+XBLTALK C BI PS0,34 # VBMO SEAI R ; P)(S,-PS VBMO: NKPLST ; K IN LHE TOPST ; ; NTCO; I RT T AL HAPTR; LTHA : 45ARDL ; APTRT # TABLE MOV #RCVBUF,DLCBPT(R1) CLR DLCTM1(R1) ; CLEAR TIMER CLR MSGFLG ;CLEAR COUNT OF INTERRUPTS MOV MSGE,MSGS ; UPDATE ROTATING BUF PTR MOVB #ETX,RCVBUF ; RESET PRINT BUFFER BIS #DLCG16,DLCIND(R1); SET LINK ACTIVE BIS #BIT6,TKS ; ENABLE TTY INPUT INTRR TSTB DLCTRN(R1) ; IS THIS SKIP RECEIVE ? BNE DLAA90 ; MOVB #RCVDAT,DLCSTE(R1) $EC? 449 001522 001033    BNE 20$ ;NO 450 001524 012767 000012 000206  MOV #10.,SUBSEC ;YES 451 001532 005267 000204   INC SECOND 452 001536 022767 000074 000176  CMP #60.,SECOND ;1 MIN? CPDIAG ELITE CP DIAGNOSTIC RMACRO V005B PAGE 4+ CKINIT    PRIVATE DATA GULF ENERGY & ENVIRONMENTAL SYSTEMS FOR INTERNAL USE ONLY 453 001544 001022    BNE 20BE   671700 642100 72 5 P STLC+DSTLC D B ST T   2 000707 760510 160201 57 YOTTC, P SR J   0 747717 760404 150200 57 NO ; 4 ,R)+R0 ( B OV M    4 001212 150209 56 R1 C DE   015300 502100 68 5 S YE ; 0$ 2 LE B    7 420306 140207 56 E?ON;D R1 T TS   015700 442100 66 5 : 0$1   4 140205 56 R1+,5)(R V MO   012501 422100 64 5 0 ,R)+R5 (UPRRTEINR ROER ; ; ; ; 10ACDL P JM O TY,TPC R JS UT-OMETI MT;X 4 ,R11MSDL VBMO ; 1)(RTECSDL1,LEID # VBMO ; K LNTP,SPC R JS ; 55AADL J BR ; K ECCH,TR5 R JS ; P)(S,-1)(RM1CTDL V MO : 10AIDL ; E ATSTK ACE IVCERE ; ; ; 10AEDL BR ; 55AADL J BR UPS IMETIF I; K ECCH,TR5 R JS K ECCH; ' ; SET STATE TO RECV DATA CLR RBUF(R2) ; CLEAR RECV BUF REG BIS LKTABL+IRCSR,RCSR(R2) ; AND ENABLE RCV INTS. 2$: ; JMP DLAA55 ; GET NEXT DEV ; DLAA90: MOVB #IDLE1,DLCSTE(R1); STATE = IDLE 1 JMP DLAC10 ; GO TO IDLE 1 STATE SERVICE ; ; ; RECEIVE TERMINATION SERVICE (RCV IDLE 3) ; DLAB10: CLR DLCTM1(R1) ; STOP TIMER ($ ;NO 454 001546 005067 000170   CLR SECOND 455 001552 005267 000170   INC MINUTE 456 001556 022767 000074 000162  CMP #60.,MINUTE ;1 HOUR? 457 001564 001012    BNE 20$ ;NO 458 001566 005267 000152   INC HOUR 459 001572 005067 000150   CLR MINUTE 460 001576 022767 000030 000140  CMP #24.,HOUR 461 001604 001002    BNE OV M    0 501200 140203 56 EXAV,SPC R JS  224000 674700 342100 62 5 : NTRIP   4 130201 56 ;    60 5 T PUUT OERFFBUY TT ;     59 5 ;     58 5 C P TS R    7 200002 130207 55 ES;Y PB,TR4 VBMO  667517 670411 262100 56 5 O ;N YOTT L BP   750310 242100 55 5 Y ADRE ; PS T B ST T   4 567717 760510 120204 55 O:TYT   0 120203 55 P)(S,-1)(RM1CTDL V MO : 10AHDL ; TETA SCTNEONSCDI ; ; ; 50ABDL P JM O TY,TPC R JS UT-OMETIV EC;R 4 ,R09MSDL VBMO ; K LNTP,SPC R JS T OUD METIT NO; 55AADL J BR ; K ECCH,TR5 R JS ; P)(S,-1)(RM1CTDL V MO : 10AGDL ; TETA STADAE IVCERE ; ; E AG.P ; 50AADL P JM : 15AFDL UTNP IEROPT GE; INAR,PPC R JS + MOVB DLMS02,R4 ;IN MSG RECEIVED JSR PC,TTYO JSR PC,WAITS ; CHECK ON OPER CONTROL BIT #DLCG11,DLCIND(R1) ; ERROR DURING RECEIVE ? JNE DLAB50 ; YES - SEND NAK TSTB DLCNAK(R1) ; SEND NAK REQRD ? BNE DLAB50 ; YES - ; TSTB DLCCAN(R1) ; SEND CANCEL REQUIRED ? JNE DLAB85 ; YES - ; BIT #DLCF10,DLCSTS(R1) , 20$ 462 001606 005067 000132   CLR HOUR 463 001612    20$: 464 001612 000002    RTI 465     ; 466     ; CHECK FOR TIME EXPIRED 467     ; 468 001614    TCHECK: 469 001614 016646 000002   MOV 2(SP),-(SP) ;HOLD TIME 470 001620 016666 000002 000004  MOV 2(SP),4(SP) 471 001626 005716    TST (SP) ;TIMER SET? 472 001630 001404   ;    52 5 T OUY TT ;     51 5 ;     50 5 C P TS R    7 200006 110209 54 HOEC ; YOTTC, P SR J   2 000007 760402 110208 54 YITT Q BE   651700 102100 47 5 Y NL OSE UALRNTEINR FO S EMSTSYL TAENNMROVIEN& Y RGNE ELFGU A AT DTEVARI P   E YPETEL T+ 4GEPA 5B00 VROACRM C TIOSGNIA DCPE ITEL AGDICP S IT B;7 4 ,R007617 # C BI  007617 042704 042100 46 5 S YE ; : 2$ ; 50AADL P JM MPDUO G -O N ; PSUM,DPC R JS ; 50AADL E JN ? T ESQURET INPRT IIS; 4 ,R'P # PBCM UTNP IEROPT GEO G -ES Y ; 2$ Q JE ? N TEATT IIS; R4N,TEAT # PBCM ; 50AADL Q JE ; R4 TBTS ? T PUINY AN; Q INTY,TPC R JS : 10AFDL ; ORATEROPM RO FUTNP ITY TOR FSTTE ; ; ; ; NKLIT EX NET G ;/ ; EOT RECVD ? JNE DLAB60 ; YES - ADVANCE TO XMT COND JSR R5,DLAS30 ; CALC BCC .WORD RCVBUF ; JNE DLAB50 ; NO, SEND NAK ; ; DLAB15: JMP DLAB70 ; GO SEND ACK ; ; SEND NAK ; DLAB50: JSR PC,SNDNK ; SET CONDITION TO SEND NAK CLR DLCTM1(R1) MOVB DLMS03,R4 ;NAK SENT JSR PC,TTY0 BEQ 10$ ;NO 473 001632 166716 000100   SUB TIME,(SP) ;EXSPIRED? 474 001636 003001    BGT 10$ ;NO 475 001640 005725    TST (R5)+ ;YES 476 001642    10$: 477 001642 022626    CMP (SP)+,(SP)+ 478 001644 000205    RTS R5 479     ; 480     ; SET A TIMER 481     ; 482 001646    SETIME: 483 00164 4 ,RKB T B OV M   2 567714 701610 100205 54 NO ; 0$ 1 PL B    5 370016 070204 54 Y?ADRER HA;C S TK TBTS  607517 675710 722000 43 5 : 0$1   2 070202 54 KS,T#1 IS B  0 567711 000007 765204 060201 54 NGMICOIN ; I:TYT   4 060200 54 ;    39 5 S NETIOU RPETYLETE ;     38 5 ;     37 5 E YPETEL TL TTSB .      6 53 ;   55AADL P JM . TSINV RCE BLNA E ;) R2R(CS,RSRRC+IBLTALK V MO DECOP TO SND AEDPE SET S ;) R2R(CS,XSRXC+IBLTALK V MO ; 2)(RUFRB R CL T AI WTOE ATSTK IN LET S ; ) R1E(STLC,DITWA # VBMO LEAB TNKLIR EACL; 0 S1LA,DPC R JS VETIACT NOK IN LET S ; 1)(RNDCIDL R CL R METIR EACL; 1)(RM1CTDL R CL ) TYFESAA (NKLIE THP TO S ; K LNTP,SPC R JS 3O JSR PC,DLAS15 ; CLEAR ERROR FLAGS JMP DLAC55 ; GO START OUTPUT ; ; ; SET STATE TO DISCONNECT ; DLAB55: JSR PC,STPLNK ; STOP THE LINK INTERRUPTS BIC LKTABL+DTREDY,RCSR(R2) ; CLEAR DATA TERM. READY MOVB #DISCON,DLCSTE(R1) ; SET STATE TO DISCONNECT MOV #ALTMR,-(SP) ; SET A JSR PC,SETIME ; TWO MOV (SP)+,DLCTM1(R1); TIMER 46 066766 000064 000002  ADD TIME,2(SP) 484 001654 001002    BNE 10$ 485 001656 005266 000002   INC 2(SP) 486 001662    10$: 487 001662 000207    RTS PC 488     ; 489     ; CELLS 490     ; 491 001664  015  012  114 CLOCKQ: .ASCII /LINE CLOCK?/ 001667  111  116  105 001672  040  103  114 001675  117  103  113 00170  35 5 0 D OR.W: ESCRBC   000000 622000 34 5 N VE.E     33 5 : QECCB   1 060202 53 12 0 602000  15 0 77 0 03 1 552000  03 1 02 1 40 0 522000  61 0 61 0 07 1 472000  F>/LF>