DataMuseum.dk

Presents historical artifacts from the history of:

CR80 Hard and Floppy Disks

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CR80 Hard and Floppy Disks

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦3431b50d7⟧ TextFile

    Length: 15512 (0x3c98)
    Types: TextFile
    Names: »CONFIG.P«

Derivation

└─⟦b8af24a88⟧ Bits:30005796 CR80 Disc Pack ( MINICAMPS )
    └─ ⟦this⟧ »GENS.D!SYSGEN.D!MINI_CAMPS.D!CONFIG.P« 

TextFile

«ff»
***
*** CR80 PASCAL COMPILER (VERSION: 81/10/29)
*** COMPILATION STARTED 79/01/01 AT 00:07 
*** SOURCE FILE: @FILSYS-FILE*MINI_CAMPS*MD*GENS.D*SYSGEN.D*MINI_CAMPS.D*CONFIG.S
*** OBJECT FILE: @FILSYS-FILE*MINI_CAMPS*MD*GENS.D*SYSGEN.D*MINI_CAMPS.D*CONFIG.L
***



0001 %SUBMODULE
0002 %NOLIST
***   INCLUDE
***          FILE:  @FILSYS-FILE*MINI_CAMPS*MD*GENS.D*SYSGEN.D*MINI_CAMPS.D*HEAD
***          LEVEL:  0001
0534 
0535 "***********************************************************************
0536 *                                                                      *
0537 *                      T O S                                           *
0538 *          T E R M I N A L   O P E R A T I N G   S Y S T E M           *
0539 *                                                                      *
0540 *          CONF ITEM:      CSS/380                                     *
0541 *          AUTHOR:         JHO                                         *
0542 *          VERSION:        6                                           *
0543 *          DATE:           811120                                      *
0544 *                                                                      *
0545 ***********************************************************************"
0546 "RELEASE DATE    AUTHOR CHANGES
0547 -------- ------  ------ ------------------------------------------------
0548    4     810123   JHO   ERROR IN IN_NEWS FIXED  (CPECR 128)
0549                         COMMANDS CHANGED FROM 2 TO 10 SIGNIFICANT CHARS
0550                         (CPECR 136)
0551                         RESERVE_DISK, RELEASE_DISK ADDED (CPECR 226)
0552                         QUEUEING IF NO PCB'S
0553                         ERROR IN OPENING COMMAND -SYSDIR- CORRECTED (CPECR 238)
0554                         TEST COMMAND DELETED (CPECR 238)
0555                         DECIMAL PROGRAM VERSION NUMBER IN STATUS (CPECR 185)
0556                         TASKS FAILING TO RESPOND TO UTILITY SYSTEM
0557                         IS TERMINATED WITH CC=#8801
0558   5      810226   JHO   COMPILED WITH FASTCODE
0559 
0560   6      810428   JHO   SUPPORT OF LTUS
0561                         SUPPORT OF DUAL SYSTEM DISK
0562                         ERROR IN OPEN PHASE COMMAND PROCESSING (MISSING
0563                         ERROR REPORTING) CORRECTED
0564   604    811120   EKH   SUPPORT OF ALTERNATIVE FILE SYSTEMS
0565                         CONFIGURATION PARAMETERS ISOLATED TO A SEPARATE MODULE
0566                         TOS MODULES MOVED FROM SYSTEM DIRECTORY
0567                         AUTO-OPEN AND AUTO-CONFIG SUPPORTED
0568 "
0569 %FASTCODE
0570 
0571 %CHECK
0572 %NOUNIVCHECK
0573 %SUMMARY
0574 "PAGE"«ff»
***   ENDINCLUDE
***          LEVEL:  0001
0575 
***   INCLUDE
***          FILE:  @FILSYS-FILE*MINI_CAMPS*MD*GENS.D*SYSGEN.D*MINI_CAMPS.D*LIMITS
***          LEVEL:  0001
0576 
0577 CONST  PROCESS_LIMIT  = 30;
0578 CONST  PROGRAM_LIMIT  = 20;
0579 CONST  TERMINAL_LIMIT =  6;
0580 CONST  DEVICE_LIMIT   =  6;
0581 CONST  FILSYS_LIMIT   =  1;
0582 CONST  LOAD_Q_LIMIT   =  TERMINAL_LIMIT;
0583 
***   ENDINCLUDE
***          LEVEL:  0001
0584 
***   INCLUDE
***          FILE:  @FILSYS-FILE*MINI_CAMPS*MD*GENS.D*SYSGEN.D*MINI_CAMPS.D*TYPES
***          LEVEL:  0001
0585 TYPE TERMINAL_INDEX = 0..TERMINAL_LIMIT;
0586 TYPE PROCESS_INDEX  = 0..PROCESS_LIMIT;
0587 TYPE PROGRAM_INDEX  = 0..PROGRAM_LIMIT;
0588 TYPE FILSYS_INDEX   = 0..FILSYS_LIMIT;
0589 TYPE DEVICE_INDEX   = 0..DEVICE_LIMIT;
0590 TYPE LOAD_Q_INDEX   = 0..LOAD_Q_LIMIT;
0591 
0592 CONST  ECHO_MODE  =  0;
0593 CONST  VDU_MODE   =  1;
0594 CONST  WAIT_MODE  =  2;
0595 CONST  ITT_MODE   =  3;
0596 CONST  FF_MODE    =  4;
0597 
0598 CONST IBUFLGT = 80;
0599 
0600 TYPE OPEN_STATE =
0601        ( SYSTEM_CLOSED,   SYSDEV_ASSIGNED,  SYSVOL_MOUNTED, USERED_ON,
0602          WF_CREATED,      MD_FOUND,         SYSDIR_FOUND,   TOSDIR_FOUND,
0603          PASSES_FOUND,    ERRORTEXTS_FOUND, SYSTEM_OPEN);
0604 
0605 
0606 TYPE OS_MODE_TYPE = (SLAVE, MASTER, DUAL);
0607 
0608 TYPE IBUF_TYPE = ARRAY [1..IBUFLGT] OF INTEGER;
0609 
0610 TYPE NEWS_TYPE = RECORD
0611        BYTE_COUNT  : INTEGER;
0612        MSG         : IBUF_TYPE
0613    END;
0614 
0615 
0616 
0617 CONST  PRHL=   26;
0618 CONST  PGHL =  9;
0619 CONST  PROGRAMMEMORY = 10;
0620 CONST  UTILITYPROGRAM = #10;
0621 CONST  REENTRANT = 1;
0622 CONST  RELEASEMEMORY = 0;
0623 CONST  ALLOCATEMEMORY = 1;
0624 CONST  TRANSFERMEMORY =    4;
0625 CONST  MESSAGE_DELAY_PARENTSIGNAL = #302;
0626 CONST  PUBLIC_USER = #FFFC;
0627 CONST  UNSIGNED5 = #8520 ;
0628 CONST  SIGNED5=    #0520 ;
0629 
0630 CONST  RESERVE= 8;
0631 
0632 TYPE DUAL_DEVICE_DESC = RECORD
0633        DEVICE_KIND,
0634        DEVICE_ADDR_0,
0635        UNIT_0,
0636        SUBUNIT              : INTEGER;
0637        DEVICE               : DEVICE_NAME;
0638        DEVICE_ADDR_1,
0639        UNIT_1               : INTEGER
0640    END;
0641 
0642 TYPE UNPACKED_NAME = ARRAY [0..7] OF CHAR;
0643 
0644 TYPE TEXT = ARRAY [1..300] OF CHAR;
0645 
0646 TYPE PROCESS_STATE = (FREE, CREATED, STOPPED, RUNNING);
0647 
0648 TYPE TERMINAL_INIT_REC = RECORD
0649        OPER, ADDR, MODE, LINEWIDTH, TIMEOUT: INTEGER
0650    END;
0651 
0652 TYPE DEVICE_STATE = (DEASSIGNED, ASSIGNED, MOUNTED, RESERVED);
0653 
0654 
0655 
0656 TYPE TERMINAL_IO_MODE = (TIDLE, TIN, TOUT);
0657 
0658 TYPE HEADER_KIND = (ILLEGAL_KIND, PROGRAM_KIND, PROCESS_KIND);
0659 
0660 TYPE PROCESS_HEADER = RECORD
0661        KIND                 :  HEADER_KIND;
0662        SIZE                 :  INTEGER;
0663        PROC_NAME            :  PACKED_NAME3;
0664        CPU_NAME             :  PACKED_NAME3;
0665        PRIO, CAPAB, CLAIM, EXECSIZE:  INTEGER;
0666        IO_PARS              :  ARRAY [1..4] OF INTEGER;
0667        MSGS                 :  INTEGER;
0668        CURDIR               :  INTEGER;
0669        MEM_RANGE            :  INTEGER;
0670        DUMMY                :  ARRAY [0..4] OF INTEGER;
0671        LEVEL, BOUND         :  INTEGER
0672    END;
0673 
0674 TYPE PROGRAM_NAME = PROCESS_NAME;
0675 
0676 TYPE LOAD_RESULT = INTEGER;
0677 
0678 TYPE MEMORY_TYPE = (FORPROGRAM, FORDATA);
0679 
0680 TYPE PRINTERSTATETYPE = (PRINTERIDLE, PRINTERQUEUED, PRINTERACTIVE);
0681 
0682 TYPE PRINTFILEREC = RECORD
0683        PRINTERSTATE         :  PRINTERSTATETYPE;
0684        PRINTERNAME          :  PROCESS_NAME;
0685        RESERVED             :  BOOLEAN;
0686        SEMA                 :  FILE;
0687        RESERVER             :  INTEGER
0688    END;
0689 
0690 TYPE RQ_ANSWER = (RQ_OK, RQ_INV_REQUEST, RQ_INV_PROC, RQ_INV_PROC_STATE,
0691                RQ_INV_FSN, RQ_FAIL_TASK, RQ_LOAD_ERROR, RQ_Q_OFFER);
0692 
0693 TYPE SERVICE_REQUEST = (STARTTASK, STOPTASK, REMOVETASK, LOGOFF,
0694            LOADTASK_1, LOADTASK_2, INITTASK, RESERVEPRINT, RELEASEPRINT,
0695            STARTPRINT, QTASK);
0696 
0697 TYPE SERVICE_REQUEST_MESSAGE = RECORD
0698        CASE RQTYPE          :SERVICE_REQUEST OF
0699            STARTTASK, STOPTASK, REMOVETASK, LOADTASK_1, INITTASK:
0700                    (PNAME   :  PROCESS_NAME);
0701            LOADTASK_2:  (GNAME:  PACKED_NAME2);
0702            STARTPRINT, QTASK,
0703            LOGOFF, RESERVEPRINT, RELEASEPRINT: (DUMMY : INTEGER)
0704    END;
0705 
0706 TYPE USERENTRYTYPE = RECORD
0707        ID           :       INTEGER;
0708        PASSWORD     : PACKED_NAME
0709    END;
0710 
0711 TYPE FILE_ID = RECORD
0712        XCOMPLETE     : BOOLEAN;
0713        XFSN          : FILE_SYSTEM_NAME;
0714        XVOL          : VOLUME_NAME;
0715        XNAMELIST     : NAMELISTTYPE;
0716        XNAMENBR      : INTEGER
0717    END;
0718 
0719 TYPE STATUS_TYPE = (SCOMPLETE, SDEVICES, STERMINALS, SPROCESSES, SPROGRAMS);
0720 
0721 TYPE PASSES = (SERVICE_PASS, COMMAND_PASS, LOGIN_PASS, RUN_PASS, TERMINALON_PASS,
0722                STATUS_PASS, PRINT_PASS, LTUON_PASS);
0723 
0724 TYPE TERMINL = RECORD
0725        PROCESSREF           :  PROCESS_INDEX;
0726        OPERATION            :  OPERATION_REFERENCE;
0727        MODE                 :  TERMINAL_IO_MODE;
0728        FIL                  :  FILE;
0729        FILADR               :  FILE_ADDRESS;
0730        USED                 :  BOOLEAN;
0731        LTU                  :  BOOLEAN;
0732        NAME                 :  ARRAY [0..0] OF INTEGER;
0733        NEXT                 :  TERMINAL_INDEX;  "POINTER TO NEXT TERMINAL IF AN LTU"
0734        TUSERS               :  INTEGER;
0735        REC                  :  IBUF_TYPE;
0736        REF_RECDESCRIPT      :  BLEPTR
0737    END;
0738 
0739 TYPE PROC = RECORD
0740        NAME                 :  PROCESS_NAME;
0741        USRID                :  USERID;
0742        BASE                 :  INTEGER;
0743        EVT                  :  INTEGER;  "MESSAGE FROM PARENT TASK"
0744        PARENT               :  PROCESS_INDEX;
0745        PPROGRAM             :  PROGRAM_INDEX;
0746        PTERMINAL            :  TERMINAL_INDEX;
0747        STATE                :  PROCESS_STATE;
0748        MEM                  :  INTEGER
0749    END;
0750 
0751 TYPE PROGRAM_HEADER = RECORD
0752        KIND                 :  HEADER_KIND;
0753        SIZE                 :  INTEGER;
0754        NAME                 :  PROGRAM_NAME;
0755        PTYPE, START, MICRO  :  INTEGER
0756    END;
0757 
0758 TYPE PROGR = RECORD
0759        HEADER               :  PROGRAM_HEADER;
0760        PROG, MEM, USERS     :  INTEGER
0761    END;
0762 
0763 TYPE TDEVICE = RECORD
0764        FSYS                 :  FILSYS_INDEX;
0765        DEV                  :  DEVICE_DESCRIPTION;
0766        VOLUME               :  VOLUME_NAME;
0767        USER                 :  INTEGER;
0768        STATE                :  DEVICE_STATE;
0769        UPDATE_RESET         :  INTEGER;
0770        UPDATE_COUNT         :  INTEGER
0771    END;
0772 
0773 TYPE LOAD_Q_ELEM_TYPE = RECORD
0774        EVT                  :  INTEGER;           "SAVED EVENT ID"
0775        USED                 :  BOOLEAN;
0776        P                    :  PROCESS_INDEX;
0777        F                    :  FILE
0778    END;
0779 
0780 TYPE LOAD_Q_TYPE = RECORD
0781        MEMORY_RELEASED      :  BOOLEAN;
0782        Q_SIZE               :  LOAD_Q_INDEX;
0783        Q                    :  ARRAY [ TERMINAL_INDEX ] OF LOAD_Q_ELEM_TYPE
0784    END;
0785 
0786 TYPE TERMINALLIST=  ARRAY [TERMINAL_INDEX] OF TERMINL;
0787 TYPE PROCESSLIST=   ARRAY [PROCESS_INDEX]  OF PROC;
0788 TYPE PROGRAMLIST=   ARRAY [PROGRAM_INDEX]  OF PROGR;
0789 TYPE FILSYSLIST=    ARRAY [FILSYS_INDEX]   OF FILE_SYSTEM_NAME;
0790 TYPE DEVICELIST=    ARRAY [DEVICE_INDEX]   OF TDEVICE;
0791 
0792 TYPE TERMINALPTR= @TERMINALLIST;
0793 TYPE PROCESSPTR=  @PROCESSLIST;
0794 TYPE PROGRAMPTR=  @PROGRAMLIST;
0795 TYPE FILSYSPTR=   @FILSYSLIST;
0796 TYPE DEVICEPTR=   @DEVICELIST;
0797 TYPE LOAD_QPTR=   @LOAD_Q_TYPE;
0798 
0799 TYPE COMMON_DATA = RECORD
0800    TOS_VERSION:  INTEGER;
0801    OS_MODE:       OS_MODE_TYPE;
0802    LOCAL_PRINTER: BOOLEAN;
0803    OC_INIT_REC:   TERMINAL_INIT_REC;
0804    SYSTEM_DEV:    DEVICE_DESCRIPTION;
0805    SYSDUAL_DEV:   DEVICE_DESCRIPTION;
0806    SYSTEM_VOL:    VOLUME_NAME;
0807    SYSTEM_DIR:    FILE_NAME;
0808    FILESYSTEMS:   FILSYS_INDEX;
0809    AUTO_OPENS:    INTEGER;
0810    NEWS:          NEWS_TYPE;
0811 
0812    TERMINAL:     TERMINALPTR;
0813    PROCESS:      PROCESSPTR;
0814    PRQGRAM:      PROGRAMPTR;
0815    FILSYS:       FILSYSPTR;
0816    DEVICE:       DEVICEPTR;
0817    LOAD_Q:       LOAD_QPTR;
0818    MAXTERMINAL:  TERMINAL_INDEX;
0819    MAXPROCESS:   PROCESS_INDEX;
0820    MAXPROGRAM:   PROGRAM_INDEX;
0821    MAXFILSYS:    FILSYS_INDEX;
0822    MAXDEVICE:    DEVICE_INDEX;
0823    MAX_Q_SIZE:   LOAD_Q_INDEX;
0824    SYSDIR:         FILE;
0825    ERRORTEXTS:     FILE;
0826    WF:             FILE;
0827    WS:             STREAM;
0828    STATUS:         STATUS_TYPE;
0829    PASSFILE:       ARRAY[ PASSES ] OF FILE;
0830    PRINTFILE:      PRINTFILEREC;
0831    USRIDGENERATOR: INTEGER;
0832    MEMMGR:         PROCESS_NAME;
0833    TEMP_FILE_ATTR: FILE_ATTRIBUTES;
0834    EVTTYP:         EVENT_TYPE;
0835    EVENT:          INTEGER;
0836    MSGBUF:         MESSAGE_BUFFER;
0837    CURTERMINAL:    TERMINAL_INDEX;
0838    CLOSED:         BOOLEAN;
0839    OSUSR:          USERID
0840 END;
0841    "MAXTERMINAL, MAXPROCESS, MAXPROGRAM CORRESPOND TO OC"
0842    "FILSYS[0] CORRESPONDS TO SYSTEM FILE SYSTEM         "
0843 
0844 TYPE GLOBAL_REF =@COMMON_DATA;
0845 "PAGE"«ff»
***   ENDINCLUDE
***          LEVEL:  0001
0846 
0847 %IMPORT: PACKNAME
0848 PROCEDURE PACKNAME( T: TEXT;  VAR NM: PACKED_NAME;  BYTES: INTEGER);
0849    EXTERN;
0850 "
0851 VAR I: INTEGER;
0852 BEGIN
0853    FOR I:=0 TO 7 DO  NM[I] := 0;
0854    PACK( T[1], NM[0], BYTES);
0855 END;
0856 "
0857 
0858 %IMPORT:PACKIT
0859 PROCEDURE PACKIT( T: TEXT;  VAR STRING: UNIV ELEMENT;  BYTES: INTEGER);
0860     EXTERN;
0861 "
0862 BEGIN
0863    PACK( T[1], STRING, BYTES);
0864 END;
0865 "
0866 
0867 %IMPORT: GET_VERSION
0868 PROCEDURE GET_VERSION( VAR PROGRAM_VERSION: INTEGER);
0869     EXTERN;
0870 
0871 
0872 "PAGE"
0873 %EXPORT: CONFIG
0874 PROCEDURE CONFIG( VAR COMMON: COMMON_DATA);
0875 BEGIN
0876    WITH COMMON DO
0877       BEGIN
0878          MAXTERMINAL:= TERMINAL_LIMIT;  NEW(TERMINAL);
0879          MAXPROCESS := PROCESS_LIMIT;   NEW(PROCESS);
0880          MAXPROGRAM := PROGRAM_LIMIT;   NEW(PRQGRAM);
0881          MAXFILSYS  := FILSYS_LIMIT;    NEW(FILSYS);
0882          MAXDEVICE  := DEVICE_LIMIT;    NEW(DEVICE);
0883          MAX_Q_SIZE := TERMINAL_LIMIT;  NEW(LOAD_Q);
0884          GET_VERSION(TOS_VERSION);
***   INCLUDE
***          FILE:  @FILSYS-FILE*MINI_CAMPS*MD*GENS.D*SYSGEN.D*MINI_CAMPS.D*DEFAULTS
***          LEVEL:  0001
0885 
0886 PACKIT( 'TTY000', PROCESS@[MAXPROCESS].NAME.NAME[0], 6);
0887 
0888 WITH OC_INIT_REC DO
0889   BEGIN
0890     ADDR      :=  5;
0891     LINEWIDTH := 72;
0892     MODE      :=  0;
0893     SETBIT(MODE,ECHO_MODE);
0894     SETBIT(MODE,WAIT_MODE);
0895   END;
0896 
0897 
0898 OS_MODE := MASTER;
0899 
0900 WITH SYSTEM_DEV DO
0901    BEGIN
0902       DEVICE_KIND :=  42;
0903       DEVICE_ADDR := 200;
0904       UNIT        :=   0;
0905       SUBUNIT     :=   0;
0906       PACKIT( 'SMD0', DEVICE[0], 4);
0907    END;
0908 
0909 
0910 PACKIT( 'FILSYS', FILSYS@[0].PNAME.NAME[0], 6);      " SYSTEM FILE SYSTEM "
0911 PACKIT( 'FILE',   FILSYS@[0].GNAME[0],      4);
0912 
0913 PACKNAME( 'MINI_CAMPS', SYSTEM_VOL,           10);
0914 PACKNAME( 'MD',      SYSTEM_DIR,           2);
0915 
0916 
0917 FILESYSTEMS :=    0;  " NUMBER OF ALTERNATE FILE SYSTEMS "
0918 "PACKIT( 'ALTFMS', FILSYS@[1].PNAME.NAME[0], 6);  ALTERNATIVE FILE SYSTEM "
0919 "PACKIT( 'AFMS',   FILSYS@[1].GNAME[0],      4);                          "
0920 
0921 
0922 AUTO_OPENS := 2;
0923 
0924 WITH TERMINAL@[MAXTERMINAL] DO BEGIN
0925     FILADR.TRANSFERRED_BYTES := LONG(16);
0926     PACKIT( 'DO CONFIG_1     ', REC, 16);
0927 END;
***   ENDINCLUDE
***          LEVEL:  0001
0928          WITH NEWS DO
0929             BEGIN
0930                BYTE_COUNT := 16;
0931                PACKIT( '(:10:)Welcome to TOS(:10:)', MSG[1], BYTE_COUNT);
0932             END;
0933 
0934          LOCAL_PRINTER := TRUE;
0935       END;
0936 END;
0937 
0938 BEGIN END.

SUMMARY

COMPILER VERSION:     6
COMPILER RELEASE:     2
PROGRAM SIZE:       249
OVERLAYAREA:          0
LARGE CONSTANTS:     72

(FASTCODE,SUBMODULE,CHECK, NUMBER, NOUNIVCHECK, 
     NOCODESTATISTICS, NOLINESTATISTICS)
▶19◀