[Coco] Bit-Banger Serial as external console?

Stephen Pereira stephen.m.pereira.sr at gmail.com
Tue Mar 26 16:16:54 EDT 2019


Hi Art,

That’s $8E0C, not $BE0C.

I had fixed that - I don’t know how that typo go through.  I’m pretty sure that if I had used $BE0c the system would have crashed.

smp
- - -
Stephen Pereira
Bedford, NH  03110
KB1SXE


> On Mar 26, 2019, at 3:36 PM, Arthur Flexser <flexser at fiu.edu> wrote:
> 
> One thing I notice is that ROM call to $BE0C (RSOUT).  This is not a
> logical entry point for a character output routine, and might be a
> typo.  (It's in the middle of some floating point routines.)
> You could try tweaking the baud rate constant a bit, to see if it's a
> timing problem.
> 
> You might check the letters in the following Rainbow issues and Dan
> Downard's next column (I seem to remember that he was a regular
> contributer) to see if any corrections are suggested.
> 
> Art
> 
> On Tue, Mar 26, 2019 at 3:18 PM Stephen Pereira
> <stephen.m.pereira.sr at gmail.com> 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
>> 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
>> 
>> 
>>> On Mar 26, 2019, at 2:03 PM, Chester A Patterson <vchester at setec-cr.com> wrote:
>>> 
>>> Years ago I used Cocos via their bit-bangers to communicate with remote screens connected to scales in production lines. The scale keyboard had three function keys to communicate back to the Coco. So the scale operator interacted with the Coco all day. I enjoyed those projects immensely.  I got the idea because of reading in Rainbow (I think) of some oil drilling site that used a Coco to control the drilling. Ages ago that.
>>> 
>>> -----Original Message-----
>>> From: Stephen Fischer <SFischer1 at Mindspring.com>
>>> Sent: Monday, March 25, 2019 9:47 PM
>>> To: coco at maltedmedia.com
>>> Subject: Re: [Coco] Bit-Banger Serial as external console?
>>> 
>>> 
>>> It is out of scope for your project,
>>> 
>>> But I remember vaguely using OS-9 to log in on another computer using the bit banger on the CoCo.
>>> 
>>> If someone can confirm that, the NitrOS-9 source code might be useful to look at.
>>> 
>>> It has been 25 +- 10 or more years so my memory is very fuzzy.
>>> 
>>> SHF
>>> 
>>> 
>>> 
>>> --
>>> Coco mailing list
>>> Coco at maltedmedia.com
>>> https://pairlist5.pair.net/mailman/listinfo/coco
>> 
>> 
>> --
>> Coco mailing list
>> Coco at maltedmedia.com
>> https://pairlist5.pair.net/mailman/listinfo/coco
> 
> -- 
> Coco mailing list
> Coco at maltedmedia.com
> https://pairlist5.pair.net/mailman/listinfo/coco



More information about the Coco mailing list