head     1.1;
branch   ;
access   ;
symbols  V36_3:1.1;
locks    ; strict;
comment  @# @;


1.1
date     89.04.10.17.19.41;  author steveb;  state Exp;
branches ;
next     ;


desc
@@



1.1
log
@Initial revision
@
text
@/***********************************************************************
**             (C) Copyright 1980  TRIPOS Research Group              **
**            University of Cambridge Computer Laboratory             **
************************************************************************

            ########   ######   ##    ##  ######    #######
            ########  ########  ##    ##  #######   ########
               ##     ##    ##  ##    ##  ##    ##  ##    ##
               ##     ##    ##  ########  ##    ##  ########
               ##     ##    ##  ##    ##  ##    ##  #######
               ##     ##    ##  ##    ##  ##    ##  ##  ##
            ########  ########  ##    ##  #######   ##   ##
            ########   ######   ##    ##  ######    ##    ##

************************************************************************
**                                                                    **
***********************************************************************/


|| TRIPOS Input/Output header.


MANIFEST
$( || General actions.
   Act.Dummy      =1000
   Act.Read       =1001
   Act.Write      =1002
   Act.Seek       =1008

   Act.Findupdate =1004
   Act.Findinput  =1005
   Act.Findoutput =1006
   Act.End        =1007
   Act.Format     =1020

   // VDU handling
   Act.Vdu        = 992
   Act.SetVdu     = 993

   // Single character I/O through terminal handlers
   Act.sc.mode    = 994
   Act.sc.read    = 995
   Act.sc.write   = 996
   Act.sc.msg     = 997

   || Mag tape
   act.offline    =1007
   act.wreof      =1008
   act.spacefw    =1009
   act.spacerv    =1010
   act.wreig      =1011
   act.rewind     =1012


   || Device packet offset manifests.
   || Common:
   Pkt.Action     =Pkt.Type
   Pkt.Status     =Pkt.Res1
   Pkt.Status2    =Pkt.Res2
   || Timer:
   Pkt.Time1      =Pkt.Res1
   Pkt.Time2      =Pkt.Res2
   Pkt.Delay      =Pkt.Arg1
   || Disc & MT drivers:
   Pkt.BuffAddr   =Pkt.Arg1
   Pkt.WordCount  =Pkt.Arg2
   Pkt.Drive      =Pkt.Arg3
   Pkt.Unit       =Pkt.Drive
   Pkt.Cylinder   =Pkt.Arg4
   Pkt.Surface    =Pkt.Arg5
   Pkt.Sector     =Pkt.Arg6

   || Stream control block.
   Id.InScb       =['S'<<BitsPerByte]+'I'
   Id.OutScb      =['S'<<BitsPerByte]+'O'
   Scb.Link       =0
   Scb.Id         =1
   Scb.Type       =2
   Scb.Buf        =3
   Scb.Pos        =4
   Scb.End        =5
   Scb.Funcs      =6
   Scb.Func1      =6
   Scb.Rdch       = Scb.Func1
   Scb.Func2      =7
   Scb.Wrch       = Scb.Func2
   Scb.Func3      =8
   Scb.Args       =9
   Scb.Arg1       =9
   Scb.Arg2       =10
   Scb.NFunc      =Scb.Args-Scb.Funcs
   Scb.Upb        =10
   Scb.WordSize   = 49      // SCB buffer size in lwords
   Scb.ByteSize   = 200     // SCB buffer byte upb

   // Device List

   dev.next       = 0
   dev.type       = 1
   dev.task       = 2
   dev.lock       = 3
   // Volume info
   dev.vol.dat    = 4   // Three words
   dev.locklist   = 7
   dev.disktype   = 8
   // Handler info
   dev.handler    = 4
   dev.stacksize  = 5
   dev.priority   = 6
   dev.startup    = 7
   dev.seglist    = 8
   dev.globvec    = 9
   dev.name       = 10

   // Device types

   dt.device      = 0    // A device
   dt.dir         = 1    // A shared directory
   dt.volume      = 2    // A volume specifier

   // File System startup data structure

   fs.unit        = 0    // Unit number
   fs.device      = 1    // Device name
   fs.envec       = 2    // Environment vector
   fs.flags       = 3    // Flags to device
   fs.upb         = 3

   // Segment list data structure

   segment.next	  = 0	 // Link to next entry
   segment.uc     = 1    // Use count, or -1 = unloadable
   segment.seg    = 2    // The segment itself
   segment.name   = 3    // Name of segment
$)
@
