ORG 0CAFFH DTRB DW 0 DTRNB DW START DTRLB DW 0 DTWBR DW WB DTWB DW WB DTREW DW 0 DTEOF DW WB DTCLO DW START DTSEK DW 0 DTCTL DW 0 DTBLK DW 1 ? needed for BASIC DTITO DB 0 DTINI DW START START RET WB MOV A,D ORA E JZ DONE CALL OCHAR DCX D One less INX H Moving along JMP WB DONE XCHG Zero to H-L and XTHL then to stack INX H INX H Add 3 to return INX H address XTHL Put it back RET and go OCHAR CALL OLOOP LDA SWTCH Check switch ORA A MOV A,M Get char JNZ SPEC CPI 0DH Carriage return? RZ if so, skip it CPI 5CH Backslash? JNZ SEND STA SWTCH if so, set switch RET SPEC CPI 5CH Two '\' for one JZ RESET ANI 1FH mask 3 MSB CPI 0AH Line feed? JNZ RESET MVI A,0DH If so send CALL SEND a CR first CALL OLOOP MVI A,0AH then the LF RESET MOV B,A Hold the char XRA A 0 to switch STA SWTCH MOV A,B get the char SEND OUT 0F9H and send it RET OLOOP IN 0F8H Check status RAL JNC OLOOP Loop till ready RET SWTCH DB 0