;COMPARISON OF DSK:HACK;WEBSER 11 AND DSK:HACK;WEBSER 16 ;OPTIONS ARE /3 **** FILE DSK:HACK;WEBSER 11, 4-30 (4022) **** FILE DSK:HACK;WEBSER 16, 4-30 (4022) CAIN U.E,": MOVE U.E,[ASCIZ "%3a"] CAIN U.E,"; MOVE U.E,[ASCIZ "%3b"] *************** **** FILE DSK:HACK;WEBSER 11, 5-24 (5278) .CALL [ SETZ ; Blast it out **** FILE DSK:HACK;WEBSER 16, 5-24 (5362) U.CS2:: .CALL [ SETZ ; Blast it out *************** **** FILE DSK:HACK;WEBSER 11, 5-30 (5407) **** FILE DSK:HACK;WEBSER 16, 5-30 (5498) JUMPG U.AC,U.CS2 ; Until all done *************** **** FILE DSK:HACK;WEBSER 11, 8-36 (9991) U.GETH: LSH 0(U.AC) ; * 16. ILDB 0(U.E) ; get a digit **** FILE DSK:HACK;WEBSER 16, 8-36 (10119) U.GETH: ILDB 0(U.E) ; get a digit *************** **** FILE DSK:HACK;WEBSER 11, 8-44 (10263) IOR 0(U.AC) ; Add bits to result MOVEM 0(U.AC) ; and save **** FILE DSK:HACK;WEBSER 16, 8-43 (10367) EXCH 0(U.AC) ; Get result LSH 4 ; multiply by 16 IORM 0(U.AC) ; add to new bits *************** **** FILE DSK:HACK;WEBSER 11, 12-8 (14554) **** FILE DSK:HACK;WEBSER 16, 12-8 (14685) .SUSET [.SMASK,,[%PIIOC]] ; Handle IOC interrupts *************** **** FILE DSK:HACK;WEBSER 11, 14-31 (17393) SNDFIL ,,IS.HTM POPJF ,, HDRTXT ,, SNDFIL ,, **** FILE DSK:HACK;WEBSER 16, 14-31 (17576) SNDTXT ,,IS.HTM POPJF ,, HDRTXT ,, SNDTXT ,, *************** **** FILE DSK:HACK;WEBSER 11, 23-10 (28283) PUTFN T,FILDEV ; write DEV: MOVEI TT,"; SKIPE FILDIR ; If thers' a DIR PUTFN T,FILDIR ; write DIR; MOVEI TT,SPACE SKIPE FILFN1 ; If there's an FN1 PUTFN T,FILFN1 ; write FN1, space SETZ TT, SKIPE FILFN2 ; If there's an FN2 PUTFN T,FILFN2 ; and FN2, NUL **** FILE DSK:HACK;WEBSER 16, 23-10 (28466) PUTFN T,FILDEV ; then write DEV: MOVEI TT,"; SKIPE FILDIR ; If thers' a DIR PUTFN T,FILDIR ; then write DIR; SKIPE TT,FILFN2 ; If there's an FN2 MOVEI TT,SPACE ; then separate by space SKIPE FILFN1 ; If there's an FN1 PUTFN T,FILFN1 ; then write FN1 (and space) SETZ TT, SKIPE FILFN2 ; If there's an FN2 PUTFN T,FILFN2 ; then write FN2, NUL *************** **** FILE DSK:HACK;WEBSER 11, 23-25 (28655) REG C ; Character copied ; Copy file from FILI to NETO ; Never skips ; NYI: block mode transfer ; NYI: binary files SNDFIL: .IOT FILI,C ; Get a character JUMPL C,POPJF ; -1,,^C is EOF CAIE C,^C ; Unless it's a spurious ^C .IOT NETO,C ; Send it over JRST SNDFIL ; Next REG TRIES ; Number of re tries left **** FILE DSK:HACK;WEBSER 16, 23-26 (28934) REG LEN ; Remaining bytes to be copied REG CNT ; Number of bytes per block REG BP ; Pointer to data to send REG NB ; Counter of bytes to send per call ; Copy file from FILI to NETO ; Never skips ; NYI: this might hang if file is truncated while we're sending it SNDTXT: .CALL [ SETZ ; Get file length SIXBIT /FILLEN/ %CLIMM,,FILI %CLOUT,,LEN ((SETZ))] JSR DEATH ; Shouldn't happen JUMPLE LEN,POPJF ; Bail if the file is empty TXT1:: MOVE CNT,LEN ; Try it all CAILE CNT,BUFSIZ ; Unless if it's too much MOVEI CNT,BUFSIZ ; then just some MOVE BP,[ASCBP,,BUFFER] ; Point to I/O buffer MOVE NB,CNT ; Read this many TXT2:: .CALL [ SETZ ; from the file SIXBIT /SIOT/ %CLIMM,,FILI %CLIN,,BP %CLIN,,NB ((SETZ))] JSR DEATH ; or lose JUMPG NB,TXT2 ; Keep filling until full MOVE BP,[ASCBP,,BUFFER] ; Point to I/O buffer MOVE NB,CNT ; Send this many TXT3:: .CALL [ SETZ ; to the net SIXBIT /SIOT/ %CLIMM,,NETO %CLIN,,BP %CLIN,,NB ((SETZ))] JSR DEATH ; or lose JUMPG NB,TXT3 ; Keep pushing until all out SUB LEN,CNT ; Count it off JUMPG LEN,TXT1 ; Try again if there's more POPJ P, ; until done REG TRIES ; Number of retries left *************** **** FILE DSK:HACK;WEBSER 11, 24-38 (30068) .CALL [ SETZ **** FILE DSK:HACK;WEBSER 16, 24-38 (31254) LOG3:: .CALL [ SETZ *************** **** FILE DSK:HACK;WEBSER 11, 24-43 (30158) .IOT LOGO,["?] ; Oh, blah **** FILE DSK:HACK;WEBSER 16, 24-43 (31350) .IOT LOGO,["?] ; oh, blah ***************