File KNACK.PA (PAL assembler source file)

Directory of image this file is from
This file as a plain text file

PAGE

/SUBROUTINE ZUM SERIELLEN EINLESEN VON EINER 2*N BIT LAN-
/GEN PROBE DER AUSGANGSFOLGE EINES RUECKGEKOPPELTEN SCHIEBE
/REGISTERS, DIE ZU EINER (N*(N+1)) MATRIX AUFBEREITET UND 
/MIT DEM GAUSSCHEN ALGORITHMUS GELOEST WIRD

/TAD BIT
/JMS KNACK
/ANZ. DER MATRIXZEILEN


FIELD 1
*7400

KNACK,	0	/CLA; LINK,MQ MODIFIED; INS.U.DAT.FIELD AUF 1
	DCA BIT
	
	INBLIP
	BLOTNT
	KNCKNT
	
	TAD BIT
	CDF 20
	DCA I POIA
	CDF 10
	ISZ POIA
	ISZ REDCNT
	JMP KNCKEX

FILP2,	CLA
	TAD I POID
	CDF 20
	TAD I POIE
	RAR
	CLA RAL
	DCA I POIE
	CDF 10

	ISZ POID
	ISZ POIE
	ISZ FILC2
	JMP FILP2

FILOP,	CLA
	INBLIP

	MWPRSL
POIB,	EMATRX
POIC,	MATRIX
	OLIST+2
	FLD2

	BLOUT
	ISZ POIB
	CLA CLL IAC RTL
	RAL CLL
	TAD POIC
	DCA POIC
	ISZ FILC
	JMP FILOP

	TAD OLIST
	CIF CDF 20
	JMS GAUSS


KNCKNT,	TAD I KNACK
	CIF 20
	JMS CALCN
	OLIST
	TAD TEMTFA
	DCA POIA
	TAD OLIST+1
	TAD OLIST+1
	DCA REDCNT

	TAD TEMTFA
	DCA POIB
	TAD MATRA
	DCA POIC
	TAD OLIST+1
	DCA FILC

	TAD TEMTFB
	DCA POID
	TAD TEMTFA
	TAD OLIST
	DCA POIE
	TAD OLIST+1
	DCA FILC2

KNCKEX,	ISZ KNACK
	JMP I KNACK

TEMTFB,	EINGS
POID,	0
POIE,	0
FILC2,	0

FLD2,	20
MATRA,	MATRIX
OLIST,	0
	0
	0
	0
BIT,	0
FILC,	0
POIA,	0
REDCNT,	0
TEMTFA,	EMATRX

PAGE /LOESEN EINES GLEICHUNGSSYSTEMS UEBER GF(2) /DURCH ELIMINATION MIT GAUSSCHEM ALGORITHMUS FIELD 2 *3400 GAUSS, 0 /ANZ. DER GLEICHUNGEN IN AC, N<96 DEZ. JMS GAUSNT /INITIALISIERUNG TAD MN IAC /TRANSFORMATION AUF DREIECKSFORM DCA KCNT TAD MATRXA DCA KP TAD EMTRXA DCA KMSK /FROM K:=1 STEP 1 UNTIL N-1 DO LOC1 ////////////////////////////////////////// LOC1, TAD MATRXA CLL CIA TAD KP CLL RAR RTR /K-1 IN AC TAD MN DCA ICNT TAD KP DCA IP /FROM I:=K STEP 1 UNTIL N DO LOC2 ///////////////////////////////////////// LOC2, TAD KMSK DCA P2 TAD IP DCA P1A TAD MW DCA WCNT LOP2A, TAD I P1A AND I P2 SZA CLA JMP LOC3 ISZ P1A ISZ P2 ISZ WCNT JMP LOP2A CLL CLA IAC RTL CLL RAL TAD IP DCA IP ISZ ICNT JMP LOC2 /LOC2 SCHLEIFE FERTIG JMP SINGUL /KEINE EINS IN EINER SPALTE (ODER ZEILE) LOC3, TAD IP DCA LP /EINS IN L-TER ZEILE TAD KP /TAUSCH DER JEWEILS 1. UND L-TEN ZEILE DCA P1A TAD LP DCA P2 TAD MW DCA WCNT LOP3A, TAD I P1A MQL TAD I P2 DCA I P1A ACL DCA I P2 ISZ P1A ISZ P2 ISZ WCNT JMP LOP3A REGUL, CLL CLA IAC RTL CLL RAL TAD KP /MATRIX IST REGULAER DCA IP TAD MATRXA CIA TAD IP CLL RAR RTR TAD MN DCA ICNT /FOR I:=K+1 STEP 1 UNTIL N DO LOC4 /////////////////////////////////////////// LOC4, TAD IP DCA P1A TAD KMSK DCA P2 TAD MW DCA WCNT LOP4A, TAD I P1A AND I P2 /GLEICHUNG BEREITS IM RICHTIGEN FORMAT? SZA CLA /JA JMP LOC4A /NEIN ISZ P1A ISZ P2 ISZ WCNT JMP LOP4A JMP LOC4B LOC4A, TAD IP /FALSCHES FORMAT DCA P2 TAD KP DCA P1A TAD MW DCA WCNT LOP4B, TAD I P1A AND I P2 CIA CLL RAL TAD I P1A TAD I P2 DCA I P2 ISZ P1A ISZ P2 ISZ WCNT JMP LOP4B LOC4B, CLL CLA IAC RTL CLL RAL TAD IP /RICHTIGES FORMAT DCA IP ISZ ICNT JMP LOC4 /LOC4 SCHLEIFE FERTIG CLL CLA IAC RTL CLL RAL TAD KP DCA KP CLL CLA IAC RTL CLL RAL TAD KMSK DCA KMSK ISZ KCNT JMP LOC1 /GESAMT ELIMINATION (LOC1 SCHLEIFE) FERTIG JMP NXTPGE
PAGE NXTPGE, CLA CMA CLL /AUFRECHNUNG DER UNBEKANNTEN TAD PN CLL RAL RTL TAD MATRXA DCA IP /ZEIGER AUF LETZTER MATRIX-ZEILE CLA CMA CLL TAD PN TAD XVKTRA DCA XIP /ZEIGER AUF LETZTER X-KOMPONENTE TAD MN DCA ICNT TAD PN CLL RAL RTL TAD EMTRXA /ZEIGER AUF SPALTE DER RECHTEN SEITE DCA KMSK /FOR I:=N STEP -1 UNTIL N DO LOC6 ////////////////////////////////////////// LOC6, CLA CLL CMA TAD PW TAD IP DCA P1A CLA CLL CMA TAD PW TAD KMSK DCA P2 TAD I P1A AND I P2 SZA CLA IAC DCA S /S:=A INDEX I,N+1 CLL CLA IAC RTL CLL RAL TAD IP DCA JP TAD MATRXA CIA TAD JP CLL RAR RTR /J-1 IN AC TAD MN SMA /1. UNBEKANNTE? JMP LOC8 /JA DCA JCNT /NEIN TAD MATRXA CIA TAD JP NOP CLL RAR RTR /J-1 IN AC MQL ACL TAD XVKTRA DCA XJP ACL CLL RAL RTL TAD EMTRXA DCA JMSK /FOR J:=I+1 STEP 1 UNTIL N DO LOC7 /////////////////////////////////////////// LOC7, TAD IP DCA P1A /BERECHNUNG EINER UNBEKANNTEN TAD JMSK DCA P2 TAD MW DCA WCNT LOP7, TAD I P1A AND I P2 SZA CLA /A INDEX I,J JMP .+6 ISZ P1A ISZ P2 ISZ WCNT JMP LOP7 SKP CLA IAC AND I XJP TAD S AND N1 DCA S /S:=S+A INDEX I,J MAL X INDEX J CLL CLA IAC RTL CLL RAL TAD JMSK DCA JMSK ISZ XJP ISZ JCNT JMP LOC7 /LOC7 SCHLEIFE FERTIG LOC8, TAD S DCA I XIP JMS AUSGAB CLL CLA IAC RTL CLL CIA RAL TAD IP DCA IP CLA CMA TAD XIP DCA XIP ISZ ICNT JMP LOC6 /ENDE AUFRECHNUNG (LOC 6 SCHLEIFE FERTIG) JMP SINGEX PAGE SINGUL, LINE /MATRIX IST SINGULAER TDC 4000+"B 4000+"E 4000+"I 240 SWAB TAD MATRXA CIA TAD KP CLL RAR RTR IAC JMS TOWLZ TDC 4240 4000+"S 4000+"I 4000+"N 4000+"G 4000+"U 4000+"L 4000+"A 4000+"E 4000+"R 240 LINE SINGEX, JMS DELCOR EMATRX P1400 TAD GAUSS DCA GAUSRT CIF CDF 10 JMP I GAUSRT GAUSRT, 0 AUSGAB,0 CLA TDC 4240 240 SWAB TAD XVKTRA CIA TAD XIP IAC JMS TOWLZ TDC A240, 240 CLL CLA CML RTR BSW TAD A240 TAD S TCHAR ISZ TCHCNT SKP JMS NXTLIN ISZ TYPC JMP I AUSGAB LINE CLA TAD TYPN CIA DCA TYPC JMP I AUSGAB TYPN, 10 TYPC, -10 NXTLIN, 0 LINE LINE CLA TAD MN DCA TCHCNT JMP I NXTLIN TCHCNT, 0 /JMS EMTRXE /ERZEUGUNG EINER (140,140) EINHEITSMATRIX /ADR. DER MATRIX EMTRXE, 0 CLL CLA IAC RTL CLL CIA RAL DCA CNT10 TAD I EMTRXE DCA EPOI ISZ EMTRXE LOPD, CLL CML RAR LOPE, MQL ACL DCA I EPOI CLL CLA IAC RTL CLL RAL TAD EPOI DCA EPOI ACL CLL RAR SZA JMP LOPE ISZ EPOI ISZ CNT10 JMP LOPD JMP I EMTRXE EPOI, 0 CNT10, 0
/JMS DELCOR /DELETES CORE /ADR. OF FIRST WORD /ADR. OF NUMBER OF WORDS DELCOR, 0 /CLA; LINK MODIFIED CLA TAD I DELCOR DCA DELPOI ISZ DELCOR TAD I DELCOR DCA DELCNT TAD I DELCNT CIA DCA DELCNT ISZ DELCOR DCA I DELPOI ISZ DELPOI ISZ DELCNT JMP .-3 JMP I DELCOR DELPOI, 0 DELCNT, 0 PAGE /TAD N /+N IN AC /JMS CALCN /CALCULATES VARIABLES IN CALL-FIELD /LISTADR. /VON +N, -N, +PREC., -PREC. CALCN, 0 /CLL CLA; MQ MODIFIED DCA CALTEM TAD I CALCN DCA CALPOI ISZ CALCN RDF TAD CCIF DCA CRETF TAD CALTEM DCA I CALPOI ISZ CALPOI TAD CALTEM CIA DCA I CALPOI ISZ CALPOI SWBA TAD CALTEM IAC MQL DVI N14, 14 SZA CLA IAC MUY N1, 1 ACL DCA I CALPOI ISZ CALPOI ACL CIA DCA I CALPOI CRETF, 0 JMP I CALCN CALPOI, 0 CALTEM, 0 CCIF, CIF 0 /TAD N /JMS GAUSNT /INITIALISIERUNG VON GAUSS GAUSNT, 0 /CLA; LINK,MQ MODIFIED JMS CALCN NLIST JMS DELCOR XVKTOR P140 JMS DELCOR EMATRX P1400 JMS EMTRXE EMATRX CLA TAD TYPN CIA DCA TYPC TAD MN DCA TCHCNT JMP I GAUSNT /SWAB /TAD OKTNUM /LOAD OKTAL NUMBER /JMS TOWLZ /TYPE OKTAL (TOCT) WITHOUT LEADING ZEROS TOWLZ, 0 /CLA; LINK, MQ MODIFIED MQL CLL CLA IAC RTL CIA DCA TOWCNT TOWLOP, CLA RAR RTR SHL 3 SZA CLL CML SNA SZL TAD N20 TAD N240 ISZ TOWCNT JMP .+5 SNL TAD N20 TCHAR JMP I TOWLZ TCHAR JMP TOWLOP TOWCNT, 0 N20, 20 N240, 240 /SPEICHERORGANISATION *100 MATRXA, MATRIX EMTRXA, EMATRX XVKTRA, XVKTOR NLIST, PN, 0 MN, 0 PW, 0 MW, 0 KCNT, 0 ICNT, 0 WCNT, 0 KMSK, 0 JMSK, 0 KP, 0 IP, 0 LP, 0 JCNT, 0 JP, 0 P1A, 0 P2, 0 S, 0 XJP, 0 XIP, 0 *4410 MATRIX, ZBLOCK 1400 *6010 EMATRX, ZBLOCK 1400 *7411 XVKTOR, ZBLOCK 140 VKTRA, ZBLOCK 10 VKTRB, ZBLOCK 10 P140, 140 P1400, 1400



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search