[Coco] NitrOS9 with Deluxe RS232 Pak
Ron Klein
ron at kdomain.org
Fri Jun 19 11:14:25 EDT 2015
Hill Bill,
I'm going to try this out as soon as I have the time. Thank you for taking
the time to explain this. I'll update you once I get it working.
Thanks!
-Ron
On Fri, Jun 19, 2015 at 3:12 AM, Bill Pierce via Coco <coco at maltedmedia.com>
wrote:
> 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
>
>
>
> --
> Coco mailing list
> Coco at maltedmedia.com
> https://pairlist5.pair.net/mailman/listinfo/coco
>
More information about the Coco
mailing list