[Coco] Os-9 Nictro Syscall Carrier Detect Issues

Taylor, Phillip L CIV Phillip.L.Taylor at uscg.mil
Tue Jan 17 16:48:28 EST 2017


Hello

I have a few questions so I included all the messages so you would have something to reference to.  

Can you please send me a copy of your response to ptaylor2446 at gmail.com.

I am running in to a few issues trying to use either tsmon on the current version of Nitro-Os9 and Vcc. 

With the example included below with the web server I changed the [/DD/SYS/inetd.conf to run login as a test and there is where I got the unknown error after I started inetd. The  RUN SYSCALL(reqid,rregs) I did not see any values to reference to see what memory address its getting the information from?  I also need to find a way to detect if carrier lost? 

If anyone has any easy way to be able to get incoming, outgoing charectors and be able to detect carrier lost I could you your help.

Thanks
Phil Taylor





Message: 2
Date: Sun, 15 Jan 2017 14:14:56 -0600
From: David Ladd <davidwladd at gmail.com>
To: CoCoList for Color Computer Enthusiasts <coco at maltedmedia.com>
Subject: Re: [Coco] Checking for carrier
Message-ID:
	<CAHW2jkD9xpr00+wf=DE9u=X6hDWztg5K_3A+fNuZSpUBHYTE3w at mail.gmail.com>
Content-Type: text/plain; charset=UTF-8

On Fri, Jan 13, 2017 at 10:33 AM, Taylor, Phillip L CIV < Phillip.L.Taylor at uscg.mil> wrote:

> Question how do you check for carrier if it's true or false?
>

​Philip, if I remember right the OS-9/NitrOS-9 syscall for carrier detect is not supported on DriveWire.  That is one of the reasons I could never get RiBBS to work via the virtual serial ports on DriveWire as it relies on the syscall status of carrier detect.​

If I am wrong though I hope someone will chime in.



>
>
>
>
> Message: 5
> Date: Tue, 10 Jan 2017 18:41:55 -0500
> From: William Carlin <whcarlinjr at gmail.com>
> To: CoCoList for Color Computer Enthusiasts <coco at maltedmedia.com>
> Subject: Re: [Coco] [Non-DoD Source] Coco Digest, Vol 172, Issue 22
> Message-ID:
>         <CABDDd1RFk-9Hg4tthhN1AcccFVVNK48wwvnoVGB58mHEHQju=
> g at mail.gmail.com>
> Content-Type: text/plain; charset=UTF-8
>
> Phillip,
>
> Here is an example from the drivewire extras disk:
>
> For this example, the inetd is going to be setup for a web server:
>
> [/DD/SYS/ientd.conf]
> 80,runb,httpd
>
> DriveWIre will be instructed to listen for connections on port 80.  
> When it does, the coco runs the runb Basic09 runtime and runb loads 
> and executes the Basic09 program httpd.  The inconing serial 
> connection is passed to the httpd as the standard input.
>
> [httpd.b09]
> PROCEDURE httpd
>
> (* HTTPD09 - process one http request, should be spawned by inetd *)
>
>
> !    This program is free software: you can redistribute it and/or modify
> !    it under the terms of the GNU General Public License as published by
> !    the Free Software Foundation, either version 3 of the License, or
> !    (at your option) any later version.
>
> !    This program is distributed in the hope that it will be useful,
> !    but WITHOUT ANY WARRANTY; without even the implied warranty of
> !    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> !    GNU General Public License for more details.
>
>
> ON ERROR GOTO 99
> BASE 0
>
> DIM fp:BYTE
> DIM errnum:BYTE
> DIM req:STRING[255]
> DIM target:STRING[255]
> DIM lf:BYTE
> DIM cr:BYTE
> DIM inbyte:BYTE
> DIM buffer(256):BYTE
> TYPE RREGISTERS=CC,A,B:BYTE; DP:BYTE; X,Y,U:INTEGER DIM 
> rregs:RREGISTERS DIM reqid:BYTE DIM i,p:INTEGER DIM httperr:STRING[40] 
> DIM dent(32):BYTE
>
> lf=10
> cr=13
>
> (* turn off echo on the input path *)
> (* this will be done by inetd in the future *)
>
> (* get ss.opt *)
> rregs.A = 0
> rregs.B = 0
> rregs.X = ADDR(buffer)
> reqid = $8D
> RUN SYSCALL(reqid,rregs)
>
> (* set PD.EKO to 0 *)
> buffer(4) = 0
>
> (* set ss.opt *)
> rregs.A = 0
> rregs.B = 0
> rregs.X = ADDR(buffer)
> reqid = $8E
> RUN SYSCALL(reqid,rregs)
>
> (* read headers from client *)
> REPEAT
>
>     req = ""
>
>     REPEAT
>         GET #0,inbyte
>         req = req + chr$(inbyte)
>     UNTIL inbyte = 13 or EOF(#0)
>
>     IF LEFT$(req,4) = "GET " THEN
>         target = req
>     ENDIF
>
> UNTIL PEEK(ADDR(req)) = 13 OR EOF(#0)
>
> (* just die if stdin is gone.. might help with hung runbs? *) IF 
> EOF(#0) THEN 99
>
> (* fixup paths *)
> IF left$(target,6) = "GET / " THEN
>     req = "/DD/WWWROOT/index.html"
> ELSE
>     req = mid$(target,5,len(target) - 14) ENDIF
>
> IF right$(req,1) = "/" THEN
>     req = left$(req,len(req)-1)
> ENDIF
>
> (* "security" checks *)
> target = ""
> FOR i=1 TO SIZE(req)
>  inbyte=ASC(MID$(req,i,1))
>  IF $40<inbyte AND inbyte<$60 THEN
>      inbyte = inbyte + $20
>  ENDIF
>  target=target + CHR$(inbyte)
> NEXT i
> IF (SUBSTR("..",req) > 0) OR (SUBSTR("/sys/",target) > 0) THEN
>     httperr = "403 Forbidden"
>     GOTO 1000
> ENDIF
>
> (* /favicon.ico *)
> IF (req = "/favicon.ico") THEN
>     req = "/DD/WWWROOT/favicon.ico"
> ENDIF
>
> ON ERROR GOTO 100
> OPEN #fp,req:READ
> ON ERROR GOTO 50
> httperr = "200 OK"
> GOSUB 2000
>
> IF RIGHT$(req,4) = ".htm" OR RIGHT$(req,5) = ".html" THEN
>     PRINT "Content-Type: text/html"
> ELSE
>     IF RIGHT$(req,4) = ".jpg" THEN
>         PRINT "Content-Type: image/jpeg"
>     ELSE
>         IF RIGHT$(req,4) = ".gif" THEN
>             PRINT "Content-Type: image/gif"
>         ELSE
>             IF RIGHT$(req,4) = ".png" THEN
>                 PRINT "Content-Type: image/png"
>             ELSE
>                 IF RIGHT$(req,4) = ".ico" THEN
>                     PRINT "Content-Type: image/x-icon"
>                     PRINT "Cache-Control: public, max-age=31536000"
>                 ELSE
>                     PRINT "Content-Type: text/plain"
>                 ENDIF
>             ENDIF
>         ENDIF
>     ENDIF
> ENDIF
>
> PUT #1,lf
>
> (* send file contents *)
> REPEAT
>
>     rregs.A = fp
>     rregs.Y = 256
>     rregs.X = ADDR(buffer)
>     reqid = $89
>     RUN SYSCALL(reqid,rregs)
>
>     rregs.A = 1
>     rregs.X = ADDR(buffer)
>     reqid = $8A
>     RUN SYSCALL(reqid,rregs)
>
> UNTIL EOF(#fp)
>
> 50 ON ERROR GOTO 99
> CLOSE #fp
>
> target = DATE$ + " 200 OK " + req
> GOSUB 3000
>
> 99 END
>
>
> 100 ON ERROR GOTO 99
> errnum := ERR
>
> IF errnum = 214 THEN
>     (* directory check *)
>     ON ERROR GOTO 200
>     OPEN #fp,req:READ+DIR
>     ON ERROR GOTO 99
>
>     httperr = "200 OK"
>     GOSUB 2000
>     PRINT "Content-Type: text/html"
>     PUT #1,lf
>
>     PRINT "<HTML><HEAD><TITLE>"
>     PRINT "Directory of ";req
>     PRINT "</TITLE></HEAD><BODY>"
>
>     PRINT "<H3>Directory of ";req;"</H3>"
>     PRINT "<HR>"
>
>     REPEAT
>
>         get #fp,dent
>
>         IF dent(0) > 0 THEN
>
>             target = ""
>             inbyte = dent(0)
>             i = 0
>             WHILE inbyte < 128 AND i<29 DO
>
>                 target = target + chr$(inbyte)
>                 i = i + 1
>                 inbyte = dent(i)
>
>             ENDWHILE
>
>             target = target + chr$(inbyte - 128)
>
>             IF target <> "." THEN
>                 PRINT "<A HREF=";req;"/";target;">";target;"</A>"
>                 PRINT "<br>"
>             ENDIF
>
>         ENDIF
>
>     UNTIL EOF(#fp)
>     CLOSE #fp
>
>     GOSUB 2100
>     PRINT "</BODY></HTML>"
>
>     target = DATE$ + " 200 OK (dir) " + req
>     GOSUB 3000
>     END
> ELSE
>     IF errnum = 216 THEN
>         httperr = "404 Not Found"
>     ELSE
>         IF errnum = 215 THEN
>             httperr = "400 Bad Request"
>         ELSE
>             httperr = "500 Internal Server Error"
>         ENDIF
>     ENDIF
>
>     GOTO 1000
> ENDIF
>
>
>
> 200 ON ERROR GOTO 99
> httperr = "403 Forbidden"
> (* error result *)
> 1000 GOSUB 2000
> PRINT "Content-Type: text/html"
> PUT #1,lf
>
> PRINT "<HTML>"
> PRINT "<HEAD><TITLE>";httperr;"</TITLE></HEAD>"
> PRINT "<BODY><H2>";httperr;"</H2>"
> GOSUB 2100
> PRINT "</BODY></HTML>"
> target = DATE$ + " " + httperr + " " + req GOSUB 3000 END
>
>
> (* server headers *)
> 2000 PRINT "HTTP/1.1 ";httperr
> PRINT "Server: CoCoHTTPD"
> PRINT "Connection: close"
> RETURN
>
> (* footer *)
> 2100 PRINT "<br><HR><font face=Tahoma;Arial;Sans size=2><i>httpd09 
> version
> 1.1 -
>  ";DATE$;"</i></font>"
> RETURN
>
>
> (* logging - string to log in target *)
> 3000 ON ERROR GOTO 3010
> CREATE #fp,"/DD/LOG/httpd.log":WRITE
> ON ERROR GOTO 3030
> GOTO 3020
> 3010 ON ERROR GOTO 3040
> OPEN #fp,"/DD/LOG/httpd.log":WRITE
> ON ERROR GOTO 3030
> (* getstat ss.siz *)
> rregs.A = fp
> rregs.B = $02
> reqid = $8D
> RUN SYSCALL(reqid,rregs)
> (* seek to eof *)
> rregs.A = fp
> reqid = $88
> RUN SYSCALL(reqid,rregs)
> 3020 WRITE #fp,target
> 3030 ON ERROR GOTO 3040
> CLOSE #fp
> 3040 ON ERROR GOTO 99
> RETURN
>
> I hope this helps.
>
> William
>
>
>
> ----------------
>
>
>
>
> Message: 7
> Date: Wed, 11 Jan 2017 11:26:05 -0500
> From: Barry Nelson <barry.nelson at amobiledevice.com>
> To: coco at maltedmedia.com
> Cc: "Taylor, Phillip L Civ" <phillip.l.taylor at uscg.mil>
> Subject: [Coco] NitrOS9 BBS
> Message-ID: <B0F21E33-3738-47DC-BD99-B6D156E7CDE4 at amobiledevice.com>
> Content-Type: text/plain; charset="utf-8"
>
> > Taylor, Phillip L CIV Phillip.L.Taylor at uscg.mil Wed Jan 11 
> > 10:38:21 EST 2017
> >
> > What if you want to write a bbs system and make it listen to the 
> > incoming
> ports. How can this be done please?
>
> For a serial line run:
>
> tsmon /n &
>
> Or for telnet/internet access run:
>
> inetd &
>
> More information on inetd can be found here:
> https://urldefense.proofpoint.com/v2/url?u=https-3A__
> sourceforge.net_p_drive
> wireserver_wiki_Using-5FDriveWire_-23inetd&d=CwIGaQ&
> c=0NKfg44GVknAU-XkWXjNxQ
> &r=_wDO0Ub5GRKd_gN_Uz7gGyIfuv5XrYnarPGRxBtD3N0&m=
> FKtBGDTxQ780FnQjJxvNQuAFkOq
> yW8nQpeT6pO9rIVI&s=NimW7p3LfM6cs2pxmKF3i2Jldh9fQGRajikEKE0Ef7I&e=
> <https://urldefense.proofpoint.com/v2/url?u=https-> 
> 3A__sourceforge.net_p_driv 
> ewireserver_wiki_Using-5FDriveWire_-23inetd&d=CwIGaQ&
> c=0NKfg44GVknAU-XkWXjNx
> Q&r=_wDO0Ub5GRKd_gN_Uz7gGyIfuv5XrYnarPGRxBtD3N0&m=
> FKtBGDTxQ780FnQjJxvNQuAFkO
> qyW8nQpeT6pO9rIVI&s=NimW7p3LfM6cs2pxmKF3i2Jldh9fQGRajikEKE0Ef7I&e= >
>
> You can use an inetd.conf line like:
>
> 6809 telnet auth protect banner, login,
>
> Login will prompt for a user name configured in /etc/passwd
>
> -------------- next part -------------- A non-text attachment was 
> scrubbed...
> Name: smime.p7s
> Type: application/pkcs7-signature
> Size: 3599 bytes
> Desc: not available
> URL:
> <https://urldefense.proofpoint.com/v2/url?u=https-> 
> 3A__pairlist5.pair.net_pip
> ermail_coco_attachments_20170111_cf3de85b_attachment-
> 2D0001.bin&d=CwIGaQ&c=0
> NKfg44GVknAU-XkWXjNxQ&r=_wDO0Ub5GRKd_gN_Uz7gGyIfuv5XrYnarPGRxBtD3N0&m=
> FKtBGD
> TxQ780FnQjJxvNQuAFkOqyW8nQpeT6pO9rIVI&s=Nz0MznSVP5-
> qnMq16BvyWssu_1kjr9_lbH80
> za6sfDs&e= >
>
> ------------------------------
>
>
>
>
>
> --
> Coco mailing list
> Coco at maltedmedia.com
> https://urldefense.proofpoint.com/v2/url?u=https-3A__pairlist5.pair.ne
> t_mailman_listinfo_coco&d=CwIGaQ&c=0NKfg44GVknAU-XkWXjNxQ&r=_wDO0Ub5GR
> Kd_gN_Uz7gGyIfuv5XrYnarPGRxBtD3N0&m=tLa8Bvr-oNm2cvrlPHbrrdM1nSgUal-xhj
> qBoBXk2v4&s=kOEcEoeN5AgqBAGy41w78qqrl3KIEsncdTexVzT4gBI&e=
>
>


------------------------------

Message: 3
Date: Sun, 15 Jan 2017 20:45:41 +0000
From: Aaron Wolfe <aawolfe at gmail.com>
To: CoCoList for Color Computer Enthusiasts <coco at maltedmedia.com>
Subject: Re: [Coco] Checking for carrier
Message-ID:
	<CAA6uQZSmuh4D22-TO8p7AvJyNtgv_26bqmh=70TEL7a4YhBuMQ at mail.gmail.com>
Content-Type: text/plain; charset=UTF-8

This is true, afaik.  I always thought we could add that in the driver, but I think all but the most very basic syscalls just NOP in the current driver.  Some software doesn't care, but if it does then you're kind of stuck.



On Sun, Jan 15, 2017, 3:15 PM David Ladd <davidwladd at gmail.com> wrote:

> On Fri, Jan 13, 2017 at 10:33 AM, Taylor, Phillip L CIV < 
> Phillip.L.Taylor at uscg.mil> wrote:
>
> > Question how do you check for carrier if it's true or false?
> >
>
> ​Philip, if I remember right the OS-9/NitrOS-9 syscall for carrier 
> detect is not supported on DriveWire.  That is one of the reasons I 
> could never get RiBBS to work via the virtual serial ports on 
> DriveWire as it relies on the syscall status of carrier detect.​
>
> If I am wrong though I hope someone will chime in.
>
>
>
> >
> >
> >
> >
> > Message: 5
> > Date: Tue, 10 Jan 2017 18:41:55 -0500
> > From: William Carlin <whcarlinjr at gmail.com>
> > To: CoCoList for Color Computer Enthusiasts <coco at maltedmedia.com>
> > Subject: Re: [Coco] [Non-DoD Source] Coco Digest, Vol 172, Issue 22
> > Message-ID:
> >         <CABDDd1RFk-9Hg4tthhN1AcccFVVNK48wwvnoVGB58mHEHQju=
> > g at mail.gmail.com>
> > Content-Type: text/plain; charset=UTF-8
> >
> > Phillip,
> >
> > Here is an example from the drivewire extras disk:
> >
> > For this example, the inetd is going to be setup for a web server:
> >
> > [/DD/SYS/ientd.conf]
> > 80,runb,httpd
> >
> > DriveWIre will be instructed to listen for connections on port 80.  
> > When
> it
> > does, the coco runs the runb Basic09 runtime and runb loads and 
> > executes the Basic09 program httpd.  The inconing serial connection 
> > is passed to
> the
> > httpd as the standard input.
> >
> > [httpd.b09]
> > PROCEDURE httpd
> >
> > (* HTTPD09 - process one http request, should be spawned by inetd *)
> >
> >
> > !    This program is free software: you can redistribute it and/or modify
> > !    it under the terms of the GNU General Public License as published by
> > !    the Free Software Foundation, either version 3 of the License, or
> > !    (at your option) any later version.
> >
> > !    This program is distributed in the hope that it will be useful,
> > !    but WITHOUT ANY WARRANTY; without even the implied warranty of
> > !    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > !    GNU General Public License for more details.
> >
> >
> > ON ERROR GOTO 99
> > BASE 0
> >
> > DIM fp:BYTE
> > DIM errnum:BYTE
> > DIM req:STRING[255]
> > DIM target:STRING[255]
> > DIM lf:BYTE
> > DIM cr:BYTE
> > DIM inbyte:BYTE
> > DIM buffer(256):BYTE
> > TYPE RREGISTERS=CC,A,B:BYTE; DP:BYTE; X,Y,U:INTEGER DIM 
> > rregs:RREGISTERS DIM reqid:BYTE DIM i,p:INTEGER DIM 
> > httperr:STRING[40] DIM dent(32):BYTE
> >
> > lf=10
> > cr=13
> >
> > (* turn off echo on the input path *)
> > (* this will be done by inetd in the future *)
> >
> > (* get ss.opt *)
> > rregs.A = 0
> > rregs.B = 0
> > rregs.X = ADDR(buffer)
> > reqid = $8D
> > RUN SYSCALL(reqid,rregs)
> >
> > (* set PD.EKO to 0 *)
> > buffer(4) = 0
> >
> > (* set ss.opt *)
> > rregs.A = 0
> > rregs.B = 0
> > rregs.X = ADDR(buffer)
> > reqid = $8E
> > RUN SYSCALL(reqid,rregs)
> >
> > (* read headers from client *)
> > REPEAT
> >
> >     req = ""
> >
> >     REPEAT
> >         GET #0,inbyte
> >         req = req + chr$(inbyte)
> >     UNTIL inbyte = 13 or EOF(#0)
> >
> >     IF LEFT$(req,4) = "GET " THEN
> >         target = req
> >     ENDIF
> >
> > UNTIL PEEK(ADDR(req)) = 13 OR EOF(#0)
> >
> > (* just die if stdin is gone.. might help with hung runbs? *)
> > IF EOF(#0) THEN 99
> >
> > (* fixup paths *)
> > IF left$(target,6) = "GET / " THEN
> >     req = "/DD/WWWROOT/index.html"
> > ELSE
> >     req = mid$(target,5,len(target) - 14)
> > ENDIF
> >
> > IF right$(req,1) = "/" THEN
> >     req = left$(req,len(req)-1)
> > ENDIF
> >
> > (* "security" checks *)
> > target = ""
> > FOR i=1 TO SIZE(req)
> >  inbyte=ASC(MID$(req,i,1))
> >  IF $40<inbyte AND inbyte<$60 THEN
> >      inbyte = inbyte + $20
> >  ENDIF
> >  target=target + CHR$(inbyte)
> > NEXT i
> > IF (SUBSTR("..",req) > 0) OR (SUBSTR("/sys/",target) > 0) THEN
> >     httperr = "403 Forbidden"
> >     GOTO 1000
> > ENDIF
> >
> > (* /favicon.ico *)
> > IF (req = "/favicon.ico") THEN
> >     req = "/DD/WWWROOT/favicon.ico"
> > ENDIF
> >
> > ON ERROR GOTO 100
> > OPEN #fp,req:READ
> > ON ERROR GOTO 50
> > httperr = "200 OK"
> > GOSUB 2000
> >
> > IF RIGHT$(req,4) = ".htm" OR RIGHT$(req,5) = ".html" THEN
> >     PRINT "Content-Type: text/html"
> > ELSE
> >     IF RIGHT$(req,4) = ".jpg" THEN
> >         PRINT "Content-Type: image/jpeg"
> >     ELSE
> >         IF RIGHT$(req,4) = ".gif" THEN
> >             PRINT "Content-Type: image/gif"
> >         ELSE
> >             IF RIGHT$(req,4) = ".png" THEN
> >                 PRINT "Content-Type: image/png"
> >             ELSE
> >                 IF RIGHT$(req,4) = ".ico" THEN
> >                     PRINT "Content-Type: image/x-icon"
> >                     PRINT "Cache-Control: public, max-age=31536000"
> >                 ELSE
> >                     PRINT "Content-Type: text/plain"
> >                 ENDIF
> >             ENDIF
> >         ENDIF
> >     ENDIF
> > ENDIF
> >
> > PUT #1,lf
> >
> > (* send file contents *)
> > REPEAT
> >
> >     rregs.A = fp
> >     rregs.Y = 256
> >     rregs.X = ADDR(buffer)
> >     reqid = $89
> >     RUN SYSCALL(reqid,rregs)
> >
> >     rregs.A = 1
> >     rregs.X = ADDR(buffer)
> >     reqid = $8A
> >     RUN SYSCALL(reqid,rregs)
> >
> > UNTIL EOF(#fp)
> >
> > 50 ON ERROR GOTO 99
> > CLOSE #fp
> >
> > target = DATE$ + " 200 OK " + req
> > GOSUB 3000
> >
> > 99 END
> >
> >
> > 100 ON ERROR GOTO 99
> > errnum := ERR
> >
> > IF errnum = 214 THEN
> >     (* directory check *)
> >     ON ERROR GOTO 200
> >     OPEN #fp,req:READ+DIR
> >     ON ERROR GOTO 99
> >
> >     httperr = "200 OK"
> >     GOSUB 2000
> >     PRINT "Content-Type: text/html"
> >     PUT #1,lf
> >
> >     PRINT "<HTML><HEAD><TITLE>"
> >     PRINT "Directory of ";req
> >     PRINT "</TITLE></HEAD><BODY>"
> >
> >     PRINT "<H3>Directory of ";req;"</H3>"
> >     PRINT "<HR>"
> >
> >     REPEAT
> >
> >         get #fp,dent
> >
> >         IF dent(0) > 0 THEN
> >
> >             target = ""
> >             inbyte = dent(0)
> >             i = 0
> >             WHILE inbyte < 128 AND i<29 DO
> >
> >                 target = target + chr$(inbyte)
> >                 i = i + 1
> >                 inbyte = dent(i)
> >
> >             ENDWHILE
> >
> >             target = target + chr$(inbyte - 128)
> >
> >             IF target <> "." THEN
> >                 PRINT "<A HREF=";req;"/";target;">";target;"</A>"
> >                 PRINT "<br>"
> >             ENDIF
> >
> >         ENDIF
> >
> >     UNTIL EOF(#fp)
> >     CLOSE #fp
> >
> >     GOSUB 2100
> >     PRINT "</BODY></HTML>"
> >
> >     target = DATE$ + " 200 OK (dir) " + req
> >     GOSUB 3000
> >     END
> > ELSE
> >     IF errnum = 216 THEN
> >         httperr = "404 Not Found"
> >     ELSE
> >         IF errnum = 215 THEN
> >             httperr = "400 Bad Request"
> >         ELSE
> >             httperr = "500 Internal Server Error"
> >         ENDIF
> >     ENDIF
> >
> >     GOTO 1000
> > ENDIF
> >
> >
> >
> > 200 ON ERROR GOTO 99
> > httperr = "403 Forbidden"
> > (* error result *)
> > 1000 GOSUB 2000
> > PRINT "Content-Type: text/html"
> > PUT #1,lf
> >
> > PRINT "<HTML>"
> > PRINT "<HEAD><TITLE>";httperr;"</TITLE></HEAD>"
> > PRINT "<BODY><H2>";httperr;"</H2>"
> > GOSUB 2100
> > PRINT "</BODY></HTML>"
> > target = DATE$ + " " + httperr + " " + req
> > GOSUB 3000
> > END
> >
> >
> > (* server headers *)
> > 2000 PRINT "HTTP/1.1 ";httperr
> > PRINT "Server: CoCoHTTPD"
> > PRINT "Connection: close"
> > RETURN
> >
> > (* footer *)
> > 2100 PRINT "<br><HR><font face=Tahoma;Arial;Sans size=2><i>httpd09
> version
> > 1.1 -
> >  ";DATE$;"</i></font>"
> > RETURN
> >
> >
> > (* logging - string to log in target *)
> > 3000 ON ERROR GOTO 3010
> > CREATE #fp,"/DD/LOG/httpd.log":WRITE
> > ON ERROR GOTO 3030
> > GOTO 3020
> > 3010 ON ERROR GOTO 3040
> > OPEN #fp,"/DD/LOG/httpd.log":WRITE
> > ON ERROR GOTO 3030
> > (* getstat ss.siz *)
> > rregs.A = fp
> > rregs.B = $02
> > reqid = $8D
> > RUN SYSCALL(reqid,rregs)
> > (* seek to eof *)
> > rregs.A = fp
> > reqid = $88
> > RUN SYSCALL(reqid,rregs)
> > 3020 WRITE #fp,target
> > 3030 ON ERROR GOTO 3040
> > CLOSE #fp
> > 3040 ON ERROR GOTO 99
> > RETURN
> >
> > I hope this helps.
> >
> > William
> >
> >
> >
> > ----------------
> >
> >
> >
> >
> > Message: 7
> > Date: Wed, 11 Jan 2017 11:26:05 -0500
> > From: Barry Nelson <barry.nelson at amobiledevice.com>
> > To: coco at maltedmedia.com
> > Cc: "Taylor, Phillip L Civ" <phillip.l.taylor at uscg.mil>
> > Subject: [Coco] NitrOS9 BBS
> > Message-ID: <B0F21E33-3738-47DC-BD99-B6D156E7CDE4 at amobiledevice.com>
> > Content-Type: text/plain; charset="utf-8"
> >
> > > Taylor, Phillip L CIV Phillip.L.Taylor at uscg.mil
> > > Wed Jan 11 10:38:21 EST 2017
> > >
> > > What if you want to write a bbs system and make it listen to the
> incoming
> > ports. How can this be done please?
> >
> > For a serial line run:
> >
> > tsmon /n &
> >
> > Or for telnet/internet access run:
> >
> > inetd &
> >
> > More information on inetd can be found here:
> > https://urldefense.proofpoint.com/v2/url?u=https-3A__
> > sourceforge.net_p_drive
> > wireserver_wiki_Using-5FDriveWire_-23inetd&d=CwIGaQ&
> > c=0NKfg44GVknAU-XkWXjNxQ
> > &r=_wDO0Ub5GRKd_gN_Uz7gGyIfuv5XrYnarPGRxBtD3N0&m=
> > FKtBGDTxQ780FnQjJxvNQuAFkOq
> > yW8nQpeT6pO9rIVI&s=NimW7p3LfM6cs2pxmKF3i2Jldh9fQGRajikEKE0Ef7I&e=
> > <https://urldefense.proofpoint.com/v2/url?u=https-> > 3A__sourceforge.net_p_driv
> > ewireserver_wiki_Using-5FDriveWire_-23inetd&d=CwIGaQ&
> > c=0NKfg44GVknAU-XkWXjNx
> > Q&r=_wDO0Ub5GRKd_gN_Uz7gGyIfuv5XrYnarPGRxBtD3N0&m=
> > FKtBGDTxQ780FnQjJxvNQuAFkO
> > qyW8nQpeT6pO9rIVI&s=NimW7p3LfM6cs2pxmKF3i2Jldh9fQGRajikEKE0Ef7I&e= >
> >
> > You can use an inetd.conf line like:
> >
> > 6809 telnet auth protect banner, login,
> >
> > Login will prompt for a user name configured in /etc/passwd
> >
> > -------------- next part --------------
> > A non-text attachment was scrubbed...
> > Name: smime.p7s
> > Type: application/pkcs7-signature
> > Size: 3599 bytes
> > Desc: not available
> > URL:
> > <https://urldefense.proofpoint.com/v2/url?u=https-> > 3A__pairlist5.pair.net_pip
> > ermail_coco_attachments_20170111_cf3de85b_attachment-
> > 2D0001.bin&d=CwIGaQ&c=0
> > NKfg44GVknAU-XkWXjNxQ&r=_wDO0Ub5GRKd_gN_Uz7gGyIfuv5XrYnarPGRxBtD3N0&m=
> > FKtBGD
> > TxQ780FnQjJxvNQuAFkOqyW8nQpeT6pO9rIVI&s=Nz0MznSVP5-
> > qnMq16BvyWssu_1kjr9_lbH80
> > za6sfDs&e= >
> >
> > ------------------------------
> >
> >
> >
> >
> >
> > --
> > Coco mailing list
> > Coco at maltedmedia.com
> > https://urldefense.proofpoint.com/v2/url?u=https-3A__pairlist5.pair.net_mailman_listinfo_coco&d=CwIGaQ&c=0NKfg44GVknAU-XkWXjNxQ&r=_wDO0Ub5GRKd_gN_Uz7gGyIfuv5XrYnarPGRxBtD3N0&m=tLa8Bvr-oNm2cvrlPHbrrdM1nSgUal-xhjqBoBXk2v4&s=kOEcEoeN5AgqBAGy41w78qqrl3KIEsncdTexVzT4gBI&e= 
> >
> >
>
> --
> Coco mailing list
> Coco at maltedmedia.com
> https://urldefense.proofpoint.com/v2/url?u=https-3A__pairlist5.pair.net_mailman_listinfo_coco&d=CwIGaQ&c=0NKfg44GVknAU-XkWXjNxQ&r=_wDO0Ub5GRKd_gN_Uz7gGyIfuv5XrYnarPGRxBtD3N0&m=tLa8Bvr-oNm2cvrlPHbrrdM1nSgUal-xhjqBoBXk2v4&s=kOEcEoeN5AgqBAGy41w78qqrl3KIEsncdTexVzT4gBI&e= 
>


------------------------------


Message: 6
Date: Mon, 16 Jan 2017 00:20:04 -0500
From: "Kip Koon" <computerdoc at sc.rr.com>
To: "'CoCoList for Color Computer Enthusiasts'" <coco at maltedmedia.com>
Subject: Re: [Coco] Inetd error
Message-ID: <001801d26fb8$32144320$963cc960$@sc.rr.com>
Content-Type: text/plain;	charset="utf-8"

Hi Phillip,
First off, is "Run" how you are starting NitrOS-9?
Then once you are in NitrOS-9, you issue the "inetd &" command so you can telnet and run the web site?
If so, then please let me know the contents of the /dd/sys/inetd.conf file.  
The 010 Unknown error is due to the fact that the errmsg file is missing or is present, but does not have the error number definitions.  And yet other times, the errmsg file contains one line that is a symbolic link.  I get the symbolic link version of the errmsg file quite a bit.  010 is the error message "Unrecognized Symbol".  Get a copy of the correct errmsg file from another NitrOS-9 Boot disk and overwrite the one on the disk you are trying to get working so you will know what the error messages are.  By the way, 010 is actually 10 in the errmsg file.
There should also be a WWWROOT directory in /DD which should contain the index.html file.  I found the the WWWROOT directory missing on my Coco3FPGA SD setup.  I had to copy it from a Level1 Coco1 DW dsk file.  I also had to copy the password file from the SYS directory on the same L1 Coco1 DW dsk image file.  I wonder what else is not functional or missing altogether.  
I have had this running on my Coco3 a year or two ago.  I'll have to power it up and see if I can get it to run.  My Multipak Interface is non-functional now so I'm totally dependent on the CocoSDC now to run NitrOS-9 on my Coco3.  
I would like some other people to verify if they find a similar situation on their own systems.  I am going back to school this week and will be out of touch during the day.  I will do my best to check my email when I can.  I will have my laptop with the VCC emulator and the NitrOS-9 Repo with me so I will be able to do some checking on things as time permits.  I just won't have access to my Coco3FPGA during the week.  I will be back home Friday night.  I hope all this makes sense.  I am on Skype if you would like to chat sometime in the evenings during the week or after I get home on the weekends.  I hope this helps.  Please let me know if you need further help.  Take care my friend.  

Kip Koon
computerdoc at sc.rr.com
https://urldefense.proofpoint.com/v2/url?u=http-3A__www.cocopedia.com_wiki_index.php_Kip-5FKoon&d=CwIGaQ&c=0NKfg44GVknAU-XkWXjNxQ&r=_wDO0Ub5GRKd_gN_Uz7gGyIfuv5XrYnarPGRxBtD3N0&m=tLa8Bvr-oNm2cvrlPHbrrdM1nSgUal-xhjqBoBXk2v4&s=VhBEE7XfkHy1kduR_KBcMJvA56_nkheUhSU9G6Abcjc&e= 


> -----Original Message-----
> From: Coco [mailto:coco-bounces at maltedmedia.com] On Behalf Of Taylor, Phillip L CIV
> Sent: Friday, January 13, 2017 11:31 AM
> To: coco at maltedmedia.com
> Subject: [Coco] Inetd error
> 
> I am getting a error when I run inetd
> 
> 
> Run
> 
> inetd &
> 
> Reading data from netpathg
> failed 010 unknown on netpath



-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 5379 bytes
Desc: not available
URL: <https://pairlist5.pair.net/pipermail/coco/attachments/20170117/aad6b42b/attachment.bin>


More information about the Coco mailing list