DataMuseum.dk

Presents historical artifacts from the history of:

RegneCentralen RC3600/RC7000

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

See our Wiki for more about RegneCentralen RC3600/RC7000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦22cce7351⟧ TextFile

    Length: 14848 (0x3a00)
    Types: TextFile
    Notes: RCSL-43-GL-8999, RCSL-43-GL-9000
    Names: »REMUP«

Derivation

└─⟦466f46364⟧ Bits:30001785 SG0005 Floppy
    └─ ⟦this⟧ »/REMUP« 

TextFile


;						RCSL  : 43-GL9000

;						AUTHER: MLM

;						EDITED: 79.05.23







;			MUPAR.02









;KEYWORDS:	RC3600, MONITOR, USER SYMBOLS.

;ABSTRACT:	RC3600 MONITOR USER SYMBOL DEFINITIONS.









; ASCII PAPER TAPE: RCSL:43-GL8999
«ff»
.RDXO 10

.TITL MUPAR
.RDX 10
;   ******   FORMAT DEFINITIONS   ******
                      ; ITEM:
.DUSR NEXT= 0         ;   NEXT ITEM IN A QUEUE OF ITEMS
.DUSR PREV= NEXT+1    ;   PREVIOUS ITEM IN A QUEUE OF ITEMS
.DUSR CHAIN=PREV+1    ;   NEXT ITEM IN A CHAIN OF ITEMS
.DUSR SIZE= CHAIN+1   ;   SIZE OF THE ITEM
.DUSR NAME= SIZE+1    ;   NAME OF THE ITEM (THREE WORDS)

                      ; PROCESS DESCRIPTOR:
;     NEXT            ;   NEXT PROCESS IN A QUEUE OF PROCESSES
;     PREV            ;   PREVIOUS PROCESS IN A QUEUE OF PROCESSES
;     CHAIN           ;   NEXT PROCESS IN THE PROCESS CHAIN
;     SIZE            ;   SIZE OF THE PROCESS DESCRIPTOR
;     NAME            ;   NAME OF THE PROCESS (THREE WORDS)
.DUSR EVENT=NAME+3    ;   EVENT QUEUE HEAD (TWO WORDS)
.DUSR BUFFE=EVENT+2   ;   FREE MESSAGE BUFFER CHAIN HEAD
.DUSR PROG= BUFFE+1   ;   PROGRAM ADDRESS
.DUSR STATE=PROG+1    ;   STATE OF PROCESS
.DUSR TIMER=STATE+1   ;   TIMER COUNT
.DUSR PRIOR=TIMER+1   ;   PRIORITY
.DUSR BREAD=PRIOR+1   ;   BREAK ADDRESS
.DUSR AC0=  BREAD+1   ;   SAVED AC0
.DUSR AC1=  AC0+1     ;   SAVED AC1
.DUSR AC2=  AC1+1     ;   SAVED AC2
.DUSR AC3=  AC2+1     ;   SAVED AC3
.DUSR PSW=  AC3+1     ;   PSW (PROCESS STATUS WORD)
.DUSR SAVE= PSW+1     ;   SAVED LINK
.DUSR O=    SAVE+1    ; OPTIONAL WORDS:

; INTERPRETER PROCESSES
.DUSR SAVE1=O         ; WORK LOC.
.DUSR SAVE2=SAVE1+1   ;  -
.DUSR SAVE3=SAVE2+1   ;  -
.DUSR SAVE4=SAVE3+1   ;  -
.DUSR SAVE5=SAVE4+1   ;  -
.DUSR R=    SAVE5+1   ; PSEUDO ACCUMOLATOR
.DUSR PC=   R+1       ; PSEUDO PC
.DUSR OP=   PC+1      ; OPERATOR MESSAGE
.DUSR .OPER=OP+1      ; OPERATOR NAME ADDRESS
.DUSR ZN=.OPER+4      ; FIRST FILE DESCR. ENTRY ADDRESS

; DRIVER PROCESSES
.DUSR BUF=  O         ;   SAVED MESSAGE BUFFER ADDRESS
.DUSR ADDRE=BUF+1     ;   CURRENT VALUE OF ADDRESS
.DUSR COUNT=ADDRE+1   ;   CURRENT VALUE OF COUNT
.DUSR RESER=COUNT+1   ;   RESERVER
.DUSR CONVT=RESER+1   ;   CONVERSION TABLE ADDRESS
.DUSR CLINT=CONVT+1   ;   CLEAR DEVICE INTERRUPT



«ff»

; COROUTINE PROCESSES
.DUSR CCOROUT=ZN      ; CURRENT COROUTINE
.DUSR LATIME=CCORO+1  ; LATEST ACTIVATION TIME
.DUSR HACTIVE=LATIM+1 ; HEAD OF ACTIVE QUEUE
.DUSR HANSWER=HACTI+1 ; HEAD OF ANSWER QUEUE
.DUSR HDELAY=HANSW+1  ; HEAD OF DELAY QUEUE
.DUSR TRETURN=HDELA+1 ; RETURN FROM TEST
.DUSR TRECORD=TRETU+1 ; TEST RECORD START
.DUSR CDEVICE= TRECO+1; DEVICE NUMBER
.DUSR MSEM=CDEVIC+1   ; MESSAGE SEM
.DUSR MCOROUT=MSEM+1  ; MESSAGE COROUTINE
.DUSR CUDEX=MCOROUT+1 ; USER DEFINED EXIT
.DUSR CBUFFER=CUDEX+1 ; COROUTINE BUFFER

                      ; MESSAGE BUFFER:
;     NEXT            ;   NEXT BUFFER IN A QUEUE OF BUFFERS
;     PREV            ;   PREVIOUS BUFFER IN A QUEUE OF BUFFERS
;     CHAIN           ;   NEXT BUFFER IN A CHAIN OF BUFFERS
;     SIZE            ;   SIZE OF THE MESSAGE BUFFER
.DUSR SENDE=SIZE+1    ;   SENDER PROCESS DESCRIPTOR
.DUSR RECEI=SENDE+1   ;   RECEIVER PARAMETER
.DUSR MESS0=RECEI+1   ;   0.MESSAGE
.DUSR MESS1=MESS0+1   ;   1.MESSAGE
.DUSR MESS2=MESS1+1   ;   2.MESSAGE
.DUSR MESS3=MESS2+1   ;   3.MESSAGE
.DUSR BSIZE=MESS3+1   ;   SIZE OF MESSAGE BUFFER

                      ; PROGRAM DESCRIPTOR:
.DUSR PSPEC=0         ;   SPECIFICATION OF PROGRAM:
                      ;    B0: OWN
                      ;    B1: REENTRANT
                      ;    B2: PAGE ZERO USER
                      ;    B3: RESERVABLE
                      ;    B(8:15) PROCESS COUNT
.DUSR PSTAR=PSPEC+1   ;   START ADDRESS
;     CHAIN           ;   NEXT PROGRAM IN A CHAIN OF PROGRAMS
;     SIZE            ;   SIZE OF THE PROGRAM AREA
;     NAME            ;   NAME OF THE PROGRAM (THREE WORDS)

;                     ; COROUTINE DESCRIPTOR:
.DUSR CIDENT=NEXT-1   ;   IDENTIFICATION
.DUSR OPMASK=CIDENT-1 ; WAIT MASK
;     NEXT            ;   LINK TO NEXT COROUTINE
.DUSR CEXIT=NEXT+1    ;   SAVED EXIT ADDRESS
.DUSR CLATOP=CEXIT+1  ;   SAVED OPERATION
.DUSR CRETUR=CLATO+1  ;   SAVED RETURN
.DUSR CAC1S=CRETU+1   ;   SAVED AC1

.DUSR TLENGTH=30      ; LENGTH OF TEST RECORD


«ff»
                      ; ZONE DESCRIPTOR:
.DUSR ZNAME=0         ;   NAME (THREE WORDS)
;     SIZE            ;   SIZE OF THE ZONE DESCRIPTOR
.DUSR ZMODE=SIZE+1    ;   MODE OF OPERATION
.DUSR ZKIND=ZMODE+1   ;   KIND OF DOCUMENT
.DUSR ZMASK=ZKIND+1   ;   MASK FOR GIVE UP
.DUSR ZGIVE=ZMASK+1   ;   GIVE UP ADDRESS
.DUSR ZFILE=ZGIVE+1   ;   FILE COUNT
.DUSR ZBLOC=ZFILE+1   ;   BLOCK COUNT
.DUSR ZCONV=ZBLOC+1   ;   CONVERSION TABLE ADDRESS
.DUSR ZBUFF=ZCONV+1   ;   BUFFER ADDRESS
.DUSR ZSIZE=ZBUFF+1   ;   SIZE OF BUFFER
.DUSR ZFORM=ZSIZE+1   ;   FORMAT OF RECORD
.DUSR ZLENG=ZFORM+1   ;   LENGTH OF RECORD
.DUSR ZFIRS=ZLENG+1   ;   FIRST OF RECORD (BYTE ADDRESS)
.DUSR ZTOP= ZFIRS+1   ;   TOP OF RECORD (BYTE ADDRESS)
.DUSR ZUSED=ZTOP+1    ;   USED SHARE
.DUSR ZSHAR=ZUSED+1   ;   SHARE LENGTH (IN BYTES)
.DUSR ZREM= ZSHAR+1   ;   REMAINING BYTES IN SHARE
                      ; AUXILLIARY WORDS:
.DUSR Z0=   ZREM+1    ;   AUX 0
.DUSR Z1=   Z0+1      ;   AUX 1
.DUSR Z2=   Z1+1      ;   AUX 2
.DUSR Z3=   Z2+1      ;   AUX 3
.DUSR Z4=   Z3+1      ;   AUX 4
.DUSR Z5=   Z4+1      ;   AUX 5
.DUSR ZAUX= 6         ;   NUMBER OF AUXILLIARY WORDS
.DUSR Z=    Z0+ZAUX   ; OPTIONAL WORDS:

                      ; SHARE DESCRIPTOR:
.DUSR SOPER=0         ;   OPERATION (0.MESSAGE)
.DUSR SCOUN=SOPER+1   ;   COUNT (1.MESSAGE)
.DUSR SADDR=SCOUN+1   ;   ADDRESS (2.MESSAGE)
.DUSR SSPEC=SADDR+1   ;   SPECIAL (3.MESSAGE)
.DUSR SNEXT=SSPEC+1   ;   NEXT SHARE
.DUSR SSTAT=SNEXT+1   ;   STATE OF SHARE
.DUSR SFIRS=SSTAT+1   ;   FIRST SHARED (BYTE ADDRESS)
.DUSR SSIZE=SFIRS+1   ;   SIZE OF SHARE DESCRIPTOR

;   ******   END OF FORMAT DEFINITIONS   ******



«ff»
;   ******   MONITOR FUNCTION ENTRIES   ******

 .LOC 2

.DUSR WAIT=            JSR@   .
.DUSR WAITINTERRUPT=   JSR@   .+1
.DUSR SENDMESSAGE=     JSR@   .+2
.DUSR WAITANSWER=      JSR@   .+3
.DUSR WAITEVENT=       JSR@   .+4
.DUSR SENDANSWER=      JSR@   .+5
.DUSR SEARCHITEM=      JSR@   .+6
.DUSR CLEANPROCESS=    JSR@   .+7
.DUSR BREAKPROCESS=    JSR@   .+8
.DUSR STOPPROCESS=     JSR@   .+9
.DUSR STARTPROCESS=    JSR@   .+10
.DUSR RECHAIN=         JSR@   .+11

;   ******   END OF MONITOR FUNCTION ENTRIES   ******



«ff»
.LOC 32
.DUSR M=    .     ; START OF MONITOR PROCESS DESCRIPTOR
.DUSR CUR=  .     ;
.DUSR TABLE=.+5	; DEVICE TABLE
.DUSR TOPTA=.+6	; TOP OF DEVICE TABLE
.DUSR PFIRS=.+10	; FIRST IN PROCESS CHAIN
.DUSR RUNNI=.+12	; RUNNING QUEUE
.DUSR PROCE=RUNNI ;        REFERENCE TO HEAD OF RUNNING QUEUE AND
.DUSR MONIT=RUNNI ;        HEAD OF PROCESS CHAIN: MONITOR PROCESS.
.DUSR EXIT=.+14	; BREAD: MONITOR EXIT
.DUSR EFIRS=.+15	; FIRST IN FREE CORE
.DUSR FFIRS=.+16	; LAST IN FREE CORE
.DUSR DELAY=.+17	; DELAY QUEUE
.DUSR AREAP=.+20     ;   HEAD OF AREA PROCESS CHAIN
.DUSR AFIRS=.+21     ;   FIRST IN AREA PROCESS CHAIN



; PAGE ZERO VARIABLES:

.LOC 54
.DUSR FREQU=.     ; FREQUENCY OF RTC:
.DUSR MASK= .+1     ; INTERRUPT MASK
.DUSR CORES=.+2     ; CORE SIZE
.DUSR PROGR=.+3     ; REF. TO HEAD OF PROGRAM CHAIN
.DUSR RTIME=	.+6	; REAL TIME COUNT
.DUSR POWIN=	.+8	; POWER INTERRUPT COUNT
.DUSR CDUMP=.+9     ;  CORE DUMP ENTRY
.DUSR CPUTY=.+10    ;  CPU TYPE:	0: 3603
		    ;			1: 3703
		    ;			2: 3803
		    ;			3 3703 WITH '3803-FEATURE'
		    ;			4: 3603 WITH '3803-FEATURE'

; PAGE ZERO CONSTANTS:

.LOC 65
.DUSR  BIT=   	.	;1B0
.DUSR .1B0=   	.	;1B0
.DUSR .1B1=	.+1	;1B1
.DUSR .1B2=   	.+2	;1B2
.DUSR .1B3=   	.+3	;1B3
.DUSR .1B4=   	.+4	;1B4
.DUSR .1B5=   	.+5	;1B5
.DUSR .1B6=   	.+6	;1B6
.DUSR .1B7=   	.+7	;1B7
.DUSR .1B8=   	.+8	;1B8
.DUSR .1B9=   	.+9	;1B9
.DUSR .1B10=  	.+10	;1B10
.DUSR .1B11=  	.+11	;1B11
.DUSR .1B12=  	.+12	;1B12
.DUSR .1B13=  	.+13	;1B13
.DUSR .1B14=  	.+14	;1B14
.DUSR .1B15=	.+15	;1B15


«ff»
; STATUS BITS:

.DUSR SDISC=.1B0     ; DISCONNECTED
.DUSR SOFFL=.1B1     ; OFF LINE
.DUSR SBUSY=.1B2     ; BUSY
.DUSR SDEV1=.1B3     ; DEVICE MODE 1
.DUSR SDEV2=.1B4     ; DEVICE MODE 2
.DUSR SDEV3=.1B5     ; DEVICE MODE 3
.DUSR SILLE=.1B6     ; ILLEGAL
.DUSR SEOF= .1B7     ; EOF
.DUSR SBLOC=.1B8     ; BLOCK ERROR
.DUSR SDATA=.1B9     ; DATA LATE
.DUSR SPARI=.1B10    ; PARITY ERROR
.DUSR SEM=  .1B11    ; END MEDIUM
.DUSR STIME=.1B14    ; TIMER

; CONTROL BITS:

.DUSR CERAS=.1B8     ; ERASURE
.DUSR CDISC=.1B9     ; DISCONNECT
.DUSR CPOSI=.1B10    ; POSITIONING
.DUSR CTERM=.1B11    ; TERMINATION
.DUSR CCONV=.1B12    ; CONVERSION
.DUSR CRESE=.1B13    ; RESERVATION

«ff»

.LOC 81
.DUSR .0=      PRIORITY+M
.DUSR .1=     .1B15
.DUSR .2=     .1B14
.DUSR .3=      .
.DUSR .4=     .1B13
.DUSR .5=      .+1
.DUSR .6=      .+2
.DUSR .7=      .+3
.DUSR .8=     .1B12
.DUSR .9=      .+4
.DUSR .10=     .+5
.DUSR .12=     .+6
.DUSR .13=     .+7
.DUSR .15=     .+8
.DUSR .16=    .1B11
.DUSR .24=     .+9
.DUSR .25=     .+10
.DUSR .32=    .1B10
.DUSR .40=     .+11
.DUSR .48=     .+12
.DUSR .56=     .+13
.DUSR .60=     .+14
.DUSR .63=     .+15
.DUSR .64=    .1B9
.DUSR .120=    .+16
.DUSR .127=    .+17
.DUSR .128=   .1B8
.DUSR .255=    .+18
.DUSR .256=   .1B7
.DUSR .512=   .1B6
.DUSR .1024=  .1B5
.DUSR .2048=  .1B4
.DUSR .4096=  .1B3
.DUSR .8192=  .1B2
.DUSR .16384= .1B1
.DUSR .32768= .1B0
.DUSR .M3=     .+19
.DUSR .M4=     .+20
.DUSR .M16=    .+21
.DUSR .M256=   .+22

.DUSR .NAME=.4    ; NAME.PROC
.DUSR .EVEN=.7    ; EVENT.PROC
.DUSR .EDOC=.EVEN ; DOCUMENT.ENTRY
.DUSR .MESS=.6    ; MESS.BUF
.DUSR .SSIZ=.7    ; SIZE OF SHARE DESCRIPTOR
.DUSR .Z=   104     ; OPTIONAL.ZONE
.DUSR .RTC= .12   ; RTC DEVICE NUMBER
.DUSR .NL=  .10   ;
.DUSR .LF=  .10   ;
.DUSR .CR=  .13   ;
.DUSR .FF=  .12   ;
.DUSR CUR2=.64    ; MONITOR PROCESS*2



«ff»
; REFERENCES TO REENTRANT SYSTEM UTILITY PROCEDURES:

 .LOC 116

.DUSR NEXTOPERATION=   JSR@   .
.DUSR WAITOPERATION=   JSR@   .+3
.DUSR RETURNANSWER=    JSR@   .+1
.DUSR SETINTERRUPT=    JSR@   .+4
.DUSR SETRESERVATION=  JSR@   .+5
.DUSR SETCONVERSION=   JSR@   .+6
.DUSR CONBYTE=         JSR@   .+7
.DUSR GETBYTE=         JSR@   .+8
.DUSR PUTBYTE=         JSR@   .+9
.DUSR MULTIPLY=        JSR@   .+10
.DUSR DIVIDE=          JSR@   .+11

.DUSR .NEXTOPERATION=  JMP@   .
.DUSR .RETURNANSWER=   JMP@   .+1
.DUSR .CLEARDEVICE=    JMP@   .+2
.DUSR CLEAR= @.+2
.DUSR .SETINTERRUPT=   JMP@   .+4
.DUSR .SETRESERVATION= JMP@   .+5
.DUSR .SETCONVERSION=  JMP@   .+6
.DUSR .CONBYTE=        JMP@   .+7
.DUSR .GETBYTE=        JMP@   .+8
.DUSR .PUTBYTE=        JMP@   .+9
.DUSR .MULTIPLY=       JMP@   .+10
.DUSR .DIVIDE=         JMP@   .+11



.DUSR GOS=   JSR@   0
.DUSR GOT=   JMP@   0
«ff»
; REFERENCES TO REENTRANT INPUT/OUTPUT UTILITY PROCEDURES:

 .LOC 128

.DUSR BINDEC=          JSR@   .+26
.DUSR DECBIN=          JSR@   .+27
.DUSR GETREC=          JSR@   .
.DUSR PUTREC=          JSR@   .+1
.DUSR WAITTRANSFER=    JSR@   .+2
.DUSR TRANSFER=        JSR@   .+4
.DUSR INBLOCK=         JSR@   .+5
.DUSR OUTBLOCK=        JSR@   .+6
.DUSR INCHAR=          JSR@   .+7
.DUSR FREESHARE=       JSR@   .+8
.DUSR OUTSPACE=        JSR@   .+9
.DUSR OUTCHAR=         JSR@   .+10
.DUSR OUTNL=           JSR@   .+11
.DUSR OUTEND=          JSR@   .+12
.DUSR OUTTEXT=         JSR@   .+13
.DUSR OUTOCTAL=        JSR@   .+14
.DUSR SETPOSITION=     JSR@   .+15
.DUSR CLOSE=           JSR@   .+16
.DUSR OPEN=            JSR@   .+17
.DUSR INNAME=          JSR@   .+19
.DUSR WAITZONE=        JSR@   .+18
.DUSR MOVE=            JSR@   .+20
.DUSR INTPRETE=        JSR@   .+21



«ff»
.DUSR .GETREC=         JMP@   .
.DUSR .PUTREC=         JMP@   .+1
.DUSR .WAITTRANSFER=   JMP@   .+2
.DUSR .REPEATSHARE=    JMP@   .+3
.DUSR .TRANSFER=       JMP@   .+4
.DUSR .INBLOCK=        JMP@   .+5
.DUSR .OUTBLOCK=       JMP@   .+6
.DUSR .FREESHARE=      JMP@   .+8
.DUSR .INCHAR=         JMP@   .+7
.DUSR .OUTSPACE=       JMP@   .+9
.DUSR .OUTCHAR=        JMP@   .+10
.DUSR .OUTNL=          JMP@   .+11
.DUSR .OUTEND=         JMP@   .+12
.DUSR .OUTTEXT   =     JMP@   .+13
.DUSR .OUTOCTAL=       JMP@   .+14
.DUSR .SETPOSITION=    JMP@   .+15
.DUSR .CLOSE=          JMP@   .+16
.DUSR .OPEN=           JMP@   .+17

.DUSR INTGIVEUP=              .+22
.DUSR INTBREAK=               .+24

.DUSR MZSTART=156            ;  INTERPRETER PAGE ZERO START:

.LOC 218
.DUSR NEWCAT=		JSR@   .
.DUSR FREECAT=		JSR@   .+1

; COROUTINE MONITOR ENTRIES
;
 .LOC 220
.DUSR COROU=15           ; CURRENT COROUTINE
.DUSR CDELAY=JSR@   .    ; DELAY(TIME)
.DUSR WAITSE=JSR@   .+1    ; WAITSEM(SEMAPHORE)
.DUSR WAITCH=JSR@   .+2    ; WAITCHAINED(SEMAPHORE)
.DUSR CWANSW=JSR@   .+3    ; WAITANSWER(BUF)
.DUSR CTEST =JSR@   .+4    ; TESTOUT REGISTERS
.DUSR CPRINT=JSR@   .+5    ; TESTOUT RECORD
.DUSR CTOUT =JSR@   .+6    ; TESTGENERAL
.DUSR SIGNAL=JSR@   .+7    ; SIGNAL(SEMAPHORE);
.DUSR SIGCH =JSR@   .+8    ; SIGNAL CHAINEDD(SEMAPHORE)
.DUSR CPASS =JSR@   .+9    ; PASS
«ff»
; FILE SYSTEM ENTRIES

.LOC 230
.DUSR CREATEENTRY=JSR@ .  ;
.DUSR LOOKUPENTRY=JSR@ .+1  ;
.DUSR CHANGEENTRY=JSR@ .+2  ;
.DUSR REMOVEENTRY=JSR@ .+3  ;
.DUSR INITCATALOG=JSR@ .+4  ;
.DUSR SETENTRY=  JSR@ .+5  ;

; PAGE SYSTEM ENTRIES

.LOC .+6
.DUSR COMON   = JSR@ .		; COROUTINE MONITOR
.DUSR CALL    = JSR@ .+1
.DUSR GOTO    = JSR@ .+2
.DUSR GETADR  = JSR@ .+3
.DUSR GETPOINT= JSR@ .+4
.DUSR PWSIZE  = 12   ; NO OF WORKING LOCATIONS PR PROGRAM
.DUSR PCWSIZE =  6   ; NO OF WORKING LOCATIONS PR COROUTINE

; HEAD OF CORE CHAIN
.DUSR CORE    =  .+5
.DUSR COMLIST =  .+6    ; ADDR OF PROC XCOMX ENTRYLIST
.DUSR COMNO   =  .+7    ; NO OF ENTRYS IN COMLIST


; EXTENDED COROUTINE MONITOR ENTRIES
;

;
;
.LOC 244
.DUSR CSENDM=JSR@   .   ;
.DUSR SIGGEN=JSR@   .+1   ;
.DUSR WAITGE=JSR@   .+2   ;
.DUSR CTOP  =JSR@   .+3   ;


.DUSR DEVTA=256-8	; DEVICE TABLE
.DUSR TOPDE=DEVTA+63-3	; TOP OF DEVICE TABLE

.END
«ff»
«nul»