|
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: 4096 (0x1000) Types: TextFile Names: »YPPX2«
└─⟦45bd0f8dd⟧ Bits:30000464 DOMUS disk image └─⟦this⟧ └─⟦6dbcc9c03⟧ Bits:30000463 DOMUS disk image └─⟦this⟧ └─⟦a2e222af0⟧ Bits:30001626 DOMUS disk image └─⟦this⟧
.TXTM 1 .RDX 10 .TITL PPX02 .NREL ; *** TELETYPE PUNCH DRIVER *** PHEAD: 1B0+1B1+1B7+1 ; PROGRAM SPECIFICATION PINIT ; START 0 ; CHAIN PDES-PHEAD ; SIZE .TXT .PTP<0><0>. ; NAME _PINIT: SUB 1,1 ; BREAK: MOVZL 0,0 SNC ; IF -. POWER THEN STA 1 RESERVER,2 ; RESERVER.CUR:=0; PNEXT: NEXTOPERATION ; START: SETRESERVATION ; +0 CONTROL JMP PCONTR ; +1 IRR STA 0 PMODE,2 ; SAVE MODE LDA 0 .1 ; DISABLE INTR FOR TTO SKPBZ 9 ; JMP .-1 ; MSKO 0 ; POUT: LDA 1 ADDRESS,2 ; REPEAT GETBYTE ; GETBYTE; LDA 3 PMODE,2 ; MOV 3,3 SNR ; IF MODE <> 0 THEN JMP PJDOA ; BEGIN MOVZS 0,1 ; ADD 1,1 SZR ; PARITY:=PARITY(CHR); JMP .-1 ; MOVCR 3,3 SNC ; IF MODE=EVEN THEN ADDOR 3,3 ; PARITY:=-,PARITY; MOVS 3,3 ; CHR:=CHR ADD PARITY SHIFT 7; ADD 3,0 ; END; PJDOA: LDA 1 .127 ; IF CHAR = TTYOFF THEN AND 0,1 ; LDA 3 .15 ; SUB# 1,3 SZR ; BEGIN JMP PKDOA ; OUTCHAR(CHAR); JSR PDOAS,2 ; OUTCHAR(TTYON); LDA 0 .14 ; END; PKDOA: JSR PDOAS,2 ; ELSE OUTCHAR(CHAR); ISZ ADDRESS,2 ; ADDR:=ADDR+1; DSZ COUNT,2 ; COUNT:=COUNT-1; JMP POUT ; UNTIL COUNT = 0; PDONE: SUB 0,0 ; MSKO 0 ; ENABLE INTR FOR ALL RETURNANSWER ; SENDANSWER; JMP PNEXT ; GOTO NEXTOPERRATION; POFFL: SUB 0,0 ; ENABLE TTY INTR; MSKO 0 ; LDA 0 .1B11 ; STATUS:=EM; JMP PDONE+2 ; «ff» PCONTR: MOV 0,0 SNR ; CASE MODE OF JMP PDONE ; SENSE:; LDA 1 .4 ; AND# 0,1 SZR ; POSITION:; JMP PDONE ; LDA 1 .1 ; SKPBZ 9 ; JMP .-1 ; OPEN,CLOSE:DISABLE INTR; MSKO 1 ; LDA 1 .8 ; AND# 0,1 SZR ; OPEN: JMP PCLOSE ; BEGIN LDA 0 .14 ; SET TTY ON; JSR PDOAS,2 ; JSR PNULL ; PUNCH NULL; JMP PDONE ; END; PCLOSE: ; CLOSE: JSR PNULL ; BEGIN LDA 0 .15 ; PUNCH NULL; JSR PDOAS,2 ; SET TTY OFF; JMP PDONE ; END; ; GOTO DONE; PNULL: STA 3 PRET1,2 ; PROCEDURE PUNCH NULL; LDA 1 .128 ; BEGIN STA 1 COUNT,2 ; SUB 0,0 ; FOR I:=1 STEP 1 TO 128 DO JSR PDOAS,2 ; OUTCHAR(NULL); DSZ COUNT,2 ; JMP .-3 ; JMP@ PRET1,2 ; END; .14 : 14 «ff» PDES: ; PROCESS DESCRIPTOR 0 ; NEXT 0 ; PREV 0 ; CHAIN PTOP-PDES ; SIZE .TXT .PTP<0><0>. ; NAME PDES+EVENT ; EVENT PDES+EVENT ; EVENT 0 ; BUF PHEAD ; PROG 0 ; STATE 0 ; TIMER 1B0+1B1+1 ; PRIOR PINIT ; BREAK PDES ; PDES 0 ; AC1 PDES ; AC2 0 ; AC3 PINIT*2 ; PSW 0 ; SAVE 0 ; BUF 0 ; ADDRESS 0 ; COUNT 0 ; RESERVER=0 PMODE=.-PDES ; MODE 0 ; 0 ; CONV=0 PRETURN=.-PDES ; RETURN FROM OUTCHAR 0 ; PRET1=.-PDES ; RETURN1 0 PDOAS=.-PDES ; OUTCHAR: STA 3 PRETURN,2 ; PDOAS: PDC: SKPBZ 9 ; IF TTO NOT BUSY THEN JMP PDA ; BEGIN SKPBN 8 ; IF TTI.DONE <> 0 THEN JMP POFFL ; GOTO OFFLINE; PDB: DOAS 0 9 ; PUTBYTE(TTO); JMP@ PRETURN,2 ; RETURN; PDA: LDA 1 .0 ; END; LDA 2 .1 ; WAITINTERUPT ; WAIT 20 MS JMP PDC ; PTOP: ; TOP OF PROCESS DESCRIPTOR .END PDES «ff» «nul»