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

⟦038617c3e⟧ TextFile

    Length: 7168 (0x1c00)
    Types: TextFile
    Notes: RCSL-43-AA-
    Names: »YPANE«

Derivation

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

TextFile


;					RCSL:	43-AA XXX

;					AUTHOR:	HEJ/FRS

;					EDITED:	81.05.27	






















;			PANEL















; KEYWORDS:	MUS, UTILITY.

; ABSTRACT:	THIS PROGRAM IS USED FOR LOOKUP
;		AND CHANGING OF LOCATIONS IN RC3600 MEMORY.

; ASCII	SOURCE:		RCSL: 43-AA XXX

«ff»

;					RCSL:	43-AA XXX





;		PANEL






; INPUT: <ADR> <OLD> <NEW>
;
; FUNCTION:   IF CORE(ADR) = OLD THEN CORE(ADR):= NEW
;
; OUTPUT: ADR:<ADR> OLD/NEW <CORE(ADR)> ... <CORE(ADR+7)>
;
;
;	ALL VALUES ARE OCTAL.
;	ADR MUST BE A WORD ADDRESS, AND NOT PAGE 0    (20-37).
;
;
;
;
; EXAMPLE:
;
;	LOOKUP THE VALUES IN ADDR 2345 - 2354.
;	AND CHANGE 2345 TO 4444.
;
;
; >PANEL
; 2345
; ADR:002345 OLD:000777 055031 034103 000414 055031 034104 000072 006007
; 2345 777 4444
; ADR:002345 NEW:004444 055031 034103 000414 055031 034104 000072 006007
;
;




; REVISIONS:


	.TITLE PAN01		; 1981.05.27   FRS


«ff»
;
; INPUT: <ADR><SP><OLD><SP><NEW>	ALL VALUES ARE OCTAL
; OUTPUT: ADR: <ADR> OLD/NEW: <CONTENTS OF CORE(ADR:ADR+7)>
;    ADR MUST BE A WORD ADDRESS AND NOT PAGE 0   ( 20-37)
;
	.NREL
	.TXTM 1
	.RDX 10
DPROG:	1
	DSTRT
	0
	DPROC-DPROG
.TXT	.PAN01.			; PAN<REVISION>  TO SAVE SPACE

DSTRT:				;START: BREAK:
	LDA	1	.1	;  INPUT
	STA	1	MS0	;
	LDA	0	LINEX	;
	JSR		OPCOM	;  OPIN(LINE); OPWAIT(LENG)
	SUBO	0,0		;
	STA	0	P	;  P:= 0
	LDA	1	ADRX	;
	STA	1	VALX	;
	JSR		READOCTAL;  ADR
	JSR		READOCTAL;  OLD
	JSR		READOCTAL;  NEW
	LDA	1	.3	;
	STA	1	MS0	;  OUTPUT
	LDA	0	TEXT1	;
	JSR		OPCOM	;  OPMESS(ADR:)
	LDA	1	ADRX	;
	STA	1	VALX	;  VALUE:= ADR
	JSR		UD	;  OUTOCTAL(ADR)
	LDA	1	OLD	;
	LDA	0	TEXT3	;
	LDA	2	ADR	;
	LDA	3	.1B12	;  NEXTADDR:=ADDR+8;
	ADD	2,3		;
	STA	3	NADR	;
	STA	2	VALX	;
	LDA	3	0,2	;
	SUB #	3,1,SZR		;  IF CORE(ADR) = OLD THEN
	JMP		D120	;  
	LDA	1	NEW	;  BEGIN
	STA	1	0,2	;    CORE(ADR):= NEW
	LDA	0	TEXT2	;    OPMESS(NEW:)
				;  END ELSE
D120:	JSR		OPCOM	;    OPMESS(OLD:)
	LDA	0	.1B12	;  FOR I:=0 STEP 1 UNTIL 8 DO
	STA	0	CCOUNT	;  
	JSR		UD	;    WRITE(OUT,VALUE);
	DSZ		CCOUNT	;    
	JMP	.-2		;  
	LDA	0	CRX	;
	JSR		OPCOM	;  OPMESS ( CR)
	JMP		DSTRT	;  GOTO START

«ff»


;	VARIABLES

	ZZ= '??'	;  IN UNUSED LOCATIONS
CCOUNT:	ZZ
NADR:	0

CONSL:	.+1
	.TXT	.TTY<0><0>.
MESS:	.+1
MS0:		1
MS1:		P-LINE*2
MS2:		LINE*2
LENG:		ZZ
LINEX:	LINE*2
LINE:	.DO 10
		0
 **	.ENDC
P:		ZZ
VALX:		ZZ
ADRX:	.+1
ADR:		0
OLD:		ZZ
NEW:		ZZ
TEXT1:	.*2+2
	.TXT	.ADR:.
TEXT2:	.*2+2
	.TXT	.NEW:.
TEXT3:	.*2+2
	.TXT	.OLD:.
CRX:	.*2+2
	.TXT	.<10>.

«ff»
;
;	PROCEDURE OPCOM
;
;	AC0: BYTEADDR OF TEXTSTRING
;

OPCOM:	STA	3	LINK1	;ENTRY:   SAVE LINK
OPCON:	STA	0	MS2	;ENTRY FROM UD
	LDA	1	MESS	;
	LDA	2	CONSL	;  SENDMESSAGE( TTY, MESS)
	SENDMESSAGE
	WAITANSWER
	STA	1	LENG	;  SAVE BYTES TRANSFERRED
	JMP@		LINK1	;  RETURN

LINK1:	JMP		LINK1	;


;
;	PROCEDURE READOCTAL
;
;	VALX:  ADDR OF VALUE
;	VALX IS INCREMENTED
;

READO:	STA	3	LINK1	;ENTRY:
	SUBO	0,0		;
	STA @	0	VALX	;   VALUE:= 0
	LDA	3	P
	LDA	0	LENG	;
	ADCZ#	3,0,SNC		;  IF P>=LENG THEN GOTO FINIS
	JMP		R200	;
	LDA	1	LINEX	;
	ADD	3,1		;  ADDR OF CUR BYTE
	GETBYTE			;  IF FIRSTBYTE = CR THEN
	LDA	3	.CR	;
	SUB#	0,3 SZR		;
	JMP	R100		;
	LDA	3	NADR	;  CURADDR:=NEXTADDR;
	STA	3	ADR	;
R100:	GETBYTE			;NEXT:
	INC	1,1		;
	ISZ		P	;
	JMP		.+1	;
	LDA	3	.48	;  ZERO
	SUBZ	3,0,SNC		;
	JMP		R200	;
	LDA	3	.7	;
	ADCZ#	3,0,SZC		;
	JMP		R200	;
	LDA @	3	VALX	;
	ADDZL	3,3		;
	MOVZL	3,3		;  VAL:= VAL*8
	ADD	0,3		;		+ CHAR-48
	STA @	3	VALX	;
	JMP		R100	;  GOTO NEXT
R200:	ISZ		VALX	;FINIS:	INCREASE VALX
	JMP @		LINK1	; RETURN


«ff»

;
;       PROCEDURE UD
;
;       VALX:   ADDR OF VALUE TO PRINT
;       VALX IS INCREMENTED
;

UD:     STA     3       LINK1   ;ENTRY:
	LDA @	1	VALX	;  GET VALUE
        ISZ             VALX    ;
	JMP	.+1		;
        LDA     0       LINEX   ;
        STA     0       P       ;
        LDA     0       .24     ;  CHAR:= 24
        MOVOL   1,1             ;  VAL:= VAL<<1 +1
        JMP             CP200   ;  GOTO LAST BIT
CP100:                          ;NEXT CHAR:
        LDA     0       .6      ;  CHAR:= 6
        MOVL    0,0             ;  CHAR:= CHAR<<1 + CARRY
        MOVZL   1,1             ;  VAL:= VAL<<1
        MOVL    0,0             ;  CHAR:= CHAR<<1 + CARRY
        MOVZL   1,1             ;  VAL:= VAL<<1
CP200:                          ;LAST BIT:
        MOVL    0,0             ;  CHAR:= CHAR<<1 + CARRY
        STA     1       LENG    ;  SAVE VAL
        LDA     1       P       ;  GET ADDR
        PUTBYTE                 ;  PUT CHAR
        ISZ             P       ;  INCREASE ADDR
        LDA     1       LENG    ;  GET VAL
        MOVZL   1,1,SZR         ;  VAL:= VAL<<1
        JMP             CP100   ;  IF VAL<>0 THEN GOTO NEXT CHAR
        LDA     0       .32     ;
        LDA     1       P       ;
        PUTBYTE                 ;  PUT SPACE
        INC     1,1             ;
        SUBO    0,0             ;  CHAR:= NUL BYTE
        PUTBYTE                 ;  PUT NUL
        LDA     0       LINEX   ;
        JMP             OPCON   ;       PRINT VALUE

«ff»
            

DPROC:                          ; PROCESS DESCRIPTOR
        0                       ;  NEXT
        0                       ;  PREVIOUS
        0                       ;  CHAIN
        DPTOP-DPROC             ;  SIZE
.TXT    .PANEL.                 ;  NAME


        DPROC+EVENT             ;  FIRST EVENT
        DPROC+EVENT             ;  LAST EVENT
        MESBUFS                 ;  MESSAGE BUFFERS
        DPROG                   ;  PROGRAM HEAD
        0                       ;  STATE
        0                       ;  TIMER
        2000                    ;  PRIORITY
        DSTRT                   ;  BREAK ADDRESS
        DPROC                   ;  AC0
        0                       ;  AC1
        DPROC                   ;  AC2
        0                       ;  AC3
        DSTRT*2                 ;  PSW*2+CARRY
        0                       ; SAVE
MESBUFS:
        .
        .
        0
        10
        DPROC
        0
        ZZ
        ZZ
        ZZ
        ZZ

DPTOP:
        .END DPROC
«ff»
«nul»