File TCHINUM

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

*20
/// TCHINUM
	 
/PROGRAM TO COMPUTE CHI SQUARE
/MATRIX AND VALUE FOR TWO SERIES
/OF NUMFILES.
/ALSO DOES TTEST.
	 
/WILL WORK IN DP MODE IF DESIRED.
	 
/MAX OF 666 VALUES PER CATEGORY,I.E.,
/N0 AND N1 MUST BE LESS THAN 667.
	 
/ASKS FOR F0 VALUES AS A SERIES OF NUMFILES.
/ALSO ASKS FOR F1 SERIES. FOR EXAMPLE,
/ENTRIES IN THE F0 SERIES WOULD COME
/FROM ALL VALUES IN ALL F0 NUMFILES.
	 
/MAY OMIT INPUT LIST F0 OR F1 IN WHICH
/CASE CORE IS PRESUMED LOADED BY A
/PREVIOUS PASS.
/AFTER EACH RUN, DF6,7,16,17 ARE LEFT UNTOUCHED
/SO ONE MAY RUN PROGRAM UNUM WITHOUT
/ENTERING A NEW LIST OF NUMFILES.
	 
/REQUIRES 16K OF CORE.
/COORE MAP:IF2 ------ PROGRAM
/          IF5 ------ PROGRAM
/          DF6,7 ---- F0 VALUES
/          DF10 ----- QN7 IS NUMFILE PBLOCK
/          DF11 ----- CURRENT NUMFILE
/          DF12 ----- INPUT SYSFILE NAME LISTS
/          DF16,17 -- F1 VALUES
	 
/MAY ENTER A MESSAGE NOT TO EXCEDE 28(10)
/CHARACTERS.
	 
/LODSYM NOT NEEDED. PBLOCK ADDED.
	 
	 
	LMODE
	SEGMNT 5
	*20
	LIF 2
	JMP FILGET	/SETUP FILES
	 
/ITEMS FILE0
START,	STARTF
	LDA I
C4,	4
	PICK
	0
	0
	STORE
	CC
	FIX
	FAC
	ISTOR1
	NC
/ITEMS FILE1
	ADD C4
	PICK
KP1,	1
	0
	STORE
	DD
	FIX
	FAC
	ISTOR1
	ND
	LOAD
	DD
	FADD
	CC
	STORE
	TTT
	 
/CHECK FOR BIG OR SMALL FILES.
	LIF 2
	JMP CHKSIZ
	 
/SUM FILE0
CHKRET,	CLR
	STC KNC
/
SF0,	LDA
	KNC
	ADA I 
C20,	20
	PICK		/DOES NICE SP LOAD
	0
	0
	 
	STARTQ
	 
	STORE
	TEM
	FMUL
	FAC
	FADD
	SS0
	STORE
	SS0
	LOAD
	TEM
	FADD
	F0SUM
	STORE
	F0SUM
	ADD KP1
	ADM I
KNC,	0
	SAE I
NC,	0
	JMP SF0
/
/SUM FILE1
/
	CLR
	STC KND
/
SF1,	LDA
	KND
	ADD C20
	PICK		/DOES NICE SP LOAD
	1
	0
	 
	STARTQ
	 
	STORE
	TEM
	FMUL
	FAC
	FADD
	SS1
	STORE
	SS1
	LOAD
	TEM
	FADD
	F1SUM
	STORE
	F1SUM
	ADD KP1
	ADM I
KND,	0
	SAE I
ND,	0
	JMP SF1
	EJECT
/
/COMPUTE Y
/
	LOAD
	CC
	FADD 
	DD
	STORE
	TEM
	LOAD
	F0SUM
	FADD
	F1SUM
	FDIV
	TEM
	STORE
	Y
	EJECT
/
/ITEM CHECK FILE0
/
	STARTF
	 
	CLR
	STC KNC
/
ICK0,	LDA
	KNC
	ADD C20
	PICK
	0
	0
	FSUB
	Y
	FAPO
	JMP .+10
/GREATER OR EQUAL
	LOAD
	FONE
	FADD
	FJ
	STORE
	FJ
	JMP .+7
/LESS
	LOAD
	FONE
	FADD
	FI
	STORE
	FI
	ADD KP1
	ADM 
	KNC
	SAE
	NC
	JMP ICK0
/
/ITEM CHECK FILE1
/
	CLR
	STC KND
/
ICK1,	LDA
	KND
	ADD C20
	PICK
PP1,	1
	0
	FSUB
	Y
	FAPO
	JMP .+10
/GREATER OR EQUAL
	LOAD
	FONE
	FADD
	FL
	STORE
	FL
	JMP .+7
/LESS
	LOAD
	FONE
	FADD
	FK
	STORE
	FK
	ADD KP1
	ADM
	KND
	SAE 
	ND
	JMP ICK1
	EJECT
/
/COMPUTE A,B
/
/
/A COMPUTE
/
	LOAD
	FI
	FMUL
	FL
	STORE
	TEM
	LOAD
	FJ
	FMUL
	FK
	FCOMP
	FADD 
	TEM
	FAPO
	FCOMP
	STORE
	TEM
	LOAD
	TTT
	FDIV
	FP2
	FCOMP
	FADD
	TEM
	FMUL
	FAC
	FMUL
	TTT
	STORE
	AA
/
/B COMPUTE
/
	LOAD
	FI
	FADD
	FJ
	STORE
	TEM
	LOAD
	FK
	FADD
	FL
	FMUL
	TEM
	STORE
	TEM
	LOAD
	FI
	FADD 
	FK
	FMUL
	TEM
	STORE
	TEM
	LOAD
	FJ
	FADD
	FL
	FMUL
	TEM
	STORE
	BB
	EJECT
/
/PRINT RESULTS
/
	SETWRD
	400
	LOAD
	FK
	OUTPUT
	GMK
	LOAD
	FL
	OUTPUT
	GML
	FADD
	FK
	OUTPUT
	G1T
	LOAD
	FI
	OUTPUT
	GMI
	LOAD
	FJ
	OUTPUT
	GMJ
	FADD
	FI
	OUTPUT
	G0T
	LOAD
	FI
	FADD
	FK
	OUTPUT
	TL
	LOAD
	FJ
	FADD
	FL
	OUTPUT
	TG
	FADD
	FI
	FADD
	FK
	OUTPUT
	TT
/
	LIF 4
	MESOUT
	HMES
	 
	 
	 
	SETWRD
	1243
/FILE0 LINE
	 
	STARTQ
	 
	LOAD
	F0SUM
	FDIV
	CC
	 
	STARTF
	OUTPUT
	F0M		/MEAN
	STARTQ
	 
	LOAD
	F0SUM
	FMUL
	FAC
	FDIV
	CC
	STORE
	TEM		/SUM SQD
	LOAD
	CC
	FSUB
	FONE
	STORE
	TEM3
	LOAD
	SS0
	JMP XC
	LOAD
	TEM2
	STORE
	F0S
	LIF 4
	MESOUT
	F0MES
/FILE1 LINE
	LOAD
	F1SUM
	FDIV
	DD
	 
	STARTF
	OUTPUT
	F1M		/MEAN
	STARTQ
	 
	LOAD
	F1SUM
	FMUL
	FAC
	FDIV
	DD
	STORE
	TEM		/SUM SQD
	LOAD
	DD
	FSUB
	FONE
	STORE
	TEM3
	LOAD
	SS1
	JMP XC
	LOAD
	TEM2
	STORE
	F1S
	LDA I
	F1MES-1
	JMP MVIT
	LIF 4
	MESOUT
	F0MES
/BOTH LINE
	LOAD
	Y
	 
	STARTF
	OUTPUT
	BM
	STARTQ
	 
	LOAD
	F0SUM
	FADD
	F1SUM
	FMUL
	FAC
	FDIV
	TTT
	STORE
	TEM		/SUM SQD
	LOAD
	TTT
	FSUB
	FONE
	STORE
	TEM3
	LOAD
	SS0
	FADD
	SS1
	JMP XC
	LOAD
	TEM2
	STORE
	B0S
	LDA I
	BMES-1
	JMP MVIT
	LIF 4
	MESOUT
	F0MES
/TTEST
	LOAD
	TTT
	FSUB
	FP2
	STORE
	TEM1
	LOAD
	F0S
	FMUL
	FAC
	FMUL
	CC
	STORE
	TEM
	LOAD
	F1S
	FMUL
	FAC
	FMUL
	DD
	FADD
	TEM
	STORE
	TEM
/
	LOAD
	F1SUM
	FDIV
	DD
	STORE
	TEM2
	LOAD
	F0SUM
	FDIV
	CC
	FSUB
	TEM2
	FAPO
	FCOMP
	STORE
	TEM2
	RECIP
	CC
	STORE
	TEM3
	RECIP
	DD
	FADD
	TEM3
	STORE
	TEM3
/
/T=TEM2/FSQT(TEM3*TEM/TEM1)
/TEM=SD0^2 X N0 + SD1^2 X N1
/TEM1=N1+N2-2
/TEM2=M1-M2
/TEM3=1/N0 + 1/N1
/
	LOAD
	TEM
	FDIV
	TEM1
	FMUL
	TEM3
	SQRT
	FAC
	STORE
	TEM3
	LOAD
	TEM2
	FDIV
	TEM3
	 
	STARTF
	OUTPUT
	TVAL
	STARTQ
	 
	LIF 4
	MESOUT
	TMES
/
/FVALUE, RATIO OF VARIANCES.
/
	LOAD		/GET VARIANCES
	F1S
	FMUL
	FAC
	STORE
	F1SS
	LOAD
	F0S
	FMUL
	FAC
	STORE
	F0SS
	FAZE
	JMP .+2
	JMP FZIP
	LOAD
	F1SS
	FAZE
	JMP .+2
	JMP FZIP
	FSUB
	F0SS
	FAPO
	JMP FZZ
	LOAD
	F1SS
	FDIV
	F0SS
	JMP FOUT
FZZ,	LOAD
	F0SS
	FDIV
	F1SS
	JMP FOUT
FZIP,	FZER
	 
FOUT,	STARTF		/REMAIN SP
	OUTPUT
	FVAL
	 
	LIF 4
	MESOUT
	FMES
/CHI SQR
	LOAD
	AA
	FDIV
	BB
	OUTPUT
	CH1
/
	LIF 4
	MESOUT
	CRLF
	LIF 4
	MESOUT
	G0MES
	LIF 4
	MESOUT
	G1MES
	LIF 4
	MESOUT
	TOTMES
	LIF 4
	MESOUT 
	CRLF
	LIF 4
	MESOUT
	CHMES
/
	LIF 4
	JMP 20
	EJECT
/
MVIT,	STC 16
	SET I 17
	F0MES-1
	LDA I 16
	STA I 17
	LDA I 16
	STA I 17
	LDA I 16
	STA I 17
	JMP 0
/
XC,	ADD 0
	STC XCX
	FSUB
	TEM
	FDIV
	TEM3
	SQRT
	FAC
	FAPO
	FZER
	 
	STARTF
	OUTPUT
	F0SD
	STARTQ
	 
	STORE
	TEM2
	FMUL
	FAC
	 
	STARTF
	OUTPUT
	F0V
	STARTQ
	 
	LOAD
	TEM3
	FADD 
	FONE
	SQRT
	FAC
	STORE
	TEM
	LOAD
	TEM2
	FDIV
	TEM
	 
	STARTF
	OUTPUT
	F0SE
	STARTQ
	 
XCX,	0		/LEAVE
/END XC.
/ROUTINE TO SET SP(F) OR DP(E) MODES.
	STARTQ=JMP .
MODE,	0
	JMP 0
/END STARTQ.
	 
/MESSAGES
/
G1MES,	TEXT .FILE1 .
GMK,	0
	0
	4057
GML,	0
	0
	4057
G1T,	0
	0
CRLF,	4543
/
G0MES,	TEXT .FILE0 .
GMI,	0
	0
	4057
GMJ,	0
	0
	4057
G0T,	0
	0
	4543
/
TOTMES,	TEXT .TOTAL .
TL,	0
	0
	4057
TG,	0
	0
	4057
TT,	0
	0
	4543
/
HMES,	TEXT .            MEAN       VAR   STD DEV   STD ERR.
	4543
F0MES,	TEXT .FILE0 .
BM,	
F1M,	
F0M,	0
	0
	0
	0
	0
BV,	
F1V,	
F0V,	0
	0
	0
	0
	0
BSD,	
F1SD,	
F0SD,	0
	0
	0
	0
	0
BSER,	
F1SE,	
F0SE,	0
	0
	0
	0
	0
	4543
F1MES,	TEXT .FILE1 .
BMES,	TEXT .BOTH  .
TMES,	TEXT .T=.
TVAL,	0
	0
	0
	0
	0
	4543
FMES,	TEXT .F=.
FVAL,	0
	0
	0
	0
	0
	4543
/
CHMES,	TEXT .CHI SQD=.
CH1,	0
	0
	0
	0
	0
	4543
/
/
/DOUBLE & SINGLE PRECISION BUFFERS.
AA,	*.+6
BB,	*.+6
CC,	*.+6
DD,	*.+6
TTT,	*.+6
F0SUM,	*.+6
F1SUM,	*.+6
SS0,	*.+6
SS1,	*.+6
F0S,	*.+6
F1S,	*.+6
B0S,	*.+6
F0SS,	*.+6
F1SS,	*.+6
Y,	*.+6
FI,	*.+6
FJ,	*.+6
FK,	*.+6
FL,	*.+6
TEM,	*.+6
TEM1,	*.+6
TEM2,	*.+6
TEM3,	*.+6
FP1,	
FONE,	1
	2000
	0
	0
	0
	0
FP2,	2
	2000
	0
	0
	0
	0
/END SP & DP BUFFERS.
	 
/ROUTINE TO JUMP TO PICK MIMIC ROUTINE
/IN IF2.
/RETURN VIA BETA3 IS HANDLED IN IF2.
	PICK=JMP .
	SET 3
	0
	LIF 2
AAEND5,	JMP PIK2
/END PICK IMITATOR.
//END IF5 PROGRAMMING.
	 
	 
// START IF2 PROGRAMMING.
	SEGMNT 2
	*20
/NOW FOLLOWS A ROUTINE TO SUBSTITUTE
/FOR 2DILFIL.
	 
/TYPE OUT PROGRAM NAME.
FILGET,	
D0,	LIF 4
	MESOUT
	 M0		/TCHINUM
	 
/INITIALIZE TO GET BOTH F0 & F1 LISTS.
	LDA I
	LIF 4
	STA
	GETF0
	STC GETF1
	 
/ASK FOR INPUT UNITS.
	LIF 4
	INUNITS
	 
/ASK IF DOUBLE PRECISION IS WANTED.
D0A,	LIF 4
	INTRACT
	 CJ0A
	 M0A		/DOUBLE PRECISION?:
	 
CJ0A,	T1
	J0A
	 
J0A,	JMP FILGET	/CR
	JMP GODP	/YES
	JMP GOSP	/NO
	JMP D0A		/? NUM
	 
GOSP,	LDA I
	STARTF
	JMP GODP+2
GODP,	LDA I
	STARTE
	LDF 5
	STA
	2\MODE
	 
/ASK FOR MESSAGE AS TYPEOUT HEADER.
D1,	LIF 4
	INTRACT
	 CJ1
	 M1		/MESSAGE:
	 
CJ1,	T1
	J1
	 
T1,	YES
	NO
	0
	 
J1,	JMP FILGET	/CR
	JMP D1		/? YES
	JMP NOMES	/NO
	JMP .+1		/NUM
	 
/MOVE MESSAGE FROM INBUF & PLACE IN BUFOUT.
	LDF 4
	SET I 1
	4\INBUF-1
	SET I 2
	4\BUFOUT-1
	SET I 3
	-34		/28(10)
	 
BKMES,	LDH I 1
	STH I 2
	SAE I
	45
	SKP
	 JMP GOTMES	/45=END OF MES
	XSK I 3
	JMP BKMES
	HLT		/MESSAGE TOO LARGE
	 
NOMES,	LDA I
	4543
	STC BUFOUT
	JMP D2
	 
GOTMES,	LDA I
	43
	STH I 2
/END D1, MESSAGE HANDLER.
	 
	 
/NEW F0 NUMFILE LIST?
D2,	LIF 4
	INTRACT
	 CJ2
	 M2		/F0 NUMFILES?:
	 
CJ2,	T1
	J2
	 
J2,	JMP FILGET	/CR
	JMP D2A		/YES
	JMP NOF0        /NO
	JMP D2		/? NUM
	 
/OLD F0 HANDLER.
NOF0,	LDA I
	JMP GETF1
	STC GETF0
	JMP D3
	 
/NEW F0 LIST HANDLER.
D2A,	LIF 4
	TABSET
	 0
	 LDF 12
	 2000
	 400
	 
F0NAM,	LIF 4		/ASK F0 NAMES
	INTABLE
	 0
/END D2, F0 LIST HANDLER.
	 
	 
/NEW F1 NUMFILE LIST?
D3,	LIF 4
	INTRACT
	 CJ3
	 M3		/F1 NUMFILES?:
	 
CJ3,	T1
	J3
	 
J3,	JMP FILGET	/CR
	JMP D3A		/YES
	JMP NOF1	/NO
	JMP D3		/? NUM
	 
/OLD F1 LIST HANDLER.
NOF1,	LDA I
	JMP TYPMES
	STC GETF1
	JMP SETVAL
	 
/NEW F1 LIST HANDLER.
D3A,	LIF 4
	TABSET
	 1
	 LDF 12
	 3000
	 400
	 
F1NAM,	LIF 4		/ASK F1 NAMES
	INTABLE
	 1
/END D3, F1 LIST HANDLER.
	 
	 
	 
/SETUP TO GET VALUES FROM F1 & F0.
SETVAL,	LDF 4
	LDA I
	7110
	STA
	WORD1		/PBLK
	LDA I
	4411
	STA
	WORD2		/DATA
/INITIALIZE F0 DF (6) AND F1 DF (16).
	CLR
	ADD KLDF6
	STC F0DF
	ADD KLDF16
	STC F1DF
	 
/NOW LOAD F0 FROM ITS INPUT FILES.
GETF0,	0		/LIF 4, JMP GETF1
	TABINI
	 0
	 
KLDF6,	LDF 6
	FZER
	STORE
	2000		/F0(0)=0
	STORE
	2014		/F0(4)=0
	 
	SET I 6
	2060		/F0(16) PNTR
	 
NXTF0,	LIF 4
	TABGET
	 0
	 JMP GETF1	/F0 DUN
	 HLT		/MISSING
	 
F0VAL,	JMP NUMSET	/SET BETA 10 & 11
BKF0,	LDF 11		/MOVE VALUE
	LOAD
	4\11
F0DF,	0		/LDF 6,7
	STORE
	4\6
	LOAD
	F1
	LDF 6
	FADD
	2014
	STORE
	2014
	 
/WATCH FOR DF OVERFLOW.
	XSK 6		/SKP ON 3777
	 JMP .+6	/NO OVERFLOW
	LDA I 6		/OVERFLOW, BUMP 6
	CLR
	ADD F0DF	/BUMP DF
	ADD C1
	STC F0DF
	 
	XSK I 10	/DUN THIS NUMFILE?
	 JMP BKF0	/NO
	JMP NXTF0	/YES, GET NEXT F0
/END GETF0.
	 
/NOW LOAD F1 FROM ITS INPUT FILES.
GETF1,	0		/LIF 4, JMP TYPMES
	TABINI
	 1
	 
KLDF16,	LDF 16
	FZER
	STORE
	2014		/F1(4)=0
	LOAD
	FP1
	STORE
	2000		/F1(0)=1
	 
	SET I 16
	2060		/F1(16) PNTR
	 
NXTF1,	LIF 4
	TABGET
	 1
	 JMP TYPMES	/F1 DUN
	 HLT		/MISSING
	 
	 
F1VAL,	JMP NUMSET	/SET BETA 10 & 11
BKF1,	LDF 11		/MOVE VALUE
	LOAD
	4\11
F1DF,	0		/LDF 16,17
	STORE
	4\16
	LOAD
	F1
	LDF 16
	FADD
	2014
	STORE
	2014
	 
/WATCH FOR DF OVERFLOW.
	XSK 16		/SKP ON 3777
	 JMP .+6	/NO OVERFLOW
	LDA I 16	/OVERFLOW, BUMP 16
	CLR
	ADD F1DF	/BUMP LDF
	ADD C1
	STC F1DF
	 
	XSK I 10	/DUN THIS NUMFILE?
	 JMP BKF1	/NO
	JMP NXTF1	/YES, GET NEXT F1
/END GETF1.
	 
	 
/ROUTINE TO SET BETA 10 & 11 FOR MOVING VALUES
/FROM NUMFILE TO DF6,7,16, & 17.
NUMSET,	LDF 10		/PBLK DF
	LDA
	P20		/NUM ENTRIES
	COM
	STC 10		/CNTR
	 
	SET I 11	/PNTR
	2000
	JMP 0		/LEAVE
/END NUMSET.
	 
	 
/NOW TYPE OUT HEADER MESSAGE.
TYPMES,	LIF 4
	MESOUT
	 BUFOUT-1
	 
	SETWRD
	0400
	LDF 6		/TYPOUT N0,N1,& DF
	LOAD
	2014		/NUM0
	OUTPUT
	NUM0
	LDF 16
	FADD
	2014		/NUM1
	FSUB
	F1
	OUTPUT
	DF
	LOAD
	2014
	OUTPUT
	NUM1
	 
	LIF 4
	MESOUT
	 BUF2
	 
/RTRN TO MAIN PROGRAM IN IF5.
FILGX,	LIF 5
	JMP START
	 
C1,	
F1,	1
	2000
	0
	 
/MESSAGES.
M0,	TEXT %TCHINUM %
	4543
M0A,	TEXT %DOUBLE PRECISION?:%
	4040
BUFOUT,	00
	00
	00
	00
	00
	00
	00
	00
	00
	00
	00
	00
	00
	00
	00
	 
M1,	TEXT %MESGE:%
M2,	TEXT %F0 FILES?:%
M3,	TEXT %F1 FILES?:%
BUF2,	TEXT %N0= %
NUM0,	00
	00
	4040
	TEXT %N1= %
NUM1,	00
	00
	4040
	TEXT %DF= %
DF,	00
	00
	4543
/END FILGET.
	 
	 
/IF 2 PICK HANDLER.
PIK2,	MUL I		/AC=ITEM NUM
	3
SWITCH,	SAGE		/SAGE,JMP PIK2A
	1777
	 
	 JMP PIK2A	/1774 OR LESS
	 
	ADD C1		/>=2000
	STC 1		/PNTR
	LDA I		/SET 2ND DF
	LDF 7
	JMP PIK2B
	 
PIK2A,	ADA I
	2000
	STC 1		/PNTR
	LDA I		/SET 1ST DF
	LDF 6
PIK2B,	STC LHDF
	 
	LDF 5
	LDA		/BETA3 OF IF5
	2003
	STC 4
	LDA 4		/0-1, F0-F1
	ROL 3		/0-10
	ADA I
LHDF,	0		/LDF 6 OR 7
	STC PIKDF	/LDF 6,16,7,OR17
	 
	LDA I
	LOAD		/744=LOAD, 745=STORE
	ADA I 4		/READ=0, WRITE=1
	STC PIKCOM
	XSK I 4
	LDA
	4
	STA		/RESET BETA3,IF5
	2003
	 
/NOW GET WANTED VALUE.
	STARTF
PIKDF,	0		/LDF 6,7,16,17
PIKCOM,	0		/LOAD, STORE
	1		/PNTR
	 
/NOW MAKE SP LOAD DP COMPATIBLE.
	STORE
	HOLD
	LOAD
	HOLD
	 
/RTRN TO IF 5.
	LIF 5
	JMP 3		/LEAVE
C2,	2
HOLD,	0
	0
	0
	0
	0
	0
	 
/ROUTINE TO SEE IF NEED TO CHECK FOR
/2ND DATA FIELD.
CHKSIZ,	LDF 5
	LDA
	2\NC		/SIZE F0
	SAGE
	500		/320(10)
	SKP
	 JMP BIGSIZ
	LDA
	2\ND		/SIZE F1
	SAGE
	500		/320(10)
	JMP SMLSIZ
	 
BIGSIZ,	LDA I		/BIG FILES
	SAGE
	STC SWITCH
	LIF 5
	JMP CHKRET
	 
SMLSIZ,	LDA I		/SMALL FILES
	JMP PIK2A
	JMP BIGSIZ+2
/END PIK2.
	 
/// SAGE
	 
/SUBROUTINE SAGE DOES SKIP IF VALUE
/IN AC IS GREATER OR EQUAL TO CONTENTS OF P+1.
/DOES NOT DESTROY AC, DF, OR BETA REGISTERS.
	 
	SAGE=JMP .
	STC SAGEX+1	/SAVE AC
	ADD 1
	STC SAGEX+3	/SAVE BETA 1
	SET 1
	0
	ADD 1
	STA
	SAGEX+2		/ORIG RTRN JUMP
	BCL I
	6000
	STC 1
/NOW COMPARE VALUES.
	LDA 1
	COM
	ADD SAGEX+1
	AZE I
	JMP .+7		/EQUAL
	APO I		/NOT EQUAL
	JMP .+5		/GRTR
	CLR		/LESS
/NOW SET UP RETURN JUMPS.
	ADD SAGEX+2
	ADD C1
	JMP .+4
	CLR
	ADD SAGEX+2
	ADD C2
	STC SAGEX
	SET 1		/RESTORE BETA 1
	SAGEX+3
	ADD SAGEX+1	/RESTORE AC
SAGEX,	0		/LEAVE, RTRN JUMP
	0		/AC
	0		/ORIG RTRN JMP
	0		/BETA 1
AAEND2,	0
/SAGEX IS OFTEN USED AS A FP REGISTER AS WELL.
/END SAGE.
/END IF2 PROGRAMMING.
	 
/END PROGRAM.
	 
/PBLOCK FOLLOWS
	NOLIST
//PBLOCK
	P20=3420	/NO.SEG IN ENSM
/
/COMMAND DECODER ASSIGNMENTS
/
/
	STOP=JMP 20
	SCAN=JMP 21
	STRSCN=JMP 21
	INUNIT=JMP 22
	STORIT=JMP 23
	GETFIL=JMP 24
	GETFST=JMP 24
	GETNAM=JMP 25
	GETNXT=JMP 25
	DIRINI=JMP 26
	DIRLST=JMP 27
	ASSIGN=JMP 30
	DEASS=JMP 31
	OUTUNIT=JMP 32
	LODBLK=JMP 33
	RUNBLK=JMP 34
	FIND=JMP 35
	CALL=JMP 37
	UNCALL=JMP 40
	RUNPRG=JMP 41
	INTRACT=JMP 42
	MESOUT=JMP 43
	DISK=JMP 44
	TABSET=JMP 45
	INTABLE=JMP 46
	MISSNG=JMP 47
	TABGET=JMP 50
	TABPUT=JMP 51
	TABZER=JMP 52
	MAKDIL=JMP 53
	TABINI=JMP 54
	MGETNAM=JMP 55
	MGETFIL=JMP 56
	MSTORIT=JMP 57
/
/COMMAND LOCATIONS.
/
	FILNAM=2320
	WORD1=2323
	WORD2=2324
	INBUF=2325
/COMMAND NUMBERS.
	YES=17
	NO=20
/EXEC3 ASSIGNMENTS
/
	OPR=500
	IOF=6002
	ION=6001
	EXC=1710
	REXC=540
	RLSW=514
	RRSW=515
/FLOATING POINT DEFINITIONS.
/
	FAC=0
	STARTE=740
	FSUB=741
	FMUL=742
	FDIV=743
	LOAD=744
	STORE=745
	SETWRD=746
	INPUT=747
	OUTPUT=750
	ISTOR1=751
	SQRT=752
	DFLOAT=753
	SFLOAT=754
	FIX=755
	FADD=756
	ISTOR2=757
	STARTF=760
	FCOMP=761
	FZER=762
	FAPO=763
	FAZE=764
	RECIP=765
	LIST
/END PBLOCK
///END TCHINUM
/MAY 76
/FHD



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