FIELD 1 *2200 JMS I (7700 10 CALLCD, JMS I (200 5 0 JMS I (IOPEN JMS I (OOPEN SMA CLA JMP START1 JMS TERR TEXT /OPEN FAILED/ START1, CLA TAD N14 DCA N14CTR START2, JMS I (ICHAR JMP TSTEOF JMS SRCH 215 JMP START2 JMS SRCH 212 JMP START2 NUMB, JMS SRCH 0 /KEINE LOCHUNG? JMP START2 JMS SRCH 257 /SCHRAEGSTRICH? JMP TRAP JMS SRCH "$ /DOLLAR? JMP SYMB JMS SRCH 215 /CARRIAGE RETURN? JMP LIN JMS SRCH 212 /LINE FEED? JMP LIN1 JMS I (OCHAR JMP OUTERR JMS I (ICHAR JMP TSTEOF ISZ N14CTR JMP NUMB JMP ALPHA LIN, JMS I (OCHAR JMP OUTERR CLA TAD N14 DCA N14CTR JMS I (ICHAR JMP TSTEOF JMP NUMB LIN1, JMS I (OCHAR JMP OUTERR JMP START1 ALPHA, JMS I (ICHAR JMP TSTEOF JMS SRCH 257 /SCHRAEGSTRICH? JMP TRAP JMS SRCH 215 /CARRIAGE RETURN JMP LIN JMS SRCH 212 /LINE FEED? JMP LIN1 JMP ALPHA TRAP, JMS I (ICHAR JMP TSTEOF JMS SRCH 215 /CARRIAGE RETURN JMP LIN JMS SRCH 212 /LINE FEED JMP LIN1 JMS I (OCHAR JMP OUTERR JMP TRAP JMS I (OCHAR JMP OUTERR JMP START1 SYMB, JMS I (OCHAR JMP OUTERR JMS I (ICHAR JMP TSTEOF JMS I (OCHAR JMP OUTERR JMP .-4 N14, -14 N14CTR, 0 N7600, 7600 TSTEOF, SMA CLA JMP CLOSE JMS TERR TEXT /READ ERROR/ CLOSE, JMS I (OCLOSE JMP CLERR CDF CIF 0 JMP I N7600 OUTERR, JMS TERR TEXT /OUTPUT ERROR/ PAGE CLERR, JMS TERR TEXT /CLOSE ERROR/ TERR, 0 TAD I TERR RTR;RTR;RTR JMS TYPIT TAD I TERR JMS TYPIT ISZ TERR JMP TERR+1 TYPIT, 0 AND (77 SNA JMP CRLF TAD (300 JMS TTYOUT JMP I TYPIT CRLF, CLA TAD (215 JMS TTYOUT TAD (212 JMS TTYOUT JMP CALLCD TTYOUT, 0 TLS TSF JMP .-1 CLA JMP I TTYOUT SRCH, 0 DCA TEMP TAD I SRCH ISZ SRCH CIA TAD TEMP SZA CLA ISZ SRCH TAD TEMP JMP I SRCH TEMP, 0 SRLINE, 0 CLA TAD (215 JMS I (OCHAR JMP OUTERR CLA TAD 212 JMS I (OCHAR JMP OUTERR JMP I SRLINE $$$$$$$$ /SEE 0S8 SOFTWARE SUPPORT MANUAL APPENDIX F/ /PARAMETER DEFINITION*/ OUBUF=5000 /OUTPUT BUFFER STARTS AT 05000. OUCTL=4200 /AND IS 2 PAGES LONG. OUDEVH=6600 /OUTPUTHANDLERS GETS LOADED AT 6600. WE /ALLOW TWO PAGE HANDLERS. INBUF=5400 /INPUT BUFFER STARTS AT 05400 INCTL=0200 /ALS TWO PAGES LONG.INRECS=1 2 PAGES = 1 RECORD INRECS=1 /2 PAGE = 1 RECORD INDEVH=7000 /ALLOW 2 PAGE INPUT HANDLER AT 7000. ORIGIN=6600 /THE SUBROUTINE RESIDE AT 16600. DCB=7760 /DEVICE CONTROL TABLE FIELD 1 *ORIGIN INFLD=INCTL&70 /INPUT BUFFER FIELD OUFLD=OUCTL&70 /OUTPUT BUFFER FIELD IN7400, 7400 /INITIALIZE INPUT IOPEN, 0 CLA CMA DCA INCHCT ISZ INEOF TAD (7617 DCA INFPTR JMP I IOPEN INEOF, 0 INFPTR, 0 INPTR, 0 ICHAR, 0 /INPUT A CHARAKTER/ IN7600, 7600 RDF TAD INCDIF DCA INRTRN INCHAR, CDF INFLD ISZ INJMP ISZ INCHCT INJMPP, JMP INJMP TAD INEOF /DID LAST READ GIVE EOF ON THIS DEVICE? SNA CLA JMP INGBUF GETNEW, JMS INNEWF /YES..GET NEXT INPUT IF IT EXISTS. JMP EOFERR INGBUF, TAD INCTR CLL TAD (INRECS SNL DCA INCTR SZL ISZ INEOF CLL CML CMA RTR /CONSTRUCT A CONTROL WORD FOR THIS RTR /READ FROM THE OVERFLOW, IF ANY, RTR /AND THE STANDARD CONTROL WORD. TAD (INCTL+1 DCA INCTLW INCDIF, CIF CDF 0 CDF 10 JMS I INHNDL INCTLW, 0 INBUFP, INBUF INREC, 0 JMP INERRX INBREC, TAD INREC TAD (INRECS DCA INREC TAD INCTLW AND IN7600 CLL RAL TAD INCTLW AND IN7600 CMA DCA INCHCT TAD INJMPP DCA INJMP TAD INBUFP DCA INPTR JMP INCHAR INERRX, ISZ INEOF SMA CLA JMP INBREC INERR, CLA CLL CML RAR EOFERR, JMP INRTRN INJMP, HLT JMP ICHAR1 JMP ICHAR2 ICHAR3, TAD INJMPP DCA INJMP TAD I INPTR IN200, AND IN7400 CLL RTR RTR TAD INCTLW RTR RTR ISZ INPTR JMP INCOMN ICHAR2, TAD I INPTR AND IN7400 DCA INCTLW ISZ INPTR ICHAR1, TAD I INPTR INCOMN, AND (377 TAD (-232 /IS IT A ^Z (EOF)? SNA JMP GETNEW /YES..LOOK AT NEXT INPUT TAD (232 ISZ ICHAR /TAKE NORMAL RETURN INRTRN, 0 JMP I ICHAR INNEWF, -1 INCHCT=INNEWF CDF 10 TAD (INDEVH+1 DCA INHNDL TAD I INFPTR SNA JMP I INNEWF JMS I IN200 1 INHNDL, 0 HLT TAD I INFPTR AND (7760 SZA TAD (17 CLL CML RTR RTR DCA INCTR ISZ INFPTR TAD I INFPTR DCA INREC ISZ INFPTR DCA INEOF ISZ INNEWF JMP I INNEWF INCTR=IOPEN PAGE OOPEN, 0 /OPEN OUTPUT FILE OU7600, 7600 TAD OU7601 DCA OUBLK TAD (OUDEVH+1 DCA OUHNDL TAD I OU7600 AND (17 SNA JMP ONOFIL JMS I (200 1 OUHNDL, 0 HLT OUENTR, TAD I OU7600 JMS I (200 3 OUBLK, 7601 /GETS STARTING BLOCK OF HOLE/ OUELEN, 0 /GETS SIZE OF HOLE AVAILABLE JMP OEFAIL DCA OUCCNT DCA I (OUTINH JMS I (OUSETP ISZ OOPEN OORETN, CDF CIF 10 JMP I OOPEN OEFAIL, TAD I OU7600 AND (7760 SNA CLA JMP ONTERR TAD I OU7600 AND (17 DCA I OU7600 JMP OUENTR ONTERR, CLA CLL CML RAR JMP OORETN ONOFIL, ISZ I (OUTINH JMP OORETN OUTDMP, 0 DCA OUCTLW CDF 10 TAD I (OUTINH SZA CLA JMP OUNOWR TAD OUCCNT SNA ISZ OUCTLW TAD OUBLK DCA OUREC TAD OUCTLW CLL RTL RTL RTL /COMPUTE # OF RECORDS TO OUTPUT AND (17 TAD OUCCNT DCA OUCCNT TAD OUCCNT /SEE IF CLOSING LENGTH WILL BE CLL CML /BIGGER THAN OUTPUT HOLE TAD OUELEN SNL SZA CLA JMP I OUTDMP OUCDIF, CIF CDF 0 CDF 10 JMS I OUHNDL OUCTLW, 0 OUBUF OUREC, 0 SKP OUNOWR, ISZ OUTDMP JMP I OUTDMP PTP=0020 OCLOSE, 0 /CLOSE OUTPUT FILE CDF 10 TAD I (OUTINH /IF OUTPUT INHIBITED,CLOSE IS A NOP SZA CLA JMP OCISZ JMS I (OTYPE AND (770 TAD (-PTP SZA CLA TAD (232 /NOT PTP.OUTPUT^Z AS EOF JMS I (OCHAR JMP OCRET JMS I (OCHAR /FILL WITH 0 CHARAKTERS JMP OCRET FILLIP, JMS I (OCHAR JMP OCRET JMS I (OTYPE /IF OUTPUT IS DIRECTORY DEVICE, FILL SPA CLA /WHOLE RECORD, ELSE HALF RECORD TAD (100 TAD (77 AND I (OUDWCT SZA CLA JMP FILLIP TAD I (OUDWCT TAD (OUCTL&3700 SNA JMP NODUMP TAD (4000+OUFLD JMS OUTDMP JMP OCRET NODUMP, TAD I OU7600 JMS I (200 4 OU7601, 7601 OUCCNT, 0 SKP OCISZ, ISZ OCLOSE OCRET, CDF CIF 10 JMP I OCLOSE PAGE OUSETP, 0 TAD (OUCTL&3700 CIA DCA OUDWCT TAD (OUBUF DCA OUPTR TAD OUJMPE DCA OUJMP JMP I OUSETP OCHAR, 0 /OUTPUT CHARACTER ROUTINE AND (377 /ISOLATE EIGHT 8BITS DCA OUTEMP RDF TAD (CIF CDF 0 DCA OUCRET TAD OUTINH SZA CLA JMP OUCOMN OUCHAR, CDF OUFLD ISZ OUJMP OUJMP, HLT JMP OCHAR1 JMP OCHAR2 OCHAR3, TAD OUTEMP CLL RTL RTL AND (7400 TAD I OUPOLD DCA I OUPOLD TAD OUTEMP CLL RTR RTR RAR AND (7400 TAD I OUPTR DCA I OUPTR TAD OUJMPE DCA OUJMP ISZ OUPTR ISZ OUDWCT JMP OUCOMN TAD (OUCTL /READY TO OUTPUT A BUFFER JMS I (OUTDMP /OUTPUT IT JMP OUCRET /AN ERROR JMS OUSETP JMP OUCOMN OCHAR2, TAD OUPTR DCA OUPOLD ISZ OUPTR OCHAR1, TAD OUTEMP DCA I OUPTR OUCOMN, ISZ OCHAR OUCRET, HLT JMP I OCHAR OUTEMP, 0 OUPOLD, 0 OUPTR, 0 OUJMPE, JMP OUJMP OUDWCT, 0 OUTINH, 0 OTYPE, 0 RDF TAD (CIF CDF 0 DCA OTRTN CDF 10 TAD I (7600 AND (17 TAD (DCB-1 DCA OUTEMP TAD I OUTEMP OTRTN, HLT JMP I OTYPE