|
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: 3072 (0xc00) Types: TextFile Names: »YLPX1«
└─⟦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 PRINTER DRIVER *** PHEAD: 1B0+1B1+1B7+1 ; PROGRAM SPECIFICATION PINIT ; START 0 ; CHAIN PDES-PHEAD ; SIZE .TXT .LPT<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 1 .10 ; IF CHAR = LF THEN SUB# 0,1 SZR ; BEGIN JMP PKDOA ; OUTCHAR(CHAR); JSR PDOAS,2 ; OUTCHAR(CR); LDA 0 .13 ; 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 .1B14 ; STATUS:=OFFLINE; 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 ; JMP PDONE ; END; PCLOSE: ; CLOSE: LDA 0 .15 ; JSR PDOAS,2 ; SET TTY OFF; JMP PDONE ; END; ; GOTO DONE; .14 : 14 «ff» PDES: ; PROCESS DESCRIPTOR 0 ; NEXT 0 ; PREV 0 ; CHAIN PTOP-PDES ; SIZE .TXT .LPT<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 ; 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»