*20 PMODE EJECT / / / / / / / THIS IS THE THIRD PART OF PIP. IT S CALLED: / / / / / P I P 3 / / / / / / LODSYM /RECALL SYMBOLS FROM OTHER PIPS. / / / / / 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 TO ZERO 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. MONE /GET A JMP I 7777 IN AC. TAD L6000 /OR 5777 AS THE WORLD KNOWS AND LOVES IT. 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. / / / BLT, PTWO /TELL DIRECTORY LOOKUP ITS BIANRY DCA FTYPE /FTYPE=2 MEANS A BINARY FILE. PONE DCA FWHAT /SET INPUT SWITCH TAPE /SET UP TAPE OPERATION 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 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 / BBOOT, 7400 7401 7402 7403 / BGOLST, 1400 /L*100 6000 /P*100+4000 / BSTGO, BLODE BPODE / BINLST, 310 314 4324 / BINGO, BHIGH BLT BTTY / BINGO2, BHIGH2 BLT2 BTTY2 / / / / / / / / 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. 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 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 BFIELD /SAVE IN NEW FIELD TAD BFIELD /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 BMORE /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 177 /RESERVED FOR PIP RETURN, BUT CAN BE USED HERE 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 177 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 177 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 BWORD1, 0 BWORD2, 0 M232, -232 L70, 70 BMORE, MORE 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 7400 /READ INTO 7400 FOR SAYFTEY 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. SPA /IS IT FIRST TIME THRU? JMP BINTRY /YEP. DON T DUMP BUFFERS. DCA BTEMP1 /STASH AWAY/ JMS BIDUMP /DUMP PRESENT 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 SYSBIN /FROM SYSTEM BINARY UNIT. 7000 /7000 IS THE GENERAL AREA. 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. SYSBIN 7000 1 0 JMP I BIDUMP /RETURN / / / / / BMBASE, SYSBBLOCK L377, 377 BPOINT, 7000 /SINGLE CORE BUFFER. BMTAB, 7740 BTEND, BTENT L40, 40 BSETI, SETI BGETI, GETI / / / / / / / / EJECT *4200 / / / MORE BINARY LOADER ROUTINES. / / / BTENT, JMS I BBDUMP /DUMP THE BUFFER WRITE /WRITE OUT HEADER BLOCK NOW. BSYS, SYSBIN 7400 1 SYSHDR /POSITION OF HEADER BLOCK ON SYSTEM. POP /BRING BACK FBLOCK FROM LOWER AREA NOW. TAD BCOUNT /NUMBER OF RECORD SAVED. SNA /ANY? NO /NOPE. DCA I BBOINT-1 /STASH LENGTH AWAY IN HEADER BLOCK. 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 BBBASE /GET THE OUTPUT BASE DCA INBLOCK /SET UP INPUT BLOCK TAD FUNIT /GET THE MAIN UNIT DCA .+4 TAD FBNUM DCA .+5 /SET UP HEADER WRITE WRITE 0 7400 1 0 TAD BBOINT /START OF MEMORY BLOCK CONFIG. DCA BTEMP1 /SET UP OUTCHECKER 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 JMP BELOOP /NOT .YET DONE. PIP /ALL DOOE. RETURN TO PIP. / / / BBDUMP, BIDUMP BBBASE, SYSBBLOCK 7737 /POINTER TO HEADER BLOCK LENGTH. MUST BE AT BBOINT-1 BBOINT, 7740 /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 RTR RTR RTR AND L77 AUXOUT TAD BCOUNT AND L77 AUXOUT /OUTPUT CHECKSUM LEADER PIP /GIVE TRAILER AND RETURN TO PIP / BBBBBJ, 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, PONE TAD BOLDO /IS IS LOCATION+1? CIA 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 RTR RTR RTR /ROTATE RIGHT 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 RTR RTR RTR 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 / L100, 100 BBLT, BTAPE / / / / / / / / EJECT / / COMMON ROUTINES USED BY BINARY AND ASCII HANDLERS. / / / *4400 / / / MORE, 0 /DISPLAYS A "MORE" MESSAGE. DECODE /DECODE A LINE MMORE /THATS OUR MESSAGE SEARCH /LLOK 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 4316 / MGOTO, MANDM2 MANDM1 / / MMORE, LEFT+200 TOP-300 TEXT "FMORE TAPES? HA --- READ ANOTHER TAPE HN --- NO MORE TAPES\" / / / / CERR, DISPLAY /CHECKSUM ERROR DISPLAY. CCERR /DISPLAY MESSAGE GETL /DUMMY GET JMP CERR JMP CERR /UNITL A CONTROL P OR D 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 / / / / / BININP, LEFT+240 TOP-200 / / ASMIFZ CARD-1 /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\" / / / / ASMIFN CARD-1 /DO WE WANT CARD READER MESSAGE???? ASMSKP 13 /NOPE. DONT ASSEMBLE THAT IN. / / TEXT "FINPUT DEVICE: C --- CARD READER HH --- HIGH SPEED READER L --- LINC TAPE T --- TELETYPE\" / / / / / / / / / BINOUT, LEFT+240 TOP-200 / / / ASMIFZ CARD-1 /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\" / / / / ASMIFN CARD-1 /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\" / / / / / / / / / / / / / EJECT / / / THIS IS THE CONVERTER ROUTINE. / IT CONVERTS A SOURCE FILE FROM THE OLD TYPE(DOLLAR SIGN IS FILE TERMINATOR) / TO THE NEW FORMAT(00 IS THE FILE TERMINATOR). / IT IS CONDITIONAL ASSEMBLED IN BY SETTING THE / SWITCH "REMAKE" TO 1. / SINCE IN FUTURE VERSIONS THIS WON T BE NECESSARY, YOU WILL SET REMAKE TO 0. / / / / / / / / / / ASMIFZ REMAKE /DO WE WANT TO ASSEMBLE CONVERTER?? ASMSKP 114 /NOPE. SKIP PAST THE CODE / / / / / KONVRT, DECODE /GET THE INPUT FILE. ASCINP /DISPLAY SOURCE MESSAGE. TAD FTYPE /GET THE REPLY TAD M314 /IS IT AN L SZA CLA JMP KONVRT /NOPE. ASK AGAIN. PONE /SET THE TYPE TO SOURCE DCA FTYPE PONE /AND THE SWITCH FOR "INPUT" DCA FWHAT DIRECT /AND LOOKUP UP NAME IN DIRECTORY. TAD FSIZE /GET THE NUMBER OF BLOCKS. DCA BTEMP3 /AND STASH AWAY. TAD FBNUM /GET THE FIRST BLOCK DCA KINB /SET UP THE READ. TAD FBNUM DCA KOUTB /AND ALSO THE REWRITE. TAD FUNIT /GET THE UNIT DCA KINU /AND SET UP THE TAD FUNIT /READ AND WRITE UNITS DCA KOUTU MONE /SET THE SWITCH SO NO DOLLAR SIGN FOOND. DCA BTEMP2 /AND STASH AWAY. SKP /SKIP PAST DECEREMENTER. KLOOP, MONE /SUBRACT ONE FROM NUMBER OF BLOCKS TO GO. TAD BTEMP3 /THE NUMBER TO GO. DCA BTEMP3 TAD BTEMP3 /NUM TO GO AND BTEMP2 /ARE WE ALL DONE??? SNA CLA PIP /YEP. RETURN TO PIP. READ /NOPE. READ IN NEXT BLOCK. KINU, 0 /INPUT UNIT BUFFER 1 /1 RECORD KINB, 0 /BLOCK NUMBER ISZ KINB /FOR NEXT READ. LINC LMODE /GET OVER INTO A NICE MODE LDF 3 /INTO BUFFER REGION SET I 1 /SET 1 TO START OF INPUT PMODE /GET OVER INTO 8 MODE FOR COMPARISONS. ASMIFZ BUFFER-6000 /BUFFEE AT 6000? BUFFER+1777 /YEP. DO FOLOLOWING TO GET COREECT ADDRESS ASMIFN BUFFER-6000 /IS ITTNOT AT 6000?? BUFFER-1 /YEP. SET UP CORRECT POINTER NOW. LMODE LMODE /GET BACK INTO LMODE ASSEMLBY. SET I 2 /SET UP CHAR COUNT -1000 KLOOP2, LDH I 1 /GET A CAR SHD I /IS IT A 4444 /DOLLAR SIGN CLR /YEP. CONVERT TO A 00 STH 1 /AND PLACE BACK IN BUFFER. AZE I /YAS IT A DLOLAR SIGN??? STC BTEMP2 /YEP. END OF FILE NOW. XSK I 2 /ALL DONE WITH THIS BUFFER????? JMP KLOOP2 /NOPE. GET NEXT CHAR. PDP /GET BACK INTO 8 MODE PMODE CLA /CLEAR HTE AC TO BE SURE. WRITE /WRITE OUT CONVERTED BLOCK KOUTU, 0 BUFFER 1 KOUTB, 0 ISZ KOUTB /BOP UP BUFFER POOINTER. JMP KLOOP /AND GO BACK AND TRY NEXT ONE. / / / / / / / / / / / / / / / / / EJECT / SAVE THE SYMBOLS FOR P I P 4 / / / / / / SAVSYM 2 / / / / / / / / / EJECT