<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Sun, 27 Nov 1983 10:51:00-PST
From   : ABN.ISCAMS@usc-isid
Subject: Re:  KERMIT and TAC

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

<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>