File: VENPIP.PA of Tape: Sources/Focal/s8
(Source file text)
/COMMUNICATIONS WITH ETH-VENUS /W.V.D.MARK ETH-HPF-B22 /PARAMETERS NEEDED: XR=10 TEMP=20 CHAR=21 INFPTR=22 INEOF=23 INBUF=3000 /ADDRESS OF INPUT BUFFER INCTL=1420 /INPUT BUFFER CONTROL WORD OUBUF=0000 /ADDRESS OF OUTPUT BUFFER OUCTL=5420 /OUTPUT BUFFER CONTROL WORD (MUST BE NEGATIVE) INRECS=6 /[INCTL/256] INDEVH=6600 /ADDRESS OF PAGE FOR INPUT HANDLER OUDEVH=7200 /ADDRESS OF PAGE FOR OUTPUT HANDLER ORIGIN=2000 DCB=7760 /ASSUMES I/O MONITOR IS RESIDENT IN CORE. /CAN BE CALLED FROM ANY FIELD WITH BUFFERS IN ANY FIELD. DEV= 31^10 KCF2=6000+DEV KSF2=6001+DEV KCC2=6002+DEV KRS2=6004+DEV KIE2=6005+DEV KRB2=6006+DEV TFL2=6010+DEV TSF2=6011+DEV TCF2=6012+DEV TPC2=6014+DEV TSK2=6015+DEV TLS2=6016+DEV INFLD=INCTL&70 /GET FIELD OF INPUT BUFFER OUFLD=OUCTL&70 /DITTO OUTPUT BUFFER FIELD 1 *ORIGIN IN7400, 7400 INPTR, 0 IOPEN, 0 CLA CMA DCA INCHCT /SET INCHCT TO FORCE A READ ISZ INEOF /SET END-OF-FILE FLAG TO FORCE A NEW FILE TAD (7617 DCA INFPTR /RESET FILE POINTER TAD I (VENUSI SZA CLA JMS I (VENIOP JMP I IOPEN ICHAR, 0 IN7600, 7600 RDF TAD INCDIF DCA INRTRN /SAVE CALLING FIELDS INCHAR, CDF INFLD ISZ INJMP /BUMP THREE-WAY UNPACK SWITCH ISZ INCHCT INJMPP, JMP INJMP TAD INEOF SNA CLA /DID LAST READ YIELD END-OF-FILE? JMP INGBUF /NO - DO ANOTHER GETNEW, JMS INNEWF /OPEN A NEW INPUT FILE JMP EOFERR /NO FILE TO OPEN INGBUF, TAD INCTR CLL TAD (INRECS SNL DCA INCTR /RESTORE INCTR IF IT HASN'T OVERFLOWED SZL /IS THIS THE LAST READ? ISZ INEOF /YES - SET END-OF-FILE FLAG /NOT END-OF-FILE IF INPUT DEVICE /IS NON-FILE STRUCTURED! CLL CML CMA RTR /CONSTRUCT A CONTROL WORD FOR THE READ RTR /FROM THE AMOUNT OF THE OVERFLOW RTR /(IF ANY) AND THE STANDARD CONTROL WORD TAD (INCTL+1 DCA INCTLW INCDIF, CDF CIF 0 CDF 10 JMS I INHNDL /CALL THE DEVICE HANDLER INCTLW, 0 INBUFP, INBUF INREC, 0 JMP INERRX INBREC, TAD INREC TAD (INRECS DCA INREC /UPDATE THE RECORD NUMBER TAD INCTLW AND IN7600 CLL RAL TAD INCTLW AND IN7600 CMA DCA INCHCT /COMPUTE THE NEW CHARACTER COUNT TAD INJMPP DCA INJMP /RESET THE CHARACTER SWITCH TAD INBUFP DCA INPTR /AND THE WORD POINTER JMP INCHAR /GO BACK AND MAKE BELIEVE THIS NEVER HAPPENED INERRX, ISZ INEOF /EITHER AN END-OF-FILE OR A BADDIE SMA CLA /WHICH TYPE WAS IT? JMP INBREC /END OF FILE - RESUME THY PROCESSING INERR, CLA CLL CML RAR /BADDIE - GIVE ERROR RETURN WITH NEGATIVE AC EOFERR, JMP INRTRN INJMP, HLT /THIS IS THE THREE - WAY CHARACTER SWITCH JMP ICHAR1 JMP ICHAR2 ICHAR3, TAD INJMPP DCA INJMP TAD I INPTR IN200, AND IN7400 CLL RTR RTR /COMBINE THE HIGH-ORDER FOUR BITS OF TAD INCTLW RTR /THE TWO WORD TO FORM THE THIRD CHARACTER RTR ISZ INPTR JMP INCOMN ICHAR2, TAD I INPTR AND IN7400 DCA INCTLW /SAVE THE HIGH-ORDER BITS FOR THE THIRD CHAR ISZ INPTR /BUMP THE WORD POINTER ICHAR1, TAD I INPTR INCOMN, AND (377 TAD (-232 INCTZF, SNA /IS THE CHARACTER A ^Z? JMP GETNEW /YES - GET A NEW FILE TAD (232 /RESTORE THE CHARACTER ISZ ICHAR /BUMP RETURN TO NORMAL RETURN INRTRN, 0 /RESTORE CALLING FIELDS JMP I ICHAR /AND RETURN /IOPEN IS UNNECESSARY. INNEWF, -1 /ROUTINE TO OPEN NEW INPUT FILE INCHCT=INNEWF CDF 10 TAD (INDEVH+1 DCA INHNDL /INITIALIZE HANDLER ADDRESS TAD I INFPTR /GET NEXT CD INPUT FILE ENTRY SNA /ANY MORE? JMP I INNEWF /NO - OUT OF INPUT JMS I IN200 1 /ASSIGN, FETCH HANDLER INHNDL, 0 HLT /HUH? TAD I INFPTR AND (7760 /GET LENGTH PART OF WORD SZA /LENGTH OF 0 MEANS LENGTH >=256 TAD (17 /ADD HIGH-ORDER BITS CLL CML RTR RTR DCA INCTR /STORE LENGTH OF FILE ISZ INFPTR TAD I INFPTR DCA INREC /STORE STARTING RECORD NUMBER OF FILE ISZ INFPTR DCA INEOF /ZERO END-OF-FILE FLAG ISZ INNEWF JMP I INNEWF INCTR=IOPEN PAGE OOPEN, 0 /OPEN OUTPUT FILE OU7600, 7600 RDF TAD OUCDIF DCA OORETN TAD OU7601 DCA OUBLK TAD (OUDEVH+1 DCA OUHNDL CDF 10 TAD I OU7600 /GET DEVICE NUMBER WORD OF OUTPUT FILE ENTRY AND (17 /STRIP OFF ANY LENGTH INFO SNA /IS THERE AN OUTPUT DEVICE? JMP I (VENOOP /NO - INHIBIT OUTPUT JMS I (200 1 /ASSIGN, FETCH HANDLER OUHNDL, 0 /OUTPUT DEVICE HANDLER ENTRY HLT /HUH? OUENTR, TAD I OU7600 JMS I (200 3 /ENTER OUTPUT FILE OUBLK, 7601 /REPLACED WITH STARTING BLOCK OUELEN, 0 /REPLACED WITH LENGTH OF HOLE JMP OEFAIL /FAILED - MAYBE WE ASKED TOO MUCH DCA OUCCNT DCA I (OUTINH /ZERO OUTPUT INHIBIT FLAG JMS I (OUSETP ISZ OOPEN OORETN, CDF CIF 10 /RESTORE CALLING FIELDS JMP I OOPEN OEFAIL, TAD I OU7600 AND (7760 /GET REQUESTED LENGTH SNA CLA /WAS IT AN INDEFINITE REQUEST JMP ONTERR /YES - CANNOT ENTER THE FILE TAD I OU7600 AND (17 /MAKE THE REQUESTED LENGTH ZERO DCA I OU7600 JMP OUENTR /TRY, TRY AGAIN ONTERR, CLA CLL CML RAR JMP OORETN /TAKE THE ERROR RETURN WITH AC<0 ONOFIL, ISZ I (OUTINH JMP OORETN /TAKE THE ERROR RETURN WITH AC=0 OUTDMP, 0 DCA OUCTLW /STORE THE CONTROL WORD CDF 10 TAD I (OUTINH SZA CLA JMP OUNOWR TAD OUCCNT SNA ISZ OUCTLW TAD OUBLK DCA OUREC /COMPUTE THE STARTING BLOCK NUMBER OF THIS TRANSFER TAD OUCTLW CLL RTL RTL RTL AND (17 /COMPUTE THE NUMBER OF RECORDS TAD OUCCNT /UPDATE THE NUMBER OF BLOCKS IN THE FILE DCA OUCCNT TAD OUCCNT CLL CML TAD OUELEN SNL SZA CLA /DOES THE LENGTH EXCEED THE GIVEN LENGTH? JMP I OUTDMP /YES - SIGNAL OUTPUT ERROR OUCDIF, CDF CIF 0 CDF 10 JMS I OUHNDL OUCTLW, 0 OUBUF OUREC, 0 SKP OUNOWR, ISZ OUTDMP /BUMP OUTDMP TO NORMAL RETURN JMP I OUTDMP OCLOSE, 0 CDF 10 TAD I (OUTINH SZA CLA /IS OUTPUT INHIBITED? JMP OCISZ /YES - CLOSE IS A NOP TAD I (VENUSO SZA CLA JMP I (VENCLO TAD (232 /OUTPUT A ^Z JMS I (OCHAR JMP OCRET JMS I (OCHAR JMP OCRET FILLLP, JMS I (OCHAR JMP OCRET TAD (177 /WHOLE RECORD AND I (OUDWCT SZA CLA /UP TO THE BOUNDARY YET? JMP FILLLP /NO - FILL WITH ZEROS TAD I (OUDWCT /GET DOUBLEWORD COUNT LEFT TAD (OUCTL&3700 SNA /A FULL WRITE LEFT? JMP NODUMP /YES - DON'T DO IT - THE ^Z IS ALREADY OUT TAD (4000+OUFLD /PUT IN THE FIELD BITS AND THE WRITE BIT JMS OUTDMP JMP OCRET /AN ERROR OCCURRED WHILE DUMPING THE BUFFER NODUMP, TAD I OU7600 /GET THE DEVICE NUMBER JMS I (200 4 /CLOSE THE OUTPUT FILE OU7601, 7601 /POINTER TO THE OUTPUT FILE NAME OUCCNT, 0 SKP /ERROR WHILE CLOSING THE FILE - BAD! OCISZ, ISZ OCLOSE OCRET, CDF CIF 10 /RESTORE CALLING FIELDS JMP I OCLOSE PAGE OUSETP, 0 /ROUTINE TO INITIALIZE CHARACTER POINTERS TAD (OUCTL&3700 /GET SIZE OF BUFFER IN DOUBLEWORDS CIA /PAL10 IS DEFINITELY NOT NICE DCA OUDWCT / TAD (OUBUF IFNZRO OUBUF <ERROR!> /V3 DCA OUPTR /INITIALIZE WORD POINTER TAD OUJMPE DCA OUJMP /INITIALIZE THREE-WAY CHARACTER SWITCH JMP I OUSETP OCHAR, 0 AND (377 DCA OUTEMP RDF TAD (CDF CIF 0 DCA OUCRET TAD OUTINH SZA CLA /IS THERE AN OUTPUT FILE? JMP OUCOMN /NO - EXIT OUCHAR, CDF OUFLD /SET DATA FIELD TO BUFFER'S FIELD ISZ OUJMP /BUMP THE CHARACTER SWITCH OUJMP, HLT /THREE WAY CHARACTER SWITCH JMP OCHAR1 JMP OCHAR2 OCHAR3, TAD OUTEMP CLL RTL RTL AND (7400 TAD I OUPOLD DCA I OUPOLD /UPDATE FIRST WORD OF TWO WITH HIGH /ORDER 4 BITS OF THIRD CHAR TAD OUTEMP CLL RTR RTR RAR AND (7400 TAD I OUPTR DCA I OUPTR /UPDATE SECOND WORD FROM LOW ORDER 4 BITS TAD OUJMPE DCA OUJMP /RESET SWITCH ISZ OUPTR ISZ OUDWCT /BUMP DOUBLEWORD COUNTER EVERY 3 CHARS JMP OUCOMN TAD (OUCTL /LOAD CONTROL WORD FOR A FULL WRITE JMS I (OUTDMP /DUMP THE BUFFER JMP OUCRET /OUTPUT ERROR - GIVE ERROR RETURN JMS OUSETP /RE-INITIALIZE THE POINTERS JMP OUCOMN OCHAR2, TAD OUPTR DCA OUPOLD /SAVE POINTER TO FIRST WORD OF TWO ISZ OUPTR /BUMP WORD POINTER TO SECOND WORD OCHAR1, TAD OUTEMP DCA I OUPTR OUCOMN, ISZ OCHAR OUCRET, HLT /RESTORE CALLING FIELDS JMP I OCHAR OUTEMP, 0 OUPOLD, 0 OUPTR, 0 OUJMPE, JMP OUJMP OUDWCT, 0 OUTINH, 0 OTYPE, 0 RDF TAD (CDF CIF 0 DCA OTRTN CDF 10 TAD I (7600 AND (17 TAD (DCB-1 DCA OUTEMP TAD I OUTEMP OTRTN, HLT JMP I OTYPE OCHARX, 0 DCA OTEM TAD VENUSO SNA CLA JMP PDPOUT TAD OTEM JMS I (VENOUT JMP I OCHARX JMP ORET PDPOUT, TAD OTEM JMS I (OCHAR SKP ORET, ISZ OCHARX JMP I OCHARX OTEM, 0 ICHARX, 0 TAD VENUSI SNA CLA JMP PDPIN JMS I (VENIN JMP I ICHARX JMP IRET PDPIN, JMS I (ICHAR SKP IRET, ISZ ICHARX JMP I ICHARX VENUSO, 0 VENUSI, 0 PAGE /ASCII PROCESSOR LFEED, TAD CHAR JMS LINSTR /PUT THE LINE FEED IN THE LINE BUFFER EOL, JMS LINSTR /MARK THE END OF USEFUL INFO TAD (ABUF-1 DCA XR /RESET BUFFER POINTER EOLLP, CDF 20 TAD I XR /GET A CHARACTER FROM THE LINE BUFFER CDF 10 PIPSNA, SNA /ZERO MEANS NO MORE CHARS JMP EOFTST JMS I (OCHARX /OUTPUT THE CHARACTER JMP I (AOUERR JMP EOLLP EOFTST, TAD AEOFFG SNA CLA /END OF INPUT ENCOUNTERED? JMP I (ASCIGO /NO - GET NEXT LINE ACLOSE, JMS I (OCLOSE /YES - CLOSE THE OUTPUT FILE SKP JMP I (VENANN AOUERR, SMA CLA JMP BOUERR PER2, JMS I (PIPERR ERR2 BOUERR, JMS I (PIPERR ERR0 VENCD, KCC TAD ("# JMS I (TTYOUT TSF JMP .-1 JMS I (200 5 2605 /"VE" TFL ASCII, CLA /JMS I (ASCI2 JMS I (OOPEN SMA CLA JMP .+3 JMS I (PIPERR ERR5 JMS I (IOPEN /OPEN THE INPUT FILES DCA AEOFFG /ZERO THE END-OF-FILE FLAG JMP I (ASCIGO /ENTRY ON END OF INPUT ASCEOF, SMA CLA /WAS IT EOF OR AN INPUT ERROR? JMP .+3 PER4, JMS I (PIPERR ERR4 ISZ AEOFFG /SET END-OF-INPUT FLAG JMP EOL /PROCESS LAST LINE (IF ANY) AEOFFG, 0 PAGE /ASCII PROCESSOR CONTINUED ASCIGO, TAD (ABUF-1 DCA XR DCA COLCT /ZERO COLUMN COUNTER ACHLP, JMS I (ICHARX /GET A CHARACTER JMP I (ASCEOF /END OF INPUT OR WORSE AND (177 /MASK OUT PARITY BIT SZA /IGNORE BLANK TAPE AND LEADER/TRAILER TAD (-177 SNA JMP ACHLP /DITTO RUBOUTS TAD (377 /FORCE COLUMN 8 ON DCA CHAR TAD CHAR TAD (-216 CLL TAD ASCI5 SNL /IS THE CHARACTER A FORM CONTROL CHARACTER? JMP CINSRT /NO TAD ASCJMP /YES - GO TO APPROPRIATE ROUTINE DCA .+1 HLT ASCJMP, JMP I .+1 TABLP LFEED CARRET /LEAVE IT FOR DIABLO FFEED CARRET CINSRT, 7600 /GRP 2 CLA TAD CHAR ADCAXR, JMS LINSTR/STORE THE CHARACTER IN THE LINE BUFFER ISZ COLCT /ALWAYS BUMP THE COLUMN POINTER TESTXR, TAD XR TAD (-ABUF-300 SPA CLA /HAS THE BUFFER OVERFLOWED? JMP ACHLP /NO - GET NEXT CHARACTER JMS I (PIPERR ERR1 TABLP, TAD (240 JMS LINSTR /OUTPUT A SPACE ISZ COLCT TAD COLCT AND (7 SZA CLA /IS THE COLUMN COUNTER A MULTIPLE OF 8? JMP TABLP /NOT YET JMP TESTXR /YES - CHECK BUFFER OVERFLOW VTLF, TAD (-5 /FIVE LINE FEEDS SIMULATE A VERTICAL TAB DCA TEMP TAD (212 JMS LINSTR ISZ TEMP JMP .-3 JMP I (EOL /FORM FEED AND VERTICAL TAB ARE LINE ENDERS FFEED, TAD VENUSO SNA CLA JMP FFPDP JMS I (PRWD EOR JMS I (PCRLF JMP I (EOL FFPDP, TAD (214 JMS LINSTR JMP I (EOL CARRET, TAD CHAR JMS LINSTR /STORE CARRIAGE RETURN IN THE BUFFER JMP TESTXR /CARRIAGE RETURN IS NO LINE TERMINATOR COLCT, 0 ASCI5, 5 LINSTR, 0 CDF 20 DCA I XR CDF 10 JMP I LINSTR PAGE PIPERR, 0 SMA SZA DCA ERRSWI SMA CLA JMS CRLF TAD I PIPERR /GET ARG DCA TEMP ERLP, CDF 20 TAD I TEMP BSW JMS ERPCH /PRINT HIGH-ORDER CHARACTER TAD I TEMP JMS ERPCH /PRINT LOW-ORDER CHARACTER ISZ TEMP JMP ERLP ERPCH, 0 AND (77 SNA JMP ERREXI /0 CHARACTER TERMINATES JMS CHPRNT JMP I ERPCH FILENR, TAD ("# JMS TTYOUT TAD INFPTR /GET PTR TO CURRENT INPUT FILE TAD (321 /MAGIC NUMBER CLL RAR JMP FILENR-2 ERREXI, CDF 10 TAD ERRSWI DCA ERPCH DCA ERRSWI TAD ERPCH SNA CLA JMP VENERR ISZ PIPERR JMP I PIPERR ERRSWI, 0 CHPRNT, 0 TAD (-37 /IS IT A _? SNA JMP FILENR /YES..PRINT FILE NUMBER SPA TAD (100 TAD (237 JMS TTYOUT JMP I CHPRNT CRLF, 0 CDF 10 TAD (215 JMS TTYOUT TAD (212 JMS TTYOUT JMP I CRLF TTYOUT, 0 TSF JMP .-1 TLS CLA JMP I TTYOUT PCRLF, 0 TAD (215 JMS I (OCHARX JMP I (AOUERR TAD (212 JMS I (OCHARX JMP I (AOUERR JMP I PCRLF PRWD, 0 CDF 10 TAD I PRWD DCA TEMP ISZ PRWD PRWDLP, CDF 20 TAD I TEMP BSW JMS PR6BIT CDF 20 TAD I TEMP JMS PR6BIT ISZ TEMP JMP PRWDLP PR6BIT, 0 CDF 10 AND (77 SNA JMP I PRWD TAD (240 AND (77 TAD (240 JMS I (OCHARX JMP I (AOUERR JMP I PR6BIT PAGE VENCLO, JMS I (PRWD EOF JMS I (PCRLF CLA IAC /WAIT FOR * ONLY JMS SYNC DCA I (VENUSO JMP I (OCISZ VENOOP, ISZ I (VENUSO JMS I (PRWD CTEVE JMS I (PCRLF JMP I (OORETN-3 VENIOP, 0 JMP I VENIOP SYNC, 0 DCA SYNSWI TAD SYNSWI SZA CLA JMP STAR JMS VENIN TAD ("?-4000 JMS SYNECH JMP SYNC+2 STAR, JMS VENIN TAD ("?-4000 TAD (-"* SNA CLA JMP I SYNC JMP SYNC+2 SYNSWI, 0 SYNECH, 0 TAD (-212 SNA ISZ SYNECH TAD (212 JMS TTYOUT JMP I SYNECH PAGE VENIN, 0 JMS INTERM KSF2 JMP .-2 KRB2 SPA JMP VHRDWR AND (177 TAD (200 DCA VENIBU TAD VENIBU TAD (-"? SNA CLA JMP VENIER TAD VENIBU ISZ VENIN JMP I VENIN VENIER, CLA CLL CML RAR JMP I VENIN VHRDWR, BSW RTR AND (7 DCA VENIBU JMS CRLF TAD VENIBU TAD (260 JMS TTYOUT CMA JMS PIPERR ERR6 VENIBU, 0 INTERM, 0 KSF JMP I INTERM KRB AND (177 TAD (200 DCA TERIBU TAD TERIBU TAD (-203 /^C SNA JMP VENEXT TAD (-220+203 /^P SNA JMP VENANN TAD (-233+220 /ESCAPE SZA CLA JMP I INTERM CLA CLL CML RAR VQUEST, TAD ("?-4000 JMS TTYOUT VENERR, TAD (233 JMS VENOUT NOP JMS SYNC VENANN, CDF 10 CLA DCA I (VENUSI DCA I (VENUSO TAD ("# JMS TTYOUT VENUSL, DCA TERIBU KSF2 JMP NOVENI JMS VENIN JMP VQUEST JMS TTYOUT NOVENI, JMS INTERM TAD TERIBU SNA JMP VENUSL TAD (-204 /^D=DECODE SNA JMP I (VENCD TAD (204-377 /RUBOUT SNA CLA TAD ("\-377 /ECHO AS '\' TAD TERIBU JMS TTYOUT TAD TERIBU JMS VENOUT JMP VQUEST TAD TERIBU TAD (-215 SZA CLA JMP VENUSL TAD (212 JMS TTYOUT TAD (212 JMS VENOUT JMP VQUEST JMP VENUSL TERIBU, 0 PAGE VENPIP, CAF ISZ TIME JMP .-1 KRB KRB2 CLA CLL CML RTL KIE2 /ENABLE ERR,NOT INT. CLA TAD (230 /CAN TLS2 TLS CLA ISZ VENUSO JMS I (PRWD LOGIN JMS I (PCRLF JMS SYNC JMS I (PRWD WHOAMI JMS I (PCRLF JMS SYNC DCA VENUSO JMP VENANN TIME, 0 VENEXT, TAD (233 JMS VENOUT NOP JMS SYNC DCA VENUSI ISZ VENUSO JMS PRWD BYE JMS PCRLF JMS VENIN TAD ("?-4000 JMS SYNECH JMP .-3 DCA VENUSO TSF JMP .-1 CIF CDF 0 JMP I (7600 VENOUT, 0 DCA VENOBU JMS INTERM KSF2 JMP .+3 JMS VENIN JMP I VENOUT CLA TSF2 JMP .-7 TAD VENOBU AND (177 TAD (TRABUF DCA TRAPNT CDF 20 TAD I TRAPNT TAD (200 CDF 10 TLS2 CLA ISZ VENOUT JMP I VENOUT VENOBU, 0 TRAPNT, 0 PAGE FIELD 2 *6000 ABUF, ZBLOCK 300 EOR, TEXT /.EOR./ EOF, TEXT /.EOF./ CTEVE, TEXT /C,,T/ LOGIN, TEXT /LOGIN,9624,VDMARK,338/ WHOAMI, TEXT /WHOAMI/ BYE, TEXT /LOGOUT/ /ERROR MESSAGE TEXT GOES HERE ERR0, TEXT /NO ROOM FOR OUTPUT FILE/ ERR1, TEXT /LINE TOO LONG IN FILE_/ ERR2, TEXT /OUTPUT ERROR/ ERR3, TEXT /ERROR DELETING FILE/ ERR4, TEXT /INPUT ERROR, FILE_/ ERR5, TEXT /CAN'T OPEN OUTPUT FILE/ ERR6, TEXT / = RECEIVE ERROR;1=OVER;2=FRAME;4=PARITY/ ERR7, TEXT /PREMATURE END OF FILE, FILE_/ ERR8, TEXT /ILLEGAL BINARY INPUT, FILE_/ ERR9, TEXT /XXXXX/ ERR10, TEXT /DIRECTORY ERROR/ TRABUF, 0;1;2;3;4;5;6;7 10;11;12;13;14;15;16;17 20;21;22;23;24;25;26;27 30;31;32;33;34;35;36;37 B40, 40;45;100;43;44;42;46;47 50;51;52;53;54;55;56;57 60;61;62;63;64;65;66;67 70;71;72;73;74;75;76;134 B100, 41;101;102;103;104;105;106;107 110;111;112;113;114;115;116;117 120;121;122;123;124;125;126;127 130;131;132;133;134;135;136;137 B140, 140;141;142;143;144;145;146;147 150;151;152;153;154;155;156;157 160;161;162;163;164;165;166;167 170;171;172;173;174;175;176;77 $$