|
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 - download
Length: 7168 (0x1c00) Types: TextFile Notes: RCSL-43-AA- Names: »YPANE«
└─⟦45bd0f8dd⟧ Bits:30000464 DOMUS disk image └─⟦this⟧ └─⟦6dbcc9c03⟧ Bits:30000463 DOMUS disk image └─⟦this⟧ └─⟦a2e222af0⟧ Bits:30001626 DOMUS disk image └─⟦this⟧
; 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»