The following program is designed to setup the AdamLink modem in CP/M to answer the phone. Once you call the Adam with a remote computer, pressing any key on the Adam will complete the connection and allow you to then exit to CP/M and use other programs to send / receive files from the remote. I wrote this to replace the need for using AdamLink software to setup the UART and answer the phone.
; Setup AdamLink and then answer the phone .org 0100H ; Setup UART for 8N1 300 baud ld a,080H ; Get UART's attention out (05FH),a out (05FH),a ld a,040H out (05FH),a ld a,0CH ; 8 bits, no parity is assumed since we are not setting it or 03H ; 64x clock rate, 300 baud or 040H ; 1 stop bit out (05FH),a ; Now setup UART ld de,Title ; Send prompt ld c,9 call 5 ld c,1 ; Go wait for a key to be pressed so we know to answer the phone call 5 cp 3 ; Ctrl-C? jp Z,0 ; Yes, exit ld a,025H ; RXE(4h) + TXE(1H) + RTS(20H) to hang up phone out (05FH),a ld a,07H ; RXE(4h) + TXE(1H) + DTR(2H) set - toggle RTS to answer out (05FH),a ld a,027H ; RXE(4h) + TXE(1H) + DTR(2H) + RTS(20H) set - grab phone line and enable carrier out (05FH),a ; Display modem info till ^C pressed ModIn: call KeyIn ; Get Key if any jr Z,NoKey ; No Key jump cp 3 ; Ctrl-C? jp Z,0 ; Yes, exit NoKey: in a,(05FH) ; Read status rra ; Rotate RXREADY into CF rra jr NC,ModIn ; Wait for a byte in a,(05EH) ; Get character ld e,a ; Display what we received ld c,2 call 5 jr ModIn ; do more KeyIn: ld c,0bH ; Check if character available call 5 cp 0 jp Z,KeyInExit ; No Key ld c,1 ; Get actual key in A call 5 ld c,a or 1 ; Clear Z flag ld a,c KeyInExit: ret Title: .db "Answer 1.0",13,10 .db 13,10 .db "Press any key to answer,",13,10 .db "CTRL+C to exit" .db "$"