X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=MUDDLE%2Ffiltrn.5;fp=MUDDLE%2Ffiltrn.5;h=d78c40546b9e98bd69ad10c88d5367a03ec06a76;hb=39c5769144e7f2a58076bdb973d2c80fa603345c;hp=0000000000000000000000000000000000000000;hpb=bab072f950a643ac109660a223b57e635492ac25;p=pdp10-muddle.git diff --git a/MUDDLE/filtrn.5 b/MUDDLE/filtrn.5 new file mode 100644 index 0000000..d78c405 --- /dev/null +++ b/MUDDLE/filtrn.5 @@ -0,0 +1,121 @@ + +TITLE FILTRN + +TYIC==1 +TYOC==2 +INC==3 + +A=1 +B=2 +C=3 +D=4 +E=5 +F=6 +G=7 +P=17 + +NCHRS==60. + +BFLNT==200 +LPDL==40 + + +FILTRN: MOVE P,[-LPDL,,PDL] ;GET A PDL + .OPEN TYIC,[SIXBIT / $TTY/] + .VALUE [ASCIZ /:LOGOUT /] + .OPEN TYOC,[SIXBIT / %TTY/] + .VALUE [ASCIZ /:LOGOUT /] + + .IOT TYOC,["\] ;ACKNOLEDGE + + MOVEI B,4*6 ;PREPARE TO READ FILE STUFF + MOVE A,[440600,,PTRF] ;GET POINT BYTER + +GETIF: .IOT TYIC,C + SUBI C,40 ;CONVERT TO SIXBIT + IDPB C,A ;INTO BUFFER + SOJN B,GETIF ;DO ALL CHARS + + SKIPE PTRF+3 ;SYSNAME GIVEN? + .SUSET [.SSNAM,,PTRF+3] ;NO USE CURRENT + MOVSI A,6 ;GET BLOCK IMAGE INPUT MODE + HLLM A,PTRF ;AND CLOBBER IN + + .OPEN INC,PTRF ;OPEN THE FILE + SKIPA A,["/] ;NEGATIVE ACK + MOVEI A,"\ ;POS ACKN + + .IOT TYOC,A ;SEND DOWN + CAIE A,"\ ;SKIP IF A WIINER + + .VALUE [ASCIZ /:LOGOUT +/] + + .IOT TYIC,A ;WAIT FOR HIM TO RE-ACK + CAIE A,"\ + .VALUE [ASCIZ /:LOGOUT /] + + +NXTBB: MOVE A,[-BFLNT,,BUFR] ;SETUP ITO POINTER + .IOT INC,A + MOVEI B,6*BFLNT ;NUMBER OF 6 BIT CHRS + JUMPGE A,GOTIT ;NOT EOF YET, JUMP + SETOM EOF ;AT END OF FILE + MOVEI B,(A) ;COMPUTE REMAINING + SUBI B,BUFR + IMULI B,6 ;CONVERT TO 6 BIT CHRS + +GOTIT: MOVE C,[440600,,BUFR] ;POINT TO BUFFER +NXTB: MOVEI G,NCHRS ;GET MAX MESSAGE LNT + CAIL G,(B) ;IF GRT THAN LEFT + MOVEI G,(B) ;USE REMAINS + SUBI B,(G) ;AND SHRINK TOTAL + ADDI G,40 ;CONVERT TO ASCII + .IOT TYOC,G + SUBI G,40 + + MOVEI D,0 ;INIT CHECKSUM + +LOOP: ILDB A,C ;READ A CHAR + ADDI D,(A) ;UPDATE CKS + ADDI A,40 ;CONV TO ASCII + .IOT TYOC,A ;TO NEXT MACHINE + SOJN G,LOOP ;COUNT DOWN + + ANDI D,77 ;CUT CKS + ADDI D,40 + .IOT TYOC,D ;SEND THE CKS + .IOT TYIC,D ;WAIT FOR ACK + + CAIE A,"\ + .VALUE [ASCIZ /:LOGOUT /] + + JUMPN B,NXTB ;STILL MORE IN BUFFER + + SKIPN EOF + JRST NXTBB ;MORE IN FILE, READ IT + + .IOT TYOC,[40] ;SEND EOF HACK + + SETZM EOF + .VALUE [ASCIZ /:LOGOUT /] + +PTRF: 0 + 0 + 0 + 0 + +BUFR: BLOCK BFLNT + +PDL: BLOCK LPDL + +EOF: 0 +FOO: +0 +PAT: +PATCH: BLOCK 30 + +END FILTRN + + +  \ No newline at end of file