[Coco] Bit-Banger Serial as external console?
Stephen Pereira
stephen.m.pereira.sr at gmail.com
Tue Mar 26 18:10:10 EDT 2019
Hi Gene,
Thanks very much for your input.
I’ve checked again, and, indeed, shown in “Color BASIC Unraveled” is the label POLCAT at $A000:
0002 A000 A1 CB POLCAT FDB KEYIN GET A KEYSTROKE
And, indeed, the address $A1DB is correct for the label KEYIN later in the listing.
Am I missing what you really meant to say?
smp
- - -
Stephen Pereira
Bedford, NH 03110
KB1SXE
> On Mar 26, 2019, at 5:21 PM, Gene Heskett <gheskett at shentel.net> wrote:
>
> On Tuesday 26 March 2019 15:18:32 Stephen Pereira wrote:
>
>> Hello again, folks,
>>
>> I took Arthur’s advice and started looking for BBS code. I ended up
>> looking at an article in the November 1983 Rainbow titled “Remote
>> Operation of the Color Computer”. It has exactly what I think I need.
>> The tiny assembly language program installs input & output from a
>> remote terminal along with the normal keyboard and screen. When
>> running, a person at the remote terminal can operate the CoCo as if
>> they were directly on the system.
>>
>> Of course, the trouble is that the program does not work for me on my
>> CoCo 3. The communication gets established, but the actual characters
>> get scrambled in both directions. I’ve tried 150, 300 and 600 Baud,
>> as well as 1 or 2 stop bits, and 7 or 8 data bits.
>>
>> I’m concerned that maybe this code cannot work properly on the CoCo 3
>> because it had not yet arrived?
>>
>> Here’s a copy of the code if anyone else would like to try it out.
>> Please let me know if you are successful!
>>
>> ********************************
>> * REMOTE *
>> * A REMOTE TERMINAL DRIVER *
>> * FOR THE COCO *
>> * DAN DOWNARD RAINBOW 11/83 *
>> ********************************
>> ORG $3F00
>> * EQUATES FOR ROM & RAM ADDRESSES
>> IHOOK EQU $016A
>> OHOOK EQU $0167
>> PIA EQU $FF22
>> POLCAT EQU $A000
> That was never correct for any coco. I think what you want is $A002, but
> check your book for sure, my memory is now 30+ years old. There may be
> other changes to the rest of these EQU's too due to the coco3's basic
> patches.
>> RSOUT EQU $BE0C
>> BAUD EQU $E6
>> BAUDR EQU $C9
>> DEV EQU $6F
>> FLAG EQU $70
>> * INITIALIZE RAM HOOKS
>> START LDA #BAUDR
>> STA <BAUD
>> LDX 1+OHOOK
>> STX 1+ORET2,PCR
>> LDX 1+IHOOK
>> STX 1+IRET2,PCR
>> LDA #$7E
>> STA IHOOK
>> STA OHOOK
>> LEAX OUT,PCR
>> STX 1+OHOOK
>> LEAX IN,PCR
>> STX 1+IHOOK
>> RET RTS
>> * OUTPUT CHARACTER IF DEV=0
>> * INSERT LINE FEED TO REMOTE DEVICE
>> * USE ROM SUBROUTINE
>> OUT PSHS A
>> TST <DEV
>> BNE ORET1
>> CMPA #$0D
>> BNE REMOUT
>> LDA #$0A
>> JSR RSOUT
>> LDA #$0D
>> REMOUT JSR RSOUT
>> ORET1 PULS A
>> ORET2 JMP RET
>> * INPUT FROM KEYBOARD OR RS-232
>> * IF DEV=0
>> * USE RSIN FOR REMOTE INPUT
>> IN CLR <FLAG
>> TST <DEV
>> BNE IRET2
>> LEAS 2,S
>> PSHS B,CC,X
>> IN1 JSR [POLCAT]
>> BEQ REMIN
>> BRA IRET1
>> * CHECK FOR REMOTE INPUT
>> REMIN LDB $FF22
>> RORB
>> BCS IN1
>> * RS-232 INPUT ROUTINE
>> * BYTE INTO A REGISTER
>> RSIN BSR HALF
>> LDB #1
>> PSHS B
>> CLRA
>> RSIN1 BSR FULL
>> LDB PIA
>> RORB
>> BCC RSIN2
>> ORA 0,S
>> RSIN2 ASL 0,S
>> BCC RSIN1
>> LEAS 1,S
>> ANDA #$7F
>> IRET1 PULS B,CC,X,PC
>> IRET2 JMP RET
>> * BAUD RATE DELAYS
>> FULL BSR HALF
>> HALF PSHS A
>> LDA <BAUD
>> HALF1 BRN HALF1
>> DECA
>> BNE HALF1
>> PULS PC,A
>> END START
>>
>>
>> smp
>> - - -
>> Stephen Pereira
>> Bedford, NH 03110
>> KB1SXE
>>
<…snip…>
More information about the Coco
mailing list