File PDP11DAT

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

*20
///PROGRAM PDP11DAT
	 
	 
	 
	 
	 
/PROGRAM TO PRODUCE PDP 11
/FEATURE FILE MAG TAPES FROM
/SIGSYS 12 DATA FILES.ALLOWS
/MULTIPLE FILES SAME AS DOBANDS
/AND SPECBND2.
	 
	 
/OPERATING COMMANDS
/
/  MAG TAPE MOUNTED?: (YES,NO)
/  INUNITS: (INPUT UNITS)
/  LINC TAPE IDENT: (2 CHARS)
/  ALL?: (AS IN DOBANDS)
/
/  END OF MAG TAPE?: (YES,NO)
	 
	 
	 
/252 FLOATING POINT NUMBERS ARE
/EXTRACTED FROM THE DATA AREA
/OF EACH SYSTEM FILE AND WRITTEN
/TO MAG TAPE OR TELETYPE
	 
	 
/EACH DATA FILE IS PRECEEDED WITH A 
/HEADER OF THE FORM 1X,2A4,I3 . THE
/SPECIFIC CONTENTS OF THE HEADER IS:
/	BRRRRRRTTNNN
/WHERE:
/	B=SPACE
/	R=RECORD ID. E.G. AA1234
/	T=TAPE ID. (OPERATOR ENTRY)
/	N=RECORD SEQUENCE NUMBER ON TAPE
/
/
/MAG TAPE FORMAT
/
/(6 INCHES BLANK TAPE, 4EOF MARKS)
/
/MULTIPLE RECORDS OF THE FOLLOWING FORM
/(1X,2A4,I3),(IRG)	HEADER
/42((1X,6F11.4),(IRG))	252 DATA VALUES
/(EOF)
/	"
/	"
/(EOF)			END OF TAPE MARK
/
	 
	 
	 
/************WARNING****************
/
/IN SIGSYS 12, ILLEGAL NUMBERS ARE
/CONVERTED TO ? ON OUTPUT.THIS IS
/AN UNREADABLE FORMAT TO FORTRAN.
/IN THIS PROGRAM ALL SUCH NUMBERS
/ARE TRAPPED AND THE ? IS CONVERTED
/TO OCTAL 60 (0).
/
/***********************************
	 
	 
	 
	 
	 
/SENSE SWITCH OPTIONS:
/
/  SNS0=0 WRITE DATA ON MAG TAPE
/      =1 PRINT DATA ON TELETYPE
/
/  SNS3=0 PRINT MISSING ENTRIES FROM TABLE
/         OF FILE NAMES
/      =1 SUPPRESS MISSING ENTRIES PRINT-OUT
	 
/LODSYM NOT NEEDED. PBLOCK ADDED.
	 
	 
	 
	LMODE
	SEGMNT 5
	*20
	 
	LIF 4
	MESOUT
	 MPB		/PDP11DAT
	 
START,	LIF 4
	INTRACT
	 CJ3
	 M3		/MAG TAPE MOUNT
	 
	 
BEG,	LIF 4
	INUNIT
	 
	 
	LIF 4
	INTRACT
	 CJ5
	 M5		/TAPE ID.
	 
D2,	JMP WRDSET	/SET WRD1,WRD2
	LIF 4
	INTRACT
	CJ2
	M2		/ALL?:
	 
CJ2,	T2
	J2
CJ3,	T2
	J3
CJ4,	T2
	J4
CJ5,	T1
	J5
T2,	YES
	NO
T1,	0
	 
	 
J2,	JMP BEG		/CR
	JMP DOALL	/YES; ALL FILES
	JMP DOTAB	/NO; FILE TABLE
	JMP D2		/0
	 
J3,	JMP START	/CR
	JMP SRTTAP	/YES,WRITE LEADER
	JMP START	/NO
	 
J4,	JMP ENDQES	/CR
	JMP ENDTAP	/YES
	JMP BEG		/NO
	 
J5,	JMP BEG		/CR
	JMP GETID	/TAPE IDENT
	 
/ALL FILES FILES HANDLER
	 
DOALL,	LIF 4
	DIRINI
	 
NXTFIL,	LIF 4
	MGETNAM
	 JMP ALLDON	/END OF FILES
	LIF 4
	MGETFIL
	 HLT		/NOT FOUND, ERROR
	 
	JMP DOTAPE	/DO TAPE WRITING
	JMP NXTFIL	/NEXT FILE
	 
/INPUT FILE TABLE HANDLER
	 
DOTAB,	LIF 4
	TABSET
	0
	LDF 2
	2000
	1000
	 
	LIF 4
	INTABLE
	0
	 
	LIF 4
	TABINI
	0
	 
NXTTAB,	LIF 4
	TABGET
	0
	 JMP ENDTAB	/END OF TABLE
	 JMP NXTTAB	/NOT FOUND
	LIF 4
	TABZER
	0
	 
	JMP DOTAPE	/DO TAPE WRITING
	JMP NXTTAB	/NEXT FILE
	 
/PROGRAM EXIT ROUTINE
	 
ENDTAB,	LIF 4
	TABINI
	0
	LIF 4
	MISSNG
	0
	 NOP		/MISSING FOUND
ALLDON,	LIF 4
	DEASS
	 
/ASK IF MAG TAPE EOF?
ENDQES,	LIF 4
	INTRACT
	 CJ4
	 M4		/END OF MAGTAPE?
	 
ENDTAP,	SNS 0
	JMP WRTEOF	/DOUBLE EOF FOR EOT
	LIF 4
	STOP
	
/SUBROUTINES
	 
/SET UP WORD1 AND WORD2 IN DECODE
/AND INITIALIZE TAPE SEQUENCE NUMBER
WRDSET,	LDF 4
	LDA I
	7107
	STA 
	WORD1
	LDA I
	4406
	STA
	WORD2
	LDA I
	1
	STC SEQNUM
	JMP 0
	 
	 
//MASTER CONTROLLER FOR TAPE WRITING
	 
	 
DOTAPE,	LDA
	0
	STC DOTAPX
	 
	JMP HEADER	/WRITE HEADER
	JMP WRTIRG	/INTER RECORD GAP
	 
	JMP DAT256	/WRITE OUT DATA
	JMP WRTEOF	/END OF RECORD
DOTAPX,	JMP
//END INTEGRATION MASTER COMTROLLER.
	 
	 
/WRITE HEADER DATA
/
HEADER,	LDA
	0
	STC HEADX
/FILENAME
	LDF 4
	SFLOAT
	 FILNAM+1	/VAL OF FILE
	SETWRD
	 400
	OUTPUT
	 VALBUF
/LEADING SPACE
	LDA I
	40
	JMP WR
/FILNAME CHARS
	LDH
	FILNAM
	JMP WR
	LDH
	4\FILNAM
	JMP WR
	LDA I
	-4
	JMP VALCON
/TAPE ID
	LDH
	TAPID
	JMP WR
	LDH
	4\TAPID
	JMP WR
/SEQUENCE NUMBER
	SFLOAT
	 SEQNUM
	SETWRD
	 300
	OUTPUT
	VALBUF
	LDA I
	-3
	JMP VALCON
/
	LDA I
	1
	ADM I
SEQNUM,	0
HEADX,	JMP
	 
	 
	 
/TRANSMIT VALUES FROM VALBUF
/
VALCON,	STC 5		/- CHAR COUNT
	SET 2
	0
/CHECK FOR ? IN OUTPUT BUFFER
	LDH
	VALBUF+5
	SAE I
	77
	JMP .+5
	LDA I
	60
	STH
	VALBUF+5
/
	SET I 3
	4\VALBUF-1
	LDH I 3
	JMP WR
	XSK I 5
	JMP .-3
	JMP 2
	 
	 
	 
/GET TAPE IDENT SUBROUTINE
/
GETID,	LDF 4
	LDA
	INBUF
	STC TAPID
	LDF 5
	JMP D2
	 
	 
	 
	 
/WRITE 6 INCHES OF LEADER
//
SRTTAP,	SNS I 0
	JMP BEG		/DONT PRINT
	SET I 3
	-4
	JMP WRTEOF
	XSK I 3
	JMP .-2
	JMP BEG
	 
	 
	 
	 
/PRINT A SINGLE CHAR ON TTY
/CONVERT 6 BIT TO 7 BIT
/
TYPIT,	ADA I
	40
	BCL I
	7700
	ADA I
	40
	STC TCHR
/
	OPR 11
	7704
	-1
	0
TCHR,	0
	JMP .-5
/
	OPR 1
	4
	TYPX
	JMP .-3
	OPR 5
/
TYPX,	JMP 1
	 
	 
	 
/PRINT CRLF
/
CRLF,	LIF 4
	MESOUT
	 CRMES
	JMP 1
/
/PRINT 2 DASHES
/
DSHOUT,	LIF 4
	MESOUT
	 DSHMES
	JMP 1
	 
	 
	 
/WRITE OUT 252 DATA POINTS
/
DAT256,	LDA
	0
	STC DATX
	 
	SET I 17
	3777		/START OF DATA
	SET I 16
	-52		/42*6
/DO 6 VALUES
NX6,	SET I 15
	-6
	LDA I
	40
	JMP WR
	 
	 
NXVAL,	LDF 6
	LDA I 17
	STC NUM
	LDA I 17
	STC NUM+1
	LDA I 17
	STC NUM+2
	LDF 5
	 
/CHECK FOR FUNNY VALUE
	LDA 
	NUM
	SAE I
	3777
	JMP DATOUT
	CLR
	STC NUM
	STC NUM+1
	STC NUM+2
	 
DATOUT,	SETWRD
	1344
	LOAD
	 NUM
	OUTPUT
	 VALBUF
	LDA I
	-13
	JMP VALCON
	 
	XSK I 15
	JMP NXVAL
	JMP WRTIRG	/INTER RECORD GAP
	XSK I 16
	JMP NX6		/NEXT 6 VALUES
DATX,	JMP		/END OF 12 VALUES
	 
	 
WRTIRG,	SET 1
	0
	SNS I 0
	JMP CRLF
	IOB
	IOF
	LDA I
	1000
	IOB
	6704
	IOB
	6703
	JMP .-2
	JMP 1
	 
WRTEOF,	SET 1
	0
	SNS I 0
	JMP DSHOUT	/PRINT DASHES
	IOB
	IOF
	LDA I
	2000
	IOB
	6704
	IOB
	6703
	JMP .-2
	JMP 1
	 
WR,	SET 1
	0
	SNS I 0
	JMP TYPIT
	ADA I
	BCDTAB
	STC 4
	LDA 4
	IOB
	IOF
	IOB
	6706
	IOB
	6703
	JMP .-2
	JMP 1
	 
/BCD CONVERSION TABLE
BCDTAB,	20		/00 USE BLANK
	61		/A
	62		/B
	63		/C
	64		/D
	65		/E
	66		/F
	67		/G
	70		/H
	71		/I
	41		/J
	42		/K
	43		/L
	44		/M
	45		/N
	46		/O
	47		/P
	50		/Q
	51		/R
	22		/S
	23		/T
	24		/U
	25		/V
	26		/W
	27		/X
	30		/Y
	31		/Z
	17		/[
	00		/\
	32		/]
	55		/
	00		/NO 37
	20		/SPACE
	00		/!
	00		/"
	00		/CR
	00		/$
	00		/LF
	00		/&
	00		/NO 47
	34		/(
	74		/)
	54		/*
	60		/+
	33		/,
	40		/-
	73		/.
	21		//
	12		/0
	01		/1
	02		/2
	03		/3
	04		/4
	05		/5
	06		/6
	07		/7
	10		/8
	11		/9
	12		/:
	77		/;
	72		/<
	13		/=
	57		/>
	00		/?
	 
	 
	 
	 
//MESSAGES.
MPB,	TEXT %PDP11DAT%
	4543
M2,	TEXT &ALL?: &
M3,	TEXT &TAPE MOUNTED?:&
M4,	TEXT %END OF MAG TAPE?: %
M5,	TEXT &LINC TAPE IDENT:&
DSHMES,	5555
CRMES,	4543
//END MESSAGES.
	 
//CONSTANTS & STOREAGE BUFFERS.
NUM,	0
	0
	0
VALBUF,	0
	0
	0
	0
	0
	0
	0
TAPID,	0
//END CONSTANTS.
AAEND,	0
//END PROGRAM CODING.
	 
/PBLOCK FOLLOWS.
	 
	NOLIST
	 
//PBLOCK
/PARAMETER BLOCK ASSIGNMENTS
/
	P0=3400		/DATA TYPE
	P1=3401		/CURRENT CHAN.
	P2=3402		/CURRENT CHAN.
	P3=3403		/DATA CHAN.
	P4=3404		/DATA CHAN.
	P5=3405		/CONTINGENCY CH
	P6=3406		/CONTINGENCY CH
	P7=3407		/TRUE CONTING.
	P10=3410	/FALSE CONTING.
	P11=3411	/CONTING. WIDTH
	P12=3412	/TRUE CONTING.
	P13=3413	/FALSE CONTING.
	P14=3414	/CONTING. WIDTH
	P15=3415	/CHAN INVERSION
	P16=3416	/CHAN INVERSION
	P17=3417	/NO.SAMP IN SEG
	P20=3420	/NO.SEG IN ENSM
	P21=3421	/NO. ENSEMBLES
	P22=3422	/
	P23=3423	/BASELINE PNTS
	P24=3424	/TAPE DELAY
	P25=3425	/ENSEMBL DELAY
	P26=3426	/CLOCK RATE
	P27=3427	/CLOCK TICS
	P30=3430
	P31=3431
	P32=3432
	P33=3433
	P34=3434
	P35=3435
	P36=3436
	P37=3437	/TAPE SPEED UP
	P40=3440	/TAPE SPEED UP
	P41=3441	/TAPE SPEED UP
/
/FLOATING POINT VARIABLES
/
/
	P42=3442	/MULT FACTOR
	P43=3445	/UV PER VOLT
	P44=3450	/SEG. LENGTH
	P45=3453	/TEMP
	P46=3456	/BASELINE DELAY
	P47=3461	/CONTING WIDTH
	P50=3464	/BNDA1 MIN
	P51=3467	/BNDA1 MAX
	P52=3472	/BNDA2 MIN
	P53=3475	/BNDA2 MAX
	P54=3500	/BNDA3 MIN
	P55=3503	/BNDA3 MAX
	P56=3506	/BNDA4 MIN
	P57=3511	/BNDA4 MAX
	P60=3514	/BNDA5 MIN
	P61=3517	/BNDA5 MAX
	P62=3522	/BNDB1 MIN
	P63=3525	/BNDB1 MAX
	P64=3530	/BNDB2 MIN
	P65=3533	/BNDB2 MAX
	P66=3536	/BNDB3 MIN
	P67=3541	/BNDB3 MAX
	P70=3544	/BNDB4 MIN
	P71=3547	/BNDB4 MAX
	P72=3552	/BNDB5 MIN
	P73=3555	/BNDB5 MAX
	P74=3560	/PF MIN
	P75=3563	/PF MAX
	P76=3566	/TEMP
	P77=3571	/TRUE VOLTS
	P100=3574	/FALSE VOLTS
	P101=3577	/TEMP
	P102=3602	/V RMS
	P103=3605	/VRMS VAR
/
/FROM NOW ON DESCRIPTION IS FOUND OVER
/THE DEFINED VARIABLE.
/
/AX,A1,A1CNT
	P104=3610
/AXVAR,A1VAR,A1CNTVAR
	P105=3613
/AY,A2,A1INT
	P106=3616
/AYVAR,A2VAR,A1INTVAR
	P107=3621
/BX,A3,A1MN
	P110=3624
/BXVAR,A3VAR,A1MNVAR
	P111=3627
/BY,A4,A2CNT
	P112=3632
/BYVAR,A4VAR,A2CNTVAR
	P113=3635
/CX,A5,A2INT
	P114=3640
/CXVAR,A5VAR,A2INTVAR
	P115=3643
/CY,B1,A2MN
	P116=3646
/CYVAR,B1VAR,A2MNVAR
	P117=3651
/DX,B2,A3CNT
	P120=3654
/DXVAR,B2VAR,A3CNTVAR
	P121=3657
/DY,B3,A3INT
	P122=3662
/DYVAR,B3VAR,A3INTVAR
	P123=3665
/EX,B4,A3MN
	P124=3670
/EXVAR,B4VAR,A3MNVAR
	P125=3673
/EY,B5,A4CNT
	P126=3676
/EYVAR,B5VAR,A4CNTVAR
	P127=3701
/FX,PF,A4INT
	P130=3704
/FXVAR,PFVAR,A4INTVAR
	P131=3707
/FY,DC,A4MN
	P132=3712
/FYVAR,DCVAR,A4MNVAR
	P133=3715
/GX,GX,A5CNT
	P134=3720
/GXVAR,GXVAR,A5CNTVAR
	P135=3723
/GY,GY,A5INT
	P136=3726
/GYVAR,GYVAR,A5INTVAR
	P137=3731
/HX,HX,A5MN
	P140=3734
/HXVAR,HXVAR,A5MNVAR
	P141=3737
/HY,HY,B1CNT
	P142=3742
/HYVAR,HYVAR,B1CNTVAR
	P143=3745
/IX,IX,B1INT
	P144=3750
/IXVAR,IXVAR,B1INTVAR
	P145=3753
/IY,IY,B1MN
	P146=3756
/IYVAR,IYVAR,B1MNVAR
	P147=3761
/JX,JX,PF
	P150=3764
/JXVAR,JXVAR,PFVAR
	P151=3767
/JY,JY,DC
	P152=3772
/JYVAR,JYVAR,DCVAR
	P153=3775
/
/
/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
	REPCK=2376
/COMMAND NUMBERS.
	YES=17
	NO=20
	SAMPL=21
	TABLE=22
	GO=23
	NEXT=24
	ALL=27
/
/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
	NEXTIN=766
	SETIN=767
	SETOUT=770
	OUTBUF=771
/
/PBLOCK
/FEB 74.
	 
/END PDP11DAT
/18 OCT 75
/NDC
/REVISED 8 NOV 75
/NDC



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