[Coco] NitrOS9 with Deluxe RS232 Pak

Bill Pierce ooogalapasooo at aol.com
Fri Jun 19 04:12:54 EDT 2015


Ron, Just so you'll know, once you start using Drivewire4, the RS-232 pak will become obsolete. DW4 already has the ability to have terminals running on the PC server and at a much faster baud rate by using the bitbanger port. The RS-232 pak cannot match the speeds at which DW4 can reach.

Once you have DW4 going, you have access to the entire Coco library of software on your PC, DW4 MIDI, virtual printer, telnet, as well as PC terminals. DW4 is possibly one of the best innovations yet for the Coco.
The explination Barry provided for telnet is very good... but for just a "dumb terminal" for the Coco, DW4 has that built in and it's much easier.

You say you've already had DW4 going in HDBDOS, then all you need is the DW disk image for NitrOS9 and you're good to go. All needed drivers are already there except (IIRC), the current NitrOS9 build (for some odd reason) had the "/z1"-"/z7" descriptors removed from the bootfile and they will have to be added back in to use the terminals. The "/Zx" descripters are what is used for the virtual terminal (in it's simplest form). These descriptors are on the disk in the "nitros9/6x09Lx/modules/scf" folder. At least "/z1" (more if you want more terminals) has to be added to the bootfile. The driver is already there. To activate, just type:

shell i=/z1&<ENTER>

and DW4 does the rest... a terminal pops up on the server screen :-)
Most "text" based cmds can then be run from the terminal. No graphics based operation can be used though.

I Hope this helps.

 

 


Bill Pierce
"Charlie stole the handle, and the train it won't stop going, no way to slow down!" - Ian Anderson - Jethro Tull

 

My Music from the Tandy/Radio Shack Color Computer 2 & 3
https://sites.google.com/site/dabarnstudio/
Co-Contributor, Co-Editor for CocoPedia
http://www.cocopedia.com/wiki/index.php/Main_Page
Global Moderator for TRS-80/Tandy Color Computer Forums
http://www.tandycoco.com/forum/

E-Mail: ooogalapasooo at aol.com


 

 

-----Original Message-----
From: Ron Klein <ron at kdomain.org>
To: CoCoList for Color Computer Enthusiasts <coco at maltedmedia.com>
Sent: Thu, Jun 18, 2015 2:46 pm
Subject: Re: [Coco] NitrOS9 with Deluxe RS232 Pak


Hi Gene,

That is a fascinating story about the Coco!  As a kid, I remember
seeing
your name quite a bit but then left the Coco world for many, many years. 
I
love hearing stories like this from pioneer hackers like yourself. 
Marty
Goodman was another person who seemed legendary in the Coco scene. 
I
actually had some very pleasant email exchanges with him back in the 90's
and
purchased a few things from him.  It doesn't appear he's an active
participant
in the Coco scene any longer.  I hope he's doing well, wherever
he may be.

As
an FYI, I don't know if my RS232 Pak has been modded in any way.  Not
sure if
this would be important for my purposes.  My intent is to use the
RS232 pak as a
way to remote into my Coco.

As always, thank you for all your
help!

-Ron






On Thu, Jun 18, 2015 at 4:17 AM, Gene Heskett
<gheskett at wdtv.com> wrote:

> On Thursday 18 June 2015 01:38:29 Barry Nelson
wrote:
> > This page seems to have a good collection of null modem wiring
> >
diagrams.
> >
> > http://www.pccompci.com/rs232-cable-technology.html
> >
> >
Here is what I believe is my last version of the ACAIPAK driver that I
> > used
to use with my BBS. This is assembly source code, and needs to be
> > compiled
with: asm aciapak o=aciapak #40k
> >
> > This is optional, but if I recall, it
has some enhancements and
> > stability improvements. It should certainly wait
indefinitely for a
> > connection. It appears to be hardcoded to have the RS232
pak in slot 1
> > of the multipak. I think this is the case for the regular
driver as
> > well.
> >
> >  nam ACIAPAK
> >  ifp1
> >  use /dd/defs/defsfile
>
>  endc
> >  ttl New ACIAPAK with set screen size.
> > verson equ $01
> >  mod
endmod,namemd,drivr+objct,reent+verson,xferad,endmem
> > IRQReq  set %10000111
>
> ErrorFl set %00000111
> > INSIZ  set 255 <- Must be between 32 and 255
> >
OUTSIZ set 255 <- Must be between 32 and 255
> >  org V.SCF
> > INXTI rmb
$0001
> > INXTO rmb $0001
> > INCNT rmb $0001
> > ONXTI rmb $0001
> > ONXTO rmb
$0001
> > HALTED rmb $0001
> > INHALT rmb $0001
> > LASTDCD rmb $0001
> > SIGPRC
rmb $0002
> > STATUS rmb $0001
> > Parity rmb $0001
> > Baud rmb $0001
> > COLS
rmb $0001
> > ROWS rmb $0003
> > INBUF rmb INSIZ
> > OUTBUF rmb OUTSIZ+1
> >
virqmem rmb 5
> > endmem equ .
> >  nam ACIAPAK
> > lFF92 equ $00AF
> > PDESCADD
equ $0050
> > cFF92 equ $0092
> > xFF22 equ $FF22
> > xFF23 equ $FF23
> >
MultPak equ $FF7F
> > xFF92 equ $FF92
> > IT.COL equ $2C
> > IT.PAR equ $26
> > 
fcb $03
> > namemd fcs "ACIAPAK"
> >  fcb $0C
> > xferad
> >  lbra INIT
> > 
lbra READ
> >  lbra WRITE
> >  lbra GETSTA
> >  lbra SETSTA
> >  lbra TERM
> >
irqpakt
> >  fcb 0
> >  fcb IRQReq
> >  fcb 10
> > virqpkt
> >  fcb 0,3
> >  fcb
0,3
> >  fcb $80
> > *****************************
> > * Initialize the RS232
pak. *
> > *****************************
> > INIT ldx V.PORT,u
> >  stb $01,x
>
>  ldd IT.COL,y
> >  std COLS,u
> >  ldd IT.PAR,y
> >  lbsr SetComSt
> >  ldd
V.PORT,u
> >  addd #$0001
> >  leax irqpakt,pcr
> >  leay IRQRout,pcr
> >  os9
f$irq
> >  bcs InitEnd
> > ****************
> > * Install VIRQ *
> >
****************
> >  leay virqpkt,pcr
> >  leax virqmem,u
> >  ldb #5
> >
vcopy
> >  lda ,y+
> >  sta ,x+
> >  decb
> >  bne vcopy
> >  ldx #1
> >  leay
virqmem,u
> >  ldd #3
> >  os9 f$virq
> >  bcs InitEnd
> >  pshs cc
> >  orcc
#$50
> >  lda >xFF23
> >  anda #$FC
> >  sta >xFF23
> >  lda >xFF22
> >  lda
<cFF92
> >  ora #$01
> >  sta <cFF92
> >  sta >xFF92
> >  puls cc
> >  lda
#$03
> >  sta >MultPak
> >  clrb
> > InitEnd rts
> > z006E orcc #$50
> >  lda
,x
> >  lda ,x
> >  lda $01,x
> >  ldb $01,x
> >  ldb $01,x
> >  bmi z00E0
> > 
lda #$02
> >  sta HALTED,u
> >  clra
> >  andb #$60
> >  std INHALT,u
> > 
clrb
> >  std INXTI,u
> >  std ONXTI,u
> >  sta INCNT,u
> >  std SIGPRC,u
> > 
andcc #$AF
> >  rts
> > RecMT bsr Sleep
> > ********************
> > * Read a
character *
> > ********************
> > READ
> >  orcc #$50
> >  lda INHALT,u
>
>  ble z00B1
> >  ldb INCNT,u
> >  cmpb #$0A
> >  bhi z00B1
> >  ldb V.XON,u
> >
orb #$80
> >  stb INHALT,u
> >  ldb #$05
> >  lbsr IPort1
> > z00B1 tst
SIGPRC,u
> >  bne z00E0
> >  ldb INXTO,u
> >  leax INBUF,u
> >  cmpb INXTI,u
> >
beq RecMT
> >  abx
> >  lda ,x
> >  dec INCNT,u
> >  incb
> >  cmpb #INSIZ-1
> >
bls z00CF
> >  clrb
> > z00CF stb INXTO,u
> >  ldb V.ERR,u
> >  beq ExitWrOk
> >
stb PD.ERR,y
> >  clr V.ERR,u
> >  comb
> >  ldb #$F4
> >  bra ExitWr
> > z00E0
comb
> >  ldb #$F6
> >  rts
> > Sleep pshs x,b,a
> >  lda V.BUSY,u
> >  sta
V.WAKE,u
> >  andcc #$AF
> >  ldx #0
> >  os9 f$sleep
> >  ldx <PDESCADD
> > 
ldb $19,x
> >  beq z00FD
> >  cmpb #$03
> >  bls z0113
> > z00FD clra
> >  lda
$0C,x
> >  bita #$02
> >  bne z0113
> >  ldb #$DC
> >  lda V.ERR,u
> >  bita
#$20
> >  bne z010E
> >  puls pc,x,b,a
> > z010E inc $3F,y
> >  clr V.ERR,u
> >
z0113 leas $06,s
> >  coma
> >  rts
> > TXFull bsr Sleep
> >
*********************
> > * Write a character *
> > *********************
> >
WRITE
> >  orcc #$50
> >  leax OUTBUF,u
> >  ldb ONXTI,u
> >  abx
> >  sta ,x
>
>  incb
> >  cmpb #OUTSIZ-1
> >  bls z0128
> >  clrb
> > z0128
> >  cmpb
ONXTO,u
> >  beq TXFull
> >  stb ONXTI,u
> >  lda HALTED,u
> >  beq ExitWrOk
> >
anda #$FD
> >  sta HALTED,u
> >  bne ExitWrOk
> >  ldb #$05
> >  lbsr IPort1
> >
ExitWrOk clrb
> > ExitWr andcc #$AF
> >  rts
> > ***********************
> > *
Get status routines *
> > ***********************
> > GETSTA ldx PD.RGS,y
> > 
cmpa #SS.Ready
> >  bne NotSSRDY
> >  ldb INCNT,u
> >  beq z00E0
> >  stb
R$B,x
> > ExitSta clrb
> >  rts
> > NotSSRDY cmpa #SS.Eof
> >  beq ExitSta
> > 
cmpa #SS.ScSiz
> >  beq GetScSiz
> >  cmpa #SS.ComSt
> >  bne NotFound
> >  ldd
Parity,u
> >  std R$Y,x
> >  bra ExitSta
> > GetScSiz clra
> >  ldb COLS,u
> > 
std R$X,x
> >  ldb ROWS,u
> >  std R$Y,x
> >  bra ExitSta
> > NotFound comb
> > 
ldb #$D0
> >  rts
> > ***********************
> > * Set status routines *
> >
***********************
> > SETSTA ldx PD.RGS,y
> >  cmpa #SS.SSig
> >  bne
NotSSig
> >  lda PD.CPR,y
> >  ldb R$X+1,x
> >  orcc #$50
> >  tst INCNT,u
> > 
bne SendSig
> >  std SIGPRC,u
> >  bra ExitWrOk
> > SendSig andcc #$AF
> >  os9
f$send
> >  clrb
> >  rts
> > NotSSig cmpa #SS.Open
> >  beq SetOpen
> >  cmpa
#SS.Close
> >  beq SetClose
> >  cmpa #SS.ScSiz
> >  beq SetScSiz
> >  cmpa
#SS.Relea
> >  bne NotRelea
> >  lda PD.CPR,y
> >  cmpa SIGPRC,u
> >  bne
ExitSta
> >  clr SIGPRC,u
> >  rts
> > SetScSiz clra
> >  ldd R$X,x
> >  stb
COLS,u
> >  ldd R$Y,x
> >  stb ROWS,u
> >  clrb
> >  rts
> > NotRelea cmpa
#SS.ComSt
> >  bne NotFound
> >  ldd R$Y,x
> > SetComSt std Parity,u
> >  andb
#$E0
> >  pshs b
> >  ldb Baud,u
> >  andb #$07
> >  leax <z01D7,pcr
> >  ldb
b,x
> >  orb ,s+
> >  anda #$E0
> >  sta V.TYPE,u
> >  ldx V.PORT,u
> >  lda
$02,x
> >  anda #$1F
> >  ora V.TYPE,u
> >  std $02,x
> >  bra z020C
> > z01D7
fcb $13
> >  fcb $16
> >  fcb $17
> >  fcb $18
> >  fcb $1A
> >  fcb $1C
> > 
fcb $1E
> >  fcb $1F
> > SetOpen ldb #$09
> >  lda $07,x
> >  cmpa #$01
> >  bne
z020C
> >  orcc #$50
> >  lbsr IPort1
> >  lbra z006E
> > SetClose lda $07,x
> >
bne z020C
> >  ldb #$0B
> >  lda Parity,u
> >  bita #$10
> >  beq z01FD
> >
z01FC clrb
> > z01FD pshs b
> > z01FF bsr z0211
> >  bcs z01FF
> >  puls b
> > 
orcc #$50
> >  lbsr IPort1
> >  andcc #$AF
> > z020C clrb
> >  rts
> > z020E
lbsr Sleep
> > z0211 ldb ONXTI,u
> >  orcc #$50
> >  cmpb ONXTO,u
> >  bne
z020E
> >  rts
> > ************************
> > * Terminate the device *
> >
************************
> > TERM ldx <PDESCADD
> >  lda ,x
> >  sta V.BUSY,u
>
>  sta V.LPRC,u
> >  bsr z01FC
> >  lda <cFF92
> >  anda #$FE
> >  sta <cFF92
>
>  sta >xFF92
> >  ldx #0
> >  os9 f$irq
> > *******************
> > *
De-install VIRQ *
> > *******************
> >  ldx #0
> >  leay virqmem,u
> > 
ldd #3
> >  os9 f$virq
> >  clrb
> >  rts
> > ***********************
> > * IRQ
handler routine *
> > ***********************
> > another ldb >xFF92
> >  orb
<lFF92
> >  bra reentry
> > IRQRout
> >  ldb <lFF92
> > reentry
> >  andb #$FE
>
>  stb <lFF92
> >  ldx V.PORT,u
> >  sta STATUS,u
> >  tfr a,b
> >  andb #$60
>
>  cmpb LASTDCD,u
> >  beq dcdok
> >  tfr b,a
> >  eorb LASTDCD,u
> >  sta
LASTDCD,u
> >  lda STATUS,u
> >  bitb #$20
> >  beq z027F
> >  bita #$20
> > 
beq z027F
> >  lda Parity,u
> >  bita #$10
> >  beq ExitIRQ
> >  ldx V.PDLHd,u
>
>  beq nocd2
> > nocd inc $3F,x
> >  ldx $3D,x
> >  bne nocd
> > nocd2 lda
#$20
> >  bsr setverr
> >  bra wake
> > z027F bitb #$40
> >  beq ExitIRQ
> > 
bita #$40
> >  lbne z03A2
> >  lbra z0391
> > dcdok bita #$08
> >  bne INPUT
> >
bita #ErrorFl      Error flags?
> >  bne ERROR          Handle it
> >  bita
#$10
> >  beq ExitIRQ
> >  lda INHALT,u
> >  bpl NotHalt
> >  anda #$7F
> >  sta
,x
> >  eora V.XON,u
> >  anda #$7F
> >  sta INHALT,u
> >  lda HALTED,u
> >  bne
z02CF
> >  bra ExitIRQ
> > NotHalt leay OUTBUF,u
> >  ldb ONXTO,u
> >  cmpb
ONXTI,u
> >  beq TXMT
> >  clra
> >  lda d,y
> >  incb
> >  cmpb #OUTSIZ-1
> > 
bls z02BD
> >  clrb
> > z02BD stb ONXTO,u
> >  sta ,x
> >  cmpb ONXTI,u
> >  bne
wake
> > TXMT lda HALTED,u
> >  ora #$02
> >  sta HALTED,u
> > z02CF ldb #$09
>
>  lbsr IPort2
> > wake ldb #$01
> >  lda V.WAKE,u
> > wake2 beq ExitIRQ
> > 
clr V.WAKE,u
> > wake3 os9 f$send
> > ExitIRQ ldx V.PORT,u
> >  lda $01,x
> > 
lbmi another
> >  clrb
> >  rts
> > setverr ora V.ERR,u
> >  sta V.ERR,u
> > 
rts
> > INPUT
> >  bita #$07
> >  beq InputOk
> > ERROR
> >  tfr a,b
> >  tst
,x
> >  anda #ErrorFl
> >  bsr setverr
> >  lda $02,x
> >  sta $01,x
> >  sta
$02,x
> >  bra ExitIRQ
> > InputOk lda ,x
> >  beq StorINP
> >  cmpa V.INTR,u
>
>  lbeq z0380
> >  cmpa V.QUIT,u
> >  lbeq z0384
> >  cmpa V.PCHR,u
> >  beq
z0378
> >  cmpa V.XON,u
> >  lbeq z0391
> >  cmpa V.XOFF,u
> >  lbeq z03A2
> >
StorINP leax INBUF,u
> >  ldb INXTI,u
> >  abx
> >  sta ,x
> >  incb
> >  cmpb
#INSIZ-1
> >  bls notend1
> >  clrb
> > notend1
> >  stb INXTI,u
> >  cmpb
INXTO,u
> >  bne NotFull
> >  lda INXTO,u
> >  inca
> >  cmpa #INSIZ-1
> >  bls
notend2
> >  clra
> > notend2
> >  sta INXTO,u
> >  lda #INSIZ-1
> >  sta
INCNT,u
> >  lda #$04
> >  bsr setverr
> >  bra NoInc
> > NotFull
> >  inc
INCNT,u
> > NoInc
> >  tst SIGPRC,u
> >  beq z034A
> >  ldd SIGPRC,u
> >  clr
SIGPRC,u
> >  lbra wake3
> > z034A lda V.XOFF,u
> >  lbeq wake
> >  ldb
INCNT,u
> >  cmpb #INSIZ-32
> >  lbcs wake
> >  ldb INHALT,u
> >  lbne wake
> > 
anda #$7F
> >  sta V.XOFF,u
> >  ora #$80
> >  sta INHALT,u
> >  ldb #$05
> > 
bsr IPort1
> >  lbra wake
> > IPort1 ldx V.PORT,u
> > IPort2 orb V.TYPE,u
> > 
stb $02,x
> >  clrb
> >  rts
> > z0378 ldx V.DEV2,u
> >  beq StorINP
> >  sta
$08,x
> >  bra StorINP
> > z0380 ldb #$03
> >  bra z0386
> > z0384 ldb #$02
> >
z0386 pshs a
> >  lda V.LPRC,u
> >  lbsr wake2
> >  puls a
> >  lbra StorINP
> >
z0391 lda HALTED,u
> >  anda #$FE
> >  sta HALTED,u
> >  bne z039F
> >  ldb
#$05
> >  bsr IPort2
> > z039F lbra ExitIRQ
> > z03A2 lda HALTED,u
> >  bne
z03AB
> >  ldb #$09
> >  bsr IPort2
> > z03AB ora #$01
> >  sta HALTED,u
> > 
bra z039F
> >  emod
> > endmod equ *
> >  end
>
> This worked flawlessly for 15
years, using /t1, from the forgotten chip
> article in RBow all those years ago.
It functioned in this case as a
> personality storage/retrieval system for a
Grass Valley Group 300-3A/B
> production video switcher.  Written in B09,
running on a coco2 at WDTV.
> Grass had a somewhat similar device called an
EDisk that ran 4x slower
> and was downright klunky to use, but they wanted
$20,000 for their
> version.  I sold the tv station a coco2 out of my collection
with that
> added acia on some perfboard under the keyboard, with 2 disk drives
for
> $245.  But it gave our Tech Directors running a newscast, the ability
>
for each of them to save and recall his own "bag of tricks" to use to
> pretty
up a newscast.  Grass's version had to be setup by the time the
> cast opened
because it was so slow, mine was fast enough the T.D. could
> discover that
button didn't do what he expected, he could run to the
> keyboard and call up
his stuff, and it was done by the end of the
> opening commercial break.  They
loved it.
>
> Bruce Istead I think it was, made up a patch that because the 6551
was
> drain bamaged, (and because of that, I have never really understood why
>
it was so widely used) swapped two of the status lines which made the 7
> wire
hardware flow control protocol work correctly, and it was in the
> next
generation driver, SACIA.dr, but I am not convinced that patch
> survived the
nitros9 conversion to sc6551.dr.  My rs232 pack has that
> hardware hack in it,
and I have never been able to make flow controls
> work properly with it since
it became sc6551.dr.  Someone with time on
> their hands needs to check that out
and make it work again.  Its
> controlled by a bit in the descriptor, plays with
the DCR/DCD functions
> being reversed, IIRC.  I hope that patch is on RTSI, if
not I may have a
> copy.  I used it extensively when nitros9 was at about
V1.16-V1.22.
>
> > On Jun 17, 2015, at 11:18 PM, coco-request at maltedmedia.com
wrote:
> > > Date: Wed, 17 Jun 2015 23:15:55 -0400
> > > From: Michael Brant
<brant.michael.l at gmail.com>
> > > To: CoCoList for Color Computer Enthusiasts
<coco at maltedmedia.com>
> > > Subject: Re: [Coco] NitrOS9 with Deluxe RS232 Pak
>
> > Message-ID:
> > >     <CAGJGKwjr5JQDvhLnvJq3CA_2i-Xd=b-=
>
MiKevX_T10xsKxNJEg at mail.gmail.com
> > >> Content-Type: text/plain;
charset=UTF-8
> > >
> > > Will all this talk of rs232 and null modem cables. 
How would one
> > > make one?  Or does anyone know where they can aquired ?
>
>
Cheers, Gene Heskett
> --
> "There are four boxes to be used in defense of
liberty:
>  soap, ballot, jury, and ammo. Please use in that order."
> -Ed
Howdershelt (Author)
> Genes Web page <http://geneslinuxbox.net:6309/gene>
>
>
--
> 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