; ; REAL DUMB TERMINAL ECHO CHARACTER PROGRAM ; STATUS EQU 1 ;RDT STATUS PORT DATA EQU 2 ;RDT DATA PORT INMASK EQU 0x80 ;STATUS PORT BIT D0 = 7 WHEN KEYBOARD CHARACTER DATA AVAILABLE OUTMASK EQU 0x40 ;STATUS PORT BIT D7 = 6 WHEN TERMINAL BUSY PROCESSING CHARACTER DATA ; ORG 0X0000 ;PROGRAM START ADDRESS ; ; CRIN - GET KEYBOARD CHARACTER INTO REGISTER C ; CHRIN: IN STATUS ;STATUS BYTE -> A ANI INMASK ;MASK CHARACTER DATA AVAILABLE BIT D0 JNZ CHRIN ;WAIT IF D0 = 1 - NO CHARACTER AVAILABLE IN DATA ;KEYBOARD CHARACTER -> A MOV C,A ;A->C ; ; CHROUT - OUTPUT CHARACTER IN C TO RDT SCREEN ; CHROUT: IN STATUS ;STATUS BYTE -> A ANI OUTMASK ;MASK TERMINAL BUSY BIT D7 JNZ CHROUT ;WAIT IF D7 = 1 - TERMINAL BUSY MOV A,C ;C -> A OUT DATA ;SEND CHARACTER TO TEMINAL SCREEN ; JMP CHRIN ;LOOP FOR NEXT CHARACTER ; ; PROGRAM END ;