[Coco] Shell+ - SYS/shell.parameters

Bob Devries devries.bob at gmail.com
Tue Feb 3 22:55:43 EST 2015


Hi all,

A similar discussion came up here a short time ago with regards to the 
L3 disks which I put together. On that disk, there was a version of 
Cc3Go which was put together by Don Berrie and myself, which used a file 
/dd/sys/config.os9.

Here's the source:

          nam CC3go
          ttl modified to use /dd/SYS/config.sys for shell parameters
*                         use   /dd/defs/os9defs
*                         Mod 900526 to remove hard coded paths   DAB
          ifp1
          use /dd/defs/os9defs
          endc
vers     equ $02
          mod endmod,name,prgrm+objct,vers,start,endmem
buffer   rmb $0200
stack    rmb $0100
cfgdat   rmb $0050
cfglen   rmb 1
endmem   equ .

name     fcs "CC3go"
edit     fcb 6
          fcc "Copyright Bob Devries & Don Berrie"
banner   fcc "                   OS-9 LEVEL TWO VR. 02.00.01 COPYRIGHT 1986"
          fcb $0D
          fcb $0A
          fcc "                          MICROWARE SYSTEMS CORPORATION"
          fcb $0D
          fcb $0A
          fcc "                               ALL RIGHTS RESERVED"
          fcb $0D
          fcb $0A
          fcb $0A
banend   equ *
hddir    fcc "/H0"
          fcb $0D
hxdir    fcc "/H0/"
cmddir   fcc "Cmds"
          fcb $0D
          fcc ",,,,,"
shell    fcc "Shell"
          fcb $0D
          fcc ",,,,,"
autoex   fcc "AutoEx"
          fcb $0D
          fcc ",,,,,"
stadat   fcc "STARTUP -P"
          fcb $0D
          fcc ",,,,,"
shedat   fcc "i=/1"
          fcb $20
noparm   fcb $0D
          fcc ",,,,,"
pthend   equ *
config   fcc "/dd/sys/config.sys"
          fcb $0D,$0A
deftim   fcb $5A,$01,$01,$00,$00,$00
start    leax rti,pcr       * point x to interupt vector
          os9 f$icpt         * set interupt vector
          os9 f$id           * get proces ID
          ldb #$80
          os9 f$sprior       * set priority to 128
          leax banner,pcr    * point to copyright banner
          ldy #banend-banner * get message length
          lda #$01
          os9 i$write        * and write to stdout
          leax deftim,pcr    * get default date and time
          os9 f$stime        * and start the clock with it
          leax cmddir,pcr    * point x to CMDS dir name
          lda #EXEC.         * set execute mode
          os9 i$chgdir       * change directory to it (if possible)
          leax hddir,pcr     * point to hard drive root dir
          lda #UPDAT.        * use update mode
          os9 i$chgdir       * and attempt to chd to it
          bcs nohard
          leax hxdir,pcr     * point to hard drive CMDS dir
          lda #EXEC.         * use execute mode
          os9 i$chgdir       * and do a chx to it
nohard   pshs u,y           * save regs
          lda #READ.         * setup to read file
          leax config,pcr    * point x to file name
          os9 I$Open         * open file
          bcs nofile
          leax cfgdat,u      * point x to single line buffer
          ldy #$50           * number of characters to read
          os9 I$ReadLn       * read file
          bcs nofile
          sty cfglen,u       * store parameter length
          os9 I$Close        * and then close it
nofile   os9 f$id           * get process ID (again)
          bcs quit           * quit if error
          leax buffer,u      * point x to 512 byte buffer
          os9 f$gprdsc       * copy process descriptor into it
          bcs quit           * quit if error
          leay buffer,u      * point y to buffer
          ldx #$0000         * set for block #0
          ldb #$01           * only 1 block
          os9 f$mapblk       * map block into workspace
          bcs quit           * quit if error
          lda #$55           * set warm-start flag byte
          sta D.CBStrt,u     * store it at warm-start flag
          ldd D.SysPrc,u     * get system process descriptor address
          leau d,u
          leau P$DIO,u       * point to default IO area
          leay $20,y
          ldb #$0F           * move 15 bytes to local storage
loop     lda b,y
          sta b,u
          decb
          bpl loop
          leax shell,pcr     * point x to 'shell' name
          leau stadat,pcr    * point u to parameter data
          ldd #$0100         * a=typ/lan,b=size of data area
          ldy #$0010         * y=size of parameter area
          os9 f$fork         * fork the shell to run startup file
          bcs quit           * quit if error
          os9 f$wait         * wait for startup to finish
          leax autoex,pcr    * point to 'AutoEx' name
          leau noparm,pcr    * point to parameter area
          ldd #$0100         * a=typ/lan,b=size of data area
          ldy #$0001         * y=size of parameter area
          os9 f$fork         * fork 'AutoEx' if possible
          bcs nofork         * if AutoEx not found
          os9 f$wait         * wait for 'AutoEx' to finish
nofork   puls u,y           * restore regs
          leax cfgdat,u      * point x to shell parameter area
          leay buffer,u      * point y to buffer area
          ldb cfglen,u       * b=length of parameter area
loop2    lda ,x+            * move b bytes from x to y
          sta ,y+
          decb
          bne loop2
          leax shell,pcr     * point x to 'shell' name
          leau cfgdat,u      * point to parameter area
          ldb cfglen,u       * get param area in B
          clra               * clear msb
          tfr d,y            * y=size of parameter area
          ldd #$0100         * a=typ/lan,b=size of data area
          os9 f$chain        * chain 'shell' and never return
quit     clr $FFA8          * here on some errors set block #0 in task 1
          jmp D.Crash        * jump to CC warmstart routine
rti      rti                * interupt routine (does nothing)
          emod
endmod   equ *
          end


It could do with some tweaking, and modifying for /DD instead of /H0.

Regards, Bob Devries
Dalby, QLD, Australia

On 4/02/2015 1:29 PM, Bill Pierce via Coco wrote:
>
> Willard, I just checked, the cc3go mod on RTSI is a patch.
>
>
>
> Bill Pierce
> "Today is a good day... I woke up" - Ritchie Havens
>
>
> 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
> E-Mail: ooogalapasooo at aol.com
>
>
>
>
> -----Original Message-----
> From: Willard Goosey <goosey at virgo.sdc.org>
> To: Allen Huffman <alsplace at pobox.com>; Bill Pierce <ooogalapasooo at aol.com>; CoCoList for Color Computer Enthusiasts <coco at maltedmedia.com>
> Sent: Tue, Feb 3, 2015 10:14 pm
> Subject: Re: [Coco] Shell+ - SYS/shell.parameters
>
>
>
> This cc3go should be on rtsi. I don't remember if source was included.
>
>
> Layer I'll look through my disks and see if I can find the archive.
>
>
>
>
>
>
> Willard
>
> Sent from Samsung tablet
>
>
>
> -------- Original message --------
>  From Allen Huffman <alsplace at pobox.com>
> Date: 02/03/2015  7:43 PM  (GMT-07:00)
> To Bill Pierce <ooogalapasooo at aol.com>,CoCoList for Color Computer Enthusiasts <coco at maltedmedia.com>
> Subject Re: [Coco] Shell+ - SYS/shell.parameters
>
>
>> On Feb 3, 2015, at 8:23 PM, Bill Pierce via Coco <coco at maltedmedia.com> wrote:
>>
>> I think the only thing that changed from cc3go to sysgo is the "crash" routine addition where it goes to "crash" if something happens. Most of the rest looks about the same though arranged a little diffrent.
>> It might just work.
>
>
> Well, from inspecting the binary of my old cc3go, there is a 0D between the “i=/1” and “SYS/shell.parameters” and “/dd” etc. It was a separate entry, and I do not know how it was used by the binary. “i=/1” is already the command line parameter, I thought.
>
> Curtis, what do you recall? Was SYS/shell.parameters something you guys did? I have my original 1.15 disks, but not 1.16 to see what was on it.
> --
> Allen Huffman - PO Box 22031 - Clive IA 50325 - 515-999-0227 (vmail/TXT only)
> Sub-Etha Software - http://www.subethasoftware.com - Established 1990!
> Sent from my MacBook.
>
> P.S. Since 4/15/14, I have earned OVER $600  in Amazon gift cards via Swagbucks! Use my link and I get credit:
> http://swagbucks.com/refer/allenhuffman
>
>
>
>
>
>


More information about the Coco mailing list