Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!linus!security!genrad!grkermit!masscomp!clyde!akgua!sb1!sb6!bpa!burdvax!presby!seismo!hao!hplabs!sri-unix!ABN.ISCAMS@usc-isid From: ABN.ISCAMS%usc-isid@sri-unix.UUCP Newsgroups: net.micro.cpm Subject: Re: KERMIT and TAC Message-ID: <14058@sri-arpa.UUCP> Date: Sun, 27-Nov-83 13:51:00 EST Article-I.D.: sri-arpa.14058 Posted: Sun Nov 27 13:51:00 1983 Date-Received: Thu, 1-Dec-83 02:14:39 EST Lines: 64 PCKERMIT users: Here's a patch to PCKERMIT to hopefully solve the TAC intercept character problem with no hassles about resetting TACs. Now, please check this out for me -- I'm an 8080/Z80 hacker and donno nuttin about 8086/8088 code except what I reasoned out of the PCKERMIT source. Regards, David Kirschbaum Toad Hall ;************************System Dependent**************************** ; Put a char in AH to the port. PORT PROC NEAR IF ibmpc outchr: sub cx,cx ; [14 start] mov al,ah ; Parity routine works on AL. [16] call dopar ; Set parity appropriately. [10] mov ah,al ; Don't overwrite character with status. [16] mov dx,03FDH ; Toad Hall note: hokay - now we got the char in ah. Need to test and see ;if it's the infamous TAC intercept character (@ in this case). Sending it ;twice will tell the TAC that it's a true ASCII character for the host: the ;TAC will then send a single @ on to the host, and echo one more back to you. ;If it is, we'll call OUTCH1 to put it out once, and then fall through to :put it out the second time. If it isn't, we'll just send one character. ; PS: Somebody with a manual on this assembler language check this out ; for me - I'm only guessing at the mnemonics since I'm a Z80/8080 hacker. cmp ah,40h ; Is it the @? cz outch1 ; Yep, send it the first time.. ; ...and fall through for the second. ; Else just send it once. [Toad Hall] ;End of Toad Hall TACpatch outch1: in al,dx test al,20H ; Transmitter ready? jnz outch2 ; Yes loop outch1 jmp r ; Timeout outch2: mov al,ah ; Now send it out mov dx,03F8H out dx,al jmp rskp ; [14 end] ENDIF IF Z100 outchr: mov al,ah ; Yes, get the character into al mov cx,0 call dopar ; Set parity appropriately. [10] ; Toad Hall Note: somebody check this for me -- I assume here that ; ah has not been trashed by the DOPAR call above, and the char is ; still in ah. I also assume the BIOS-AUXOUT call don't do nuttin ; to ah or al or wherever the char is being accessed so we can in ; fact call and put it out twice in a row. [Toad Hall] cpi ah,40h ; Is the char an @ (TAC intercept char)? cz bios-auxout ; Yep - send it once... ; ...and fall through to send the 2nd... ; End of Toad Hall TACpatch. outch1: call bios_auxout ; Send the character jmp rskp ENDIF