*20 PMODE EJECT / / / / / / / THIS IS THE THIRD PART OF PIP. IT S CALLED: / / / / / P I P 3 / / / / / / / / / / / EJECT *3400 / / / B I N A R Y H A N D L E R / / / BINARY, DECODE /GET THE CORRECT INPUT DEVICE. BININP /WHILE DISPLAYING INPUT MESSAGE. MTWO /SET BFIELD TO DO A NEW ONE. DCA BOFIELD DCA ORIGIN /SET ORIGIN TO ZERO DCA BOLDP /SET BASE TO ZERO DCA BFIELD /SET FIELD TO ZERO DCA BOLDO /SET OLD ORIGIN TO ZERO DCA BCOUNT /SET SIZE TOZERO DCA BFLAG1 /CLEAR THE INPUT AND OUTPUT DEVICE FLAGS. DCA BFLAG2 SEARCH /CHECK IF A LEGAL OPTION WAS GIVEN BINLST BINGO /AND IF IT WAS, GO TO CORRECT PLACE. JMP BINARY /NOT A LEGAL DEVICE. / / / / BHIGH, ISZ BFLAG1 /SET FLAG TOREADER BTTY, ISZ BFLAG1 /SET FLAG TO LOW READER. MORE DEVICE MAY COME /BEFORE THE HIGH READER TAD FNAME /TEST TO SEE IF MODE GIVEN CMA SNA CLA JMP BPART2 /NO LETTERS. NOO AUTO START. TAD FNAME /GET LEFT CHARACTER OF NAME. AND L7700 /ONLY P OR L NEEDED DCA FTYPE /AND STASH AWAY SEARCH /CHECK FOR P OR L BGOLST BSTGO JMP BINARY /ILLEGAL / / BPODE, TAD FSIZE /GET STARTING ADDRESS SNA /ONE GIVEN? TAD L200 /NOPE. SET IT TO 200. DCA FSIZE /AND STASH AWAY. PTWO /GET A "PDP" INSTRUCTION INTHE AC JMP BSCOMM /AND STORE AWAY. / BLODE, TAD FSIZE /GET THE STARTING ADDRESS. SNA /ONE GIVEN? TAD L4020 /NO. ASSUME 4020 DCA FSIZE /SAVE BACK STARTING ADDRESS. TAD L6000 /GET .NOT. 10 BIT MASK IN AC. CMA /MKAE IT A GOOD 10 BIT AN D MASK AND FSIZE /JUST 10 BITS. TAD L6000 /NOW MAKE IT A GOOD JMP IN LMODE INSTRUCTION. / I NEEDED A PAGE 0 LOCATION, SO I DID IT THAT WAY / BSCOMM, DCA I BBOOT+1 TAD FSIZE /GET STARTING ADDRESS DCA I BBOOT+3 /PLACE AWAY IN HEADER. CLA CLL CMA RTR /PLACE A JMP I 7777 IN THE AC(5777) DCA I BBOOT+2 /AND PLACE AWAY. TAD FUNIT /GET THE FIELD AND L7 /MAKE IT REASONABLE CLL RTL /SHIFT TO CORRECT PLACES. TAD L200 TAD L400 /SAVE A PAGE 0 LITTERAL DCA FUNIT /PLACE BACK TAD FSIZE /GET STARTING ADDRESS. AND L6000 /JUST LMODE FIELD BITS. CLL RTL RAL /INTO CORRECT POSITION. TAD FUNIT /ADD BACK IN CORRECT "LIF" DCA I BBOOT /AND SAVE AWAY. JMP BPART2 /GO TO COMMON. / / / ASMIFZ RF08 /DISK THERE? ASMSKP 2 /NOPE. DON T ASSEMBLE THE FOLLOWING IN. BLRF8, DISC /SET UP DISK INPUT SKP /SKP OVER TAPE SETUP. BLT, TAPE /SET UP TAPE OPERATION. PTWO /TELL DIRECTORY LOOKUP ITS BIANRY DCA FTYPE /FTYPE=2 MEANS A BINARY FILE. BL7345, CLA CLL CIA RAL /+1=BINARY. 7345=-433=-("DZ")-1 FOR DELETE ZERO /IN OTHER WORDS, ITS ALSO A LITTERAL, SO DONT MESS. DCA FWHAT /SET INPUT SWITCH DIRECT /GO DO IT. / BPART2, HPUSH /PUSH DOWN THE FBLOCK REGION. DECODE /GET THE OUTPUT DEVICE BINOUT /BINARY OUTPUT DISPLAY CMESSAGE SEARCH /CHECK NAEM FOR LEGAL OPTION BINLST /SAME INPUT AS OUTPUT FORR NOW BINGO2 /JMP LIST JMP BPART2+1 /NOT A LEGAL REQUEST. / / BHIGH2, ISZ BFLAG2 /SET THE OUTPUT FLAG BTTY2, ISZ BFLAG2 /FOR THE CORRECT DEVICE ISZ FNAME /PREPARE TO CHECK FOR "DZ". BOP UP FNAME TAD BL7345 /ADD IN -DZ-1.(IF NOT 7777) DCA BDELZ /NOW STASH AWAY IN DELETE SWITCH (0 OR -DZ-1) TAD FNAME /NOW GET THE CORRECT NAME+1 TAD BDELZ /COMPARE AGAINST WHAT WE PUT THERE SZA CLA /DO THEY MATCH. JMP BPART2+1 /THEY DONT MATCH. ASK AGAIN. /NOW BDELZ CONTAINS 0 FOR NO DELETE OR 7345 FOR DELETE. / / ASMIFZ RF08 /DISK THERE???? ASMSKP 2 /NOPE. NO DISK CODE NOW. BLRF82, DISC /SET FOR DISC NOW SKP BLT2, TAPE /SET FOR LINC TAPE, NOT DISC PUSH /SAVE FBLOCK IN LOW SAVE AREA. PTWO /SET BINARY MODE AGAIN. DCA FTYPE /IN CASE OF COPY MONE /IS IT A MASS STORAGE DEVICE OPERATION TAD BFLAG1 TAD BFLAG2 /IF NEGATIVE IT IS. SPA CLA /THE TEST! FILEC /YEP. COPY CHOSEN FILES. TAD BFLAG2 /GET OUTPUT FLAG SZA CLA /TAPE OUTPUT? LEADER /NO. PUNCH LEADER. TAD BFLAG1 /IS IT LINC TAPE INPUT??? SNA CLA JMP I BBTAPE /YEP. GO TO LINC TAPE ROUTINE JMP I BLODYR /NOPE. USE STANDARD BINARY LOADER. / / / / BBTAPE, BINTAP BLODYR, BNFILE L4020, 4020 /NORMAL STARTING ADDRESS IN LINC MODE. / BBOOT, BUFFER+400 /HEADER BLOCK SELF STARTING POINTERS. BUFFER+401 BUFFER+402 BUFFER+403 / BGOLST, 1400 /L*100 6000 /P*100+4000 / BSTGO, BLODE BPODE / / / / / / / / ASMIFN CARD-1 /DO WE WANT CARD READER CRAP LOADERED???? ASMSKP 30 /GUESS NOT. DON T ASSEMBLE THEM. / / CRDLTT, 0 /CARD READER CHECKER AND INITIALIZER. TAD FTYPE /GET THE REPLY . TAD CRM303 /IS IT A "C" SZA CLA /? JMP I CRDLTT /NOPE. RETURN TO CHECK MORE. TAD FUNIT /YEP. GET THE STARTING COLUMN DCA BOLDO /AND STASH AWAY. TAD FSIZE /AND GET THE LAST COLUMN DCA DATA /AND STORE IT AWAY. JMS I CRINIT /ITIALIZE CARD READER. ISZ BFLAG1 /PREPARE TO SET THE INPUT FLAG TO 3 JMP I .+1 /NOW ADD TWO TO THE INPUT FLAG ASCH1 /HIGH SPEED READER=2 / CRM303, -303 /A - "C" CRINIT, CDINIT /POINTE TO CARD READER INITIALIZE ROUTINE. / / / / / / / / / / / / / / / / / EJECT / *3600 / MORE BINARY LOADER ROUTINES AND CRAP. / / / / BNFILE, 6016 /NON FILE ORIENTED ROUUTINES. 6032 /INITIATE AND CLEAR ALL POSSIBLE DEVICES. DCA BFIELD /SET FIELD TO ZERO. DCA BFEILD /AND SET NEXT FIELD TO ZERO ALSO. JMS BEGG /GET A CHARACTER JMP .-1 /LEADER-TRAILER. IGNORE IT. / BGO, DCA BCHECK /UPDATE CHECKSUM TAD BCHAR /GET THE CHARACTER DCA BWORD1 /STORE AWAY AUXIN /LOOKUP FOR NEXT CHAR DCA BWORD2 /AND SAVE JMS BEGG /LOOK AHEAD ONE NOW. JMP BEND /TRAILER FOUND. CHECK CHECKSUM. JMS BASSEM /ASSEMBLE A WORD SNL /ORIGIN? JMP BBBPUT /NO. PLACE IN DATA WORD DCA ORIGIN /YES. STORE IN ORIGIN. BCHEX, TAD BFEILD /GET THE NEXT FIELD DCA BFIELD /AND STORE IT IN THE PRESENT FIELD FOR NEXT TIME TAD BWORD1 TAD BWORD2 TAD BCHECK /UPDATE CHECKSUM JMP BGO /AND GO GET NEXT WORD. / BBBPUT, DCA DATA /PLACE IN DATA FOR OUTPUT ROUTINE TO USE. PUTWORD /GO OUTPUT IT. ISZ ORIGIN /GO TO NEXT LOC. M200, -200 /NOP IN CASE OF SKIP JMP BCHEX /AND UPDATE CHECKSUM / BASSEM, 0 TAD BWORD1 /GET THE FIRST WORD CLL RTL RTL RTL /NOW PLACE IN SECOND PART TAD BWORD2 JMP I BASSEM /NOW EXIT / BEGG, 0 /GETS AND CHECKS A CHARACTER FROM GIVEN SEQUENTIAL DEVICE. DCA TEMP4 /SET SWITCH AUXIN /GET A CHARACTER. TAD M377 /CHECK FOR RUBOUT SZA CLA /? JMP .+4 /NO RUBOUT ISZ TEMP4 /YES. COMPLEMENT SWITCH CMA JMP BEGG+1 /GO BACK AGAIN. TAD TEMP4 /SWITCH SET? SZA CLA JMP BEGG+2 /YEP. STILL IN RUBOUTS TAD BCHAR /GET THE CHAR AND L700 /HIGH ORDER BITS ON? TAD M200 /GET TYPE SPA /IS IT JUST LEADER ISZ BEGG /NO HIGH ORDER BITS ON. SPA SNA CLA /TEST NOW FOR ORIGIN AN D LEADER-TRAILER JMP I BEGG /DATA,ORIGIN, OR LEADER TRAILER TAD BCHAR /FIELD CHARACTER AND L70 /JUST GET FIELD DCA BFEILD /SAVE IN NEXT FIELD TAD BFEILD /GET BACK TAD M20 /MORE TEHN 8 K? SMA CLA NO /YEP. TOOOO BBBIIGGG!!! JMP BEGG+2 / / BEND, JMS BASSEM CIA TAD BCHECK /CHECK CHECKSUM SZA CLA /GOOD? JMP I BCERR /GIVE CHECKSUM MESSAGE. IT BAD JMS I PMORE /ASK IF ANY MORE TAPES? JMP BNFILE MONE /CLOSE THE OUTPUT FILE DCA BFIELD PUTWORD /SEND T O BLAHS. PIP /RETURN TO PIP / / / / / SEQIN, 0 /SEQ INPUT UNIT. CHECKIO /CHECKIO AND LEAVE AC 0 DCA CNTRLZ /CLEAR THE CONTROLZ FLAG TAD BFLAG1 /GET INPUT FLAG. TAD L7777 /SUBTRACT1 SNA CLA JMP SEQTTY SEQTST, GETL /TEST LOW READER FOR A CHAR JMP SEQN1 TAD M232 SNA ISZ CNTRLZ SNA CLA JMP I SEQIN /EXIT / SEQN1, ASMIFN CARD-1 /DO WE WANT CARD READER CHECK LOADED????? ASMSKP 5 /NOPE. DONT ASSEMBLE THEM IN / JMS I SEQCIN /CHECK FOR CARD READER AND GET CHAR. JMP SEQTST /CHAR NOT READY YET. JMP SEQCOM /CHAR READY. / / 6011 /DEVICE IS HIGH SPEED READER. FLAG READY??? JMP SEQTST /GO INTO BIG WAIT LOOP 6016 JMP SEQCOM SEQTTY, GETL /GET A CHARACTER JMP .-1 /WAIT FOR IT SEQCOM, DCA BCHAR /STASH AWAY TAD BCHAR TAD M232 SNA CLA ISZ CNTRLZ TAD BCHAR JMP I SEQIN / / / SEQOUT, 0 /SEQUNETIAL OUTPUT BLOP. DCA SEQIN /SAVE THE CHAR CHECKIO /CHECKIO TAD BFLAG2 /GET THE OTPUT FLAG TAD L7777 SZA CLA JMP SEQO2 /HIGH PUNCH OUTPUT TAD SEQIN PUTL JMP I SEQOUT /OUT IT GOES. / SEQO2, ASMIFZ CARD-1 /DO WE CHECK FOR LINE PRINTER??? JMS I SEQLP /YEP. GO CHECK / CHECKIO /LINE PRINTER ISN T THE ONE. 6021 /WAIT FOR OK. JMP .-2 /WAIT TILL DONE. TAD SEQIN /GET THE CHAR. 6026 /SEND IT OUT SEQEXT, CLA /CLEAR THE AC. JMP I SEQOUT /ALL DONE. / / / / BCHECK, 0 BFEILD, 0 M232, -232 L70, 70 BCERR, CERR / / / / ASMIFN CARD-1 /CARD READER AND LINE PRINTER THERE???? ASMSKP 3 /NOPE. DONT ASSEMBLE IN POINTERS. / SEQCIN, CDREAD /POINTER TO CARD READER ROUTINE. SEQLP, LPTEST /POINTER TO LINE PRINTER ROUTINE. / / / / / / EJECT / / *4000 / / / MORE OF THE BINARY ROUTINES. / / / / 0000 /FIRST 3 LOCATION ARE RESERVED FOR A REGISTESR IN LMODE 0000 0000 / / / / BINTAP, HPOP /INPUT FROM LINC TAPE. TAD FUNIT /GET THE UNIT DCA .+4 /SET UP CONTROL BLOCK READ TAD FBNUM /GET THE STARTING BLOCK NUMBER DCA .+5 /GET BLOCK NUMBER READ /READ IN HEADER BLOCK 0 /PLACED IN UNIT BUFFER+400 /READ HEADER BLOCK IN SECOND BLOCK OF BUFFER. 1 /1 RECOOD 0 /CORECT BLOCK NUMBER HPOP /ZAP IN FBLOCK AGAIN ISZ FBNUM /MOVE PAST HEADER BLOCK JMS I BSETI /SET UP WORD GETTER. TAD M40 /SET UP NUMBER OF 400 WORD BLOCKS TO CHECK DCA BTEMP1 /AND STASH AWAY. TAD BMTAB /GET START OF MEMORY MAP CONFIG. DCA BTEMP2 /AND PLACE AWAY. / BEILOP, TAD M400 /400 WORDS PER RECORD DCA BTEMP3 /SET UP COUNT TAD BTEMP1 /GET THE BLOCK NUMBER TAD L40 /GET BETWEEN 0-37 CLL RTR RTR RAR /MOVE INTO 7400 POSITION DCA ORIGIN /SET UP INITIAL ORIGIN. RTL RTL /MOVE LINC TO FIELD POSITION. DCA BFIELD /AND PLACE IN BFIELD. BETLP2, TAD I BTEMP2 /IS THIS BLOCK USED. SNA CLA /? JMP BEOUT /NOPE. WANDER DOWN. JMS I BGETI /GET A WORD FROM TAPE/ DCA DATA /PLACE IN DATA WORD. PUTWORD /SEND IT DOWN THE LINE. BEOUT, ISZ ORIGIN /BOP UP ORIGIN. NOP ISZ BTEMP3 /BOP UP 400 COUNTER JMP BETLP2 /NOT YET DONE. DO ANOTHER. ISZ BTEMP2 /BOP UP MAP POINTER NOP /IT REALLY CAN SKIP(I FOUND OUT THE HARD WAY) ISZ BTEMP1 /BOP UP BIGCOUNT POINTER JMP BEILOP /GO BACK AND GET NEXT FIELD AND ORIGIN. MONE /ALL DONE. DCA BFIELD /PLACE AN "EOF" ON BFIELD PUTWORD /END OF FILE CODE WORD. PIP /RETURN TO PIP / / / / BTAPE, 0 /MAIN TAPE OUTPUTER. TAD BFIELD /LAST TIME THROUGH? IAC SNA CLA /? JMP I BTEND /YEP. CLOSE FILE. TAD BFIELD /GET THE FIELD CIA TAD BOFIELD /SAME AS LAST ONE? SZA CLA JMP BIDIFF /NOPE. SET TO CHANGE BANKS. TAD ORIGIN /GET THE ORIGIN AND L7400 /JUST HIGH BITS. CIA / TAD BOLDO /ADD IN LAST ORIGIN SZA CLA /SAME 400 WORD BANK?? JMP BIDIFF /NOPE.. CHANGE BANKS. / BINTRY, TAD ORIGIN /GET THE ORIGIN AND L377 /GET IN 400 WORD BANK POSIITION TAD BPOINT /GET START OF BUFFER LOCATION. DCA TEMP /STORE AWAY TAD DATA /GET THE DATA WORD DCA I TEMP /NOW PLACE IN BUFFER TAD ORIGIN /GET ORIGIN AND L7400 /GET JUST BANK NUMBER DCA BOLDO /STASH AWAY. TAD BFIELD /RESET THE FIELD TOO DCA BOFIELD /AND AWAY IT GOES. JMP I BTAPE /GO BACK AND GET ANOTHER WORD. / / BIDIFF, TAD ORIGIN /GET THE ORIGIN RTL RTL AND L7 /MUST MAKE IT BITS 8-11 TAD BFIELD /PUT IN FIELD BIT NOW! RAL /AND ROTATE IN REST OF CRAP. DCA BTEMP1 /STASH AWAY/ TAD BOFIELD /GET THE OLD FIELD BITS. SMA CLA /IF ITS MINUS, DONT DUMP BUFFERS. JMS BIDUMP /NOT THE FIRST TIME THROUGH. DUMP BUFFERS TAD BTEMP1 /REGET NEW POSITION DCA BOLDP /AND PLACE I N OLD PLACE TAD BTEMP1 /GET PLACE AGAIN TAD BMTAB /START OF POSITION THING DCA BTEMP2 /CORE MAP TAD I BTEMP2 /GET REFERNCE WORD SNA CLA /IS IT TAKEN? ISZ BCOUNT /NOPE. ANOTHER RECORD TO WRITE OUT LATTER ON. MONE /MEANWHILE.... DCA I BTEMP2 /TELL SYSTEM IT S TAKEN NOW. TAD BTEMP1 /REGET BASE POINTER TAD BMBASE /ADD IN STARTING BLOCK NUMBE DCA .+5 /READ IN NEW CORE IMAGE FOR OVERLAYING. READ /READ IT IN DSYS1, SYSBIN /FROM SYSTEM BINARY UNIT. BUFFER /THIS IS THE GENERAL CORE WORKING AREA FOR THE BINARY. 1 0 /RECORD NUMBER GOES HERE. JMP BINTRY /RETURN TO MAIN PUTTER. / / / BIDUMP, 0 /DUMPS THE PRESENT BUFFER INTO THE CORRECT POSITION. TAD BOLDP /GET OLD POINTER TAD BMBASE /ADD IN THE RECORD NUMBER BASE. DCA .+5 /SAVE AWAY. WRITE /WRITE IT OUT. DSYS2, SYSBIN BUFFER 1 0 JMP I BIDUMP /RETURN / / / / / BMBASE, SYSBBLOCK L377, 377 BPOINT, BUFFER /BINARY CORE WORKING AREA BMTAB, BUFFER+740 /LOADING MAP. BTEND, BTENT L40, 40 BSETI, SETI BGETI, GETI / / / / / / / / EJECT *4200 / / / MORE BINARY LOADER ROUTINES. / / / BTENT, JMS I BBDUMP /DUMP THE BUFFER TAD BCOUNT /NUMBER OF RECORDS SAVED. SNA /ANY AT ALL? NO /NOPE. DCA I BBOINT-1 /STASH IN HEADER BLOCK. WRITE /WRITE OUT HEADER BLOCK NOW. BSYS, SYSBIN BUFFER+400 1 BBBHDR, SYSHDR /POSITION OF HEADER BLOCK ON SYSTEM. / DSYS3=BSYS / POP /BRING BACK FBLOCK FROM LOWER AREA NOW. TAD BCOUNT /REGET THE LENGTH. IAC /ADD 1 FOR HEADER BLOCK DCA FSIZE /SAVE IN CORRECT PLACE. PTWO /SET FOR OUTPUT FILE. DCA FWHAT PTWO /SET FOR BINARY FILE DCA FTYPE DIRECT /LOOKUP UP NAME AND ROOM. HPUSH /STASH AWAY. TAD FBNUM /GET THE STARTING BLOCK DCA OUTBLOCK TAD FUNIT /STASH IN UNIT TOO. DCA OUTUNIT /SET UP OUTPUT UNIT. TAD BSYS /GET INPUT UNIT DCA INUNIT /SET UP INPUT UNIT TAD BBBHDR /POINTER TO HEADER BLOCK DCA INBLOCK /STASH IN INPUT BLOCK NUMBER PONE /SET THE SIZE TO 1 BLOCK DCA FSIZE COPY /COPY THE HEADER BLOCK TO THE CORRECT LOCATION ON TAPE. TAD BBBASE /GET THE BINARY WORK AREA POINTER. DCA INBLOCK /SET THE INPUT UP AGAIN. MOVE /NOW MOVE THE HEADER BLOCK WHICH BUFFER /WE JUST READ INTO BUFFER BY COPY BUFFER+400 /BACK UP TO BUFFER+400 SO WE CAN USE THE HEADER 400 /BLOCK INFORMATION FOR THE COPYING OF THE BLOCKS. TAD BBOINT /START OF MEMORY BLOCK CONFIG. DCA BTEMP1 /SET UP OUTCHECKER TAD M40 /SET UP TO LOOK AT 40 BLOCKS DCA BTEMP3 /BTEMP3 IS OUR COUNTER NOW. ISZ OUTBLOCK /SKIP PAST HEADER BLOCK / BELOOP, TAD I BTEMP1 /GET THE MOMORY USAGE WORD SNA CLA /BLOCK USED? JMP BEEND /NOPE. GO DOWN PONE /SET TO MAKE A 1 BLOCK COPY DCA FSIZE /BY PLACING A "1" IN FSIZE COPY /YEP. COPY A BLOCK ISZ OUTBLOCK /GO TO NEXT OUTBLOCK. BEEND, ISZ INBLOCK /GO TO NEXT INPUT BLOCK ISZ BTEMP1 /BOP MEMORY POINTER NOP /THIS CAN SKIP IF BUFFER WAS SET TO 7000 ISZ BTEMP3 /HAVE WE FINISHED THE HEADER BLOCK? JMP BELOOP /NOT .YET DONE. PIP /ALL DOOE. RETURN TO PIP. / / / BBDUMP, BIDUMP BBBASE, SYSBBLOCK BUFFER+737 /POINTER TO HEADER BLOCK LENGTH. MUST BE AT BBOINT-1 BBOINT, BUFFER+740 /POINTS TO START OF CORE MAP IN HEADER BLOCK / / / / / BBOUT, 0 TAD BFLAG2 /MASS STORAGE OUTPUT??? SZA CLA JMP .+3 /NO. JMS I BBLT /YEP. GO DO IT. JMP I BBOUT /AND RETURN. PONE /IS THIS END OF INPUT??? TAD BFIELD /(BFIELD=7777? SZA CLA JMP BBBBBJ /NOT END. CHECK ORIGIN AND FIELD SETTINGS.% TAD BCOUNT ROR6 /ROTATE INTO LOW ORDER BITS OF AC. AND L77 AUXOUT TAD BCOUNT AND L77 AUXOUT /OUTPUT CHECKSUM LEADER PIP /GIVE TRAILER AND RETURN TO PIP / BBBBBJ, TAD BDELZ /GET THE DELETE ZEROS SWITCH. SNA CLA /IS IT NON ZERO? JMP .+4 /ITS ZERO. DONT DELETE ZEROS. TAD DATA /GET THE DATA WORD. SNA CLA /IS IT ZERO? JMP I BBOUT /YEP. RETURN TO THE CALLER NOW. ZERO DELETED. TAD BFIELD /SEE IF IN SAME DATA FIELD AS BEFORE. CIA TAD BOFIELD /? SNA CLA /? JMP BBN1 /YEP. DON T OD A NEW FIELD TAD BFIELD /GET THE FIELD TAD L700 /PLACE ON TWO HIGH ORDER BITS. AUXOUT /AND OUTPUT IT. JMP BBNEWO /AND GO OUTPUT ORIGIN. / BBN1, TAD BOLDO /IS IS LOCATION+1? CMA TAD ORIGIN /SO THTA IT WOULD LOAD HERE ANYWAY. SNA CLA JMP BBN2 /NEXT LOC. DON T DO A NEW ORIGIN BBNEWO, TAD ORIGIN /NEW ORG. OUTPUT IT ON SEQ. DEVICE ROR6 /NOW PLACE IN RIGHT HALF OF A.C. AND L77 /JUST 6 BITS TAD L100 /PLACE ON ORIGIN BIT JMS BOADD /AND PUT OUT WITH A CHECKSUM TAD ORIGIN /GET THE ORIGIN AND L77 /JUST 6 BITS JMS BOADD /AND OUTPUT IT TOO / BBN2, TAD ORIGIN /GET THE ORGIN DCA BOLDO /AND SAVE IT AWAY. TAD BFIELD /NOW RESET THE FILED TOO DCA BOFIELD /AND STAS AWAY TAD DATA /GET THE DATA ROR6 /PLACE LEFT HALF IN RIGHT HALF FOR THE OUTPUT AND L77 JMS BOADD /AND PUT IT OUT TAD DATA AND L77 /NOW PUT IT OUT TOO JMS BOADD JMP I BBOUT /NOW EXIT / / / BOADD, 0 DCA TEMP3 TAD TEMP3 TAD BCOUNT DCA BCOUNT /UPDATE BCOUNT TAD TEMP3 AUXOUT /SEND IT ALONG JMP I BOADD / BBLT, BTAPE / / / / / / / / EJECT / / COMMON ROUTINES USED BY BINARY AND ASCII HANDLERS. / / THIS PAGE MAY OVERLAP OR UNDERLAP A LITTLE FROM THE PREVIOU PAGE. / / / / / / / / / / / BINLST, 310 /BINARY INPUT DEVICE LIST. "H" 314 /"L" ASMIFN RF08 /DO WE WANT THE RF08 PRESENT 322 /YES. "R" 4324 /"T" / / / BINGO, BHIGH /HIGH SPEED READER BLT /LINC TAPE ASMIFN RF08 /DISK? BLRF8 /YES. RF08 BTTY /TELETYPE. / / / BINGO2, BHIGH2 BLT2 ASMIFN RF08 BLRF82 BTTY2 / / / / / / / / / / MORE, 0 /DISPLAYS A "MORE" MESSAGE. DECODE /DECODE A LINE MMORE /THATS OUR MESSAGE SEARCH /LOOK UP THE ANSWER MAORN MGOTO /JUMP TABLE JMP MORE+1 /BAD REPLY. MANDM1, ISZ MORE /NO MORE TAPES MANDM2, JMP I MORE /EXIT. / / MAORN, 301 316 4322 / MGOTO, MANDM2 MANDM1 MANDM2 / / MMORE, LEFT+200 TOP-300 / / / / ASMIFN CARD /CARD MESSAGE ASMSKP 10 /THERE. GIVE CARD MESSAGE / / TEXT "FMORE TAPES? HN --- NO MORE TAPES HR --- READ ANOTHER TAPE\" / / / / / / ASMIFZ CARD /CARD READER NOT THERE? ASKSKP 10 /SKIP OVER MESSAGE / / TEXT "FMORE INPUT? HN --- NO MORE INPUT HR --- READ MORE CARDS OR TAPES\" / / / / / / / / / / / / / CERR, DISPLAY /CHECKSUM ERROR DISPLAY. CCERR /DISPLAY MESSAGE JMP .-2 /HANG AROUND UNTIL A ^D OR ^P IS TYPED. / / / CCERR, LEFT+200 TOP-340 TEXT "FCHECKSUM ERROR\" / / / / / / SETI, 0 /SETS UP GETI MONE /BOP DOWN BY 1 TAD FBNUM /GET FIRST BLCOK NUMBER DCA GEENUM /AND PLACE IN READ CALL. TAD FUNIT /GET THE UNIT DCA GUNIT /PLACE AWAY UNIT MONE /SET THE SWITCH DCA GCUNT /TO OVERFLOW FIRST TIME THROUGH JMP I SETI /RETURN / / / / / GETI, 0 /GETS A CHARACTER FROM THE SYSTEM BUFFER. CLA ISZ GCUNT /IS BUFFER EXHAUSED? JMP GOK /NOPE. GET NEXT. TAD M400 /YEP. RESET COUNRTE FOR A NEW BLOCK. DCA GCUNT /COUNTER RESET. TAD GPLACE /GET START OF BUFFER DCA GPLCE2 /STORE AWAY. ISZ GEENUM /BOP UP TO NEXT REOCRD. READ GUNIT, 0 /AND READ IT IN. GPLACE, BUFFER 1 GEENUM, 0 GOK, TAD I GPLCE2 /GET WORD FROM BUFFER ISZ GPLCE2 /BOP UP POINTER JMP I GETI /EXIT / GPLCE2, 0 GCUNT, 0 /GCOUNT ALREADY USED ELSEWHERE / / / / / / / / / / / / / ASMIFZ RF08 /RF08 THERE? ASMSKP 15 /NOPE. DONT ASSEMLE THIS CRAP. / / ASUGO1, ASULP1 /TRANSFER TABLES FOR SYS AND UNIT COPIES ASUTT1 ASUDD1 ASULP1 / / / ASUGO2, ASULP2 ASUTT2 ASUDD2 ASULP2 / / / / / / / / / / / NOSUCH, 0 /THIS ROUTINE DISPLAYS A DEVICE OVERFLOW MESSAGE NO /ON THE SCREEN CONSISTING OF THE LETTERS N AND O. / / / / / / / / / / / / STATRS, 0 /THIS CALIBRATES DISK IF NOT OK. KCC /CLEAR AC AND TTY. TAD RKSTAT /REGET THE STATUS NOW. SZA CLA /IS IT ZERO? ? DCLA /NOPE. DO A CALIBRATE. / STATLP, DISPLAY /DO SOME MORE DISPLAYING WHILE WAITING. MAINDIS /FOR THE DISK TO BE READY. DRDS /READ IN STATUS. RAR /ROTATE TO LINK. SNL CLA /DONE. JMP I STATRS /YEP. EXIT. JMP STATLP /NOPE. WAIT A WHILE. / / / RKSTAT, 0 /WORD FOR STATUS BEFORE I-O PRESET. / / / / / / / ASMIFN .?100 /IF THE 300 BIT IS ON, ASSEMBLE IN THE PAGE PSEUDO-OP. PAGE / / / / / / / / / STATSV, 0 KCC /CLEAR THE KEYBOARD AND THE AC. DRDC /READ IN THE OLD COMMAND REGISTER. AND STL6 /LEAVE IN JUST EXTRA UNITS BITS. DCA I RKSTTP /AND SAVE AWAY THE DRIVE WE-RE ON. JMP I STATSV /RETURN NOW. / / / STL6, 6 RKSTTP, RKSTAT /ACCROSS PAGE POINTER. / / / / / / / / / / / / / / / / / / / / / / / / / / / / BININP, LEFT+240 TOP-200 / / ASMIFN RF08!CARD /DO WE WANT STANDARD MESSAGE??? ASMSKP 12 /NOPE. DONT ASSEMBLE I.T IN... / / TEXT "FINPUT DEVICE: HH --- HIGH SPEED READER HL --- LINC TAPE HT --- TELETYPE\" / / / / ASMIFZ RF08+1?CARD /DO WE WANT THE CARD READER BUT NO DISK? ASMSKP 13 /YES. DONT ASSEMBLE THAT IN. / / TEXT "FINPUT DEVICE: C --- CARD READER HH --- HIGH SPEED READER L --- LINC TAPE T --- TELETYPE\" / / / / / / / ASMIFZ CARD+1?RF08 /ASSEMBLE FOLLOWING MESSAGE IF DISK BUT NO CARD READER. ASMSKP 13 /SKIP OVER IT. / / TEXT "FINPUT DEVICE: HH --- HIGH SPEED READER L --- LINC TAPE R --- RF08,RK08 DISK T --- TELETYPE\" / / / / / / / ASMIFZ RF08?CARD /DO WE WANT BOTH DISK AND CARD? ASMSKP 14 /NOPE. NOT THIS MESSAGE. / / TEXT "FINPUT DEVICE: C --- CARD READER HH --- HIGH SPEED READER L --- LINC TAPE R --- RF08,RK08 DISK T --- TELETYPE\" / / / / / / / / / / / / / / / / / / / / / / / / BINOUT, LEFT+240 TOP-200 / / / ASMIFN CARD!RF08 /DO WE WANT STANDARD OUTPUT DEVICES. ASMSKP 12 /NOPE. DONT ASSEMBLE THEM IN. / / TEXT "FOUTPUT DEVICE: HH --- HIGH SPEED PUNCH HL --- LINC TAPE HT --- TELETYPE\" / / / / ASMIFZ RF08+1?CARD /DO WE WANT THE LINE PRINTER ROUTINES LOADED?? ASMSKP 13 /DO NOT DISPLAY LINE PRINTER MESSAGES. / / TEXT "FOUTPUT DEVICE: HH --- HIGH SPEED PUNCH L --- LINC TAPE P --- LINE PRINTER T --- TELETYPE\" / / / / / / / / ASMIFZ CARD+1?RF08 /DO WE WANT DISK BUT NOT PRINTER? ASMSKP 13 /NOPE. SKIP OVER MESSAGE. / / TEXT "FOUTPUT DEVICE: HH --- HIGH SPEED PUNCH L --- LINC TAPE R --- RF08,RK08 DISK T --- TELETYPE\" / / / / / / ASMIFZ CARD?RF08 /DO WE WANT BOTH PRINTER AND DISK? ASKSKP 14 /NOPE. DONT ASSEMBLE IN THIS MESSAGE / / TEXT "FOUTPUT DEVICE: HH --- HIGH SPEED PUNCH L --- LINC TAPE P --- LINE PRINTER R --- RF08,RK08 DISK T --- TELETYPE\" / / / / / / / / / / / / EJECT / / / / / / / / CHAIN TO THE NEXT PART OF PIP / / / / / CHAIN "PIP4" / / / / / / / / / / EJECT