This program sends "A" to "Z" to the serial port ; TEST PROGRAM TO CONTINUALLY SEND A TO Z CHARACTERS TO THE SERIAL PORT AT 10H,11H ; THIS PROGRAM ASSUMES THAT THE SERIAL PORT IS CONFIGURED AND THE BAUDRATE IS SET ; BY HARDWARE JUMPERS ON THE SERIAL CARD. ; BUILD USING ASM.COM WITH CPM COMMAND: ASM SERTST ; DEFINE PORT CONFIGURATION FOR SERIAL PORT 0011 = CONOUT EQU 11H ; SERIAL PORT DATA OUTPUT PORT 0010 = CONSTAT EQU 10H ; SERIAL PORT STATUS INPUT PORT 0002 = CONTBR EQU 2H ; SERIAL PORT TRANSMIT BUFFER READY STATUS BIT . . . . . . . . . . . . . . . . . . . . . . ; ASSUMES BIT IS HIGH WHEN THE UART IS READY TO SEND A CHAR 0000 ORG 0 START: 0000 0E41 MVI C,'A' ; LOAD REG C WITH ASCII A ( 016 101 ) LOOP: 0002 DB10 IN CONSTAT ; READ CONSOLE STATUS PORT ( 333 020 ) 0004 E602 ANI CONTBR ; CHECK TO SEE IF UART IS READY TO SEND A CHARACTER ( 346 002 ) 0006 CA0200 JZ LOOP ; LOOP UNTIL UART IS READY TO SEND NEXT CHAR ( 312 002 000 ) . . . . . . . . . . . . . . . . . . . . . . ; ASSUMES BIT IS HIGH WHEN THE UART IS READY TO SEND A CHAR 0009 79 MOV A,C ; ACC = TEST CHARACTER ( 171 ) 000A D311 OUT CONOUT ; OUTPUT CHARACTER IN ACC TO CONSOLE ( 323 021 ) 000C FE5A CPI 'Z' ; IS LAST CHARACTER A Z ( 376 132 ) 000E CA0000 JZ START ; YES, RESTART SEQUENCE AT A ( 312 000 000 ) 0011 0C INR C ; NO, NEXT TEST CHARACTER ( 014 ) 0012 C30200 JMP LOOP ; REPEAT WITH NEW CHARACTER ( 303 002 000 ) ; OCTAL CONVERSION SUMMARY AS SHOWN ABOVE IN COMMENTS ; THERE DOESNT APPEAR TO BE A WAY TO GET ASM TO OUTPUT OCTAL LISTINGS ; SO THE CONVERSION WAS DONE A BYTE AT A TIME FROM THE HEX IN THE LISTING FILE. ; LOAD THE FOLLOWING BYTES STARTING AT ADDRESS 0, THEN START EXECUTION AT 0 ; OR BUY AN IMSAI SO YOU CAN USE HEX DIRECTLY FROM THE LISTINGS! ;( 016 101 ) ;( 333 020 ) ;( 346 002 ) ;( 312 002 000 ) ;( 171 ) ;( 323 021 ) ;( 376 132 ) ;( 312 000 000 ) ;( 014 ) ;( 303 002 000 ) 0015 END START ; INCLUDE START ADDRESS IN HEX FILE 016 101 333 020 346 002 312 002 000 171 323 021 376 132 312 000 000 014 303 002 000