*1600 PAGE /************* MULTI WORD GATES *********************************** /2.10.73 /CALL: MWAND,MWINOR,MWEXOR; MWCMPL,MWUND,MWODER / INPUT1 EINGANG / INPUT2 MASKE / OUTPUT AUSGANG /1 WORT FUER UND U. ODER / PRECISION (OF INPUTS,OUTPUT,EINGANG,MASKE) / FELD*10 (OF INPUTS,OUTPUT,EINGANG,MASKE) / /MERKE: MASKBIT=1 BEDEUTET KOMPLEMENTIERUNG DER ENTSPRECHENDEN /EINGANGSBITS BEI MWCMPL UND NEGATION BEI MWUND U. MWODER. /MWCMPL ENTHAELT SOMIT AUCH COMPLEMENT UND COPY ALS EXTREME. MWAND, 5 /PRECISION*14 AND GATTER MIT 2 EINGAENGEN BLOUT JMS SRARG AND MWTEM2 /ARG. INEND MWINOR, 5 /PREC.*14 INOR GATTER MIT 2 EING. BLOUT JMS SRARG JMS SRINOR /ARG. INEND MWEXOR, 5 /PREC.*14 EXOR GATTER MIT 2 EING. BLOUT JMS SRARG JMS SREXOR /ARG. INEND MWCMPL, 5 /PREC.*14 MASK COMPLEMENT; CMA IF MASKBITS=1 BLOUT JMS SRARG JMS SRCMPL /ARG. INEND MWUND, 5 /UND GATTER MIT 14+PREC. EINGAENGEN; AUSG. IN BIT 11 BLOUT JMS SRARG JMS SRMASK /ARG. ACL SNA CLA IAC PUT 3 INEND MWODER, 5 /INOR GATTER MIT 14*PREC. EINGAENGEN; AUSG.IN BIT 11 BLOUT JMS SRARG JMS SRMASK /ARG. ACL SZA CLA IAC PUT 3 INEND SRARG, 0 /BEREITSTELLUNG DES ARGUMENTS TAD I SRARG ISZ SRARG JMS SRWORK JMP I SRARG SRINOR, 0 /INCLUSIVE ODER MQL TAD MWTEM2 MQA JMP I SRINOR SREXOR, 0 /EXCLUSIVE ODER AND MWTEM2 CIA CLL RAL TAD MWTEM1 TAD MWTEM2 JMP I SREXOR SRCMPL, 0 /MASK-COMPLEMENT CMA AND MWTEM2 MQL TAD MWTEM2 CMA AND MWTEM1 MQA JMP I SRCMPL SRMASK, 0 /MASK VERGLEICH ISZ SRMASK ISZ SRMASK JMS SREXOR MQA MQL JMP I SRMASK MWCDF, CDF MWCNT, 0 MWPOI1, 0 MWPOI2, 0 MWPOI3, 0 MWTEM1, 0 MWTEM2, 0 SRWORK, 0 /MAIN SUBROUTINE DCA MWSR ACUM 5 TAD MWCDF DCA MWDATF RIF TAD MWCDF DCA MWRETF ACUM 4 CIA DCA MWCNT GETAD 3 DCA MWPOI3 GETAD 2 DCA MWPOI2 GETAD 1 DCA MWPOI1 CLA MQL CLA CLL MWDATF, HLT MWLOOP, TAD I MWPOI1 DCA MWTEM1 TAD I MWPOI2 DCA MWTEM2 TAD MWTEM1 MWSR, HLT DCA I MWPOI3 /WIRD VON SRMASK UEBERSPRUNGEN ISZ MWPOI3 / ISZ MWPOI2 ISZ MWPOI1 ISZ MWCNT JMP MWLOOP MWRETF, HLT JMP I SRWORK PAGE /**************** BSC *************************************** /31.1.74 /CALL: BSC / EINGANGSTAFEL /ZBLOCK N / AUSGANGSTAFEL /ZBLOCK N / LAENGE N DER TAFELN / FEHLERRATE(SCHWELLE)JE NACH ZZG, EINF. ODER DOPPELTGENAU / FEHLERANZEIGE / FELD*10 /VON EING. UND AUSG.TAF. / /MERKE: DER BSC ENTHAELT EINEN BLOCK, DER ZUFALLSZAHLEN ERZEUGT. /WAHLWEISE ZZG1, DER MULTIPLIKATIVE ZZG VON DEC, ODER ZZG2, DER /EIN RUECKGEKOPPELTES SCHIEBEREGISTER ENTHAELT, ODER SONSTIGE ZZG. /ZZG1 BENOETIGT EINE EINFACH-, ZZG2 EINE DOPPELTGENAUE ANGABE DER /SCHWELLE. BSC, 6 BLOTNT BINIT BSCIN, ACUM 3 CLL CMA IAC DCA BCNT GETAD 2 DCA BAUSP GETAD BP1, 1 DCA BEINP DCA ERRNUM BLOOP, INBLIP ZZG4 /ODER ZZG1,ETC. ! ! 4 BFLG BLOUT BDATF, HLT TAD BFLG SZA ISZ ERRNUM TAD I BEINP AND BP1 DCA I BAUSP BRETF, HLT ISZ BEINP ISZ BAUSP ISZ BCNT JMP BLOOP TAD ERRNUM PUT 5 INEND BINIT, ACUM 6 TAD BCDF DCA BDATF RIF TAD BCDF DCA BRETF JMP BSCIN BCNT, 0 BEINP, 0 BAUSP, 0 ERRNUM, 0 BFLG, 0 BCDF, CDF /********** ZZG1 ****************************************** /31.1.74 /CALL: ZZG1 /MULTIPLIKATIVER ZZG VON DEC / SCHWELLE /SINGLE PRECISION / UEBERLAUF /=1,WENN ZUFALLSZAHL>SCHWELLE ZZG1, 2 BLOTNT ZZG1NT ACUM 1 DCA ERORAT JMS I SKPSR ERORAT, 0 / 50/7777=1% JMP SKPSR+1 /NORMAL RETURN CLA IAC /ERROR RETURN JMP SKPSR+2 ZZG1NT, JMS I INSKPI SKPSR, 0 CLA PUT 2 INEND INSKPI, INSSKP /***************** ZZG2 ************************************** /31.1.74 /CALL: ZZG2 RUECKGEKOPPELTES SCHIEBEREGISTER / SCHWELLE /DOPPELTGENAU ! / UEBERLAUF /=1,WENN ZUFALLSZAHL>SCHWELLE ZZG2, 2 BLOTNT ZZG2NT CLA CLL TAD ZREG2 AND ZTAP2 JMS I MOD2SI TAD ZREG1 AND ZTAP1 JMS I MOD2SI TAD ZREG0 AND ZTAP0 JMS I MOD2SI TAD ZREG2 RAR DCA ZREG2 TAD ZREG1 RAR DCA ZREG1 TAD ZREG0 RAR DCA ZREG0 GETAD 1 DCA ZPOI SWAB CAM DAD ZREG1 DAD ZPOI, 0 CLA RAL PUT 2 INEND ZZG2NT, DCA ZREG0 CLA DCA ZREG1 CLL CML RAR DCA ZREG2 JMP ZPOI+2 MOD2SI, MOD2SR MOD2SR, 0 RAR SPA TAD NR4000 SZA JMP MOD2SR+1 JMP I MOD2SR NR4000, 4000 /RUECKGEKOPPELTES SCHIEBEREGISTER ZREG0, 0 ZREG1, 0 ZREG2, 0 /MIT CHAR. POLYNOM MIT DEN EXPONENTEN /0;1;4;6;7;9;11;13;15;17;19;21;23;25;27;29;31 ZTAP0, 5240 ZTAP1, 5252 ZTAP2, 4552 PAGE INSSKP, 0 JMS R CLA TAD CALL CIA DCA CURCAL JMS PRAN ISZ CURCAL JMP .-2 JMS I INSSKP SSKP, 0 SWBA JMS PRAN CLL TAD I SSKP ISZ SSKP SZL CLA /LINL = 1 FOR ERROR ISZ SSKP JMP I SSKP CALL, 100 /NUM OF CALLS FOR PRAN CURCAL, 0 R, HLT JMP R+63 PRAN, HLT CLA TAD R+77 RAL AND R+71 DCA R+74 TAD R+76 AND R+70 TAD R+74 7006 7006/RAL RAT RAL DCA R+72 TAD R+77 AND R+70 7006 7006 RAL TAD R+76 DCA R+73 7430/SNL SKP ISZ R+72 7000 TAD R+77 7104/CLL RAL 7430 ISZ R+73 SKP ISZ R+72 7000 CLL TAD R+77 DCA R+77 TAD R+76 RAL 7430 ISZ R+72 7000 CLL TAD R+73 DCA R+76 TAD R+75 RAL TAD R+75 TAD R+72 DCA R+75 TAD R+75 JMP I PRAN 0/NOT USED 7201/CLA IAC DCA R+77 DCA R+76 DCA R+75 JMP I R 177 7400 0 0 0 0 0 0 HLT HLT /********** PSEUDO-NOISE BLOCK ****************************** /4.10.73 /17.3.76 /D.COY CS/FZNR /CALL: PNBLOC / LAENGE DES PNBLOC'S IN BITS / PNBLOC-REGISTER /ZBLOCK PRECISION RESERVIEREN / PRECISION /AUFGERUNDET = ANZAHL DER RECHNERWORTE / FELD*10 DES REGISTERS PNBLOC, 4 BLOTNT PNT CLA CLL CMA RTL DCA PNCNT PNLOOP, JMS I SKPSRA 3777 SKP CLA CLA IAC DCA PNLNK PNLOC, INBLIP ROTATR PNLNK 2 3 4 BLOUT ISZ PNCNT JMP PNLOOP INBLIP MWAND 2 1 2 3 4 BLEND PNT, JMS I INSSKB SKPSRA, HLT CLA CMA DCA PNCNT JMP PNLOC INSSKB, INSSKP PNLNK, 0 PNCNT, 0 PAGE /********************* KOPIE ********************************** /23.7.73 /CALL: KOPIE /KOPIERT BELIEBIG VIELE WORTE. / ADR. DER FELDNR.*10 DES ORGINALS / ORGINAL / PRECISION /ANZ. DER RECHNERWORTE / KOPIE / ADR. DER FELDNR.*10 DER KOPIE KOPIE, 5 BLOUT ACUM 1 TAD CDFINS DCA GETF ACUM 5 TAD CDFINS DCA DEPF DCA KPOI1 JMS GTARG DCA RETF GETF, CDF 20 TAD I KPOI1 DEPF, CDF 20 DCA I KPOI2 ISZ KPOI1 ISZ KPOI2 ISZ KOUNT JMP GETF RETF, CDF 10 INEND CDFINS, CDF /KONST.LISTE FUER ROTATE UND KOPIE SCOUNT, KOUNT, 0 SEINP, KPOI1, 0 KPOI2, 0 GTARG, 0 ACUM 3 CMAINS, CMA CML IACINS, IAC DCA KOUNT GETAD 2 TAD KPOI1 DCA KPOI1 GETAD 4 DCA KPOI2 RDF TAD CDFINS JMP I GTARG /******************* ROTATE ************************************** /23.7.73 /CALL: ROTATR, ROTATL / LINK /1 BIT GANZ RECHTS / REGISTER / DESSEN LAENGE IN WORTEN / FELD*10 DES REGISTERS /DIESER BLOCK SIMULIERT EIN RAR ODER RAL MIT EINEM AC BELIEBIGER /WORTLAENGE. ROTATL, LSHIFT, 4 /LEFT SHIFT BLOUT TAD RALINS DCA ROTATE TAD CMAINS DCA MOVPOI CMA ACUM 3 DCA SEINP JMP MAIN ROTATR, RSHIFT, 4 BLOUT TAD RARINS DCA ROTATE TAD IACINS DCA MOVPOI DCA SEINP MAIN, JMS GTARG DCA RETFD TAD SLPINS DCA SLOOP ACUM 4 TAD CDFINS DCA DATF INBLIP BLOTNT SINIT ACUM 1 MRAR, RARINS, RAR CLA DATF, CDF 20 SLOOP, TAD I SEINP ROTATE, RAR DCA I SEINP MOVPOI, IAC TAD SEINP DCA SEINP ISZ SCOUNT JMP SLOOP RETFD, CDF 10 MRAL, RALINS, RAL PUT 1 INEND SLPINS, TAD I SEINP CLAINS, CLA CLL SINIT, TAD CLAINS DCA SLOOP JMP DATF /*************** MULTIPLEXER ********************************* /4.10.73 /CALL: PARSER / EINGANGSTAFEL /MAX. 14 WORTE LANG, ZBLOCK 14 / AUSGANGSWORT / /CALL: MWPRSR,MWPRSL /MULTIPLEX RIGHT,LEFT / EINGANGSTAFEL /ZBLOCK PREC.*14 RESERVIEREN / AUSGANGSVEKTOR /ZBLOCK PREC. RESERVIEREN / PRECISION /ANZ. DER RECHNER WORTE / FELD*10 VON EING.TAF U. AUSG.VEKTOR / /MERKE: DIE EING.TAF ENTHAELT WORTE MIT 1 BITGANZ RECHTS. /SIE MUSS MIT NULLEN AUF EINE LAENGE AUFGEFUELLT WERDEN, DIE /DURCH 14 TEILBAR IST. MWPRSR, 4 /ACHTUNG: BITS WERDEN VERWUERFELT !!!!!!!!!!!!! BLOUT TAD MRAR DCA I PRARI MWPRS, ACUM 3 CIA CLL DCA I MCNTI ACUM 4 JMP I MGOONI PARSER, 2 BLOUT TAD MRAR DCA I PRARI CLA CMA CLL DCA I MCNTI RIF JMP I MGOONI MWPRSL, 4 BLOUT TAD MRAL DCA I PRALI JMP MWPRS MCNTI, MCNT MGOONI, MGOON PRARI, PRALI, PRAR PAGE MGOON, TAD MCDF DCA MDATF RIF TAD MCDF DCA MRETF GETAD 2 DCA MOUTP GETAD 1 DCA PARSP CLA CLL MDATF, HLT MLOOP, JMS MUPLEX DCA I MOUTP ISZ MOUTP ISZ MCNT JMP MLOOP MRETF, HLT INEND MUPLEX, 0 TAD PM14 DCA PARSC PLOOP, TAD I PARSP PRAR, RAR ISZ PARSP ISZ PARSC JMP PLOOP RAR JMP I MUPLEX /*************** MWQSUM ****************************************** /28.7.75 /17.3.76 D.COY CS/FZNR /CALL: M(ULTI)W(ORD)Q(UER)SUM(ME) / REGISTER / MASKE / ERGEBNIS / GENAUIGKEIT / FELDNR.*10 MWQSUM, 5 BLOUT GETAD 1 DCA MWQPO1 GETAD 2 DCA MWQPO2 ACUM 4 CIA DCA MWQCNT ACUM 5 TAD MWQCDF DCA MWQDTF RIF TAD MWQCDF DCA MWQRTF DCA MWQSM MWQDTF, HLT MWQLOP, TAD I MWQPO1 AND I MWQPO2 CLL RAL SZL ISZ MWQSM SZA JMP .-4 ISZ MWQPO1 ISZ MWQPO2 ISZ MWQCNT JMP MWQLOP MWQRTF, HLT TAD MWQSM PUT 3 INEND MWQSM, 0 MWQPO1, 0 MWQPO2, 0 MWQCNT, 0 MWQCDF, CDF /***************** MWMOD2 ***************************************** /21.11.74 /17.3.76 D.COY CS/FZNR /CALL: MWMOD2 /BLIP-BLOCK M(ULTI)-W(ORD)-MOD2-(QUERSUMME) / REGISTER / MASKE /REPRAESENTIERT DIE ANZAPFUNGEN / ERGEBNIS /1 BIT GANZ RECHTS / PRECISION /VON REGISTER UND MASKE (WOERTER) / FELDNR MWMOD2, 5 BLOUT GETAD 1 DCA MWMPO1 GETAD 2 DCA MWMPO2 ACUM 4 CIA DCA MWMCNT ACUM 5 TAD MWMCDF DCA MWMDTF RIF TAD MWMCDF DCA MWMRTF /VERARBEITEN DER ARGUMENTE MWMDTF, HLT MWMLOP, DCA MWMTM2 TAD I MWMPO1 AND I MWMPO2 /AMZAPFUNGEN MASKIEREN DCA MWMTM1 TAD MWMTM1 /EXCLUSIVE ODER DER WOERTER AND MWMTM2 CIA CLL RAL TAD MWMTM1 TAD MWMTM2 ISZ MWMPO1 ISZ MWMPO2 ISZ MWMCNT JMP MWMLOP MWMRTF, HLT CLL /EXCLUSIVE ODER DER BITS NOP RAR SPA TAD VIERTS SZA JMP .-4 RAL PUT /AUSGABE DES ERG. MOD2 3 INEND MWMPO1, 0 MWMPO2, 0 MWMTM1, 0 MWMTM2, 0 MWMCNT, 0 MWMCDF, CDF VIERTS, 4000 PAGE /************** ZZG4 ********************************************* /22.7.75 /CALL: ZZG4 /MULTIPL.ZZG: Z(N+1)=C*Z(N)MOD(B) / SCHWELLE /DOPPELTGENAU / UEBERLAUF /=1,WENNZUF.ZAHL>SCHWELLE /MERKE: C=(2^15+5)DEZIMAL;B=2^31DEZIMAL;Z(0)=1 /C IST MAX DOPPELTGENAU; B,Z SIND MAX. DREIFACH-GENAU /ZZG4 IST GEPACKTE VERSION VON ZZG3 ZZG4, 2 BLOTNT ZZG4NT SWAB CAM DST ZAC1 CAM DST ZAC3 JMS MUL /C0*ZN0*2^0 C0 ZN0 ZAC0 CAM DAD /+ ZAC1 JMS MUL /C0*ZN1*2^14 C0 ZN1 ZAC1 CAM DAD /+ ZAC1 JMS MUL /C1*ZN0*2^14 C1 ZN0 ZAC1 CAM DAD /+ ZAC2 JMS MUL /C0*ZN2*2^30 C0 ZN2 ZAC2 CAM DAD /+ ZAC2 JMS MUL /C1*ZN1*2^30 C1 ZN1 ZAC2 CAM DAD ZAC0 DST ZN0 /Z(N+1) VORBEREITET CLA TAD ZAC2 AND ZMSK2 DCA ZN2 TAD ZM5 DCA ZCNT ZLP, TAD ZAC0 /NORMALISIERUNG WEGEN KOMPATIBILITAET CLL RAL DCA ZAC0 TAD ZAC1 RAL DCA ZAC1 TAD ZAC2 RAL DCA ZAC2 ISZ ZCNT JMP ZLP GETAD 1 DCA Z3POI CAM DAD Z3POI, 0 DAD ZAC1 CLA RAL PUT 2 INEND ZZG4NT, SWAB TAD Z0 DCA ZN0 CAM DST ZN1 JMP ZZG4NT-3 MUL, 0 CLL DST SACMQ /SAVE AC+MQ CAM TAD I MUL DCA MTP1 ISZ MUL TAD I MTP1 MQL TAD I MUL DCA MTP1 ISZ MUL TAD SACMQA DCA MTP2 TAD I MUL DCA MTP3 ISZ MUL MUY MTP1, 0 DAD MTP2, 0 DST MTP3, 0 CAM SNL JMP I MUL DPIC CLA CLL IAC RAL TAD MTP3 DCA MTP3 TAD MTP3 DCA MTP2 JMP MTP1+1 SACMQ, 0 0 SACMQA, SACMQ ZMSK2, 177 /MOD B ZM5, -5 ZCNT, 0 C0, 5 C1, 10 /2^15+5 ZN0, 1 /Z(N) ZN1, 0 ZN2, 0 Z0, 1 /Z(0) 0 ZAC0, 0 ZAC1, 0 ZAC2, 0 ZAC3, 0 0