File MSTPAR.PA (PAL assembler source file)

Directory of image this file is from
This file as a plain text file

/PARAMETERS FOR    M A S T    (V2B-A)		3/24/77
		XLIST 1
	IFNDEF	LSTFLG	<LSTFLG=1>
		XLIST LSTFLG

/RTS/8 V2B EXEC PARAMETERS - EDITED BY USER

PDP8E=	1	/1 IF PDP 8/E, ELSE 0
PDP12=	0	/1 IF PDP-12, ELSE 0
EAE=	1	/1 IF SYSTEM SHOULD SAVE MQ, ELSE 0
PWRFAL=	1	/1 IF POWER FAIL/RESTART ENABLED IN THE
		/HARDWARE, ELSE 0
KL8A=	0	/1 IF KL8A SUPPORT ROUTINES SHOULD BE
		/LOADED, ELSE 0.
HGHFLD=	50	/HIGHEST FIELD USED BY RTS-8 (EG 30 FOR A
		/16K MACHINE)
NTASKS=	137	/NUMBER OF TASKS IN THE SYSTEM
CHECKP= 0	/1 IF ANY NON-RESIDENT TASK IS CHECK-
		/POINTABLE, ELSE 0
PARTNS= 0 	/NUMBER OF MEMORY PARTITIONS DEFINED (THE N
		/PARTITIONS ARE NUMBERED FROM 0 TO N-1)

/COMMON TASK NAMES AND NUMBERS

/IT IS ADVISABLE TO DEFINE ALL TASKS IN THIS FILE.  NAMES
/GIVEN BELOW ARE USED BY SOME SYSTEM TASKS AND MAY BE
/DELETED FROM THE LIST ON THE FOLLOWING PAGES, IF THE
/CORRESPONDING TASK IS NOT TO BE INCLUDED IN THE SYSTEM.

/RTS/8 TASKS SUPPLIED BY DEC IN VERSION 2B

/CLOCK		CLOCK HANDLER - SHOULD BE HIGH PRIORITY
/PWRF		POWER FAIL HANDLING TASK
/TTY		TELETYPE DRIVER TASK
/LPT		LINE PRINTER DRIVER TASK
/MCR		MONITOR CONSOLE ROUTINE
/DTA		DECTAPE DRIVER TASK
/LTA		LINCTAPE DRIVER TASK
/RK8E		RK8E DISK DRIVER TASK
/RK08		RK08 DISK DRIVER TASK
/RF08		RF08 DISK DRIVER TASK
/DF32		DF32 DISK DRIVER TASK
/CSA		CASSETTE DRIVER TASK
/CSAF		CASSETTE FILE SUPPORT TASK
/UDC		UNIVERSAL DIGITAL CONTROLLER TASK
/ICS		INDUSTRIAL CONTROLLER TASK
/RX8A,B,C,D	FLOPPY DISK CONTROLLER (0 TO 3)
/OS8		OS/8 SUPPORT - NORMALLY LOWEST PRIORITY
/OS8F		OS/8 FILE SUPPORT
/SWAPPER	NONRESIDENT TASK SWAPPER TASK
/EXIT		EXIT RTS/8 TO OS/8 TASK
/DDCMP		DDCMP TASK FOR DECNET
/NSP		NETWORK SERVICE PROTOCOL TASK
/NIP		NETWORK INFORMATION TASK
/TLK		NETWORK TERMINAL TRANSMITTER TASK
/LSN		NETWORK TERMINAL LISTENER TASK

/ / / TASK NAMES IN ORDER OF PRIORITY / / /TASK TASK TASK FUNCTION /NAME NUMBER / / CLOCK= 1 /REAL TIME CLOCK HANDLER PWRF= 2 /POWERFAIL-AUTO RESTART / 3 / / 4 / / 5 / / 6 / / 7 / ODT= 10 / SMGATE= 11 /SAMPLE TRAY GATE HANDLER RAGATE= 12 /REJECT A TRAY GATE HANDLER RBGATE= 13 /REJECT B TRAY GATE HANDLER PAGATE= 14 /PRODUCT A TRAY GATE HANDLER PBGATE= 15 /PRODUCT B TRAY GATE HANDLER PCGATE= 16 /PRODUCT C TRAY GATE HANDLER / 17 / / 20 / / 21 / / 22 / / 23 / / 24 / / 25 / / 26 / / 27 / / 30 / CH1DEF= 31 /CHANNEL 1 DEFECT ROUTINE CH1RES= 32 /CHANNEL 1 RESOLUTION ROUTINE CH2DEF= 33 /CHANNEL 2 DEFECT ROUTINE CH2RES= 34 /CHANNEL 2 RESOLUTION ROUTINE CH3DEF= 35 /CHANNEL 3 DEFECT ROUTINE CH3RES= 36 /CHANNEL 3 RESOLUTION ROUTINE / 37 / / 40 /
/ / / TASK NAMES IN ORDER OF PRIORITY - CONTINUED / / /TASK TASK TASK FUNCTION /NAME NUMBER / / / 41 / / 42 / / 43 / / 44 / / 45 / / 46 / / 47 / / 50 / / 51 / / 52 / / 53 / / 54 / / 55 / / 56 / / 57 / / 60 / MCR= 61 /MONITOR CONSOLE ROUTINE TTY= 62 /CONSOLE TERMINAL HANDLER / 63 / / 64 / / 65 / / 66 / / 67 / / 70 / LPT= 71 /LINE PRINTER HANDLER SNAP= 72 /TASK CALLABLE CORE DUMP DUMP= 73 /USER CALLABLE CORE DUMP / 74 / / 75 / / 76 / / 77 / / 100 / NULL= NTASKS+1 /NULL TASK AND MQ DISPLAY MSTVERSION= "1&77^100+"A-300 /SOFTWARE VERSION LEVEL EPLTEST=1 /GENERATES EPL TEST CODE IF DEFINED.
/ / / RTS-8 SYSTEM TASK ASSEMBLY PARAMETERS. / / THE FOLLOWING PARAMETERS CONTROL THE MEMORY FIELD / AND CORE ORIGIN OF THE RTS-8 SYSTEM TASKS. AN / ORIGIN FOR PAGE ZERO VARIABLES AND PARAMETERS FOR / NON-RESIDENT TASKS ARE ALSO INCLUDED WHEN NEEDED. / / ORIGINS FOR "RTS8", "SWAPPER", AND "CLOCK" REMAIN / IN THEIR TASK CODE (THEY ALL LOAD IN FIELD 0). / / / THE DEFINITION FORMAT IS: (.... IS THE TASK NAME) / / ....FLD MEMORY FIELD FOR THE TASK. / ....LOC CORE ORIGIN FOR THE TASK. / ....PGZ ORIGIN FOR PAGE ZERO VARIABLES. / ....PRT PARTITION NUMBER FOR THE TASK. / / / IFDEF CLOCK < CLKTYP= 0 /0(DK8EA/DK8EC) OR 1(KW12) OR 2(PDP8/A) OR /3(DK8EP) CLKQLN= 17 /MINIMUM NUMBER OF ENTRY SLOTS IN THE CLOCK /QUEUE. MAY BE CHANGED BY USER. DECIMAL HERTZ= 120 /NUMBER OF HARDWARE TICKS PER SECOND SHERTZ= HERTZ /NUMBER OF SYSTEM TICKS PER SECOND IFNZRO CLKTYP&1 <HERTZ=1750> /FORCE DK8EP,KW12 TO 1 KHZ OCTAL > IFDEF PWRF < /POWERFAIL - AUTO RESTART PWRFFLD= 00 PWRFLOC= 3400 PWRCLR= EFWT!EORMWT!RUNWT /WHICH BITS TO CLEAR ON RESTART > IFDEF TTY < /CONSOLE TERMINAL HANDLER TTYFLD= 00 TTYLOC= 4000 TTDEV= 04 /PRINTER DEVICE CODE - DEFAULT IS 04. KBDEV= 03 /KEYBOARD DEVICE CODE - DEFAULT IS TTDEV-1. > IFDEF NULL < /NULL TASK NULLFLD= 00 NULLLOC= 3520 >
/ IFDEF MCR < /MONITOR CONTROL ROUTINE MCRFLD= 00 MCRLOC= 4600 MCRPGZ= 150 /17 LONG MCRCLK= 1 /1 FOR MCR CLOCK RELATED FEATURES MCRSYS= 1 /1 IF MCR SYSTAT FACILITY IS DESIRED MCR6CN= 1 /1 FOR MCR TO USE 6 CHARACTER TASK NAMES MCRDMP= 1 /1 IF MCR DUMP OPTION IS DESIRED MCRCDV= TTY /CONSOLE TO BE USED BY MCR, TTY IS DEFAULT /MCRPRT= /PARTITION NUMBER IF NON-RESIDENT > IFDEF ODT < /ODT DEBUGGING TASK ODTFLD= 40 ODTLOC= 1000 > IFDEF SNAP < /POSTMORTEM DUMP SNAPFLD= 50 SNAPLOC= 200 > IFDEF LPT < /LINE PRINTER HANDLER LPTFLD= 50 LPTLOC= 1000 >
/ / / USER TASK ORIGINS - EDITED BY THE USER / / THE FOLLOWING PARAMETERS SPECIFY THE MEMORY FIELD / AND THE CORE ORIGIN FOR THE USER TASKS. AN ORIGIN / FOR PAGE ZERO STORAGE IS ALSO INCLUDED WHEN NEEDED. / / DEF1FLD= 10 /CHANNEL 1 DEFECT ROUTINE DEF1LOC= 3000 SGATEFLD= 10 /SAMPLE TRAY GATE HANDLER SGATELOC= 4000 RGATEFLD= 10 /REJECT TRAY GATE HANDLERS RGATELOC= 4600 PGATEFLD= 10 /PRODUCT TRAY GATE HANDLERS PGATELOC= 5000
/ / / USER TASK COMMON DEFINITIONS / / / FIELD 1 COMMON DEFINITIONS / / FIELD 1 *40 GATEDY, 0 /STACKER GATE TURN ON DELAY MEMPTR, 20 /CURRENT DEFECT MEMORY POINTER MEMTBL= 2200
/ / /%RX DR8-EA DIGITAL I/O REGISTER COMMANDS / / DBDI50= 6500 /DISABLE INTERRUPT ON INPUT DBEI50= 6501 /ENABLE INTERRUPT ON INPUT DBSK50= 6502 /SKIP ON INPUT FLAG DBCI50= 6503 /CLEAR SELECTED BITS IN THE INPUT REGISTER DBRI50= 6504 /CLEAR AC TRANSFER INPUT REGISTER TO THE AC DBCO50= 6505 /CLEAR SELECTED BITS IN THE OUTPUT REGISTER DBSO50= 6506 /SET SELECTED BITS IN THE OUTPUT REGISTER DBRO50= 6507 /CLEAR AC, TRANSFER OUTPUT REGISTER TO THE AC DBDI51= 6510 /DISABLE INTERRUPT ON INPUT DBEI51= 6511 /ENABLE INTERRUPT ON INPUT DBSK51= 6512 /SKIP ON INPUT FLAG DBCI51= 6513 /CLEAR SELECTED BITS IN THE INPUT REGISTER DBRI51= 6514 /CLEAR AC TRANSFER INPUT REGISTER TO THE AC DBCO51= 6515 /CLEAR SELECTED BITS IN THE OUTPUT REGISTER DBSO51= 6516 /SET SELECTED BITS IN THE OUTPUT REGISTER DBRO51= 6517 /CLEAR AC, TRANSFER OUTPUT REGISTER TO THE AC DBDI52= 6520 /DISABLE INTERRUPT ON INPUT DBEI52= 6521 /ENABLE INTERRUPT ON INPUT DBSK52= 6522 /SKIP ON INPUT FLAG DBCI52= 6523 /CLEAR SELECTED BITS IN THE INPUT REGISTER DBRI52= 6524 /CLEAR AC TRANSFER INPUT REGISTER TO THE AC DBCO52= 6525 /CLEAR SELECTED BITS IN THE OUTPUT REGISTER DBSO52= 6526 /SET SELECTED BITS IN THE OUTPUT REGISTER DBRO52= 6527 /CLEAR AC, TRANSFER OUTPUT REGISTER TO THE AC DBDI54= 6540 /DISABLE INTERRUPT ON INPUT DBEI54= 6541 /ENABLE INTERRUPT ON INPUT DBSK54= 6542 /SKIP ON INPUT FLAG DBCI54= 6543 /CLEAR SELECTED BITS IN THE INPUT REGISTER DBRI54= 6544 /CLEAR AC TRANSFER INPUT REGISTER TO THE AC DBCO54= 6545 /CLEAR SELECTED BITS IN THE OUTPUT REGISTER DBSO54= 6546 /SET SELECTED BITS IN THE OUTPUT REGISTER DBRO54= 6547 /CLEAR AC, TRANSFER OUTPUT REGISTER TO THE AC DBDI55= 6550 /DISABLE INTERRUPT ON INPUT DBEI55= 6551 /ENABLE INTERRUPT ON INPUT DBSK55= 6552 /SKIP ON INPUT FLAG DBCI55= 6553 /CLEAR SELECTED BITS IN THE INPUT REGISTER DBRI55= 6554 /CLEAR AC TRANSFER INPUT REGISTER TO THE AC DBCO55= 6555 /CLEAR SELECTED BITS IN THE OUTPUT REGISTER DBSO55= 6556 /SET SELECTED BITS IN THE OUTPUT REGISTER DBRO55= 6557 /CLEAR AC, TRANSFER OUTPUT REGISTER TO THE AC
/ DBDI56= 6560 /DISABLE INTERRUPT ON INPUT DBEI56= 6561 /ENABLE INTERRUPT ON INPUT DBSK56= 6562 /SKIP ON INPUT FLAG DBCI56= 6563 /CLEAR SELECTED BITS IN THE INPUT REGISTER DBRI56= 6564 /CLEAR AC TRANSFER INPUT REGISTER TO THE AC DBCO56= 6565 /CLEAR SELECTED BITS IN THE OUTPUT REGISTER DBSO56= 6566 /SET SELECTED BITS IN THE OUTPUT REGISTER DBRO56= 6567 /CLEAR AC, TRANSFER OUTPUT REGISTER TO THE AC
/ SOME USEFUL EQUATES FOR TTY AND LPT MESSAGES: NOPACK= 4000 /TEXT IS NOT PACKED IN 6-BIT NOCRLF= 2000 /OUTPUT SHOULD NOT BE FOLLOWED BY CR/LF IND= 1000 /OUTTXT PTS TO FIRST WORD OF TEXT NOLINE= 400 /INPUT IS IN CHARACTER MODE ASSGN= 200 /ASSIGNS DEVICE KL8ALINE=100 /USED TO SPECIFY A LINE OF A KL8A / SOME USEFUL EQUATES FOR STANDARD CLOCK MESSAGES: MARKTIME= 0 /POST EVENT FLAG AFTER SPECIFIED / INTERVAL SCHEDULE= 1000 /RUN TASK AFTER SPECIFIED INTERVAL TIMOUT= 2000 /DERAIL TASK AFTER SPECIFIED / INTERVAL PERIODICALLY= 2000 /USED AS MODIFIER TO 'SCHEDULE' /RE-QUEUES RUN REQUEST AFTER / SPECIFIED INTERVAL. /E.G. 'SCHEDULE FOO PERIODICALLY' CANCEL= 7000 /DELETE ALL REQUESTS FROM SPECIFIED / TASK FROM QUEUE /MORE USEFUL EQUIVALENCES: AC7777= CLL CLA CMA AC7776= CLL STA RAL AC7775= CLL STA RTL AC4000= CLA STL RAR AC2000= CLA STL RTR AC3777= CLL STA RAR AC5777= CLL STA RTR AC0002= CLA STL RTL CDI= CDF CIF ACL= 7701 CAM= 7621 CLB= CLL CLA
/MONITOR CALL VALUES: CAL= JMS 20 /CALL THE EXECUTIVE POSTDS= JMP I 24 /DISMISS AN INTERRUPT WAITM= JMS I 25 /WAIT FOR MULTIPLE EVENTS CALODT= JMS 33 /PUT THE TASK IN DEBUG WAIT AND /RUN THE ODT DEBUGGING TASK /NOTE: "**" MEANS CRITICAL VALUE MAY NOT /BE CHANGED WITHOUT MODIFYING SYSTEM CODE!! SEND= 0 /SEND MESSAGE RECEIV= 1 /RECEIVE MESSAGE WAITE= 2 /WAIT FOR EVENT FLAG RUN= 3 /CONTINUE TASK EXECUTION SUSPND= 4 /SUSPEND TASK EXECUTION POST= 5 /POST AN EVENT FLAG SKPINS= 6 /INSERT CODE INTO INTERRUPT SKIP CHAIN DERAIL= 7 /INITIATE END-ACTION BLKARG= 10 /BLOCK TASK FOR REASON SPECIFIED IN ARG SENDW= 11 /SEND MESSAGE AND WAIT UNBARG= 12 /UNBLOCK TASK FOR REASON SPECIFIED IN ARG RESCHD= 13 /FORCE A TASK RESCHEDULE NOW WAITX= 14 /WAIT FOR EXACTLY THIS EVENT FLAG DEBUG= 15 /DEBUGGER WAIT SKPOUT= 16 /REMOVE SKIP FROM INTERRUPT SKIP CHAIN FREE= 4000 /**FREE PARTITION /TASK STATUS FLAGS: NONRWT= 4000 /**NONRESIDENT TASK WAIT EFWT= 2000 /EVENT FLAG WAIT RUNWT= 1000 /SCHEDULE WAIT SWPWT= 0400 /**SWAPPER WAIT EORMWT= 0200 /EVENT FLAG OR MESSAGE WAIT USERWT= 0100 /USER SPECIFIED WAIT ENABWT= 0040 /ENABLE WAIT MSGWT= 0020 /MESSAGE WAIT NETWT= 0010 /NETWORK WAIT (RESERVED FOR FUTURE USE) DEBWT= 0004 /DEBUG WAIT DNEWT= 0001 /**DOES NOT EXIST WAIT
/SYSTEM LOCATIONS: MSGTBL= 1400-2 /TASK MESSAGE TABLE TSTABL= NTASKS+2^2+MSGTBL-4 /TASK STATE TABLE - HOLDS /TASK LINK,UM,DF,IF,PC,AC,MQ TFTABL= NTASKS+2^4+TSTABL-1 /TASK FLAGS TABLE - HOLDS /TASK STATUS FLAGS IFDEF SWAPPER < RESTBL= TFTABL+NTASKS+2 /RESIDENCY TABLE. PARTBL= NTASKS-SWAPPER^2+RESTBL+3&7774 /PARTITION TABLE. > TSWFLG= 45 /TASK SW INHIBIT FLAG IN FIELD 0 TODL= 46 /LOW ORDER TIME OF DAY IN FIELD 0 TODH= 47 /HIGH ORDER TIME OF DAY IN FIELD 0 DATE= 50 /DATE IN OS8 FORMAT IN FIELD 0 COMMAND=53 /SWAPPER COMMAND BUFFER IN FIELD 0 / FLAGS USED TO CONNECT SYSTEM TASKS MCREF= 70 /MCR START EVENT FLAG IN FIELD 0 OS8HPR= 71 /TABLE OF DEVICES FOR IN FIELD 0 /OS/8 SUPPLIED BY RTS-8. OWNTTY= 72 /CONSOLE OWNERSHIP FLAG IN FIELD 0 FIMQDY= 73 /CDF FOR MQ DISPLAY IN FIELD 0 IFDEF CUR <IFNZRO HGHFLD-CUR&4000 <CURBIG,_ERROR->> /WARNING IF UNDEFINED FIELD IS SEEN !! IFNDEF INIWT <INIWT=0> IFNDEF INIWT2 <INIWT2=0> IFNDEF INIWT3 <INIWT3=0> IFNDEF INIWT4 <INIWT4=0> IFNDEF VERS <VERS=0> IFNDEF VERS2 <VERS2=0> IFNDEF VERS3 <VERS3=0> IFNDEF VERS4 <VERS4=0>
/ FIELD 0 /MUST LOAD IN FIELD 0 !!! XLIST 0 /FORCE LISTING ON /TASK TABLE SETUP - "TASK", "CUR","INIWT", AND "START" /MUST BE DEFINED BY TASK: XLIST 1 /FORCE LISTING OFF IFDEF TASK < XLIST *TASK^2+MSGTBL ZBLOCK 2 /MESSAGE BUFFER INITIALLY CLEAR *TASK^4+TSTABL CUR%10+CUR /INITIAL FLAGS START 0 /INITIAL AC 0 VERS /INITIAL MQ *TASK+TFTABL INIWT XLIST > IFDEF TASK2 < XLIST *TASK2^2+MSGTBL ZBLOCK 2 /MESSAGE BUFFER INITIALLY CLEAR *TASK2^4+TSTABL CUR2%10+CUR2 /INITIAL FLAGS2 START2 0 /INITIAL AC 0 VERS2 /INITIAL MQ *TASK2+TFTABL INIWT2 XLIST > IFDEF TASK3 < XLIST *TASK3^2+MSGTBL ZBLOCK 2 /MESSAGE BUFFER INITIALLY CLEAR *TASK3^4+TSTABL CUR3%10+CUR3 /INITIAL FLAGS3 START3 0 /INITIAL AC 0 VERS3 /INITIAL MQ *TASK3+TFTABL INIWT3 XLIST > IFDEF TASK4 < XLIST *TASK4^2+MSGTBL ZBLOCK 2 /MESSAGE BUFFER INITIALLY CLEAR *TASK4^4+TSTABL CUR4%10+CUR4 /INITIAL FLAGS4 START4 0 /INITIAL AC 0 VERS4 /INITIAL MQ *TASK4+TFTABL INIWT4 XLIST > IFDEF TASK < IFDEF PARTNO < XLIST /RESIDENCY TABLE (RESTBL) ENTRY: /INITIALIZED FOR NONRESIDENT TASKS ONLY *TASK-SWAPPER-1^2+RESTBL PARTNO^4+PARTBL+CPABLE+CPABLE+WRITE XLIST IFNDEF SWAPPER <NOSWAP,_ERROR_> /SWAPPER MISSING IFNZRO TASK-SWAPPER&4000 <SWPRIO,_ERROR_> / NON-RESIDENT TASK HAS PRIORITY HIGHER THAN SWAPPER >> IFDEF PARTNO < IFNDEF TASK <NOTASK,_ERROR_> /PARTITION BUT NO TASK IFNDEF SWAPPER <NOSWAP,_ERROR_> /PARTITION BUT NO SWAPPER IFNDEF PARTNS <NOPART,_ERROR_> /MISSING PARTITIONS IFZERO PARTNO-PARTNS&4000 <PRTERR,_ERROR_> /PARTNO.GE.PARTNS > XLIST 0 /TURN LISTING BACK ON.



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search