Google
 

Trailing-Edge - PDP-10 Archives - bb-m836d-bm - tools/rmtcon/reloc.kcm
There are 3 other files named reloc.kcm in the archive. Click here to see a list.
SUBTTL	*RELOC* [KC10] RELOCATABLE CONTROL AND DISPATCH STORAGE

EXTERN	START,STARTA,PGMNAM,MODCHK,SUBINI
DDTLNK=:0				;Ddt linkage address (no ddt)

; ************************************************************
; Program starting addresses
; These addresses call various special start routines and or options
; Normal start address is 140 all others are special.
; ************************************************************

BEGIN::	JRST	MODCHK			;Mode check starting address

$START::JRST	START			;Stand-alone start

DIAGMN::JRST	$START			;Diagnostic monitor start

SYSEXR::JRST	$START			;System exerciser start

	IFNDEF	SADR1,<SADR1=BEGIN>
SFSTRT::JRST	SADR1			;Special feature start

	IFNDEF	SADR2,<SADR2=BEGIN>
PFSTRT::JRST	SADR2			;Power fail restart

	IFNDEF	SADR3,<SADR3=BEGIN>
REENTR::JRST	SADR3			;Reenter start

DDTSRT::JRST	$START			;Ddt start

SBINIT::JRST	SUBINI			;Pmgint linkage

RETURN::0				;Return address storage

ITRCNT::1				;Program iterations

	IFNDEF	ABTADR,<ABTADR=0>
ABORT::	ABTADR				;Abort routine address

	IFNDEF	TLTADR,<TLTADR=0>
TOTALS::TLTADR				;Totals routine address

	0				;Reserved
	0
	0
; ************************************************************
; Special program dispatch addresses
; ************************************************************

BEGEND::ENDPASS				;End of pass
$BEND1::JRST	STARTA			;Keep running program
$BEND2::EOPROG				;End of program - no return

CPOPJ1::AOS	(P)			;Skip return
CPOPJ::	RTN				;Non-skip regular return

; ************************************************************
; Program fixed parameter area
; ************************************************************

	IFNDEF	PAREA1,<PAREA1=0>
RANDBS::PAREA1				;Random base number
P%NAME::PGMNAM				;Pointer to programs name
P%VER::	MCNVER,,DECVER			;Mcn & dec version level
$EMODE::EXCASB				;Exec allowed if -1
$UMODE::USRASB				;User allowed if -1
$MMAP::	MEMMAP				;Allow memory rtns if -1

; ************************************************************
; Uuo dispatch table
; ************************************************************
	XLIST
IFNDEF	LUUO1,<LUUO1=U%ERR>
IFNDEF	LUUO2,<LUUO2=U%ERR>
IFNDEF	LUUO3,<LUUO3=U%ERR>
IFNDEF	LUUO4,<LUUO4=U%ERR>
IFNDEF	LUUO5,<LUUO5=U%ERR>
IFNDEF	LUUO6,<LUUO6=U%ERR>
IFNDEF	LUUO7,<LUUO7=U%ERR>
IFNDEF	LUUO10,<LUUO10=U%ERR>
IFNDEF	LUUO11,<LUUO11=U%ERR>
IFNDEF	LUUO12,<LUUO12=U%ERR>
IFNDEF	LUUO13,<LUUO13=U%ERR>
IFNDEF	LUUO14,<LUUO14=U%ERR>
IFNDEF	LUUO15,<LUUO15=U%ERR>
IFNDEF	LUUO16,<LUUO16=U%ERR>
IFNDEF	LUUO17,<LUUO17=U%ERR>
IFNDEF	LUUO20,<LUUO20=U%ERR>
IFNDEF	LUUO21,<LUUO21=U%ERR>
IFNDEF	LUUO22,<LUUO22=U%ERR>
IFNDEF	LUUO23,<LUUO23=U%ERR>
IFNDEF	LUUO24,<LUUO24=U%ERR>
IFNDEF	LUUO25,<LUUO25=U%ERR>
IFNDEF	LUUO26,<LUUO26=U%ERR>
IFNDEF	LUUO27,<LUUO27=U%ERR>
IFNDEF	LUUO30,<LUUO30=U%ERR>
IFNDEF	LUUO31,<LUUO31=U%ERR>
IFNDEF	LUUO32,<LUUO32=U%ERR>
IFNDEF	LUUO33,<LUUO33=U%ERR>
	LIST

U%DTBL::LUUO1,,U%ERR
	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
; ************************************************************
; 'Comnd' command parsing parameters
; ************************************************************

INIT::	014000,,000000			;.Cmini - 'comnd' initialization
	0
CFM::	010000,,000000			;.Cmcfm - 'comnd' confirm
	0

; ************************************************************
; Program variable parameter area
; ************************************************************

USER::	0				;0 = Exec, -1 = user mode flag
MONTYP::0				;0 = Tops10, -1 = tops20
MONFLG::0				;Diag monitor special user flag
MONCTL::0				;Diag mon/sys exr flag
MONTEN::0				;-1= Loaded by 10
SERNBR::0				;Processor serial number
CONSW::	0				;Console switch settings
PASCNT::0				;Program pass count
RUNFLG::0				;Program run flag
TESTPC::0				;Subtest pc
TESTNBR::0				;Subtest number
CLOCKF::0				;Clock ticked flag
CLKCNT::0				;Clock tick counter
TIMERF::0				;Interval timer ticked flag
TMRCNT::0				;Interval timer tick counter
PVPAGI::0				;If n=0, override "INHPAG" switch action
CSHFLG::0				;Allow cache if 0
CSHMEM::0				;Cache memory segments if zero
$ONETM::0				;Subroutine initialization flag
PG%END::0				;If n=0, xct'd by 'eopuuo' before ending prog
S%TOGGLE::0				;If n=0, use c(consw) for switches
SWPTAB::0				;0 = No prompt, adr = adr of sixbit prompt table

CC%FLG::0				;Control-c flag
CY%FLG::0				;Control-y flag
CD%FLG::0				;Control-d flag
CC%PRE::0				;^C check pre-routine
CC%POST::0				;^C check post-routine
CY%PRE::0				;^Y pre-routine
CY%POST::0				;^Y post-routine
CY%ACT::0				;^Y activated flag
C%PSTK::0				;Saved parser stack pointer
C%CCADR::0				;^C transfer address
; ************************************************************
; Error handler parameters
; ************************************************************

ERRPC::	0				;Error pc
ERRNBR::0				;Error [test#,,error#]
ERRTLS::0				;Error totals
ERMORE::0				;Additional error handler linkage
REPTU::	0				;Repeat uuo iterations
SCOPE::	0				;Error handler scope loop flag
E%LUUO::0				;Error luuo
E%ERPC::0				;Error pc
E%FMT::	0				;Error format, 0=pc, -1=#
E%ERFLG::0				;Error flag, -1=use repeat ac's
E%CORFL::0				; " CORRECT FLAG
E%COREC::0				; " CORRECT DATA
E%ACTFL::0				; " ACTUAL FLAG
E%ACTUL::0				; " ACTUAL DATA
E%DISCR::0				; " DISCREPENCY DATA
E%ERH1::0				;If n=0, xct'd at start of %eruuo
E%ERH2::0				;If n=0, xct'd at end of %eruuo
E%ERH3::0				;If n=0, xct'd after "PC" of %eruuo

; ************************************************************
; Processor interrupt control storage
; ************************************************************

ITRCH1::0				;Pc & flags of current interrupt
	0
	0				;New pc and flags
	0

I%AC0::	0				;Interrupt saved ac0
I%SVPI::0				;Interrupt saved pi
I%SVAPR::0				;Interrupt saved apr

I%ITRX::0				;Additional interrupt linkage
I%ITRY::0				; "
I%PWRX::0				;Additional power fail linkage
I%PWRY::0				; "

I%LEVTAB::0				;Tops-20 software interrupt levtab address
I%CHNTAB::0				;Tops-20 software interrupt chntab address
	BLOCK	3			;Unused (was old i%lxpc)
; ************************************************************
; Uuo control
; ************************************************************

U%USRTN::0				;Additional users uuo routine
U%RTX::	0				;Additional uuo linkage
U%ERR::	0				;Inited as (jrst $uoerx)
U%SVUUO::0				;Current users uuo
U%SVUPC::0				;Pc of current users uuo
U%UUO::	0				;If n=0, xct'd at start of $uortn
M%MUUO::0				;If n=0, xct'd at start of muuoer

; ************************************************************
; Memory managment storage
; ************************************************************

MAPNEW::0				;Memory mapping control flag, -1 = 32m mapping
MEMTOT::0				;Total memory size in k (1024.)
MEMLOW::0				;Lowest usable memory
MEMSIZ::BLOCK ^D41			;Memory segment pointer table
; ************************************************************
; Print control storage
; ************************************************************

P%FLAG::0				;Print flag, -1 while in print routine
P%ENABLE::0				;Print enable, -cnt of allowed output lines

P%FORCE::0				;Set for forced printout
P%FRCALL::0				;Print force all override
P%FCRLF::0				;Print free cr/lf flag (at column 80)
P%OPTR::0				;Byte pointer for output buffer
P%OUTP::0				;Starting address of output buffer
P%LFGO::0				;Continue after line feed
P%NOTYP::0				;Prevent terminal output
P%XOFF::0				;Xoff flag
P%SAV::	0				;Print temporary save word
P%PNT::	0				;Print misc control flag
P%CARCT::0				;Print character position count
P%DISF::0				;Print disabled flag
P%INHIBIT::0				;Print inhibit (control-o)
P%TINH::0				;Inhibit print input checks
P%SPACE::0				;Print space control
P%TABF::0				;Tab conversion flag
P%DVOFF::0				;Logical device inited flag

P%RADIX::0				;Decimal print radix (^d10)
P%RADLC::0				;Decimal print leading char (space)
P%RADCNT::0				;Decimal print leading char count (^d10)

P%PAX1::0				;If n=0, xct'd after printing cr/lf
P%UERR::0				;If n=0, xct'd at end of user mode error
; ************************************************************
; Typein control storage
; ************************************************************

T%TWAIT::0				;Type-in wait time
T%TIMW::0				;Time waited
T%CHAR::0				;Actual typed in char
T%CHRIN::0				;Upper cased & parity stripped char
T%NUMB::0				;Typed in number
T%DIGIT::0				;-1 If any digit typed
T%NEG::	0				;Negate flag
T%CNV::	0				;Decimal convert flag

T%CDADR::0				;Control-d dispatch address

T%IPTR::0				;Typein input byte pointer
T%INP::	0				;Address of typein input buffer

T%TAX1::0				;If n=0, xct'd at start of altmode switch call
T%TAX2::0				;If n=0, xct'd at end of altmode switch call

T%TAX3::0				;If n=0, xct'd at end of altmode ^d

; ************************************************************
; User mode output file information
; ************************************************************

P%DSKF::0				;Print on the disk
P%T20::	0				;Print tops-20 file name style
P%T20P::0				;Print tops-20 pointer to file name
P%DJFN::0				;Print tops-20 logical device jfn
P%OHDR::BLOCK	3			;Logical file output buffer header
P%OUTNM::0				;File name
P%OUTEX::0				;File name extension
	BLOCK	2
; ************************************************************
; Power fail ac save storage
; ************************************************************

POWER::	BLOCK	^D16

; ************************************************************
; Pushdown list control information
; ************************************************************

$PSHER::0				;Inited as (jrst psherr)
PLIST::	0				;Base pointer (plist-pliste,,plist)
PLISTS::BLOCK	200
PLISTE::0				;End of pushdown list

; ************************************************************
; Special future expansion room
; ************************************************************

$ATOM::	0				;Adr of command atom buffer
$GTJFNB::0				;Adr of file name block
$IPAG::	0				;Adr of input page

T%TERM::0				;Terminal type
T%TWD::	0				;Terminal width
T%TLEN::0				;Terminal length

C%FIRST::0				;If n=0, xct'd before first parse

U%SVPC::0				;Pc of luuo

I%L1FL::0				;Tops-20 level 1 interrupt flags
I%L1PC::0				;Tops-20 level 1 interrupt pc

I%L2FL::0				;Tops-20 level 2 interrupt flags
I%L2PC::0				;Tops-20 level 2 interrupt pc

I%L3FL::0				;Tops-20 level 3 interrupt flags
I%L3PC::0				;Tops-20 level 3 interrupt pc

; ************************************************************
; End of fixed storage
; ************************************************************

ENDFIX::0				;End of fixed storage

	END