0001 = GROUP1 EQU 1 ;CODE FOR FIRST ACE (J1) 0048 = BASE EQU 48H ;BASE I/O ADDRESS SET BY SW-8C 004F = GRPCTL EQU BASE+7 ;BOARD GROUP CONTROL PORT 0048 = DLL EQU BASE ;ACE BAUD RATE DIVISOR (LSB) 0049 = DLM EQU BASE+1 ;ACE BAUD RATE DIVISOR (MSB) 0049 = IER EQU BASE +1 ;ACE INTERRUPT ENABLE REGISTER 004B = LCR EQU BASE +3 ;ACE LINE CONTROL REGISTER 004D = LSR EQU BASE +5 ;ACE LINE STATUS REGISTER 0048 = RBR EQU BASE ;ACE RECEIVER BUFFER REGISTER 0048 = THR EQU BASE ;ACE TRANSMITTER HOLDING REGISTER 0080 = DLAB EQU 80H ;DIVISOR LATCH ACCESS BIT 0020 = THRE EQU 20H ;LINE STATUS REGISTER THRE BIT 0001 = DR EQU 1 ;LINE STATUS REGISTER DR BIT 000C = BAUDL EQU 12 ;DIVISOR LATCH LOW BYTE - - 9600 BAUD 0000 = BAUDH EQU 0 ;DIVISOR LATCH HIGH BYTE - - 9600 BAUD 0001 = WLS0 EQU 1 ;WORD LENGTH SELECT BIT 0 - 8 BIT WORD 0002 = WLS1 EQU 2 ;WORD LENGTH SELECT BIT 1 - 8 BIT WORD 0004 = STB EQU 4 ;STOP BIT COUNT - 2 STOP BITS 0000 = IMASK EQU 0 ;INTERRUPT MASK - DISABLE ALL FBF9 = CONSTAT EQU 0FBF9H ;INTERRUPT ADDRESS 0100 ORG 100H 0100 3E01 INIT MVI A,GROUP1 0102 D34F OUT GRPCTL ;SELECT FIRST SERIAL DEVICE 0104 3E87 MVI A,DLAB+WLS0+WLS1+STB 0106 D34B OUT LCR 0108 3E0C MVI A,BAUDL 010A D348 OUT DLL 010C 3E00 MVI A,BAUDH 010E D349 OUT DLM 0110 3E07 MVI A,WLS0+WLS1+STB 0112 D34B OUT LCR 0114 AF XRA A 0115 D34D OUT LSR 0117 3E00 MVI A,IMASK 0119 D349 OUT IER ; 011B 0E43 OUTONE MVI C,'C' 011D 3E01 CONOUT MVI A,GROUP1 011F D34F OUT GRPCTL 0121 3E07 MVI A,WLS0+WLS1+STB 0123 D34B OUT LCR 0125 3AF9FB CKINT LDA CONSTAT 0128 E604 ANI 4 012A CA0000 JZ 0 012D DB4D CONOUTL IN LSR 012F E620 ANI THRE 0131 CA2501 JZ CKINT 0134 79 MOV A,C 0135 D348 OUT THR 0137 C32501 JMP CKINT