0000: 21 20 00 LD HL,** Start storing data in location 00 20 0003: 06 F8 LD B,F8 Set our byte counter in register B to 248 0005: DB 00 INPUT A,00 READ USART STATUS 0007: E6 01 AND 01 MASK ALL BITS BUT RXRDY 0009: CA 0D 00 JPZ 000D LOOP IF NO DATA ( JUMP IF ZERO ) 000C: DB 01 INPUT A,01 READ UART DATA 000E: 77 LD (HL),A STORE A VALUE INTO HL LOCATION ( RAM ) 000F: 3C INC A INC A 0010: CA 08 00 JPZ 0000 loop back, restarting the whole thing if FF is read (rubout) 0012: 23 INC HL Increment storage location 0013: 05 DEC B Decrement byte counter by 1 0014: C2 0D 00 JPNZ 000D loop back if we haven't read 248 bytes DB 00 INPUT A,0 READ FROM STATUS REGISTER ( IS BYTE AVAILABLE ) E6 01 AND 01 MASK ALL BITS BUT RXRDY CA 00 00 JP Z 0000 JMP BACK TO READ STATUS IF NOT DATA AVAILABLE DB 01 INPUT A,1 READ SERIAL DATA INTO A ( NOW THAT BYTES ARE AVAILABLE ) D3 01 OUT 01,A ECHO CHARACTER OUT OF PORT 1 C3 00 00 JMP 0000 START AGAIN ( BACK TO START OF CODE ) 7 6 5 4 3 2 1 0 AND 02 JP Z 3E 55 LD A,55 "U" D3 01 OUT 01,A 76 HLT