|
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: 10752 (0x2a00) Types: TextFile Names: »LKACD«
└─⟦99bc78d90⟧ Bits:30001771 CALL-RUTINER under DP4-DOMAC └─⟦this⟧
PRDE1 ; PROCESS HEAD CDR11 ; ADDRESS OF CARDREAD REV 1.03 .TXT @CARDREAD@ ; NAME OF -------''------- «ff» ; SUBRUTINETABEL GME00 ; GMEM-ADRESSE .TXT "GMEM<0><0><0><0>" ; NAVN KSP00 .TXT "KODESPEC" SME00 .TXT "SMEM<0><0><0><0>" FIX00 .TXT "FIX<0><0><0><0><0>" FLO00 .TXT "FLOAT<0><0><0>" 0 «ff» GME00: 2 REAL REAL+REFERENCE LDA 2,+0,2 ; AC1=A-ADRESSE EXECUTE GSM00 RET1 LDA 1,+0,2 ; JA: AC1=INDHOLD AF ADRESSE BCALL FLOAT ; AC1 -> KOMMATAL LDA 2,U.STK,3 LDA @ 2,+1,2 ; AC2=B-ADRESSE STA 2,GME01 ; GEM B-ADRESSE LDA 2,CUR A.PDOUBLE ; GEM ADRESSEINDHOLD(A) I B 1 GME01: 0 RET1 ; END GMEM «ff» GSM00: LDA 0,+0,2 ; HENT A LDA 1,+1,2 BCALL FIX ; FIX A ADCZR 2,2 ; AC2=1B0-1 MOV 0,0,SNR ; 0<=AC1<=1B0-1 SNG 1,2 JMP ERR90 ; NEJ: ERROR UDSKRIV MEDD. MOV 1,2 ; AC1-->AC2 RET1 ; RETURN ERR90: ERROR 90 ERR91: ERROR 91 KSP00: 0 READS 0 STA 0,KSP01 RET1 KSP01: 0 «ff» SME00: 2 ; 2 VARIABLE REAL ; A (=A-ADRESSE) REAL ; B (=DATA) LDA 0,KSP01 ; SE GME00 LDA 1,KSP02 SUB 1,0,SZR JMP ERR90 LDA 2,+1,2 ; AC2(!)=B-ADRESSE LDA 0,+0,2 ; HENT REAL(!) B LDA 1,+1,2 BCALL FIX ; FIX B MOV 0,0,SZR ; 0<=B<=65535 ? JMP ERR91 ; NEJ ERROR-RETURN STA 1,U.S00,3 ; GEM AC1(B) I U.S00.USER LDA@ 2,U.STK,3 EXECUTE ; EXEC GSM00(A-ADRESSE) GSM00 RET1 LDA 1,U.S00,3 ; AC1=F(UDA+U.S00)=B STA 1,+0,2 ; AC1-->ADR.AC2 RET1 ; END STOREMEMORY KSP02: 42798 «ff» FIX00: 3 REAL+REFERENCE REAL+REFERENCE REAL+REFERENCE SUBZL 0,0 ; AC0=1 LDA @ 1,+0,2 ; AC1=A-ADRESSE LDA 2,CUR ; AC2=CUR A.GDOUBLE ; HENT A STA 0,U.S00,3 ; GEM ORD 1 AF A SUBC 0,0 ; AC0=0 BCALL FLOAT ; FLOAT ORD2 AF A LDA 2,CUR ; AC2=CUR LDA 3,U.STK,3 ; AC3=F(F(USER)+U.STK) LDA @ 3,+2,3 ; AC3=C-ADRESSE STA 3,FIX01 ; GEM C-ADRESSE A.PDOUBLE ; GEM FLOAT AF ORD2 AF A I B 1 FIX01: 0 LDA 1,U.S00,3 ; HENT ORD1 AF A SUBC 0,0 ; AC0=0 BCALL FLOAT ; FLOAT ORD1 AF A LDA 2,CUR ; AC2=CUR LDA 3,U.STK,3 LDA @ 3,+1,3 ; AC3=B-ADRESSE STA 3,FIX02 ; GEM B-ADRESSE A.PDOUBLE ; GEM FLOAT AF ORD2 AF A I C 1 FIX02: 0 RET1 ; END FIX «ff» FLO00: 3 REAL REAL REAL+REFERENCE LDA 2,+0,2 ; AC1=A-ADRESSE EXECUTE ; EXEC FLO02 FLO02 RET0 ; HVIS ERROR STA 1,U.S00,3 ; GEM DEL 1 AF C LDA 2,U.STK,3 LDA 2,+1,2 ; AC1=B-ADRESSE EXECUTE FLO02 RET0 LDA 0,U.S00,3 ; HENT DEL 1 AF C LDA 2,U.STK,3 LDA @ 2,+2,2 ; AC2=C-ADRESSE STA 2,FLO01 ; GEM C-ADRESSE LDA 2,CUR A.PDOUBLE ; AC0,AC1-->C 1 FLO01: 0 RET1 FLO02: LDA 0,+0,2 LDA 1,+1,2 ; ** CB RET ** BCALL FIX ; LAV OM TIL HELTAL MOV 0,0,SNR ; 0=<A/B=<32K ??? RET1 ; JA: RETURN ERROR ; NEJ: RETURN MED ERROR 90 90. «ff» CDR11: 2 ; INCLUDE TWO PARAMETERS REAL ; INFORMATOR REAL+ARRAY ; DATA STORAGE LDA 1,RSTAT ; LOAD RESERVATION STATUS SZ 1,1 ; SKIP ON ROUTINE IDLE JMP .-2 ; BY REPEATING LDA 1,+5,2 ; LOAD MAX. NO OF ROWS LO 0,0 ; 0=1 SEQ 0,1 ; SKIP IF NO OF ROWS=1 JMP ERR31 ; JMP TO 'INDEKSFEJL' LDA 1,DMADR ; LOAD ADDRESS OF CORE DUMP AREA DOB 1,.CDR ; INSTRUCT CDR CONTROLLER DOAS 0,.CDR ; READ A BINARY CARD SKPBZ .CDR ; WAIT UNTIL BUSY=0 JMP .-1 ; REPEAT DIBC 0,.CDR ; 0=LAST ADDRESS AND CLOSE DEVICE STA 0,U.S05,3 ; STORE LAST CORE ADDRESS SUB 1,0 ; NUMBER OF COLUMNS READ LZ 1,1 ; 1=0 SNZ 0,0 ; SKIP IF NOT ZERO JMP ERR10 ; IF ZERO JMP TO 'KORTLÆSNINGSFEJL' LZ 0,0 ; 0=0 DOA 0,.CDR ; READ STATUS WORD DIA 0,.CDR ; INPUT STATUS WORD STA 0,ERRCODE ; SAVE ERROR CODE SZ 0,0 ; SKIP IF 0=0 JMP ERR10 ; JUMP TO 'KORTLÆSNINGSFEJL' ;«ff» ; ***** READY FOR CONVERTING & TRANSFER ****** LDA 2,0,2 ; 2=ADDRESS OF REAL LDA 0,0,2 ; 0= 1. WORD OF REAL LDA 1,1,2 ; 1= 2. WORD OF REAL BCALL FIX ; FIX REAL SNZ 1,1 ; SKIP IF NOT ZERO JMP ASCII ; JUMP TO ASCII CONVERSION LO 0,0 ; 0=1 SNE 1,0 ; SKIP IF 0 NOT EQUAL TO 1 JMP NUMBER ; JUMP TO NUMBER CONVERSION SNART: LDA 2,U.STK,3 ; LOAD STACKPOINTER LDA 2,+1,2 ; LOAD ADDRESS OF FIRST VECTOR ELEMENT LDA 2,+0,2 ; LOAD ARRAY ADDRESS STA 2,APD03 ; STORE VECTOR ADDRESS IN APD03 LOOPE: LDA 0,DMADR ; LOAD CURRENT CORE ADDRESS MOV 0,2 LDA 1,0,2 ; LOAD CONTENTS OF CORE ADDRESS INC 0,0 ; INCREMENT ADDRESS BY ONE STA 0,DMADR ; SAVE DMADR LZ 0,0 ; 0=0 BCALL FLOAT ; CONVERT COLUMN DATA TO FLOATING POINT LDA 2,CUR ; LOAD ZONE ADDRESS A.PDOUBLE ; PUT CARD DATA INTO VECTOR ELEMENTS 1 ; SEGMENT NO. 1=DATA SEGMENT APD03: 0 ; ADDRESS OF REAL(INDEX) LDA 1,U.S05,3 ; LOAD LAST DUMP ADDRESS LDA 0,DMADR ; LOAD CURRENT DATA LOCATION IN CORE SNE 1,0 ; SKIP IF NOT EQUAL JMP OUT00 ; EXIT FROM ROUTINE LDA 2,APD03 ; LOAD VECTOR ELEMENT ADDRESS INC 2,2 ; INCREMENT INC 2,2 ; INCREMENT 2. TIME STA 2,APD03 ; STORE VECTOR ELEMENT ADDRESS AGAIN JMP LOOPE ; CONTINUE TO LOOPE .EJEC ; **** FINISH CARDREAD PROGRAM **** OUT00: LDA 1,DMOMR ; LOAD FIRST CORE ADDRESS STA 1,DMADR ; RESTORE DMADR LZ 1,1 ; 1=1 STA 1,RSTAT ; RESTORE RESERVATION STATUS RET1 ; ORDINARY RETURN TO COMAL ; ; **«so»KORTLÆSNINGSFEJL ERR10: STA 1,RSTAT ; RESTORE RESERVATION STATUS ERROR 10 ; ERRORNOUS RETURN ; ; **«so»INDEKSFEJL ERR31: STA 1,RSTAT ; RESTORE RESERVATION STATUS ERROR 31 ; ERRORNOUS RETURN ; ; **L ; **«so»LABEL DECLARATION ; RSTAT: 0 ; RESERVATION STATUS ERRCO: 0 ; SAVED ERROR CODE FROM CDR CONTROLLER «ff» DMADR: DMADD ; ADDRESS OF CORE DUMP AREA .CDR= 14 ; CARDREADER NUMBER ; ** AT THE MOMENT DUMMIES «ff» ; NUMBER converting for CARDREAD call routine ; accu. use ____________________________________________ ; ! ! ac0 ! ac1 ! ac2 ! ac3 ! ; ____________________________________________ ; ! at entry ! 1 ! 1 ! undef! user ! ; ! runtime ! data ! mover!adr/12! count ! ; ____________________________________________ ; NUMBER: LDA 2,DMADR ; fetch core dump address NUMB0: LDA 3,USER ;--''-- USER LDA 3,U.S05,3 ; load saved last address SNE 3,2 ; skip DMADR-U.S05 not equal JMP FINIS ; end number if equal LDA 0,0,2 ; load specific data word LO 1,1 ; 1=1 (could be replaced w/SUBZ) MOV 1,3 ; 3 also =1 BZZ: SNE 0,1 ; skip on no equality JMP ADJUST ; finis bzz if 0=1 MOVL 1,1 ; shift ac1 left INC 3,3 ; increment counter register LDA 2,88,0 ; 2=13 SEQ 2,3 ; if 2=3 continue bzz JMP BZZ ; if 2 not equal to 3 continue bzz ADJUST: LDA 2,DMADR ; load current address in core LDA 0,86,0 ; LOAD PAGE ZERO CONSTANT 10 SUB 3,0 ; 10-data STA 0,0,2 ; store counter register contents INC 2,2 ; increment core address STA 2,DMADR ; save core address JMP NUMB0 ; continue number routine FINIS: LDA 2,DMOMR ; load 1.address backup STA 2,DMADR ; restore core dump area address LDA 3,USER JMP SNART ; end of number converting routine ; ; tal konvertering rutine ; indtastning afsluttet d.22.09.81 kl.14.42.00 ved ; «so»Torben Tambo ; «ff» ASCII: JMP SNART ; ASCII CONVERSION DMOMR: DMADD ; ADDRESS OF CORE DUMP AREA AGAIN DMADD: .BLK 41 ; CORE DUMP AREA ; ; ; 1. INDTASTNING AFSLUTTET DEN 14.09.81 KL. CA 14.30 VED Torben Tambo ; .EJEC PRDE2 ; END PROCESS DESCRIBTOR «ff» «ff» «nul»