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

⟦4b737f72e⟧ TextFile

    Length: 4096 (0x1000)
    Types: TextFile
    Names: »YCHEC«

Derivation

└─⟦45bd0f8dd⟧ Bits:30000464 DOMUS disk image
    └─ ⟦this⟧ »/YCHEC« 
└─⟦6dbcc9c03⟧ Bits:30000463 DOMUS disk image
    └─ ⟦this⟧ »/YCHEC« 
└─⟦a2e222af0⟧ Bits:30001626 DOMUS disk image
    └─ ⟦this⟧ »/YCHEC« 

TextFile

;CODEPROCEDURE CHECK(VAR M:STRING(1);M0:STRING(1);
;			VAR LE:INTEGER;
;			VAR C: INTEGER;VAR B: STRING(1));
;CODEBODY;


.TITL CHECK
.NREL
.RDX 10

A:	JSR@	MZSTART+2	; TAKE ADRR M
	STA	1	MADDR	;
	JSR@	MZSTART+2	; TAKE ADDR M0
	STA	1	M0ADDR	;
	JSR@	MZSTART+2	; TAKE ADDR LE
	MOV	1,3		;
	LDA	1	1,3	;
	STA	1	LI	;
	LDA	1	0,3	;
	STA	1	LE	;
	JSR@	MZSTART+2	; TAKE ADDR C
	STA	1	CADDR	;
	JSR@	MZSTART+2	; TAKE ADDR B
	STA	1	BADDR	;

	SUB	0,0		;
	STA	0	BP	; BP:=0;

	SUBZL	0,0		;
	STA	0	Y	; FOR Y:=1 STEP 1 UNTIL LI-2 DO
YLOOP:
	SUBZL	0,0		;
	STA	0	X	; FOR X:=1 STEP 1 UNTIL LE-1 DO
XLOOP:
	LDA	0	LE	;
	LDA	1	Y	;
	MULTIPLY		;
	LDA	0	X	;
	ADD	0,1		;
	LDA	3	MADDR	;   I:=LE*Y+X;
	ADD	1,3		;
	STA	3	I	;
	DSZ	I		; I:=BYTEADDR(M)+I-1;
	LDA	3	M0ADDR	;
	ADD	1,3		;
	STA	3	I0	;

	SUB	0,0		;
	STA	0	N	; N:=0;
	LDA	1	I	;
	GETBYTE			;
	LDA	3	.7	;
	AND	0,3	SZR	;
	ISZ	N		;
	INC	1,1		;
	INC	1,1		;
	GETBYTE			;
	LDA	3	.7	;
	AND	0,3	SZR	;
	ISZ	N		;
	LDA	0	LE	;
	LDA	1	I	;
	SUB	0,1		;
	GETBYTE			;
	LDA	3	.7	;
	AND	0,3	SZR	;
	ISZ	N		;
	INC	1,1		;
	GETBYTE			;
	LDA	3	.7	;
	AND	0,3	SZR	;
	ISZ	N		;
	INC	1,1		;
	GETBYTE			;
	LDA	3	.7	;
	AND	0,3	SZR	;
	ISZ	N		;
	LDA	0	LE	;
	LDA	1	I	;
	ADD	0,1		;
	GETBYTE			;
	LDA	3	.7	;
	AND	0,3	SZR	;
	ISZ	N		;
	INC	1,1		;
	GETBYTE			;
	LDA	3	.7	;
	AND	0,3	SZR	;
	ISZ	N		;
	INC	1,1		;
	GETBYTE			;
	LDA	3	.7	;
	AND	0,3	SZR	;
	ISZ	N		;

	ISZ	I		;
	LDA	0	N	;
	LDA	3	.2	; IF N=2 THEN EXIT
	SUB#	0,3	SNR	; ELSE
	JMP	AEND		;
	LDA	3	.3	; IF N<>3 THEN INSERT(32,M,I)
	SUB#	0,3	SNR	; ELSE
	JMP	A1		;
	LDA	1	I	;
	GETBYTE			;
	LDA	3	.7	;
	AND	0,3	SNR	;
	JMP	AEND		;
	LDA	1	I0	;
	LDA	0	.32	;
	PUTBYTE			;
	JMP	C0		;
A1:	LDA	1	I	;
	GETBYTE			;
	LDA	3	.7	;
	AND	0,3	SZR	;
	JMP	AEND		;
	LDA	1	I0	;
	LDA	0	.42	; INSERT(42,M,I);
	PUTBYTE			;
C0:
	LDA	1	YS	;
	LDA	3	Y	;
	SUB#	1,3	SZR	;
	JMP	C1		;
	LDA	1	XS	;
	LDA	3	X	;
	SUB#	1,3	SZR	;
	JMP	C1		;

	JSR	CIOUT		;
	JMP	CEND		;
MADDR:	0
M0ADDR:	0
LI:	0
LE:	0
CADDR:	0
BADDR:	0
BP:	0
X:	0
Y:	0
I:	0
I0:	0
N:	0

CIOUT:	STA	3	RET	;
	LDA	1	BP	;
	LDA	3	BADDR	;
	ADD	3,1		;
	PUTBYTE			;
	ISZ	BP		;
	JMP@	RET		;

C2:	STA	3	RET	;
	MOV	0,1		;
	LDA	3	.96	;
	ADD	3,0		;
	AND#	3,1	SNR	;
	JMP@	RET		;
	LDA	3	.64	;
	SUB	3,0		;
	AND#	3,1	SZR	;
	SUB	3,0		;
	JMP@	RET		;

C1:	STA	0	CS	;
	LDA	0	.134	;
	JSR	CIOUT		;
	LDA	0	X	;
	JSR	C2		;
	JSR	CIOUT		;
	LDA	0	Y	;
	JSR	C2		;
	JSR	CIOUT		;
	LDA	0	CS	;
	JSR	CIOUT		;
CEND:
	LDA	0	Y	;
	STA	0	YS	;
	LDA	0	X	;
	INC	0,0		;
	STA	0	XS	;

AEND:
	ISZ	X		;
	SUBZL	0,0		;
	LDA	1	LE	;
	SUB	0,1		;
	LDA	0	X	;
	SUB#	0,1	SZR	;
	JMP@	.XLOOP		;

	ISZ	Y		;
	SUBZL	0,0		;
	LDA	1	LI	;
	SUB	0,1		;
	LDA	0	Y	;
	SUB#	0,1	SZR	;
	JMP@	.YLOOP		;

	LDA	0	BP	;
	LDA	3	CADDR	;
	STA	0	0,3	;
	JMP@	MZSTART+1	; RETURN

RET:	0
CS:	0
YS:	0
XS:	0

.42:	42
.96:	96
.134:	134

.XLOOP:	XLOOP
.YLOOP:	YLOOP

.END A
«ff»
«nul»