GROUP1 EQU 1 ;CODE FOR FIRST ACE (J1) BASE EQU 48H ;BASE I/O ADDRESS SET BY SW-8C GRPCTL EQU BASE+7 ;BOARD GROUP CONTROL PORT DLL EQU BASE ;ACE BAUD RATE DIVISOR (LSB) DLM EQU BASE+1 ;ACE BAUD RATE DIVISOR (MSB) IER EQU BASE +1 ;ACE INTERRUPT ENABLE REGISTER LCR EQU BASE +3 ;ACE LINE CONTROL REGISTER LSR EQU BASE +5 ;ACE LINE STATUS REGISTER RBR EQU BASE ;ACE RECEIVER BUFFER REGISTER THR EQU BASE ;ACE TRANSMITTER HOLDING REGISTER DLAB EQU 80H ;DIVISOR LATCH ACCESS BIT THRE EQU 20H ;LINE STATUS REGISTER THRE BIT DR EQU 1 ;LINE STATUS REGISTER DR BIT BAUDL EQU 12 ;DIVISOR LATCH LOW BYTE - - 9600 BAUD BAUDH EQU 0 ;DIVISOR LATCH HIGH BYTE - - 9600 BAUD WLS0 EQU 1 ;WORD LENGTH SELECT BIT 0 - 8 BIT WORD WLS1 EQU 2 ;WORD LENGTH SELECT BIT 1 - 8 BIT WORD STB EQU 4 ;STOP BIT COUNT - 2 STOP BITS IMASK EQU 0 ;INTERRUPT MASK - DISABLE ALL CONSTAT EQU 0FBF9H ;INTERRUPT ADDRESS ORG 100H INIT MVI A,GROUP1 OUT GRPCTL ;SELECT FIRST SERIAL DEVICE MVI A,DLAB+WLS0+WLS1+STB OUT LCR MVI A,BAUDL OUT DLL MVI A,BAUDH OUT DLM MVI A,WLS0+WLS1+STB OUT LCR XRA A OUT LSR MVI A,IMASK OUT IER ; OUTONE MVI C,'C' CONOUT MVI A,GROUP1 OUT GRPCTL MVI A,WLS0+WLS1+STB OUT LCR CKINT LDA CONSTAT ANI 4 JZ 0 CONOUTL IN LSR ANI THRE JZ CKINT MOV A,C OUT THR JMP CKINT