Trailing-Edge
-
PDP-10 Archives
-
klad_sources
-
klad.sources/fixed.ksm
There are no other files named fixed.ksm in the archive.
SUBTTL *FIXED* FIXED CONTROL AND DISPATCH STORAGE, MARCH 1978
LOC 30000
S
;*PROGRAM STARTING ADDRESSES
;*THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS
;*NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE
;*OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER
;*MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS.
S
BEGIN: JRST @MODLNK ;STAND-ALONE START
$START: JRST START ;MODE CHECK STARTING ADDRESS
DIAGMN: JRST @LDLNK ;DIAGNOSTIC MONITOR START
SYSEXR: JRST @LDLNK ;SYSTEM EXERCISER START
SFSTRT: JRST SADR1 ;SPECIAL FEATURE START
PFSTRT: JRST SADR2 ;POWER FAIL RESTART
REENTR: JRST SADR3 ;REENTER START(USUALLY USER MODE ONLY)
SRTDDT: ;COMMONLY MISTAKEN NAME FOR "DDTSRT"
DDTSRT: JRST @DDTLNK ;DDT START
BEGIN1: JRST STARTA ;LOOP START(END OF PASS COMES HERE)
SBINIT: JRST @SUBLNK ;PMGINT LINKAGE
RETURN: 0 ;RETURN ADDRESS STORAGE
START1: SADR7 ;OPTIONAL STARTING ADR/INSTRUCTIONS
START2: SADR8 ; "
START3: SADR9 ; "
START4: SADR10 ; "
START5: SADR11 ; "
S
;*PROGRAM FIXED PARAMETER AREA
S
PNTNAM: PAREA3 ;SIXBIT PROGRAM NAME
PNTEXT: PAREA4 ;SIXBIT PROGRAM EXTENSION
RANDBS: PAREA1 ;RANDOM BASE NUMBER
SWTEXR: PAREA2 ;SYSTEM EXERCISER SWITCHES
ITRCNT: ITERAT ;PROGRAM ITERATIONS
$PNAME: PGMNAM ;POINTER TO PROGRAMS NAME
$PVER: MCNVER,,DECVER ;MCN & DEC VERSION LEVEL
$MODVL: MODDVL ;DEVICE CODE CHANGE LOWER LIMIT
$MODVU: MODDVU ;DEVICE CODE CHANGE UPPER LIMIT
$EMODE: IFNDEF EXCASB,<0> IFDEF EXCASB,<-1> ;EXEC ALLOWED
$UMODE: IFNDEF USRASB,<0> IFDEF USRASB,<-1> ;USER ALLOWED
$DSKUP: IFNDEF DSKUPD,<0> IFDEF DSKUPD,<-1> ;DISK UPDATE MODE
$MMAP: IFNDEF MEMMAP,<0> IFDEF MEMMAP,<-1> ;ALLOW MEMORY RTNS
PAREA7: PAREA5 ;OPTIONAL PARAMETER
PAREA8: PAREA6 ;OPTIONAL PARAMETER
S
;*PROGRAM VARIABLE PARAMETER AREA
S
USER: 0 ; 0 = EXEC, -1 = USER MODE FLAG
KAIFLG: 0 ;PROCESSOR TYPE, 0 = KA10, -1 = KI10
KLFLG: 0 ;PROCESSOR TYPE, 0 = KA/KI, -1 = KL10
MONFLG: -1 ;DIAG MONITOR SPECIAL USER FLAG
MONCTL: 0 ;DIAG MON/SYS EXR FLAG
MONTEN: 0 ;-1= LOADED BY 10
CLOCKF: 0 ;CLOCK TICKED FLAG
CONSW: 0 ;CONSOLE SWITCH SETTINGS
PASCNT: 0 ;PROGRAM PASS COUNT
RUNFLG: 0 ;PROGRAM RUN FLAG
TESTPC: 0 ;SUBTEST PC
ERRPC: 0 ;ERROR PC
ERRTLS: 0 ;ERROR TOTALS
TICKS: 0 ;PROGRAM RUNNING TIME
MARGIN: 0 ;KI10 MARGIN WORD VALUE
$ONETM: 0 ;SUBROUTINE INITIALIZATION FLAG
S
;*SPECIAL PROGRAM DISPATCH ADDRESSES
S
BEGEND: ENDUUO ;END OF PASS
$BEND1: JRST BEGIN1 ;KEEP RUNNING PROGRAM
$BEND2: EOPUUO ;END OF PROGRAM - NO RETURN
CNTLC: SADR5 ;CONTROL C XFER ADDRESS
ALTMGO: SADR6 ;ALTMODE XFER ADDRESS
CPOPJ1: ;SKIP RETURN
UUOSKP: AOS (P) ;SKIP RETURN FROM UUO
CPOPJ: ;NON-SKIP REGULAR RETURN
UUOEXT: RTN ;UUO RETURN
UUORTN: JFCL ;ADDITIONAL USERS UUO ROUTINE
$UORTX: JFCL ;ADDITIONAL UUO LINKAGE
$UUOER: JFCL ;INITED AS (JRST $UOERX)
$ITRHL: JFCL ;ADDITIONAL INTERRUPT LINKAGE
$ITRX1: JFCL ; "
$USRHL: JFCL ; "
$RSRTX: JFCL ;ADDITIONAL POWER FAIL LINKAGE
$RSRTY: JFCL ; "
RESRT1: JFCL ; INITED AS (JRST RESRTX)
RESRT2: JFCL ; "
$PARER: JFCL ;ADDITIONAL PARITY ERROR LINKAGE
ERMORE: JFCL ;ADDITIONAL ERROR HANDLER LINKAGE
HALT . ;IMPROPER TRANSFER HALT
$PSHER: 0 ;INITED AS (JRST PSHERR)
ITRCH1: 0 ;PC & FLAGS OF CURRENT INTERRUPT
0 ;INITED AS (JRST $ITRC1)
S
;*PROCESSOR CONTROL STORAGE
S
$ACC0: 0 ;INTERRUPT SAVED AC0
$SVPI: 0 ;INTERRUPT SAVED PI
$SVAPR: 0 ;INTERRUPT SAVED APR
$SVPAG: 0 ;INTERRUPT SAVED PAG (DATAI)
$SPAG1: 0 ;INTERRUPT SAVED PAG (CONI)
$SVUUO: 0 ;CURRENT USERS UUO
$SVUPC: 0 ;PC OF CURRENT USERS UUO
REPTU: 0 ;REPEAT UUO ITERATIONS
SCOPE: 0 ;ERROR HANDLER SCOPE LOOP FLAG
%CORFLG:0 ; " CORRECT FLAG
%COREC: 0 ; " CORRECT DATA
%ACTFL: 0 ; " ACTUAL FLAG
%ACTUL: 0 ; " ACTUAL DATA
%DISCR: 0 ; " DISCREPENCY DATA
S
;*UUO DISPATCH TABLE
S
XLIST
IFNDEF LUUO1,<LUUO1=$UUOER>
IFNDEF LUUO2,<LUUO2=$UUOER>
IFNDEF LUUO3,<LUUO3=$UUOER>
IFNDEF LUUO4,<LUUO4=$UUOER>
IFNDEF LUUO5,<LUUO5=$UUOER>
IFNDEF LUUO6,<LUUO6=$UUOER>
IFNDEF LUUO7,<LUUO7=$UUOER>
IFNDEF LUUO10,<LUUO10=$UUOER>
IFNDEF LUUO11,<LUUO11=$UUOER>
IFNDEF LUUO12,<LUUO12=$UUOER>
IFNDEF LUUO13,<LUUO13=$UUOER>
IFNDEF LUUO14,<LUUO14=$UUOER>
IFNDEF LUUO15,<LUUO15=$UUOER>
IFNDEF LUUO16,<LUUO16=$UUOER>
IFNDEF LUUO17,<LUUO17=$UUOER>
IFNDEF LUUO20,<LUUO20=$UUOER>
IFNDEF LUUO21,<LUUO21=$UUOER>
IFNDEF LUUO22,<LUUO22=$UUOER>
IFNDEF LUUO23,<LUUO23=$UUOER>
IFNDEF LUUO24,<LUUO24=$UUOER>
IFNDEF LUUO25,<LUUO25=$UUOER>
IFNDEF LUUO26,<LUUO26=$UUOER>
IFNDEF LUUO27,<LUUO27=$UUOER>
IFNDEF LUUO30,<LUUO30=$UUOER>
IFNDEF LUUO31,<LUUO31=$UUOER>
IFNDEF LUUO32,<LUUO32=$UUOER>
IFNDEF LUUO33,<LUUO33=$UUOER>
LIST
UUODIS: LUUO1,,$UUOER
LUUO3,,LUUO2
LUUO5,,LUUO4
LUUO7,,LUUO6
LUUO11,,LUUO10
LUUO13,,LUUO12
LUUO15,,LUUO14
LUUO17,,LUUO16
LUUO21,,LUUO20
LUUO23,,LUUO22
LUUO25,,LUUO24
LUUO27,,LUUO26
LUUO31,,LUUO30
LUUO33,,LUUO32
S
;*MEMORY MANAGMENT STORAGE
S
DF22F: 0 ;DF10 CONTROL FLAG, 0 = 18, -1 = 22 BIT
MAPNEW: 0 ;MEMORY MAPPING CONTROL FLAG, -1 = 4096K MAPPING
MEMTOT: 0 ;TOTAL MEMORY SIZE IN K (1024.)
MEMLOW: 0 ;LOWEST USABLE MEMORY
MEMSIZ: BLOCK ^D41 ;MEMORY SEGMENT POINTER TABLE
S
;*PRINT CONTROL STORAGE
S
PNTFLG: 0 ;PRINT FLAG, -1 WHILE IN PRINT ROUTINE
PNTENB: 0 ;PRINT ENABLE
PDISF: 0 ;PRINT DISABLED FLAG
PNTINH: 0 ;INHIBIT PRINT INPUT CHECKS
PNTSPC: 0 ;PRINT SPACE CONTROL
OPTIME: 0 ;TYPE-IN WAIT TIME
$TWCNT: 0 ;TIME WAITED
$DVOFF: 0 ;LOGICAL DEVICE INITED FLAG
TTYFIL: 0 ;TTY EXEC FILLERS FLAG
TTYSPD: 0 ;TTY EXEC BAUD RATE
$TTCHR: 0 ;ACTUAL TYPED IN CHAR
$CHRIN: 0 ;UPPER CASED & PARITY STRIPPED CHAR
$TYPNB: 0 ;TYPED IN NUMBER
$CRLF: 0 ;FREE CR/LF FLAG
$TABF: 0 ;TAB CONVERSION FLAG
$FFF: 0 ;FORM FEED CONVERSION FLAG
$VTF: 0 ;VERTICAL TAB CONVERSION FLAG
USRLFF: 0 ;USER LF FILLERS
USRCRF: 0 ;USER CR FILLERS
S
;*THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED
;*TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS:
;* MOVEI NAME
;* PNTA ;OR PNTAF
S
CRLF: ASCII/
/
CRLF2: ASCII/
/
COMMA: ASCII/,/
PERIOD: ASCII/./
SPACE: ASCII/ /
TAB: ASCII/ /
MINUS:
HYPEN: ASCII/-/
PLUS: ASCII/+/
AST: ASCII/*/
ATSIN: ASCII/@/
LFP: ASCII/(/
RTP: ASCII/)/
BELL: BYTE (7) 007
QUEST: ASCII/?/
SLASH: ASCII!/!
DOLLAR: ASCII/$/
RADIX: ^D10 ;DECIMAL PRINT RADIX
RADLSP: 40 ;DECIMAL PRINT LEADING CHAR
RADLSC: ^D10 ;DECIMAL PRINT LEADING CHAR COUNT
S
;*USER MODE OUTPUT FILE INFORMATION
S
$OBUF: BLOCK 3 ;LOGICAL FILE OUTPUT BUFFER HEADER
$OUTNM: SIXBIT /PRINT/ ;FILE NAME
$OUTEX: SIXBIT /PNT/ ;FILE NAME EXTENSION
BLOCK 2
S
;*DISK UPDATE MODE FILE INFORMATION
S
$IBUF: BLOCK 3
$INNM: SIXBIT /PRINT/
$INEXT: SIXBIT /PNT/
BLOCK 2
S
;*PUSHDOWN LIST CONTROL INFORMATION
S
PLIST: PLIST-PLISTE,,PLIST
PLISTS: BLOCK 200
PLISTE: 0 ;END OF PUSHDOWN LIST
S
;*POWER LINE CLOCK FREQUENCY FLAG
S
CYCL60: 0 ;0 = 60, -1 = 50 CYCLE
S
;*KL10 CACHE CONTROL FLAGS
S
CSHFLG: 0 ;ALLOW CACHE IF 0
CSHMEM: 0 ;CACHE MEMORY SEGMENTS IF 0
S
;*NUMBER INPUT DIGIT FLAG
S
TTNBRF: 0 ;-1 IF ANY DIGIT TYPED
S
;*KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION
S
PVPAGI: 0 ;IF NON-ZERO, OVERRIDE "INHPAG" SWITCH ACTION
S
;*ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS
S
%ERHI1: 0 ;IF NON-ZERO, XCT'D AT START OF %ERUUO
%ERHI2: 0 ;IF NON-ZERO, XCT'D AT END OF %ERUUO
%ERHI3: 0 ;IF NON-ZERO, XCT'D AFTER "PC" OF %ERUUO
S
;*SPECIAL USERS UUO INTERCEPT INSTRUCTION
S
$$UUO: 0 ;IF NON-ZERO, XCT'D AT START OF $UORTN
S
;*USER MODE MONITOR TYPE FLAG
S
MONTYP: 0 ;0 = TOPS10, -1 = TOPS20
S
;*SPECIAL USERS MUUO INTERCEPT INSTRUCTION
S
$$MUUO: 0 ;IF NON-ZERO, XCT'D AT START OF MUUOER
S
;*SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION
S
$$OUTER:0 ;IF NON-ZERO, XCT'D AT END OF USER MODE ERROR
S
;*"SWITCH" CALL USAGE CONTROL
S
$$TOGGLE:0 ;IF NON-ZERO, USE C(CONSW) FOR SWITCHES
S
;*SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS
S
$$TAX1: 0 ;IF NON-ZERO, XCT'D AT START OF ALTMODE SWITCH CALL
$$TAX2: 0 ;IF NON-ZERO, XCT'D AT END OF ALTMODE SWITCH CALL
S
;*SM10 (KS-10) PROCESSOR TYPE FLAG
S
SM10: 0 ;IF -1 THIS IS AN KS-10
S
;*RIGHT HALF SWITCHES PROMPT TABLE ADDRESS
S
SWPTAB: 0 ;0 = NO PROMPT, ADR = ADR OF SIXBIT PROMPT TABLE
S
;*SPECIAL FUTURE EXPANSION ROOM
S
S
;*END OF FIXED STORAGE
S
LOC 30577
ENDFIX: 0 ;END OF FIXED STORAGE