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

⟦f98edf7b7⟧ TextFile

    Length: 5120 (0x1400)
    Types: TextFile
    Notes: RCSL-43-GL-10380, RCSL-43-GL-10381
    Names: »MCPAR«

Derivation

└─⟦45bd0f8dd⟧ Bits:30000464 DOMUS disk image
    └─ ⟦this⟧ »/MCPAR« 
└─⟦6dbcc9c03⟧ Bits:30000463 DOMUS disk image
    └─ ⟦this⟧ »/MCPAR« 
└─⟦a1ade7893⟧ Bits:30000467 DOMUS disk image, Nakskov Gymnasium, RC-BASIC/COMAL
    └─ ⟦this⟧ »/MCPAR« 
└─⟦a2e222af0⟧ Bits:30001626 DOMUS disk image
    └─ ⟦this⟧ »/MCPAR« 
└─⟦d04eec1df⟧ Bits:30000466 DOMUS disk image (Nakskov Gymnasium)
    └─ ⟦this⟧ »/MCPAR« 
└─⟦d85593a46⟧ Bits:30000470 DOMUS disk image - User files
    └─ ⟦this⟧ »/MCPAR« 

TextFile


;				RCSL:	43-GL10381
;				AUTHOR:	JHA
;				EDITED:	80.06.27


























;		MCPAR.00




















; KEYWORDS:	RC3600,ASSEMBLER,DEFINITIONS,LISTING

; ABSTRACT:	THIS FILE CONTAINS A NUMBER OF
;		UTILITY MACRO DEFINITION STRINGS

; RCSL: 43-GL10380: ASCII SOURCE TAPE
«ff»

	.TITLE	MCPAR


; THE MACROS DEFINED IN THIS FILE ARE:

; M.ZON		PRODUCES A ZONE WITH A SPECIFIED
;		NUMBER OF SHARES AND BUFFERS

; M.OR		PRODUCES THREE INSTRUCTIONS TO
;		SIMULATE AN 'OR' INSTRUCTION

; M.PCD		PRODUCES A STANDARD PROCESS
;		DESCRIPTOR

; M.MBF		PRODUCES A NUMBER OF MESSAGE BUFFERS

«ff»

; M.ZON NAME,KIND,BUFS,SHAREL,FORM,GIVEUP(,MASK(,CONV(,RECLGT)))

; A CALL OF THIS MACRO WILL PRODUCE A ZONE WITH
; A NUMBER OF SHARES AND BUFFERS.

; PARAMETERS:

; NAME:		ZONE NAME. MUST BE EXACT FIVE BYTES LONG.

; KIND:		ZONE KIND.

; BUFS:		NUMBER OF SHARES AND DATA BUFFERS.

; SHAREL:	NUMBER OF BYTES IN EACH DATA BUFFER.
;		MUST BE AN EVEN NUMBER.

; FORM:		RECORD FORMAT (U,UB,F,FB,V OR VB).

; GIVEUP:	ADDRESS OF GIVEUP PROCEDURE.

; MASK:		GIVEUP MASK. DEFAULT 8'177777 (SEE BELOW).

; CONV:		CONVERSION TABLE WORD ADDRESS.
;		DEFAULT 0 (SE BELOW).

; RECLGT:	LENGTH OF EACH RECORD.
;		DEFAULT 0 (SEE BELOW)



; THE LAST, THE TWO LAST, OR THE THREE LAST PARAMETERS
; MAY BE OMITTED. IN THIS CASE THE DEFAULT VALUES ARE USED.

; EXAMPLE:

; .EJEC
; .RDX	8
;
; DISC:				; DISC ZONE DESCRIPTION
;
;	M.ZON DISC<0>,30.,1,512.,U,PGIVE,177776
«ff»

; M.OR ACS,ACD

; A CALL OF THIS MACRO WILL PRODUCE THREE INSTRUCTIONS
; TO SIMULATE AN 'OR' INSTRUCTION.
; NOTE: THE SOURCE ACCUMULATOR IS DESTROYED!!

; PARAMETERS:

; ACS:		SOURCE ACCUMULATOR.

; ACD:		DESTINATION ACCUMULATOR.



; EXAMPLE:

;	M.OR	0,3		; AC3 := AC0 OR AC3
«ff»

; M.PCD NAME,BUFFER,PROGRAM,PRIOR,BREAK,START

; A CALL OF THIS MACRO WILL PRODUCE A PROCESS DESCRIPTOR
; WITH ALL FIELDS DEFINED. NO OPTIONAL WORDS ARE INCLUDED.

; PARAMETERS:

; NAME:		PROCESS NAME. MUST BE EXACT FIVE BYTES LONG.

; BUFFER:	ADDRESS OF MESSAGE BUFFER CHAIN HEAD.

; PROGRAM:	ADDRESS OF PROGRAM DESCRIPTOR.

; PRIOR:	PRIORITY OF THE PROCESS.

; BREAK:	PROGRAM BREAK ADDRESS.

; START:	PROGRAM START ADDRESS.



; EXAMPLE:

; .EJEC
; PCD:			; PROCESS DESCRIPTOR
;
;	M.PCD MAIN<0>,MBF,PGD,1B7,PBREA,PSTAR
«ff»

; M.MBF PROCESS,NUMBER

; A CALL OF THIS MACRO WILL PRODUCE A NUMBER OF
; MESSAGE BUFFERS.

; PARAMETERS:

; PROCESS:	ADDRESS OF PROCESS DESCRIPTOR

; NUMBER:	NUMBER OF MESSAGE BUFFERS.



; EXAMPLE:

; .EJEC
; MBF:			; MESSAGE BUFFERS
;
; 	M.MBF PCD,10.
«ff»



.MACRO	M.ZON
.PUSH	.NOLOC
.NOLOC	1

.IFE	^3
*** ; ILLEGAL NO OF BUFFERS ; ***
.GOTO	FIN
.ENDC

.PUSH	.TXTM
.TXTM	1
.PUSH	.TXTN
.TXTN	0
.PUSH	.RDX
.RDX	8

.IFL	.ARGCT-9.
.PUSH	0
.ENDC	ENDE
.PUSH	^9
ÆENDEÅ

«ff»

.DO	'^5'=='U'
.PUSH	0
.GOTO	NEXT
.ENDC

.DO	'^5'=='UB'
.PUSH	1
.GOTO	NEXT
.ENDC

.DO	'^5'=='F'
.PUSH	2
.GOTO	NEXT
.ENDC

.DO	'^5'=='FB'
.PUSH	3
.GOTO	NEXT
.ENDC

.DO	'^5'=='V'
.PUSH	4
.GOTO	NEXT
.ENDC

.DO	'^5'=='VB'
.PUSH	5
.GOTO	NEXT
.ENDC

*** ; ILLEGAL RECORD FORMAT ; ***
.GOTO	FIN

ÆNEXTÅ

.IFL	.ARGCT-8.
.PUSH	0
.ENDC	ENDE
.PUSH	^8
ÆENDEÅ

.IFL	.ARGCT-7.
.PUSH	177777
.ENDC	ENDE
.PUSH	^7
ÆENDEÅ
«ff»

.PUSH	.
.TXT	'^1'			; ZNAME
.IFN	.-.POP-3
*** ; ILLEGAL NAME LENGTH ; ***
.ENDC
	Z			; SIZE
	0			; ZMODE
	^2			; ZKIND
	.POP			; ZMASK
	^6			; ZGIVE
	1			; ZFILE
	1			; ZBLOCK
	.POP*2			; ZCONV
	.+Z-ZBUFF		; ZBUFF
	^4/2+SSIZE		; ZSIZE
	.POP			; ZFORM
	.POP			; ZLENGTH
	.+Z+SSIZE-ZFIRS*2	; ZFIRST
	.+Z+SSIZE-ZTOP*2	; ZTOP
	.+Z-ZUSED		; ZUSED
	^4			; ZSHAREL
	0			; ZREM
.BLK	ZAUX			; Z0

.PUSH	.
.PUSH	1
.DO	^3
.NOLOC	0

.NOLOC	1
	0			; SOPER
	0			; SCOUNT
	0			; SADDR
	0			; SSPEC
.IFN	^3-.TOP
	.+SSIZE+(^4/2)-SNEXT	; SNEXT
.ENDC	ENDE
.NOLOC	.POP			; DUMMY
	.POP			; SNEXT
.PUSH	^3-1
ÆENDEÅ
	0			; SSTAT
	.+1*2			; SFIRS
.BLK	^4/2			; BUFFER
.PUSH	.POP+1
.ENDC
.NOLOC	.POP			; DUMMY
.RDX	.POP
.TXTN	.POP
.TXTM	.POP
ÆFINÅ
.NOLOC	.POP
%
«ff»

.MACRO	M.OR
	COM	^1,^1
	AND	^1,^2
	ADC	^1,^2
%
«ff»

.MACRO	M.PCD
.PUSH	.NOLOC
.NOLOC	1

.PUSH	.TXTM
.TXTM	1
.PUSH	.TXTN
.TXTN	0


	.+0		; NEXT
	.-1		; PREV
	0		; CHAIN
	0		; CARRY
.PUSH	.
.TXT	'^1'		; NAME
.IFN	.-.POP-3
*** ; ILLEGAL NAME LENGTH ; ***
.ENDC
	.+0		; EVENT
	.-1		; EVENT
	^2		; BUFFER
	^3		; PROGRAM
	1B0		; STATE
	0		; TIMER
	^4		; PRIORITY
	^5		; BREAK
	0		; AC0
	0		; AC1
	.-AC2		; AC2
	0		; AC3
	^6*2		; PSW
	0		; SAVE

.TXTN	.POP
.TXTM	.POP
.NOLOC	.POP
%
«ff»

.MACRO M.MBF
.PUSH	.NOLOC


			; MESSAGE BUFFERS

.NOLOC	1
.PUSH	.RDX
.RDX	10
.PUSH	1
.DO	^2
.IFE	.TOP-(.TOP/4*4)-1
.IFN	.TOP-1
.EJEC
.ENDC
.ENDC
.NOLOC	0

.NOLOC	1
	.+0		; NEXT
	.-1		; PREV
	.+BSIZE-CHAIN	; CHAIN
	BSIZE		; SIZE
	^1		; SENDER
	0		; RECEIVER
	0		; MESS0
	0		; MESS1
	0		; MESS2
	0		; MESS3
.PUSH	.POP+1
.ENDC
.NOLOC	.POP
.RDX	.POP
.NOLOC	.POP
%
.EOT
«ff»
«nul»