|
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: 5632 (0x1600) Types: TextFile Notes: RCSL-43-GL- Names: »YMSNO«
└─⟦45bd0f8dd⟧ Bits:30000464 DOMUS disk image └─⟦this⟧ └─⟦6dbcc9c03⟧ Bits:30000463 DOMUS disk image └─⟦this⟧ └─⟦a2e222af0⟧ Bits:30001626 DOMUS disk image └─⟦this⟧
; RCSL: 43-GLXXXX ; AUTHOR: CHH/FRS ; EDITED:80.01.25 ; MSNOP ; MONITOR AND INTERRUPT SNOOPER ; KEYWORD: MUS, MONITOR, INTERRUPT, SNOOPER, LISTING. ;ABSTRACT: SNOOPS ALL MONITOR FUNCTIONS AND INTERRUPTS ; AND SAVES CUR, PSW, COROUT, DEVICE CODE ; OR MONITOR CALL, AC0, AC1, AC2, CURRENT ; MESS BUFFER IN A CYCLIC BUFFER IN CORE. ; IF PSW < 62 THE PROGR. WILL GOING IN HALT. ; THE PROGRAM WILL ALSO ; COMPARE UP TO 20 CONST WITH ACTUELL ; CONST IN CORE . ; ASCII PAPER TAPE RCSL 43-GLXXXX. ; REL. BIN. DC001 RCSL 43-GLXXXX. ; REL. BIN. DC101 RCSL 43-GLXXXX. «ff» .TXTM 1 ; TEXT BYTES PACKED LEFT/RIGHT .TITLE MSNOP .NREL .RDX 10 RECS = 64 ; NO OF RECORDS IN THE BUFFER .RDX 8 S0000: ; START OF PROGRAM DESCRIPTION 1B0+1 ; PSPEC, OWN PROCESS DESCRIPTOR A0000 ; PSTART 0 ; CHAIN P0000-S0000 ; SIZE .TXT .MSNOP. ; .TXT /800125 MSNOP 00.01/; IDENT A0000: ; INTDS ; DISABLE INTERRUPT LDA 0 AR100 ; AC0 := SEARCHING INSTR. LDA 2 1 ; AC2:= INTR RESPO. ADDR LDA 1 MIN1 ; AC1:=MINIMAL VALUE FROM INTR.RESPO. JSR AR10 ; LDA 1 A1200 ; STA 1 +1,2 ; SAVE 'A0100' IN RESTO 2 STA 2 A1010 ; LDA 0 AR200 ; LDA 2 3 ; AC2:= ADDR MONITOR CALL LDA 1 MIN2 ; JSR AR10 ; LDA 1 A1400 ; STA 1 +1,2 ; SAVE A0200'S ADDR IN RESTO 4 STA 2 A1310 ; INTEN ; ENABLE INTERRUPT LDA 2 CUR ; A0010: ; STOPPROCESS ; STOPPROCESS JMP .-1 ; AR10: STA 3 A1300 ; ADD 1,2 ; AC2:=MIN+ADDR INC 2,2 ; LDA 3 +0,2 ; SUB# 0,3 SZR ; IF AC2(0) <> AC0 THEN JMP .-3 ; GOTO 1; LDA 0 A1100 ; ELSE FOUND INSTR STA 0 +0,2 ; SAVE JMP@.+1 IN RETSO 1 + 3 JMP @ A1300 ; «ff» A0100: ; JSR B0000 ; SAVE VARIABLES AR100: LDA 3 TABLE ; RESTORE RESTO 1 ADD 1,3 ; RESTORE RESTO 2 LDA 2 A1010 ; JMP +2,2 ; RETURN TO INTR.RESPO. A0200: ; LDA 1 .1B0 ; SET BIT 0 FOR MONITOR CALL ADD 2,1 ; ADD MONITOR CALL NO JSR B0000 ; SAVE VARIABLES AR200: LDA 1 .EVENT ; ADD 3,1 ; LDA 2 A1310 ; JMP +2,2 ; B0000: ; STA 3 A1300 ; SAVE RETURN STA 0 A1000 ; SAVE AC0 LDA 2 B1300 ; GET RECORD ADDRESS LDA 3 CUR ; STA 3 +0,2 ; SAVE CUR STA 1 +3,2 ; SAVE DEVICE CODE LDA 0 0 ; STA 0 +1,2 ; SAVE PSW LDA 0 COROUT ; STA 0 +2,2 ; SAVE COROUT LDA 0 AC0,3 ; STA 0 +4,2 ; SAVE CUR.AC0 LDA 0 AC1,3 ; STA 0 +5,2 ; SAVE CUR.AC1 LDA 0 AC2,3 ; STA 0 +6,2 ; SAVE CUR.AC2 LDA 0 BUF,3 ; STA 0 +7,2 ; SAVE BUF LDA 0 .8 ; ADD 0,2 ; STA 2 B1300 ; B1300:=NEXT RECORD LDA 0 0 ; IF PSW < 62 THEN LDA 2 62 ; ILS 0,2 ; HALT ; HALT; LDA 3 CPOINT ; CCHECK: LDA 2 0,3 ; MOV 2,2 SZR ; JMP ICOMP ; COMPARE; LDA 3 CUR ; LDA 0 A1000 ; GET AC0 DSZ B1100 ; IF BUFFER FULL THEN JMP @ A1300 ; BEGIN LDA 2 B1000 ; STA 2 B1100 ; B1100=NO OF RECORDS LDA 2 B1200 ; STA 2 B1300 ; B1300=START OF BUFFER JMP @ A1300 ; END; RETURN; «ff» ICOMP: LDA 2 +0,2 ; IF PATTERN <> ADDR.PATTERN THEN LDA 0 +1,3 ; SUB# 0,2 SZR ; HALT ; HALT; LDA 0, .2 ; ADD 0,3 ; AC3:=AC3+2; JMP CCHECK ; GOTO CHECK TERMINATOR; «ff» A1000 : 0 ; SAVE AC0 A1010 : 0 ; RETURN TO INTERRUPT RESPONSE A1100 : JMP @ .+1 ; A1200 : A0100 ; A1300 : 0 ; A1310 : 0 ; RETURN TO MONITOR FUNCTIONS MIN1 : 14 ; MINIMAL VALUE INTR.RESPO MIN2 : 6 ; MINIMAL VALUE MONITOR CALL A1400 : A0200 ; CPOINT : A1500 ; CHECK RECORD POINTER A1500 : 0 ; ADDR X 1 ; PATTERN Y 0 ; ADDR X 1015 ; PATTERN Y 3 ; ADDR X 1015 ; PATTERN Y 4 ; ADDR X 1015 ; PATTERN Y 5 ; ADDR X 1015 ; PATTERN Y 6 ; ADDR X 1015 ; PATTERN Y 7 ; ADDR X 1015 ; PATTERN Y 10 ; ADDR X 1015 ; PATTERN Y 0 ; TERMINATOR B1000 : RECS ; NO OF RECORDS B1100 : RECS ; ACTUAL NO OF REC. LEFT IN BUFFER B1200 : .+2 ; POINTER TO BUFFER B1300 : .+1 ; POINTER TO NEXT RECORD .BLK 10*RECS ; BUFFER B1300+1 ; START OF BUFFER «ff» ; PROCESS DESCRIPTION P0000: ; START OF PROCESS DESCRIPTION 0 ; NEXT 0 ; PREV 0 ; CHAIN P9999-P0000 ; SIZE .TXT .MSNOP. ; NAME P0000+EVENT ; EVENT, FIRST P0000+EVENT ; EVENT, LAST 0 ; BUFFER, FIRST FREE S0000 ; PROG, PROGRAM DESC START 0 ; STATE,RUNNING 0 ; TIMER 1B6 ; PRIORITY A0010 ; BREAK ADDRESS 0 ; AC0 0 ; AC1 0 ; AC2 0 ; AC3 A0000*2 ; PSW P9999: ; END OF PROCESS DESCRIPTION .END P0000 «ff» «nul»