|
|
DataMuseum.dkPresents historical artifacts from the history of: RegneCentralen RC3600/RC7000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RegneCentralen RC3600/RC7000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 14848 (0x3a00)
Types: TextFile
Notes: RCSL-43-GL-8999, RCSL-43-GL-9000
Names: »MUPAR«
└─⟦45bd0f8dd⟧ Bits:30000464 DOMUS disk image
└─⟦this⟧ »/MUPAR«
└─⟦6dbcc9c03⟧ Bits:30000463 DOMUS disk image
└─⟦this⟧ »/MUPAR«
└─⟦a1ade7893⟧ Bits:30000467 DOMUS disk image, Nakskov Gymnasium, RC-BASIC/COMAL
└─⟦this⟧ »/MUPAR«
└─⟦a2e222af0⟧ Bits:30001626 DOMUS disk image
└─⟦this⟧ »/MUPAR«
└─⟦d04eec1df⟧ Bits:30000466 DOMUS disk image (Nakskov Gymnasium)
└─⟦this⟧ »/MUPAR«
└─⟦d85593a46⟧ Bits:30000470 DOMUS disk image - User files
└─⟦this⟧ »/MUPAR«
; 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»
.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»