|
|
DataMuseum.dkPresents historical artifacts from the history of: CR80 Hard and Floppy Disks |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CR80 Hard and Floppy Disks Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 15512 (0x3c98)
Types: TextFile
Names: »CONFIG.P«
└─⟦b8af24a88⟧ Bits:30005796 CR80 Disc Pack ( MINICAMPS )
└─⟦this⟧ »GENS.D!SYSGEN.D!MINI_CAMPS.D!CONFIG.P«
«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◀